작정하고 쓰는 머신러닝 강의 수강생 비판 (feat. 꼰대)

필자의 수업 타이틀인 “데이터 사이언스”라는 이름을 처음 듣게 되는 경로는 아마도 알파고, 인공지능 같은 Buzzword 였을 것이고, 그 다음으로 좀 관심이 있어서 검색을 하면, 딥러닝이라는 단어, 같이 검색되는 머신러닝이라는 단어를 만나고, 그리고나서야 데이터 사이언스라는 단어를 만날 것이라고 생각한다. 정작 데이터 사이언스가 가장 포괄적인 개념이고, 머신러닝은 특정한 데이터의 패턴을 찾아주는 응용통계학이고, 딥러닝은 그 중에서 좀 계산비용이 많이 들어가는 작업이고, 알파고는 그걸 바둑에 구현한 하나의 예제에 불과하다는 방식으로 이해하는 사람은 흔지 않을 것이라고 본다.

(노출을 늘리려고 의도적으로 수업 이름에 “머신러닝”, “딥러닝” 같은 단어를 넣을 수도 있지만, 그렇게 지엽적인 내용만 다루는 것도 아니고, 헛바람 든 사람들이 수업에 안 찾아왔으면하는 희망에 수업 타이틀을 “데이터 사이언스”로 고수하고 있다.)

강의를 하다보면 자기가 데이터 사이언스 수업을 찾아온 경로에서 벗어나지 못하는 사람과 필자가 주장하는대로의 방향으로 사고방식을 전환하는 사람으로 나뉘는 것을 볼 수 있다. 필자의 수업을 3번째 듣고 있는 어느 (좀 생각이 열린) 개발자 분은 앞의 케이스들을 “꼰대”라고 부르고, 자기가 다니는 회사에 너무 많아서 같이 일하기 괴롭다는 불평을 여러번 했다. 필자는 그런 분들과의 만남을 의도적으로 피하지 않으면 예의에 어긋나는 행동을 할 것을 잘 알기 때문에, 수업 이외에 다른 접점을 만들지 않으려고 최선을 다한다. 그러나 개발자가 데이터 사이언스를 (어설프게 알고는 “인공지능”이라고 생각하겠지만) 할 수 있는 유일한 직군이라고 착각하는 수 많은 사람들 때문에 필자의 노력은 대부분 실패한다.

(Source: 20sLAB)

2016년 3월의 어느 날로 기억한다. 전화 인터뷰를 무사히 통과하고 Fly-out을 받아서 실리콘 밸리의 어느 대형 IT회사에 데이터 사이언티스트 면접을 갔던 날이다. 10시부터 오후 4시 좀 넘어서까지 열댓명의 팀 사람들과 면접을 보는 내내 거의 모든 질문을 선형대수와 회귀분석 지식으로 대답하느라 말 그대로 “토할 뻔”했던 기억이 난다. 당연히 같이 먹었던 점심 메뉴도 잘 기억이 안 나고, 하루종일 “내가 이렇게 선형대수를 모르는 바보였나”, “박사 공부는 왜 했나”, “이 실력으로 논문 몇 개 썼다고 까불었다니…”같은 자괴감이 쩔었던 기억이 아직도 씁쓸하게 남아있다.

컴퓨터를 주면서 코딩해라는 문제는 단 하나도 없었고, 기껏해야 white board에 어떤 방식으로 코드를 짤 생각인지 논리적인 정리를 해 보라는 요구만 받았던 것 같다. 그리고 가는 회사마다 그런 식으로 면접을 봤던 덕분에, 어떤 종류의 수학 & 통계학 준비를 해야될지 좀 눈에 보이던 무렵에 오퍼를 받았던 것 같다.

“일종의 재능기부 목적으로 강의를 기획하셨다는 걸 느낄 수 있었습니다” 는 평을 주신 수강생 분의 말씀처럼, 한국와서 다들 개발자들에게 코드 몇 줄 쓰는 걸 가르쳐주면 이 업무를 할 수 있다거나, 3류 부트캠프 강의하면서 홍보만 그럴싸하게 하는 자칭 데이터 사이언스 “IT학원”들의 “작태”를 도저히 보고 있을 수가 없었다. 저런 “쓰레기” 강의로 “사기”치는 사람들을 싹 쓸어내버려야지.

필자의 강의는 그렇게 시작됐다.

 

철학을 공유하는 사람들

