온라인 공짜 강의들의 실체 (feat. 국비지원)

데이터 사이언티스트가 되려면 얼마나 많은 준비를 해야 할까? 당연하겠지만 필자의 8주 강의 하나를 듣는다고 완벽하게 준비되는 것은 절대로 아니다.

우연히 구글링을 하다가 본 글에서 눈에 확 들어오는 문구가 여기에 딱 맞는것 같아서 소개하고 싶다.

어느 국비지원 IT학원 6개월 과정을 듣고 난 다음에 극소수만 취업한다, 대부분은 중간에 나가 떨어지고, 일부 취업하는 사람들도 엄청나게 악조건으로 채용된다… 는 글이었는데,

“취업하고 다들 버티시느냐? 자기 스킬이 딸린데 회사에서 어떻게해서든 가르침을 받아서 뻐길려는 분은 아쉽게도 회사는 학교가 아니기 때문에 일에 필요한거 외엔 가르쳐주지 않습니다. 기본적인 업무에 필요한 스킬레벨 이상을 가지고 있어야한다는거죠.”

격공한다. 정말 격공.

(국비지원 찾다가 시간만 날린다)

노 베이스인 상태로 공짜강의만 듣던 사람들

필자가 귀국 전에 잠깐 자리만 차지했던 실리콘 밸리의 모 스타트업에도 딱 그런 분이 하나 있었고, 그리고 한국와서도 직장에서 비슷한 사람을 하나 만났다. 둘 다 Data Analyst 경력 몇 년으로 본인이 Data Scientist는 하고 싶은데, 정작 할 수 있는 능력이 안 되니까 필자의 결과물들을 어떻게든 활용하려고 노력하는게 너무 눈에 보였다.

여기저기서 공짜 Youtube 강의를 열심히 듣던 그 분들이 필자에게 자주 R 코드로 이것저것 묻던 기억이 생생하다. 그 중 하나는 심지어 필자에게 이렇게 이야기하더라. “Part of the reason that I hired you is because you are an expert on R. We encourage you to share your knowledge with the team.” 이었다.

글쎄요… R을 돌릴 줄 아는게 중요한게 아니라, 무엇을, 어떻게 R로 돌릴지 아는게 더 중요한데요….

체계적으로 교육을 받지 않은 사람이 그렇게 주먹구구식으로 필자의 프로젝트 결과물만 보고 Data Science를 배우기는 매우 힘들다. 준비 안 된 사람들이 못 따라오는 걸 어떻게 하냐고…

이 분들이 어느 정도 수준이었냐면, 한 명은 두 변수의 상관관계를 볼 수 있는게 Correlation이라는건 알고 Excel로 그 함수를 써서 계산을 할 수는 있는데, 정작 그 계산 공식을 보고 “We can do this kind of cool analysis. Look how complicated the function is.”라던 사람이었다. 아니 이런 기초 공식을 모르다니? 그거 통계학 개론에서 배우는 내용 아니냐? 심지어 나한테 보여준 공식은 틀렸더라. 자유도(Degrees of freedom)가 2개 빠져야 되는데 (각 변수당 평균값을 1개씩 쓰니까, 총 2개가 빠져야지.) “-1″만 되어 있는 공식을 써놓고 그렇게 좋아하더라. 딱했다. “Cool analysis” 많이 해라.

다른 한 분은 일반 정규 분포와 Log 정규 분포의 그래프 모양이 다르다는것도 이해를 못하고 (각각 종 모양, 그리고 한쪽으로 쏠린 종 모양이다.), 어떤 값에 Log를 취해서 그래프를 그리는게 변화율의 차이를 보기위한 간편한 방법이라는 것 자체를 이해를 시키다 포기할 정도였다. Log를 취한 값을 미분하면, 복잡한 공식으로 탄력성을 구하지 않아도 쉽게 탄력성을 알 수가 있고, 10에서 1,000,000,000까지 자리수가 급격하게 변하는 숫자들은 Log로 보면 1에서 9까지 숫자가 변하니까 성장 속도를 보고 이해하기에 훨씬 간편하다. 이런 개념 자체를 설명을 다 해줘야하는 사람들이었다. 설명을 해 줘도 모르더라.

