데이터 사이언스 스터디 교재 추천 + alpha

1240

파비클래스 수강생들이 스터디 그룹을 만든다는 이야기를 듣고, 어떤 방식으로건 지원해주려는 중이다.

그 중 한 학생이 해석개론 듣고 그 개념을 잘 흡수하는 것 같길래, 너무 어릴 때부터 계산통계학으로 빠지지말고 좀 더 수리통계학 훈련을 더 한 다음에 계산통계학을 보면 이해도가 훨씬 더 깊어질꺼라고, 너무 스터디에 연연하지 말라는 충고 아닌 충고를 한 적이 있다.

수강생 분들이 파비클래스 수업 교재로 쓰지 않는 ESL을 스터디 교재로 삼고 싶어하시길래, ISLR – ESL 같은 계산통계학 중심의 교재보다 차라리 수리통계학을 활용하는 예제들을 이용해서 수리통계학을 쓰는 직관을 더 기르라고 충고했었는데, 그 중 산업공학 석사학위 중인 한 분이 ESL을 왜 추천하지 않느냐는 질문을 담은 꽤나 장문의 이메일을 보내주셨다.

개인정보가 노출될만한 부분을 제외하고 일부를 공유한다.


지금부터 제가 여쭤보는 건, 스터디도 스터디지만 제 석사생활에 있어서 고민이 되는 부분이 있어 이런 부분들을 조금 종합적으로(?) 여쭤보는 것이니 이렇게 이해부탁드립니다 ^^;

ESL을 반대하시는 이유가 크게 두가지라고 전해 들었습니다.

“실무 이상의 난이도(수학적으로 매우 어려움) + 직관보단 수학에 집중한 책”

이 부분에서 궁금한게 있는데, 그냥 주저리 주저리 쓰면 너무 장황해져 정리가 잘 안될 거 같아, 제가 정확히 궁금한 포인트를 넘버링해서 조언을 구하고 싶습니다.

1. 대표님께서 파비블로그에 게시하신 “Data Scientist 면접 질문들” 본문에서 이런 면접 질문들에 대비해 수학적 지식을 쌓고 싶다면 ESL을 공부하라고 추천해주셨는데, 스터디에서 ‘어렵다’ 는 이유로 반대하시는 이유가 개인적으론 조금 의아했습니다.
왜냐하면 매우 어려워도 결국은 공부해야 하는 책이 아닌가 해서 입니다.(좋은 Data Scientist가 되려면요)

전 석사를 결심하며 대표님의 조언대로 수학, 통계학쪽 지식을 정말 탄탄히 쌓아 올릴 각오였는데, ESL이 실무 이상의 난이도 일 수 있다라고 말씀하시면서 반대하셔서, 이게 스터디에 학부생분들도 많아 스터디의 ‘주교재’ 로써의 사용을 반대하시는 건지, 아니면 정말 이 책 자체가 너무 어려워서 학부생이든 석사생이든 ESL 공부를 그닥 추천하지 않으시는 건지 궁금합니다.

2. ESL 은 직관보단 수학에 훨씬 더 집중한 책이라고 말씀하셨다고 전해 들었습니다.
그렇다면 석사, 박사 과정을 진행하면서 직관을 기르려면 그에 맞는 교재가 있는지, 아니면 대표님께서 항상 강조하시는 그런 직관은 한 두권의 교재로 공부하면서 얻어지는 것이 아니라, 스스로 수 없이 고민하고 전처리 및 모델링을 해보면서 경험적으로 얻어지는 부분인지 궁금합니다.
(그리고 혹시 후자라면, 어차피 그런 직관은 책으로 얻어지는 것이 아니라면 ESL을 직관적인 내용이 부족하다는 이유로 비추하시는 이유가 궁금합니다 ^^;)

이렇게 질문드리는 이유는, 스터디도 스터디지만, 그걸 차치하고서라도, 제가 원래 석사를 들어오면서 ESL로 공부하려고 했었는데, 스터디 교재로 사용하시는 걸 그닥 추천하지 않으신다고 듣고, 혹시 제가 석사 때 진행하려던 공부의 방향성이 잘못된 건가 하는 의문이 들어 이렇게 조언을 구합니다.

대표님께서 말씀하셨던 것 중에 제가 가장 기억에 남는 건, 수학 식 한줄을 써놓고도 정말 그 의미를 이해하고 직관을 기르는 식의 공부를 하셨다는 말씀입니다.