수업을 들을 수 있는 지식 수준의 경계는 꽤나 명확하다. 학부 수준의 미분방정식, 선형대수, 그리고 회귀분석을 알아야 필자의 데이터 사이언스 강의를 따라올 수 있다. 그런 지식을 갖출 수 있는 학부 전공은 자연대, 공대, 그리고 문과에서는 아마 경제학이 유일한 전공일 것이다. (가끔 힘든 도전을 하고 있는 경영학과 출신, 의대 출신이 있기는 하다.)

그런데 정작 수업을 듣는 사람들 중에 이 내용을 따라올 수 있을지 말지 여부는 학부 전공과 석, 박사 시절 통계학을 공부한 깊이와 관계없이, 태도가 열려있냐 아니냐로 갈리는 느낌을 강하게 받는다. 말을 바꾸면 “꼰대”가 아닌지 여부가 이 수업의 성공을 좌우하는 것 같다.

어느 의사 분이 한 달 수업을 듣고 후기를 담아 보내주신 메일의 일부를 소개한다.

작년 12월부터 다양한 책도 읽고, R로 코드도 작성해보다가 실무에 적용하기 위해서는 좀 더 자세히 원리를 알아야겠다는 마음으로 학원 강의들을 뒤적뒤적이다 (이) 블로그를 발견하고 강의를 신청했었습니다. 강의를 신청하고 나서는 워낙에 프로그래밍과 통계, 수학 등 강조하시는 모든 영역에서 완전히 부족하다는 것을 알기 때문에, 예습(?)을 위해서 다양한 책을 공부하고, 수업 듣는 3월 내내 노트북을 들고 다니며 여기저기서 코드, 강의록과 씨름을 했었습니다. 프로그래머를 위한 선형대수, R을 활용한 머신러닝 2nd Edition, 데이터 과학자가 되는 핵심 기술, 머신러닝 이론 입문 등등의 책을 읽고 수업을 준비했었습니다;; 물론 모두 다 읽고도 전혀 이해가 안 되고 막막한 상태로 수업을 참여했었죠…

아직 모르는거 투성이지만, 적어도 각각 어떤 배경이 있고 무엇을 공부해야하는지 알게 되어 너무 좋았고, 실제 실무에서도 이런저런 코드를 쓰시는구나란 것을 직접 보고나니 마음이 무겁기도 하면서도 힌편으로는 어디까지 가야한다는 걸 알게되어 좋았습니다. 다른 분들이 질문하시는 것을 통해서 실제 고민하게되는 부분이 무엇일지도 배울 수 있었습니다.

마지막 시간에 많은 분들이 강의에 대한 여러 이야기를 하시는 것을 듣고 보니, 어쩌면 이 수업은 선행학습 또는 자신이 직접 부딪히고 부딪히다가 제대로 된 설명과 이해를 갈구(?)하는 분들이 들으면 좋을 것 같다는 생각이 들었습니다. 그분들은 단순한 코드, 패키지가 아니라 그걸 움직이는 원리에 대한 궁금증으로 파고들다가 이 수업을 발견하셨을 것이기 때문입니다. “인공지능이란 트렌드를 따라가기 위해 강의를 한번 들어봐야지…”라는 마음으로는 교양 강좌 형식으로 진행되는 강의를 선택해야하지 않나 싶네요. 단순한 교양이 아니라, 제대로 알기 위해서는 누군가에게는 석박사 과정에 해당하는 엄청난 공부와 연습의 시간들이 농축되어야 하는 지식이니까요…

이 분의 수강 후기를 보면, 관심을 갖고 여러 정보를 뒤지다가, 인터넷에서 쉽게 찾을 수 있는 정보는 깊이에 한계가 있다는 사실을 깨달았다는 것을 짐작할 수 있다. 그리고 필자의 수업에서 모델링이라는 것이 어떻게 돌아가는지에 대한 “직관 + 수학 백그라운드 + 적용 코드”를 만나면서 이 수업이 어떻게 구성되었고, 또 어떤 생각을 하는 사람들에게 가장 큰 도움이 되는지를 제대로 파악하신 것이 보인다. 한국 사회에서 의사라는 직군에 있는 많은 사람들이 자기가 제일 똑똑하다는 착각에 빠져 통계학을 깊이 있게 이해하지 않고 “대충대충” 데이터 사이언스를 쳐다보는 걸 자주 봤는데 (“꼰대”), 위의 후기를 써 주신 분은 자신의 지식 부족을 겸허하게 받아들이고 꼼꼼하게 준비한데다, 필자가 전달하는 메세지를 받아들일 수 있을만큼 생각의 폭이 넓은 분인 것 같다.

 

