나는 방학 때는 내 삶이 너무 지루하고 진부해서 빨리 학교를 가서 새로운 사람 만나면서 성장하고 싶다는 생각이 굉장히 컸다. 그런데 막상 와보니 그런 마음은 이제 사라지고 빨리 방학을 맞이하고 싶은 그런 마음이다..ㅋㅋㅋ
3월 한 달 동안 많은 일이 있었다. 로봇 관련 프로젝트 한답시고 전공과목 다 빼고 로봇 관련 과목을 채워서 들을려고 하지를 않나, 하다가 아닌 것 같아 교수님들께 찾아가서 증원신청하지를 않나 참 많이 바빴다. 혼자서 북치고 장구치고 다했다.
그런데 이 당시 굉장히 힘들었다. 내가 한 선택에 대해 책임은 져야하는데, 내가 그럴만한 능력이 없고 안일했다는 생각이 계속 들었다. 이러던 때에 연정이가 해준 말이 굉장히 기억에 남는데, 바로 "어떤 선택을 하든 후회는 남아. 그런데 그 선택을 옳게 만드는 건 대성이 몫이지." 맞는 말이다. 생각해보면 작년에도 내가 선택을 잘못해서 한 과목을 드랍 못해서 후회했는데 결국에는 열심히해서 좋은 결과를 얻을 수 있었다.
증원 신청한 교수님께서도 굉장히 좋은 말씀을 해주셨는데, "학생은 이미 로봇 쪽으로는 길이 아니라는 걸 깨달았잖아요. 그럼 그건 실패가 아니라 그게 아니라는 걸 깨달아서 오히려 성공인거지. 생각하기 나름이에요." 어느 한 분야에 베테랑이 되면 말 한마디 한마디가 무게감이 많이 실리는 것 같다. 교수님의 말씀을 듣고 너무 힘이 되었다.
그래서 지금 현재 나는 어떤 상태냐? 뭐 시험 기간 다가와서 굉장히 긴장되고 성적 잘 받고 싶다는 욕심이 큰 상태이긴 하다. 그런데 내가 이번년도 새해 목표에 '과욕금지!' 라고 한 걸 봤다. 그렇다. 지금 나는 너무너무넘누먼너무 욕심이 큰 상태이다. 이 욕심을 조금은 버릴 필요가 있는 것 같다. 과욕은 나를 옥죄고 이게 독이 되어 잘 되던 일도 이상하게 만드는 것 같다. 이럴 때마다 책을 읽어야겠다. 저번에 이 상황에서 읽었던 자기계발서 "그릿"이라는 책이 있는데 굉장히 좋았던 것 같다. 한번 더 읽으면서 마음을 달래야겠다.
음 뭐 결론은 욕심 과하게 부리지말고 최선을 다하고 너무 불안해하지 않기. 아직 나는 젊으니깐 잘하고 있으니깐 이대로만 쭉하면 되지 않을까? 암암
'우리는 예지력을 갖고 미래를 알아맞힐 수는 없지만, 우리가 원하는 미래를 만들기 위해 노력하고 대응할 수 있습니다.'
사람들은 예상하지 않은 미래가 오면 두려워한다. 그렇기 때문에 다가오는 미래에 대비하기 위해 각종 예방책과 대응수단을 마련한다. 카이스트 미래전략 2024는 미래에 효과적으로 대비하기 위해 과거와 현재, 미래를 한 권에 담아 독자에게 최대한 주관적인 요소를 배제하고 객관적으로 정보를 전달하고자 한다.
첫 번째 목차인 포스트 AI시대 휴머니즘의 미래는 도구가 어떻게 진화를 해왔는지 살펴보고 현 시점에 기술이 얼마만큼 발전했는지 설명한다. 가장 인상깊었던 목차는 초지능 사회를 열어줄 21세기 새로운 도구인데 여러 도구를 소개했지만 그 중 펌웨어의 도전 부분은 많이 충격적이었다. 이전에 필자는 사이버펑크라는 애니메이션을 본 적이 있는데 이 애니메이션은 2070년의 인간의 미래모습을 그린 작품으로 신체에 기계장치가 이식된 채로 살아가는 삶은 어떨지 보여준다. 이 작품을 보면서도 충격이었지만 실제로 비슷하게 그러한 시도를 현재 2023-2024년에 시행되고 있었다는 점이 충격이었다.
한 가지 예를 소개하자면 최근 바이오닉스 분야에서 가장 뜨거운 이슈는 바로 인공 청각과 인공 시각이다. 인공 청각은 손상된 와우에 전극을 삽입해 전기신호로 변환된 소리를 청신경에 전달하는 장치인데 이미 1970년대에 사용화가 되어 선천적으로 청력을 잃은 많은 청각장애인에게 세상의 소리를 들려주고 있다고 한다. 또 일론머스크의 뇌공학 스타트업인 뉴럴링크는 뇌에 실 형태의 미세전극을 매우 높은 밀도로 정교하게 삽입하고 신경세포를 선택적으로 자극하거나 측정된 신경신호를 무선으로 전송하는 기술을 개발하고 있다. 이 기술이 상용화된다면 뇌를 직접 자극해 사물을 보게하고 소리를 듣게 하고 마비된 사지를 로봇의 힘을 빌려 움직일 수 있게 할 수 있다고 하는데 시간이 많이 걸리기는 하겠지만 실현된다면 이것 자체로 바이오 산업에서 챗GPT 만큼의 파장을 일으킬 수 있을거라고 생각한다. 하지만 이렇게 장애를 가진 사람들의 한계를 극복할 수 있는 장점이 될 수도 있지만 앞서말한 애니메이션 사이버펑크처럼 장애가 없는데도 신체의 기능을 높이기 위한 인간 증강의 기술로 활용될 수도 있다는 불안감도 준다. 이로 인해 인위적으로 개인의 능력을 증강한 사람이 그렇지 않은 사람보다 더 상위 계급이 되어 새로운 양극화를 만들어낼 수 있다. 따라서 우리가 원하는, 즉 인류의 행복을 위해서는 바이오닉스 기술의 감시와 통제는 필수적으로 이행되어야 할 것이다.
두 번째 목차인 변화에 대처하는 STEPPER 전략에서는 기업이나 국가, 개인, 가정이 다가오는 미래에 어떻게 대처해서 급변하는 사회에 대비할 수 있는지 담았다. 여기서 우리나라가 인구가 꾸준하게 감소하고 있는데 이에 대한 대비로 이민자를 수용해야한다는 얘기가 나온다. 이와 같은 유사 사례로 독일이 이민자 정책에 성공했다는 걸 알고 있었던 필자는 이 책에서 어떤 해결책을 제시할지 궁금했다. 여기서는 이민자 정책의 장단점을 따지기에 앞서 왜 인구감소가 문제인지 이민자 정책을 시행한 뒤의 우리나라가 어떤 사회로 뒤바뀔지를 설명했다. 일단 인구가 줄어든다는 것은 인재가 줄어든다는 것으로 이는 국가경쟁력의 약화로 이어진다. 그렇기에 해외 이민자들을 받아들여 우수인재 유치에 힘써야한다는 것이 주된 내용이었다. 그러나 해외 이민자들을 받아들였을 때의 우리 사회 구성원들이 제대로 수용할 수 있을지는 의문이다. 아직까지 외국인에 대한 편견이나 선입견이 존재하기에 이에 대한 교육이 필요하고 이민자들이 우리나라에 왔을 때 잘 자리잡을 수 있도록 해주는 것이 중요하다. 이 책에서는 인구감소의 문제에 대해 국가가 더욱 적극적으로 힘써줘야한다고 주장하고 있는 듯하다. 필자 또한 개개인의 노력만으로는 이 문제를 해결할 수 없다고 생각하기에 국가가 전면적으로 나서야한다고 생각한다. 이처럼 두 번째 목차에서는 STEPPER가 되기위해 우리는 무엇을 신경써줘야하는지 방향을 알려준다.
'선비정신', 우리 선조들이 정파나 개인의 이해관계를 떠나서 오로지 대의와 국가, 백성을 위해 시시비비를 가리고자 하는 한국 고유의 정신. 요즘 우리나라에서는 이런 모습이 거의 보이지 않는 것 같다. 모두가 선비정신을 갖고 대의와 국가를 위해 자신이 맡은 위치에서 힘쓴다면 지금 현재 우리나라의 위기는 충분히 극복할 수 있을 것이라고 생각한다.
2024년 세계의 정세와 우리나라의 상황, 그리고 산업의 동향을 한 권의 책을 통해 대략적으로 파악하고 자신만의 새로운 인사이트를 얻고 싶은 분들에게 이 책을 추천한다.
seed 값에 의해 동일한 코드를 사용해도 결과가 다를 수 있기에, 동일한 결과를 위해 seed값을 고정시킵니다.
import numpy as np
import random
import os
def seed_everything(seed):
random.seed(seed)
os.environ['PYTHONHASHSEED'] = str(seed)
np.random.seed(seed)
seed_everything(42) # Seed 고정
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, stratify=y, random_state=42)
데이터 전처리 2: 범주형 변수 수치화
LabelEncoder를 통해 범주형 변수 수치화를 진행합니다.
from sklearn.preprocessing import LabelEncoder
categorical_features = ['대출기간', '주택소유상태', '대출목적']
for i in categorical_features:
le = LabelEncoder()
le=le.fit(train_x[i])
le=le.fit(X[i])
train_x[i]=le.transform(train_x[i])
X[i]=le.transform(X[i])
for case in np.unique(test_x[i]):
if case not in le.classes_:
le.classes_ = np.append(le.classes_, case)
test_x[i]=le.transform(test_x[i])
display(train_x.head(3))
display(test_x.head(3))
모델 선정 및 학습
RandomForestClassifier
from sklearn.ensemble import RandomForestClassifier
RFC = RandomForestClassifier()
RFC.fit(X_train, y_train)
max_depth_list = range(20,25)
accuracy = []
for m in max_depth_list:
RFC = RandomForestClassifier(random_state = 42, max_depth = m)
RFC.fit(X_train, y_train)
pred = RFC.predict(X_test)
score = accuracy_score(pred, y_test)
accuracy.append(score)
plt.plot(max_depth_list, accuracy)
plt.xlabel('max_depth')
plt.ylabel('accuracy')
plt.show()
from sklearn.metrics import accuracy_score
pred = RFC.predict(X_test)
score = accuracy_score(pred, y_test)
print(f"정확도: {score}")
가장 잘 나온 max_depth의 값을 선택하여 예측한 결과 정확도는 0.8231이 나왔습니다.
nl = []
ll = []
while True:
n = int(input())
if n == -1:
break
l = []
for i in range(1,n+1):
if n % i == 0:
l.append(i)
l.remove(l[-1])
ll.append(l)
nl.append(n)
for j in range(len(ll)):
if nl[j] == sum(ll[j]):
print(f"{nl[j]} = ", end = "")
for k in ll[j]:
if k == 1:
print(f"{k}", end = "")
else:
print(f" + {k}", end = "")
else:
print()
print(f"{nl[j]} is NOT perfect.")
이 코드는 정답이랑 똑같은 형식으로 출력되기는 하는데
출력되는 형식이 이렇게 되면 안되기 떄문에 틀린 문제이다.
한 줄에 하나씩 출력되도록 해야하는데 그렇게 하지 않았기에 틀린문제
그럼 어떻게 해야하나?
옛날에 썼던 적이 있는 것 같은데 요즘 안써서 까먹은 join을 써야한다.
join을 통해 반복문 사이에 있는 인자들을 +로 연결해준다는 생각을 해주면 이렇게 길게 코드를 쓰지 않아도 된다.
정답 코드
nl = []
ll = []
while True:
n = int(input())
if n == -1:
break
l = []
for i in range(1,n+1):
if n % i == 0:
l.append(i)
l.remove(l[-1])
ll.append(l)
nl.append(n)
for j in range(len(ll)):
if nl[j] == sum(ll[j]):
temp = ' + '.join(str(i) for i in ll[j])
print(f"{nl[j]} = {temp}")
else:
print(f"{nl[j]} is NOT perfect.")