(여러 전공에서) ‘수학’, ‘통계학’을 쏙쏙 뽑아 배우는 게 DS 공부법?
다음은 필자가 올 초 어떤 학생으로부터 받은 메일이다. 그냥 조금 딱하다는 생각이 들었기에 공유한다.
안녕하세요. 저는 제가 고등학생이던 파비 블로그에 댓글에 열려있던 때부터 최소 일주일에 한 번씩 대표님의 블로그에 들어가 글을 보고 있는 20학번 대학생입니다. 대표님의 글을 고등학교의 다소 늦은 시기에 접한 탓에 경영학과로 대학에 입학했으나, 대학에 들어와 수학과와 통계학과를 복수전공하고 있습니다. 제가 재학 중인 학교는 전과가 불가하여 불가피하게 3전공을 하고 있습니다. 제가 이렇게 이메일을 드리는 이유는 기성의 학부에서도 대표님께서 중시하시는 지식을 쌓는 게 가능하다는 하나의 사례가 되고자 함과 함께 그것을 가능케 해주신 대표님께 감사를 표하고자 함입니다.
저는 대표님의 블로그 글과 SIAI 웹사이트에 있는 과목들을 참고하여 학교에서 수강할 과목을 선택하였습니다. 예를 들어 산업공학과 격인 시스템경영공학과에서 LP, NLP, IP 등을 다루는 OR1과 확률적 최적화 및 확률과정론을 배우는 OR2를 수강하였고, 다음 학기에는 대표님께서 중시하시는 동적 최적화(Dynamic Optmization)을 다루는 동태경제학을 수강할 예정입니다. 통계학과에서는 회귀분석입문에 있는 여러 증명들과 PCA, LASSO 등을 다루는 심화회귀분석을 들었고 앞으로도 다양한 과목들을 들을 것입니다. 수학과에서는 해석학, 위상수학, 응용수학(PDE, SDE를 다룸) 등을 듣기도 했습니다.
이미 들은 수업 중에는 계량경제학 수업이 특히 인상적이었는데, 교수님께서 예일에서 박사를 하셔서 그런지는 몰라도 교수님의 Problem Set들과 Exam들이 대표님께서 블로그에 올려주신 입학시험이나 동아리 지원의 조건으로 올려주신 문제들과 “형식”이 매우 유사했습니다. 물론, 통계의 기초 중에 기초인 계량경제학이다 보니 다루는 개념이나 난(이)도는 대표님의 문제들과는 비할 바가 못 됐습니다. 이 수업을 들으며 대표님께서 지향하시는 방향이 옳다는 것도 깨닫게 되었습니다.
위에서 서술하였듯, 국내 학부에서도 어떤 수업을 들어야 하는지만 안다면 각 학과의 수업 계획서를 뒤져 보면 수준 높은 수업을 제공받을 수 있는 것 같습니다. 그러나, 학교에서 일일이 어떤 과목이 통계 분석 능력에 도움이 되는지 안내해주지 않기 때문에 혼자의 힘으로 그것을 찾아야 하는 상황입니다. 저도 대표님의 블로그를 읽고 학교의 수업 계획서 포털을 뒤져 보며 겨우 수강할 수업을 찾았습니다. 학교에서 데이터사이언스학과를 만들긴 했으나 대표님께서 비판하시는 전형적인 유형의 프로그램을 제공하고 있습니다. 확실치는 않으나 대표님께서 저희 학교에 대한 블로그 글을 쓰신 것 같기도 합니다 (“제보) 대학교의 어설픈 인공지능/데이터사이언스교육이 학생들을 망치고 있습니다“). 상황이 이런 만큼 대표님께서 데이터 사이언스 공부의 올바른 길에 대한 글을 써주시는 것이 제게는 정말 큰 도움이 되었습니다. 대단히 감사드립니다.
학부에서 꼭 배워야 하는 지식을 다루는 수업이 개설되지 않는 이유 중 하나로는 학부생들이 그런 수업을 기피하고 오로지 학점 받기 편한 수업만을 선택하려는 경향도 한몫을 한다고 생각합니다. 당장 제가 이번 학기에 들을 OR2 수업은 소수만이 수강하였습니다. 뿐만 아니라, 교내 커뮤니티인 에브리타임과 같은 곳에서 강의 평가 내용을 보면 일단 학점을 잘 주는 교수님의 최고 평점을 기록하고 명강이라 불릴만한 과목들은 그 다음에 위치하고 있습니다. 그렇다보니 교수님들께서도 “고급”이라고도 할 수 없는, 학부에서는 “필요한” 지식들을 가르치는 수업조차도 많이 개설하지 못하게 되고, 그에 따라 필요한 지식이 없는 상태로 졸업하는 학생들이 많이 배출되는 것 같습니다. 물론, 이와 별개로 저희 학교가 데이터사이언스학과를 잘못된 방향으로 만든 것이 일차적인 문제인 것은 분명합니다.
이렇게 어려운 상황에서 제가 지적 욕망을 충족할 수 있었던 데에는, 대표님의 글이 제가 고등학생일 때부터 공부와 진로의 나침반이 되어준 덕분이라고 생각합니다. 다시 한번 감사의 뜻을 표하고 싶습니다. 앞으로도 대표님의 글을 참고하며, 제 목표인 미국 통계 대학원에 진학할 수 있는, 국내 학부 출신임에도 외국 학부 출신에 비해 모자람이 없는 졸업생이 되기 위해 공부에 정진하겠습니다.
이렇게 알아서 자기 길을 찾아가는 학생이 나와서 기쁘냐고? 그래서 파비 블로그에 글을 열심히 쓰고, SIAI 교육을 계속하는 거냐고?
우선 필자는 저 학생의 엄청난 의지에 큰 박수를 보내고 싶다.
하지만 안타깝게도, 저 학생이 저렇게 공부를 한다면 SIAI에서 치는 그 어떤 시험에서도 40점대를 벗어나지 못할 것이다. 아무리 열심히 공부한다 해도 마찬가지이다. 사실 40점대도 그나마 예상 가능한 최고점이지, 시험 문제에 손도 못 댈 확률이 상당히 높다. 정말이다, 손에 장을 지진다든지 1년 연봉을 건다든지, 아무튼 많은 것을 걸 수 있다.
그러니까 SIAI 수업을 들어야 한다는 뜻이냐고, 결국에는 돈 벌려고 이런 소리 하는 거냐고?
음… 오해가 생길지도 모르지만, 위험을 무릅쓰고 장황한 설명을 해 보겠다.
(여러 전공에서) ‘수학’, ‘통계학’을 쏙쏙 뽑아 배우면 된다…? 그래 봐야 안 된다
저 학생은 (여러 전공에서) ‘수학’, ‘통계학’을 쏙쏙 뽑아 배우면 된다는 완전히 잘못된 생각에 사로잡혀 있기 때문이다. 뭐 ‘코딩’만 잘하면 된다는, ‘공돌이’의 문제가 아니란 건 그나마 다행이다.
이는 필자의 학부 동기 중 경제학 박사의 길을 선택했던 이들 대부분이 지니고 있었던 문제, 그리고 파비 클래스의 강의 소주제를 보고 그것만 다른 교과서에서 배우면 굳이 파비 클래스에 갈 필요가 없다고 생각했던 학생들의 문제와도 일치한다. 통일된 교과서가 있고, 그 교과서만 열심히 잘 풀면 되는 전공들, 대부분 공학 쪽일 텐데, 그 분야 전공자들의 공통적인 특징이기도 하다.
실상은 이렇다.
각각의 전공은 자신만의 수학 방법론을 갖는다. 따라서 학생들은 자신의 전공이 갖는 특색에 맞는 수학 방법론을 배우게 된다.
저렇게 여러 전공에서 ‘주워 담기’를 하면 수학 방법론을 많이 배울 수야 있겠지만, 그 방법론이 DS에 쓰이는 방법론일 확률은 매우 낮다. 교수들은 자기 전공의 방식대로 가르칠 것이기 때문이다. 심지어 그 전공의 지식이 없는 상태에서 고학년 수업을 듣는 것이기에 수박 겉핥기식 공부가 될 확률은 더더욱 높다.
필자는 S대 경제학부의 ‘쌍용’이라고 불렸던 박준용 교수님께서 미국의 라이스 대학으로 탈출(?)하시기 직전 고급 계량 수업에서 하신 말씀을 아직도 생생히 기억하고 있다.
그냥 우리 과 대학원 계량, 계량연습까지 쭉 다 들으면 필요한 거 다 배우는데 굳이 우리랑 쓰는 방식이 완전히 다른 수학과, 통계학과, 심지어 공대는 왜 찾아가나?
여기서 중요한 건, 박준용 교수님의 학부 전공은 조선해양공학이다. 교수님 당신이 타전공 출신이시니 이런 부분을 더 명확하게 보셨던 것 같다.
필자 역시 학부 시절에 선형대수학과 해석학을 들었지만, 필자가 해석학을 인생의 ‘도구’로 쓸 수 있게 된 시점은 논문을 쓰면서 필요한 증명을 만들어낸 순간이었다.
박사 때 수학과의 확률미적분학(Stochastic Calculus) 수업을 들으면서도 같은 경험을 했다. 확률미적분학은 필자의 박사 시절 전공에서 쓰는 핵심 수학 중 하나인데, 당시 필자는 이를 다루는 전공 수업이 부족하다고 느껴 수학과 수업에 들어갔다. 그렇지만 그 수업에서는 이상한(?) 증명만을 엄청나게 많이 하게 되었다. 통계학과의 확률과정(Stochastic process) 수업도 마찬가지였다. 딱 교과서의 증명을 이해하는 정도로만 도움이 된 것이다. (아마 이것이 많은 한국인이 수학, 통계학을 ‘증명’하는, 이른바 책 속의 지식일 뿐, 현실과는 동떨어진 지식으로 이해하는 이유일 것이다.)
수학을 배울 땐 지식을 배우는 게 아니라, 각 전공의 주제에 맞게 수학을 쓰는 ‘방법’을, 그리고 그 방법 뒤에 숨은 ‘직관’을 배워야 한다.
방법 뒤에 숨은 ‘직관’이 없으면 그냥 책 속의 지식, 동양인은 교육받은 적이 없어 아예 몰라
저 학생이 엄청난 천재라면 그렇게 배운 수학 방법론을 알아서 묶을 수 있겠지만, 사실 천재에게는 파비 블로그조차도 필요가 없었을 것이다. 그런 천재는 필자도 살면서 몇 명밖에 못 봤는데, 그냥 자기 혼자서 여러 지식을 뚝딱뚝딱 꿰어 맞춰버리는, 일반인의 범주를 한참 뛰어난 이들이었다.
한국인 맞춤형 예시로는 ‘한국판 뉴턴’ 이야기가 있다. 공부라고는 안 하고 잠만 자던 고등학생이 선생님께 ‘그래프 아래 면적을 계산해라’라는 말 한마디만 듣고는 (공식은 모르니까) 칠판을 꽉 채워서 적분을 증명하고 공식을 도출했다는, 뭐 그런 이야기이다.
그런데 사실 서양식 교육을 받은 이들은 수학의 응용 방법 뒤에 숨은 ‘직관’을, 엄청난 천재가 아니어도 자기 힘으로 익혀서 새로운 것을 만들어내곤 하던데, 동양식 교육을 받은 사람 중에서는 이런 경우가 거의 없었다. ‘한국판 뉴턴’ 같은 경우가 아니라면 말이다. 수학과를 완전히 평정하고 초 명문대에 박사 유학을 갔던 필자의 수많은 친구가 논문을 못 쓰고 허덕거린 것도 정확히 이러한 문제 때문이었다.
그 이유가 무엇인지는 필자의 오랜 궁금증이었는데, 필자가 내린 결론은 초·중·고 교육에서 그런 훈련을 받은 적이 없었기 때문이라는 것이다. ‘점수 잘 받기 교육’에 얽매인 사교육 시장과 오직 결과만 보고 판단하는 사회 구조 역시 무시할 수 없는 영향을 주었을 것이다.
필자는 저 학생이 더 심각한 상황에 빠지기 전, 어떤 방식으로든 주의하라고 경고해야겠다는 생각에 비난받을 각오를 하고 이 글을 쓴다. 특히 필자를 더욱 불안하게 하는 건 필자 ‘덕분에’라는 대목이다.
F2021 (첫 기수)로 들어온 MBA AI/BigData 학생 하나가 이번 졸업 논문에 자기 회사의 데이터 중 특정한 사이클(Cycle)이 있는 변수 하나에서 직각요인(Orthogonal factor)를 뽑아내려고 이미지 인식에서 반복 패턴을 찾아낼 때와 사이클이 존재하는 데이터를 재처리하는 계산의 효율을 높일 때 쓰는 (고속) 푸리에 변환((Fast) Fourier Transform)을 이용했던데, 필자는 배운 내용을 이렇게 자신의 현실에 적합하게, ‘기발하게’ 바꿔쓰는 걸 보고 극찬을 했었다. 어떻게 더 가다듬을 수 있을지는 모르겠지만 A저널까지는 아니어도 최소한 B저널 후보 수준은 된다.
AI/BigData 과정에서 살아남기 위해 발버둥을 쳐야 했던 ‘비전공’ 출신이 이렇게 ‘사고력’+’직관’+’응용력’이 넘치는 논문을 갖고 왔다. 논문에서 수학/통계학 도구를 이렇게 이용할 줄 안다고 자신이 배운 것을 ‘자랑’할 수 있다는 것, 이것이 바로 제대로 교육을 받았다는 증거이다.
(나도 FFT 안다, 고등학교 때 배웠다, FFT를 아는 게 뭐가 대단한 거냐 따위의 말을 하던. 모 과학고등학교를 졸업하고 K대 공대에 갔던 중학교 동기가 떠오른다. 그러나 ‘지식을 안다’라는 건 대단한 게 아니다. 그 수학 지식을 딱 그 장면에서 자신이 원하는 방식으로 데이터를 변형하는 데 쓸 수 있었다는 게 ‘엄청난’ 것이다.
그 친구는 절대 이 학생처럼 ‘기발하게’ 데이터 재처리에 FFT를 쓰진 못할 것이다. 아마 전공 수업에서 FFT를 쓰는 지식은 정말 잘 배웠을 것이다, 머리는 좋으니까. 그렇지만 새로운 데이터와 특정한 상황에 FFT를 쓰면 이렇게 기발하게 문제를 풀 수 있다는 건 절대 생각하지 못했을 것이다. 창의성 제로인, ‘만능 학습 로봇’ 그 자체이기 때문이다.
필자가 한 일은 수업 중에 푸리에라는 데이터 처리 방식을 패턴형 이미지 인식에 적용할 수 있다는 ‘사고의 전환’을 던진 것밖에 없다. 기껏해야 이렇게 모든 사이클 기반 패턴형 데이터를 홀·짝으로 양분할 수 있다는 설명을 한 정도였는데, 저 학생은 고작 1년 교육으로 이런 성과를 낸 것이다. 아마 더 일찍, 초등학교 때부터 서양식 교육을 받았다면 지금쯤 사회 지도층 인사가 되었을지도 모른다. 그만큼 저 학생의 직관적 역량은 대단하다.
실제로 이런 서양식 교육을 받은 사람 몇몇은 필자의 설명을 듣자마자 놀라워하며 ‘교육이 좀 됐다’라는 반응을 보였다. 아마 저 학생이 나중에 논문을 발표할 때 저 대목에서 방청객들이 어떤 반응을 보이는지를 보면 서양식과 ‘한국식’의 차이가 더 확연히 드러날 것이다.)
‘기발하게’ 응용하는 ‘직관’이 핵심, 수학·통계학은 그 핵심을 위한 도구일 뿐
필자에게 메일을 보낸 학생처럼 수학/통계학을 공부하고 있다는 것 자체를 자랑하면 안 된다. 박사 지원 때 쓰는 SOP에 무엇을 공부했다는 게 아니라 어떤 연구 주제의 문제를 풀려고 수학과 통계학을 어떤 식으로 ‘최대한 기발하게’ 활용하고 있음을 강조하라는 말이 있는데, 이처럼 ‘사고력’으로 ‘현실’의 ‘문제해결’이 가능하다는 것을 자랑해야 한다. 사실 수학은 어느 수준까지만 훈련받고 나면 필요할 때마다 찾아서 배우면 되는 것이다. 이것은 필자뿐 아니라 필자가 감히 그림자도 밟지 못할 만큼 존경하는 교수님 수십 분이 하신 이야기이기도 하다. 박사 자격시험(Qualifying Exam)만 통과하고 논문 아이디어 하나 못 가지고 오는, 전형적인 동아시아 학생처럼 자랑하는 모습이 정말 걱정된다.
SIAI의 모든 기출문제는 그렇게 ‘기발하게’ 데이터를 변형해서 풀지 못했던 문제를 풀어내는 데 초점을 맞추고 있다. 이러한 기발한 변형이 ‘현실 적용’, 나아가 ‘응용’을 위한 첫걸음이라는 사실을 알기 때문이다. 단순히 수학 지식만을 전달하려면 블로그 몇 군데만 참고하면 되지만, 그것은 ‘현실’과 동떨어진 ‘수학’에 불과할 것이다. 필자가 저 학생이 받을 수 있는 최대 점수를 40점대로 본 건 바로 이러한 교육을 전혀 받지 못했으리라 생각했기 때문이다.
필자가 가르친 학생 중에는 예시로 줬던 코드가 돌아가지 않는다는 이유로 학교를 그만둔 학생이 꽤 있다. 짐작건대 처음부터 잘못 뽑은 ‘코딩 마니아 공돌이’거나 그와 비슷한 학생이었겠지만, 도구가 수학이 아닌 코딩이라는 점만 다르지 이러한 학생이나 수학 방법론을 많이 안다고 자랑하는 학생이나 현실 문제 해결력이 0점인 건 똑같다. 참고로 필자 회사의 CTO님은 이 이야기를 듣고 ‘컴퓨터 세팅까지 고쳐 줘야 하나, 디버깅은 스스로 해야지’라고 무시하고는 다시 일에 집중하셨다. 다시 말하자면 수학/통계학 도구를 어떻게 써야 하는지를 직관적으로 이해하지 못하면 상황은 달라지지 않기 때문이다.
필자는 DS를 공부하는 ‘공돌이’들에게 ‘다른 데에서는 된다고 하는데 가지고 와 보면 돌아가지 않는다’는 불평을 수도 없이 많이 들었는데, 수학이나 코드나 ‘맥락(Context)’에 맞는 ‘이해’가 없다면 책 속, 화면 속의 지식에 불과하다.
학부 시절 필자가 만난 교수님들은 박사 유학 지원자에게 항상 ‘수학 학점이 좋다’가 ‘현실과 수학 도구의 직관적인 퍼즐을 맞춰 엄청난 논문을 쓴다’로 이어진다는 오해에서 벗어나라고 충고하셨다. ‘수학, 통계학 (및 코딩)’이 ‘DS 지식’과 같다는 착각도 굉장히 위험해 보인다. 진정한 핵심은 ‘수학, 통계학 (및 코딩)’을 ‘활용하는 직관’이기 때문이다.
필자는 SIAI 학생들이 수학이나 통계학은 그냥 빨리 들어와서 ‘맞으면서’ 배우면 되고, SIAI 교육은 ‘논리’, ‘직관’, ‘응용력’ 같은 걸 배울 수 있어서, ‘어떻게 쓰는지 알게 되어서’ 좋다고 표현하는 것을 보며 교육에 성공했다는 생각을 한다. 딱 저 표현을 보면 가슴 속에서 만족감이 피어난다. 특히 단순한 시험 답안지가 아니라 논문에 그런 ‘직관’과 ‘응용력’이 보이면 정말 말 그대로 만족감의 쓰나미가 밀려온다.
‘직관’ = 주어진 현실에 맞출 수 있는 ‘응용력’
이것은 단순히 코드를 베껴서 돌려보면 알게 되는 것이 아니라, 주어진 현실에 맞게 내 모델의 구조를 뜯어고치는 능력이다. 자동차 엔진 같은 기계도 주먹구구식으로 돌아가지 않는데, DS가 다루는 데이터는 기계가 아니라 ‘인간의 (무작위 요소가 뒤섞인) 결과물’이다. 수학, 통계학, 코딩 없이 직관을 얻어가는 Global MBA 프로그램을 만든 것도 같은 맥락에서였다. ‘직관’과 ‘응용력’은 SIAI의 정수이기도 하고, 현실에 DS를 적용할 때 가장 필수적인 요소이기 때문이다.
만약 저 학생이 정말 유학을 가게 된다면 꼭 위 사항을 미리 알고, 시야가 열린 상태에서 서양식 교육을 받아야 한다. 그래야 진정한 자기 지식을 만들 수 있을 것이다. 꼭 원하는 꿈을 이루길 바란다.
한 가지 더 이야기하자면 필자는 비슷한 사고 끝에 “굳이 SIAI(구 파비클래스) 갈 것 있나, 그냥 가르치는 주제 목록만 보고 책 사서 혼자 공부하면 되지”라고 하는 분들을 자주 봤다. (‘무슨 책을 보면 되나?’라는 질문을 정말 많이 받는데, 이 분야가 교과서 몇 권으로 끝나는 간단한 학문이 아니다. 교과서에 그런 직관을 넣는 것도 보통 어려운 일이 아니다.) 필자가 책정한 가격이 비싸다고 생각하는 것(사실 필자는 손해를 보고 있다.), 그래서 혼자 힘으로 알아서 찾아서 해결하겠다는 생각 자체는 충분히 이해가 된다. 돈이 아깝다고 생각한다면 굳이 필자를 찾아올 필요는 없지만, 그렇게 수학 개념을 몇 개 더 알게 됐다고 만세 부르고 착각에 빠지는 일은 없었으면 좋겠다. 껍데기만 보고 베끼면 날지 못하는 비행기 모형만 만들 수 있다. (물론 코드만 베껴놓고 공부를 끝냈다고 주장하는 코딩 마니아보다는 백 배 낫다.)
가격이 비싸다는 이들에게 필자가 보여줄 수 있는 건 적자투성이의 SIAI 재무제표뿐이다. 필자가 공부했던 대학과 전공이 입학 기준을 까다롭게 정해 두고 한국 대학의 몇 배에 이르는 학비를 책정해 둔 이유가 무엇이라고 생각하나? 그 수준의 지식을 가르칠 수 있는 교수와 그 지식을 습득할 수 있는 학생을 이어주어야 하기 때문이다. 학교를 직접 운영해보니 더욱 이해가 된다. 필자가 책정한 학비 역시 필자의 눈높이에 맞는 교수의 급여로는 턱없이 부족하다. 필자가 거의 독박을 쓰고 있음에도 이 상태라면 교수와 교직원의 급여를 다 챙겨야 하는 다른 학교들의 사정은 어떨까?
그러니 한국의 대학이 정부 지원금에 그렇게 목을 매는 것이다.