철학을 공유 못 하는 사람들

반대의 경우도 있다. 아래는 반대의 경우를 잘 보여주는 후기 메일의 발췌글이다.

데이터 사이언스에 관심만 가지고 있다가 비로소 공부해보려고 (하는) 사람들을 대상으로 하신다면 아래와 같은 수업 방식도 고려해보십시오.

  1. R예제는 어려운 1개만 자세히 설명

    1. 주석 외에 설명이 필요한 어려운 R 예제 1개만 자세히 설명
    2. 나머지는 설명 동영상 자료로 대체
  2. 부교재 소개

    1. 이론: 교육 이수후 지속 학습에 도움되는 부교재 소개

      1. (예) 책, 블로그 등 쉽게 설명한 곳, 논문 (X)
    2. R실습: 전처리 (tidyverse), 그래픽 (ggplot2) 등의 실습 사이트, 책 소개

위에서 제안하는 강의가 대표적으로 “부트 캠프” 수준의 강의다. 필자는 그런 강의는 10원도 받으면서 강의하고 싶지 않다. 좀 더 정확하게 말하면, 그런 “질 낮은” 강의를 듣고 마치 데이터 사이언스를 많이 안다고 착각하는 사람들을 혐오하고, 당연히 그런 사람을 생산해내고 싶지 않다. 알파고 이후, 일반에 caret, scikit learn, H2O, MXNet, Keras 등의 여러가지 머신러닝 패키지들이 나오면서 모델 전체를 코드로 다 쳐야되지 않아도 된 덕분에 데이터 사이언스 저변이 넓어진 것은 참 반가운 일이지만, 부작용으로 코드 몇 줄만 카피한 수준인 주제에 데이터 사이언스를 “공부”했다고 착각하는 사례가 너무 많아졌다.

저 위에 데이터 전처리용 R library인 tidyverse를 추천하는 맥락도, 데이터 전처리라는게 얼마나 깊은 통계학 이론이 있고, 모델마다 필요한 방식으로 데이터의 형태를 바꿔야한다는 사실을 이해하기 이 전에 무작정 코드만 돌리던 수준이면 충분하다는 착각을 잘 보여주지 않나 싶다. 코드 돌리는 것이 데이터 사이언스 공부라는 생각에서 벗어나지 못한 “꼰대”였기 때문에, 개념 설명에 대한 요구 사항은 하나도 없이, “초보”에게는 “코딩” 지식을 쉽게쉽게 가르쳐주는 수업이 필요하다는 선입견에 꽉 틀어잡혀있는 것이 여실히 드러난다. 코딩이라는 것이 어지간해서는 좋은 코드를 copy&paste 할 수 있는 기회가 없고, 그런 기회가 오면 “땡 잡았다”고 생각하고 어떻게 구성했는지 꼼꼼하게 훑어보며 이해한 경험, 그 전에 그 코드가 무슨 말인지 이해해야한다는 상식을 전혀 모르고 있는 사람들이나 할 수 있는 “제안”일 것이다. 그 전에 데이터 사이언스를 수학과 통계학과 머신러닝을 코드로 구현해놓은 학문이지, 개발같은 기술이 아니라는 사실을 못 깨달은채 필자의 한 달 수업을 듣고 나갔다는 뜻이기도 한 것 같다.

한 마디 덧붙이면, 필자의 수업에 ggplot2를 이용한 그래프 그리는 예제는 정말 넘쳐난다. 특히 마지막 수업 시간에는 필자가 Data Visualization으로 유명한 책 하나에서 에센스만 뽑은 예제들을 Data Visualization 제목의 800라인 코드도 제공하고, 수업에서는 안 다루지만 다시 1000라인에 가까운 추가 코드도 준다. 책을 살 필요가 없을만큼 설명을 달아서! 본인이 수업 교재들을 꼼꼼하게 안 봤다는 뜻이거나, 수업을 제대로 이해할만큼 사고방식이 열린 사람이 아닌, 말 그대로 “꼰대”였음을 보여주는 후기 메일이 아닐까 싶다.

 

수업에서 가장 듣고 싶은 후기 종류

