“딥러닝” 강의 요청에 대한 단상

83

가까운 펀드 매니저들이랑 이야기를 해보면, 자기네가 제일 비웃는 사람들이 “종목을 추천해달라”고 하는 사람들이란다. 어떤 나라가 전망이 좋고, 어떤 산업이 전망이 좋고, 어떤 기술이 전망이 좋은지에 대한 고민을 해서 관련 테마에 맞춰 시장 점유율 같은 적절한 비율로 투자하는게 초단기 단타를 노리는 일부 헤지펀드를 제외하면 일반적인 투자자들의 관점이다. 그런데 “종목을 추천해달라”는건 어디서 주워들은 대박난다는 소문을 자기하고 좀 공유해달라는 소리로 밖에 안 보인단다. 그런 소문말고 정말 내부 정보를 알고 투자를 하는건 엄연히 불법이다. 펀드 매니저 지인들이 이슈만 따라가고 있는 다른 펀드 매니저들을 무시하는 것도 아마 같은 이유일 것이다. 산업 전망이니, 기업 상황이니 등등의 복잡한 건 모르겠고, 그냥 종목 하나 골라주면 니 말 믿고 거기에 투자했다가 망하면 너한테 욕하겠다는 마인드랑 다를게 뭐가 있나?

요즘 연말이되니 교육 예산이 남았는지 “딥러닝” 강의 해달라는 요청이 엄청나게 늘었다. pabii 블로그를 계속 보신분들, 특히 수업을 직접 들으신 분들은 이해하겠지만, “딥러닝”을 가르쳐달라는 요청은 “종목을 추천해달라”는 요청과 별반 다르지 않은 피상적인 접근법이다.

왜? Neural net이라는게 결국 Logit과 Decision Tree와 Ensemble 모델의 결합이기 때문이고, 각각의 모델을 이해하고 나면 Neural Net의 여러가지 응용 모델들 (RNN, CNN)과 Reinforcement Learning 모델을 이해하기도 쉽고, 모델을 정교화할 때도 같은 지식을 활용하고, 문제가 생겼을 때 해결할 때도 그런 기초 지식을 쓰게되기 때문이다. 수업 커리큘럼을 이렇게 순서대로 짜놓은 것도, Neural Net 에만 집착하지 않는 것도 같은 이유다.

아래는 얼마전에 요청받은 1주일 코스의 딥러닝 강의 계획표 중 하나다.

 

(Source: 딥러닝 강의 계획표)

이게 딱 우리나라의 현실이다. 앞에 다른 내용들은 하나도 몰라도 되고, 그냥 Deep Learning 이라는것만 배우면 된다고 생각하기 때문에 나오는 커리큘럼이다. 저런 방식의 수업을 듣지 않고, 시계열에 대한 이해가 있는 상태에서 시계열 데이터를 Seasonality decomposition 하는 예제 1개, RNN 기본 예제 1개, LSTM 예제 1개, 그리고 주식 가격 같은 데이터로 응용하는 예제 1개 정도만 돌려보면 Neural net의 RNN 계열 모델이 어떤 모델이고, 어떤 데이터에서 잘 작동하는지 스토리를 그려가면서 따라올 수 있다.

다 가르치는데 들어가는 시간은? 3시간이면 충분하다. 시계열 데이터의 형태와 Neural Net이 어떤 모델인지만 알고 있다면.

모델에 대한 기초가 있다면 RNN이 깨질 때, LSTM 모델이 잘 안 돌아갈 때 Hidden Layer 숫자만 늘렸다 줄였다하는 단순무식한 디버깅이 아니라, 어떤 방식으로 모델에 손을 대야, 혹은 다른 모델을 어떻게 써야 지금 겪는 문제를 해결할 수 있을지 알아낼 수 있지 않을까? 그래서 기초를 가르치는데 긴 시간을 투자하고, 저런 응용 부분은 빠르게 코드를 훑고 가는 강의를 짜 놓은 것이다.

참고로 MNIST (위의 표에는 MINST라고 오타..) 데이터를 이용해서 숫자 0~9까지 인식시키는건 예제 코드 한번만 돌려보면 된다. 위의 표처럼 점심시간 앞 뒤로 2시간이나 쓰는 강의는 다양한 Variation을 다 가르칠 수 있는 예제에나 해당하는 이야기지, MNIST 데이터처럼 단순히 손으로 쓴 숫자들 몇 개에는 해당사항이 없는 이야기다.

까짓꺼 위의 커리큘럼대로 강의해주는거 어려운 거 없다. pabii의 수업을 다 들었고, 저런 종류의 외부 강의들 한번 들어봤으면 알겠지만, pabii 수업에서 3시간만에 강의 할 내용을 다른 강의들에서 4-5배의 시간을 들여서 강의하고 있을 것이다. 그렇게 느릿느릿하게 코드 한 줄 쓸 때마다 여러분도 다 쳐 보세요, 다 실행 버튼 한번 눌러보세요~ 라고 가르치면 된다. 윗 계획표를 보면 마지막 날 좀 어려운 예제라고 가르치는데 OpenAI Gym에 다 공개된 예제들 Cart pole, Frozen lake 같은 걸 돌려보네? 이거 주제 하나당 블로그 글을 최소한 100개는 찾을 수 있을 것이다.

그런 시간 낭비 강의, 블로그 수준의 강의는 양심상 못 하겠더라.

 

나가며 – 딥러닝 강의 요청에 대한 단상

저런 식으로 자기들만의 커리큘럼을 강요하는 분들께 한번 물어보고 싶다. 내가 당신들보다 배운 것도 훨씬 더 많고, 이런쪽 경험치도 훨씬 많은데다, 가르친 짬도 쌓였고, 심지어 박사 학위 중에 석사생 대상으로 한 강의에서 Teaching Award도 받은 사람인데, 내가 만든 커리큘럼이 다 이유가 있어서 그렇게 만들었다는 생각을 해 본적은 없나?

작년 이맘때쯤에 4차산업을 선도하는 어느 교육기관이라는 곳에서 3시간 8번이나 되는 “구질구질”한 강의 하지말고, 하루 6시간씩 2번 짧게 핵심만 요약하는 강의를 해달라고 했다. 데이터 사이언스 기본 강좌를 듣고 나가시는 분들께 가끔 그 이야기를 해 드리면, 48시간도 부족해 보이는 강의를 꽉꽉 우겨넣은 24시간 강의를 듣고 나가는 판국에, 이걸 소화하려고 동영상 강의 복습에 2배 이상의 시간을 투자해야될 것 같은데, 이걸 12시간만에 가르치라는건 논리와 맥락을 다 빼고 코드만 봐야될 것 같다고, 수업의 핵심을 다 포기해라는거 아니냐며 허탈 웃음을 지으셨다.

수학 & 통계학으로 내공이 단단하게 쌓인 연구소 박사 분들 반응도 별반 다르지 않다. 하물며 내공도 없는 사람들에게 기초적인 배경 지식은 생략하고 그냥 “딥러닝”만 바로 가르치라고하니, 가르치는 사람도 어이가 없고, 배우는 사람도 다 포기하고 코드만 보게 되는 것이다. 아니면 코딩만 할 줄 아는 사람이 가르치게 되던가.