그 말씀을 듣고 저도 그런 공부를 하고 싶었고, 그래서 수학적 깊이가 있는 ESL로 그 시작을 하고 싶었습니다. 하지만 정말 ‘수학적으로 너무 어렵고 직관보단 수학에 집중한 책’ 이라는 이유로 추천을 하지 않으신다면, 혹시 앞으로의 석사, 박사 과정에서 어떤 식의 공부가 좋을지 고민이 듭니다.


제가 ESL을 추천하면서도 추천하지 않는 모순적인 태도를 보이는 가장 큰 이유는, 사실 통계학만 잘 쌓아놓으면 ISLR – ESL 계열의 계산통계학 (이하 계통)은 그렇게 어려운 지식이 아니기 때문입니다. 계통에 대한 제 태도가 계통 전공자들 입장에서 불편할 수 있다는 점은 공감하겠습니다만, 저도 경제학에서 수학적으로 rigorous함을 강조하는 (at least 흉내내는) 공부를 하던 사람이라 그런지 계통은 피상적인 지식, 깊이가 없는 지식이라는 느낌이 강합니다.

결국 계통의 모든 계산법들이 수통에 그 바탕을 두고 있고, 고급 수통을 공부했으면 했을수록 계통을 이해하는 깊이도 더 깊어지더라는 경험을 놓고 볼 때, 어린 학생들이 당장 눈 앞의 Neural Network 모델 하나를 더 보는 것보다 수통을 더 공부했으면 하는 마음이 큽니다.

스터디에 간다는 한 학생 분이 꽤나 수통 라인으로 클 가능성이 있어보이는 학생이라 더더욱 그런 코멘트를 했었는데, 스터디 목적이 ESL 이후에 더 이상 통계학 깊이에 대한 도전을 하지 않겠다면 충분히 괜찮은 도전이라고 생각합니다만, ESL을 넘어서 진짜 통계학적 깊이, 사고훈련의 깊이를 키우고 싶다면 되려 수통 내공을 더 쌓으라고 권하고 싶습니다.

덧붙여서 지극히 제 관점으로 볼 때, ESL은 쓸데없이 수학적으로 어려운 부분들이 많습니다. 파비 클래스에서 제가 어지간하면 고급 수학을 다 학부 저학년 수학으로 바꿔서 설명했던 기억이 있을 겁니다. 그런 쉬운 풀이를 별로 찾아보기 어려운, 전형적인 대학원 교과서인데, 이게 통계학적 깊이, 사고훈련의 깊이에 도움이 될지 잘 모르겠네요.

Insight라고 하는건, 적어도 저는 교과서에서 지식을 더 얻으며 배우기보다 교수님과 동료 학생들의 사고 체계가 담긴 대화를 듣고, 때로는 문제를 풀어보고 동료가 풀어놓은 풀이를 보고, 좋은 풀이에 감탄하고, 나중에는 남의 논문을 읽고 흉내내며 내 논문을 써보며, 그렇게 뛰어난 주변인의 사고 훈련을 흉내내며 배웠습니다.

시험문제 하나하나가 하나 이상의 논문을 정리 요약한 것이라는걸 깨달았던 석사 1학년 끝무렵부터, 좋은 논문이란 어렵지 않은 수학으로 그런 Insight를 이용해 내 논리를 잘 정리한 논문이라고 생각하게 됐습니다. 좋은 논문을 또 다른 뛰어난 교수님이 시험 문제로 만들기 위해 고민까지 하셨으니, 잘 만든 시험 문제로 내 지식을 탄탄하게 하고, Insight까지 길러주는 정말 좋은 교재로 활용할 수 있는 능력과 경험을 얻은거죠.

ESL은 대학원 수업을 진행한다면 anchor로 삼기에 매우 좋은 교재라고 생각합니다. 물론 몇몇 보조 교재가 필요하겠죠. ISLR 같은 기초교재에서 다루지 않는 고급 모델들, 특히 고급 수학을 쓰는 모델들에 대한 논의도 잘 정리되어 있습니다. 학습자에게, 특히 고급 학습자에게 좋은 교재라는 사실을 부인할 생각은 전혀 없습니다.