필자가 데이터 사이언스 업무 중에 쓰는 통계학과 수학을 최대한 반영해서 강의하고, 또 욕심많은 성격상 꾸역꾸역 우겨넣어서 최대한 많은 내용을 다루려고 하다보니 수강생들 대부분이 “헉헉대며” 따라오는 걸 느낀다. 사실상 오픈 강좌가 되어버린 수학&통계학 기초 강의 같은 경우에는 가벼운 마음으로 왔다가 충격먹은 표정을 짓는 수많은 수강생들을 보면서, “꼰대”가 될지, “열린 사람”이 될지, 아니면 “수포자”가 될 지, 얼굴 표정만 보고 짐작해보는 것도 은근히 재밌는 일이다. 그렇게 “열린 사람”의 길에 도전했던 대부분의 수강생들이 3시간 8번의 수업동안 “헉헉대는” 모습을 보면 속 마음에 응원 감정이 물씬 솟아 오른다ㅋㅋㅋ

그런 감정이 드는 리뷰를 하나 보자.

한 달간의 수업 시간동안 전생(?)의 기억을 소환하느라 꽤 힘들었습니다.

학교 다닐 때 통계학이든 수학이든 의미를 파악하기보다는 암기식으로 공부했었는데,

이번 수업은 수식이 의미하는 부분과 이런 것들이 실제 데이터에서 어떤 현상으로 나타나게 되는지를 생각하게 만드네요.

이런 방식이 공부의 왕도일텐데, 그 동안 잊고 있었습니다.

쌤의 열정적인 에너지와, 같이 수업 들었던 여러분들의 에너지들을 얻게 되어 몸은 힘들지만 맘은 즐거웠던 한 달이었습니다.

첨에 이 수업 듣겠다고 했더니 주위의 반응은 “굳이 돈을 내고? 책이나 관련 자료보면 될텐데…”였습니다.

수업이 끝난 지금은 “돈 안 아까우니 들어라”고 주위에 말하고 싶네요.

더 솔직한 심정은 “아는 척 좀 더 할 수 있게” 나만 알고 다른 사람에겐 안 알려주고 싶습니다^^;

저 위에 부트캠프 수준의 강의에 돈 10원도 받고 싶지 않다는 혹평과 같은 맥락이다. 몇 푼이 되었건 돈을 받고 강의를 하려면, 그 강의를 들은 사람이 혼자서 공부하기는 (매우매우매우) 어려운 내용, 특히 다른데서는 듣기 (거의) 불가능한 내용을 강의해야한다고 생각한다. 쉽게 찾아볼 수 있는 블로그나 양산형 책 수준의 강의를 할꺼면 애시당초 강의를 개설하지도 않았을 것이고, 강의 노트를 만들면서 계속 필자의 고민을 깊게 만들었던 지점도 어떻게하면 내가 얻은 10년간의 내공을 사람들에게 전달할 수 있을까였다.

필자처럼 경제학, 통계학, 시뮬레이션, 머신러닝까지 긴 학문적 여정을 거치면서 데이터를 다뤄본 경험을 축적한 사람이 흔치 않을 것이기 때문에, 보통 사람들에게 와 닿을 수 있는 수업을 만드는 일이 참 힘들었지만, 최소한 “사기”를 치는 강의는 몰아내자는 일념하나로 꾹 참고 밀어붙이니 그래도 위와 같은 평가도 받게 되는 것 같아서 참 뿌듯하더라.

 

“꼰대”들을 내쫓는 강의

원래부터 비판적인 성격이라 남들에게 좋은 평가를 잘 안 해주는 탓에, 가끔 필자가 누군가를 추천하면 친구들이 놀란다. 단지 필자의 추천을 받았다는 이유만으로 그 사람을 보고 싶다고 하는 경우도 있을 정도다. 그러나 그런 엄밀한 잣대를 들이대지 않더라도 현재 한국의 대다수 “데이터 사이언스”, “머신러닝” 등등의 타이틀을 달고 있는 강의들의 수준은 처참할 정도다. 지난 몇 달간 저런 강의가 왜 꾸준히 소비되는지 도무지 이해할 수가 없었다. 5시간 강의하는데 “조교”라는 사람들이 코드 제대로 쳤는지 봐주는거에만 4시간을 쓰는 강의, 그 코드가 인터넷에서 쉽게 긁어올 수 있는 코드라면 시간 낭비라는게 피부로 안 느껴지나?