이런 훈련을 교육과정에서 받지 않았다는 증거다. (솔찍말 Log 사례는 필자도 석사 학위 중에 배웠다.) 그냥 회사와서 숫자 뽑아서 그래프 그리는 일만 했으니까 이 정도의 이해도에 딱 멈춘거라고 생각한다. 예전에 Data Analyst라는 타이틀에 진입장벽이 얼마나 낮았는지 쉽게 알 수 있는 대목이다. 그 실력으로 Science까지 욕심을 내신다니… (아마 필자가 공부 더 안하고 학부 수준의 지식만 갖춘 채 직장 생활을 계속했다면 비슷한 상황이었으리라.

Youtube에서 공짜 강의 몇 개 들어서 머신러닝 관련된 용어 몇 개 주워담을 수 있다고 “분석 능력”이 길러지고 “수학”을 제대로 데이터 사이언스에 이용할 수 있는 수준으로 올라가기란 거의 불가능하다. 기초가 안 닦여 있는데 피상적인 지식 몇 줄을 더 알게된다고 어떻게 제대로 된 내공을 쌓을 수 있겠는가?

업무에 필요한 스킬셋을 안 가지고 있으면 회사에서 뻐기면서 어설프게 공부할 생각을 버려라. 잘 가르쳐주는 후임에게 당신의 자리를 내 줄 생각이 있는게 아니라면.

그 후임도 안다. 당신이 그 스킬셋을 배워서 후임의 배를 불려주는게 아니라, 당신의 배를 불리려고 한다는 것을.

 

데이터 사이언티스트가 배워야하는 스킬셋 (feat. CNN)

학교 밖에 있는 분들, 심지어는 데이터 사이언스 석사를 가 있는 사람들도 마찬가지다. 박사 학위 중에 연구실에 쳐박혀서 몇 년동안 지도교수님께 까여가며 공부하는게 아닌 다음에야, 어차피 깊이 있게 수학, 통계학, 컴퓨터 사이언스를 공부할 수는 없다. 회사에서 쓸 수 있는 지식, 특히 실용적으로 쓸 수 있는 코드와 그 코드를 돌아가게하는 기본적인 배경지식을 갖추는데서 타협해야 한다.

문제는 그 타협의 정도다.

CNN을 안다는 사람들의 허상

온라인에 돌아다니는 수많은 Youtube 동영상 강의들을 보면, 일단 제대로 된 예제가 없다. Convolutional Neural Network (CNN)으로 패턴인식한다는 동영상 강의를 보면, 평소에 으레히 봐왔던 사진인식, 숫자 인식, 알파벳 인식 수준에 그친다. CNN을 쓴다는 사람들한테 이게 무슨 함수인지 아냐고 물어보면 대답할 줄 아는 사람들 거의 없다. 인터넷에서 무료 동영상 강의와 교과서 수준의 예제로 “야매”로 배운 사람들이 대부분일테니까.

수학적으로 봤을 때, CNN은 두 개의 함수를 결합하는데 쓰는 여러가지 방식 중에 하나다. 비교대상으로 쓰이는 함수 결합 중에 Cross-correlation이라는 것도 있다. Cross-correlation은 두 개 함수를 그대로 병렬 결합하면서 상관관계를 보는 것이고, CNN은 하나의 함수를 뒤집어서 결합하는 것이다. 왜 뒤집어서 결합하냐고? 같은 걸 두 번 반복해서 보는 것보다 반대방향에서 보는 이미지를 겹치는게 사물을 인식하는데 더 도움이 되니까.

그럴듯하게 이야기하지만 사실 Cross-correlation의 대칭함수가 CNN이다. 말을 바꾸면, 둘이 똑같다. 다만 CNN이 머신러닝한다는 사람들에게 많이 알려져있다보니 CNN이라고 해야만 사진 인식에 도움이 되는 내용이고, 이게 인공지능이라고 대중이 호도되고 있는 것이다. CNN 쓴다는 사람들중에 이런 원리와 바닥에 깔린 수학을 이해하는 사람이 얼마나 될까? 왜 그걸 이해하는게 중요하냐고? 그냥 눈 앞에 있는 사진만 인식하면 되는거 아님?

실제로 CNN을 쓰는 사람들은 사진 한 두장 인식하는데서 끝나는게 아니다. 일전에 베이지안 관련 글에서도 살짝 언급했듯이, 자율주행에 CNN을 적용하려면 불확실성(Uncertainty)을 처리할 수 있어야하는데, 여태까지는 조건식으로 어떤 특정 조건이 아니면 배제한다는 식의 접근을 했었다(Hundreds of “IF”s). 그러다가 베이지안을 결합하면 되겠다는 아이디어로 발전하면서 CNN의 함수 결합 중에 함수 식에 불확실성 파라미터를 하나(or many) 더 추가하는 방식으로 진행이 된다. 이걸할려면 당연히 Cross-correlation에서 쓰이는 두 함수의 결합부터 이해해야된다.

이걸 어디서 배웠냐고? Cross-correlation은 공부하면서 배운내용이고, 불확실성 처리하는 부분은 베이지안 CNN을 하는 분들 논문에서 읽었다. 논문 어렵더라. 이해하느라 고생 많이 했다. 그런데 온라인 강의에 이런 내용이 나올까? 절대로 그럴리 없다. 이런걸 이해하는 사람이 강의를 하는 경우도 드물다. 그리고 이런 내용을 모르면서 CNN 안다고 회사 취업할 수 있을까? 글쎄다. 필자가 고용주면 그런 사람 안 뽑는다. 사진 한 두장 인식시킬려고 월급주는거 아니지 않나?

그렇다고 당장 수학 공부를 새로 할 수는 없고, 어떻게 해야되냐고? 바닥에 깔린 수학을 알고 있고, 직관적으로 설명할 수 있는 선생님을 만나야 최소한 뭘 알고, 뭘 몰라서, 어디까지 구현하고 어디까지는 내가 구현할 수 있는 영역 밖이라는 이해를 할 수 있지 않을까?

 

공짜 동영상 강의의 허상

고가(?)의 유료 강의를 개설하는 입장에서 너무 영업 마인드로 폭언을 쏟아붓고 있는 것 같아 좀 찜찜하기는 하지만, Youtube에 돌아다니는 공짜 동영상 강의는 다 공짜인 이유가 있다. 그거 듣고 나면 베이지안 CNN 논문 이해할 수 있을까? 아마 식 몇 개는 이해할 수 있을지 모르겠다. 그러나 베이지안 CNN 프로젝트 하는 팀에 레쥬메를 들이밀고 취업 면접을 볼 실력으로 성장할 수는 없다.

영어권에 돌아다니는 유료 동영상 강의들을 보면, 특히 살아남은 유료 강의들을 보면 하나같이 굵직굵직한 프로젝트들을 넣어놓고, 그 프로젝트를 직접 할 수 있는 정도의 퀄리티로 강의를 구성한다. 저런거 하나해보고, 채점도 받아보고, 틀린 부분에 대해서 지적도 받고, 새로 다른 방법론으로 만들어보고 등등의 과정을 거치지 않고는 쳇바퀴 도는 수준에 머물 수 밖에 없다.

잘 훈련을 받고 취업에 성공해도 “자기 스킬이 딸린데 어떻게해서든 회사에서 가르침을 받아 뻐길려는…”이 나올판국이다. 

시간 들여서 강좌듣고 공부해서 스킬셋을 배울려면, 제대로 된 공부를 해야된다. 괜히 학교가 있고, 좋은 강사가 있는게 아니다.

 

바둑 공부 하던 이야기

필자가 바둑으로 1급이다. 초등학교 5학년 때 단을 딸려고 시험 준비를 하다가 공부로 방향을 틀었다. 그 시절 학원 원장 선생님께서 매번 하시던 말씀이, 또래 친구들하고만 둘려고 하지말고, 기원에 찾아오시는 고수분들께 몇 점 깔고 접바둑도 두고, 대마가 잡히는 쓰라린 경험도 하고, 다 잘 둔 바둑 마지막 끝내기 몇 번에 역전패 당하는 황당함도 자주 겪어보라고 그러셨다. 계룡산에 친구 둘이 10년동안 맞바둑만 두겠다고 들어가서 훈련하면, 나와서 고수들 만나면 바로 패한다고, 다양한 종류의 고수들을 만나봐야한단다.

꼭 필자의 데이터 사이언스 강의 들으라고 하는 이야기는 아니다. 다만 무료 강의들의 수준이 다들 고만고만한데, 그런 강의만 계속 소비되고 있는 현실이 안타까워서 하는 이야기다. 좀 퀄리티 있는 강의가 나오고, 그 강의들 여러개가 경쟁적으로 소비되고, 그래서 시장의 전반적인 수준이 올라갔으면 좋겠다. 그래야 필자도 자극을 받아서 더 좋은 강의를 준비할 것 아니겠나.

 

 

X