그렇지만 제가 ISLR이나 ESL을 파비클래스 그 어떤 수업에서도 교재나 부교재로 삼지 않는 것과 같이, 정말 함께 공부하는 동료들과 모여 서로의 지식이 부딪히며 조금씩 성장하는 경험을 하고 싶다면, 문제 하나를 놓고 같이 풀어보는 경험, 다른 동료가 나와 다른 방식으로 같은 도전을 해결한 아이디어를 공유하는게 더 지식을 탄탄하게 하고 Insight를 얻는데 도움이 되리라 생각합니다. 적어도 저는 그렇게 실력이 늘었습니다.

위의 제 생각을 따르실 필요도 없고, 설령 공감하신다고해도 이번 스터디에서 굳이 실현하시려고 노력할 필요도 없습니다.

결정은 XX님 몫입니다.

1,2번 질문에 대한 답이 되었으면 좋겠습니다.


 

한 줄 요약하면, 스터디로 실력을 키우려면 교과서 대신 Problem set들로 공부하는게 더 나을 것 같다 는 추천이다.

단, Problem set들의 퀄리티가 좋아야하고, 갑론을박 할 수 있는 동료들의 퀄리티도 좋아야한다.

딱히 수리통계학 교과서로 다시 공부하고 그러는게 아니라, 문제 풀어보다보면 자기가 어디를 잘 모르는지, 그래서 무슨 책의 어디를 봐야하는지를 계속 뒤적거리게 될 것이다. 문제 풀이가 사실상 논문 쓴 사람의 의도를 찾는거고, 논문이라는게 사실상 업무 하기위한 고민이라고 생각해보면, 또 평소에 모든 지식을 다 외운 상태에서 일을 하는게 아니라 어디에서 정보를 찾아야하는지, 봤을 때 바로 이해할 수 있는 훈련도가 있는지 여부가 관건이라는 점을 생각해보면, 교과서를 먼저 펼 게 아니라, 문제를 먼저보고 모르는 부분을 교과서로 돌아가는게 맞지 않을까?

써 놓고보니 파비클래스 출신들에게 Problem set + Solution을 주기적으로 제공해드리면 어떨까 싶다. Problem set이라는게 무슨 Kaggle competition에 나오는게 아니라, 모델링을 하는 지식이라는 점은 굳이 다시 강조하지 않아도 파비블로그 독자들이라면 충분히 공감하실듯.

Neural Network으로 계산하면 되는거지 무슨 Linear regression 같은 통계학 필요하냐고 잘못된 이해를 갖고 있으신 분들이 Neural Net 이라는 모델이 어떤식으로 구성되는지 이해할 수 있도록 돕는 예시 하나 공유한다.

몇 년 전 어느 학교 통계학과의 머신러닝 & 데이터 마이닝 석사 수업 기출문제다.

이 문제를 다 풀고나면 Kernel 기반의 문제 풀이와 Neural net 기반의 문제 풀이 사이의 상관관계에 대해서 더 명확하게 이해할 수 있을 것이다. 특히 정규분포 가정이 있을 때는 쓸데없는 계산비용의 낭비일 뿐인 Neural net 계산이 왜 불필요하다고 파비클래스 수업 시간에 강조하는지, 왜 머리를 쓰면 (Kernel을 쓰면) 계산 추적도 쉬워지고, 체계적인 계산으로 만들 수 있다고 하는지도 이해될 것이다.

그나저나 왜 Kernel이 Symmetric인게 (RxR이라 결국 PD 조건을 충족시킨다는 증명으로 연결되는건 차치하고) 의미가 있을까? 도대체 왜 필요할까? 무슨 경우를 회피해야하기 때문에 마지막에 저 조건을 증명하도록 넣어놨을까?

우리나라 주요대학 데이터 사이언스 석사 커리큘럼을 한참 찾아봤다. 내가 대학원 만들어서 데이터 사이언스를 제대로 가르친다는게 너무 오만한 행동인 건 아닐까, 기라성 같은 교수님들이 그래도 많이들 숨어 있으실텐데… 라는 생각을 오랫동안 했었기 때문이다.

몇 달 여러학교 커리큘럼을 찾아본 끝에 내린 결론이다. 미안하지만 그런 석사 졸업생 중에 저 문제를 제대로 풀 수 있는 사람들은 학교 교육을 무시하고 혼자서 수학&통계학을 상당한 수준으로 공부한 사람 밖에 없을 것 같다.