Random data가 아닌 경우에만 머신러닝 테크닉들이 유효성을 가진다는 필자의 체계적인 논증을 제대로 이해하지 못한채, 잘 모르겠으니 그냥 Random이 아닌 데이터 예시만 가르쳐달라고하는 사람들을 보면서, 저런 사람들이 데이터 사이언스 하겠다고 달려드니 그런 부트캠프 수준의 수업들에 꾸준히 사람들이 몰려드는구나는 생각도 하게 된다. 돈 벌이가 목적이었다면, 필자 역시도 그런 수업을 하면서 잘 모르는 사람들을 “현혹”시키는데 몰두했을 것 같은데, 자신의 잣대를 넘지 못하는 지식을 남에게 전달하면서 돈을 받는 일은 양심상 도저히 하질 못하겠더라. 수백만원 짜리 강의를 하고 있는 그들에게 양심이 있는지, 회사 돈이나 국민의 세금으로 그 수업을 들으시는 분들은 양심이 있는 사람들인지 묻고 싶다. 그런 강의가 넘처나니 “그냥 책이나 자료보고 공부하면 될텐데…”라는 말이 나오는 거겠지.

수학&통계학 수업에 가끔은 수학 공부를 거의 안 했던게 틀림없는, 여러 IT학원들에 속아서 기초 전산 수업들이 데이터 사이언스 준비과정인 줄 알았던 경영학과 출신이나 코딩 only 개발자 후보들을 보게 된다. 반쯤 “꼰대”가 되어 있는 이들이 가지는 착각들이

  • “4-5시간 정도 수학 공부만 하고나면 데이터 사이언스 하는데 문제 없다”
  • “데이터 사이언스 본 강의는 코딩이고, 2회짜리 수업만 수학이 있을 것이다”

는 생각이다. 글쎄? 본 강의는 코딩마저 수학이랑 통계학이다ㅋㅋ 단지 직관과 개념 이해가 복잡한 수식을 대체할 뿐이다.

필자가 2회짜리 수학&통계학 강의를 개설한 유일한 이유는 데이터 사이언스 본 강의 중에 넋나간 표정의 수강생들 얼굴을 보고 있는게 너무 괴로워서였다. “꼰대”에서 벗어나지 못한 그들의 표정을 보고 있으면 서서 강의하는데 피로도가 2배가 되니까. 그들도 돈 버릴 필요없고, 필자도 그들에게 시간 쓸 필요없으니까.

 

나가며

수업 끝나고 “꼰대”들에게 짧게 상담할 기회가 오면, 그냥 포기해라고 짧은 조언을 해 준다. 수업을 제대로 듣는 사람들은 느끼겠지만 데이터 사이언티스트의 언어는 한국어나 영어가 아니라, R이나 Python이 아니라, 수학과 통계학이다. 당연히 수업도 그런 “언어”로 구성되어 있다. 필자가 공부하던 수준으로 진행하면 너무 힘들 것 같아서 수준을 낮춰 학부 수학을 요리조리 응용해서 수업 구석구석에 끼워넣었는데, 그 학부 수학을 다 까먹었던 30대 직장인이 다시 기억해내는 것도 “전생의 기억”을 되살리는 느낌이라고 하는 판국이다. 애시당초 그걸 배우지 않은 사람이, 거기다 사고의 틀 마저 “꼰대”화 되어버린 사람이 이 도전을 하겠다는건 필자의 오랜 경험상 무모하다고 밖에 할 수 없을 것 같다.

(물론 “꼰대”가 아니라면 다른 이야기일 수 있다. 그런 경영학과 출신들, 개발자 출신들도 은근히 많이 수업을 거쳐갔다.)

사업 팽창 때문에 앞으로 얼마나 더 길게 강의를 할 시간이 남아있을지 모르지만, 필자가 시간이 부족해지기 전에 시장에 선순환 구조가 형성되어서 “꼰대”들이나 “꼰대”를 기르는 IT학원들이 퇴출되었으면 좋겠다. 그리고 실력있는 많은 사람들이 그런 IT학원들의 “사기”에 속아서 겁 먹고 이 시장에 진입하는 걸 두려워하지 말고, 좀 쭉쭉 치고들어와서 부트캠프형 강의들이 자리를 못 붙이는 시절이 좀 빨리 왔으면 좋겠다.


강의 철학에 깊게 공감하는 후기를 보내주신 최형수님, 이정현님, 장영수님, 김수진님께 감사드립니다.

 

이전 글: 작정하고 쓰는 머신러닝 강의 비판

후속 글: 작정하고 쓰는 머신러닝 강의 비판 (2)

X