머신러닝 괜찮은 강의들 리스트 1

좀 잘 나가는 스타트업에서 CFO를 맡고 있는 친구에게 필자의 데이터 사이언스 강의를 소개시켜줬더니 너무 비싸서 자기네 개발자들이 들으러 가겠다면 지원해주기 버거울 것 같단다. 자기네는 개발자들한테 유튜브에서 비디오 찾아보라고 한단다.

이걸 왜 자꾸 개발자시키냐….이러니 우리나라에서 제대로 된 데이터 사이언스 사업이 자라질 못하지… 라는 생각이 들면서도, 도대체 온라인으로 돌아다니는 “공짜” 수업들이 얼마나 괜찮을지 한번 찾아봤다. 퀄러티는 일단 제쳐놓고, 솔찍말 이렇게 많을 줄은 상상도 못했다. 너무 많아서 다 보지는 못하겠고, 후다닥딱 넘겨가면서 본 강좌들 중에 몇 개만 공유해볼까 한다.

 

1. Andrew Ng (전) 스탠포드 교수의 Coursera 강의 / Stanford 강의

Coursera 강의: https://www.coursera.org/learn/machine-learning/

Stanford 강의: http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=MachineLearning

이건 뭐, 이미 모든 사람이 다 아는 Bible 스러운 강의인 것 같아서 굳이 소개할 필요는 없겠지만, 그래도 안 넣으면 이상하게 생각할 것 같아서… 일단 기초 개념 잡기엔 참 좋다. 둘 중 Coursera 강의 쪽이 살짝 더 쉬운 느낌은 있지만, 같은 사람이 같은 주제로 강의하다보니 큰 차이는 없다. (전직) 컴공과 교수님이 가르치다보니 데이터 사이언스 전반에 대한 강의는 아니고, 머신러닝이 어떤 이론 체계 위에 있고 (다 통계학이지 뭐), 적용 사례들 (컴공답게 자율주행, OCR-문자인식 같은 예제만 있음) 조금 나오는 정도의 수업이라서, 학부 때 통계학 공부 좀 해뒀으면 쉽게 따라갈 수 있는 수업이다.

그나저나 Andrew Ng 아저씨 바이두 그만둔다고 그러던데 이제 어디로 가셨나?

 

2. mathematicalmonkey 의 Youtube 채널

강의 전체List: https://www.youtube.com/user/mathematicalmonk/playlists

머신러닝 강좌: https://www.youtube.com/watch?v=yDLKJtOVx5c&list=PLD0F06AA0D2E8FFBA

Duke에 있는 통계학과 대학원생들이랑 포닥들이 만든 유튜브 채널이다. 좋은 점은 머신러닝 강의만 있는게 아니라, 확률론(Probability Primer)과 정보이론(Information Theory) 강의까지 고루 갖추고 있다. “솔까말 머신러닝 고급레벨에서 다룬다면서 확률론이랑 정보이론에 대한 기본지식 없으면 개발자지 연구자 아니지 않나?” 라는 어투의 수업이기는한데, 수학 맛보기로 전공한 내 입장에서 캐공감이 가지만 그래도 개발자들이 분노할까봐 Shy voter인체 할란다 ㅋㅋ

확률론이랑 정보이론은 말할것도 없고, 머신러닝 강좌도 매우 빡빡하게 이론 위주의 수업이다. 그리고 거의 대부분이 (당연하겠지만) 통계학 방법론을 머신러닝에 어떻게 적용하는지에 대한 수업이다. 통계학과 학부생이나 비슷한 레벨로 공부한 학생들이 머신러닝 좀 배워서 나도 Data Scientist 로 취업하고 싶다고 생각하면 딱 좋은 수업인듯. 참고로 이 친구들 머신러닝 강좌는 10분-15분짜리 동영상이 160개 정도 있다. (솔직히 말하면 필자도 다 안 듣고 글 쓴다.)

 

3. Hugo Larochelle 의 Youtube 채널

강의 전체 List: https://www.youtube.com/playlist?list=PL6Xpj9I5qXYEcOhn7TqghAJ6NAPrNmUBH

Université de Sherbrooke의 Hugo Larochelle라는 컴퓨터 공학 전공 교수가 가르치는 머신러닝 수업이다. 다른 부분은 거의 커버하지 않고 Neural Network 하나만 놓고 강의를 진행한다. 컴공과 학부 졸업생이 학부 때는 제대로 머신러닝 공부를 못 했을테니 이 수업을 통해서 Neural Network를 어떻게 쓰는지 감 잡기에는 참 좋은 수업이라고 생각한다. 장점이자 단점이 있다면, 굉장히 꼼꼼하게 수학적인 Derivation을 다 하면서 수업을 진행한다. (완전 내 스타일이다 ㅋㅋ) 입문강좌 용으로나 직장인 용으로는 매우 부적절한 수업이 될 것 같다.

4. 그 외 학교 강의들

Stanford: http://ufldl.stanford.edu/tutorial/

Oxford (강의 영상): https://www.youtube.com/watch?v=PlhFWT7vAEw&index=16&list=PLE6Wd9FR–EfW8dtjAuPoTuPcqmOV53Fu

Oxford (수업 자료): https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/

스탠포드 강의는 Unsupervised feature learning이 어떤 방식으로 돌아가는지 잘 설명해주는 영상이고, 옥스포드 강의는 16주(?) 수업에서 머신러닝 전반을 다 다루는데 약간 휙휙 지나가는 듯한 느낌이어서 따라가기는 좀 버거울 수 있지만 개괄식으로 다 훑어보기에는 딱 좋은 수업인것 같다. 물론 그 어떤 수업도 실제 사례를 적용하고 그런 수업은 없다. (지루한) 이론 수업 위주다.

5. 머신러닝 오픈 소스 제공 튜토리얼

scikit-learn: http://scikit-learn.org/stable/tutorial/

TensorFlow: https://github.com/golbin/TensorFlow-Tutorials

개발자들이 머신러닝을 활용하는데 쓰는 오픈소스들을 모아놓은 곳이다. scikit-learn은 Python 개발자들용 오픈소스 코드들을 어떻게 쓰는지 설명해주면서 머신러닝에 대한 기본 개념을 알려준다. TensorFlow도 github에 올라와 있는 Tutorial code를 하나씩 다운받아서 실제로 돌려보면서 이 코드가 무슨 일을 하는 코드인지 이해할 수 있도록 잘 정리해놨다. (Youtube에 들어가서 TensorFlow Tutorial Code로 검색하면 수십개의 데모 영상을 볼 수 있다.)

위에 예시를 든 강의 이외에도 필자의 귀차니즘 때문에 리스트에 못 올린 온라인 머신러닝 강좌가 헤아릴 수 없이 많을 것이다. 그런데 실무 사례에 적용하는 예시, 특히 진짜 기업들이 쓸만한 모델들 (사소하게 던지는 외주 프로젝트 아님)을 직접 예로 들어가면서 설명하는 수업은 못 봤다.

아까 위에 말했던 모 스타트업 CFO 친구가 예전에 그러더라. “그런 수업 많이 들으면 뭐해? 어떻게 쓰는지 직접 돌려봐야 알지.” 그래 맞다. 니가 한 말을 그대로 돌려주마. 니네 개발자더러 Youtube에서 저런 강의 듣고 머신러닝 모델들 척척 만들어내라고 무리한 요구 하지말고, 일단 너부터 내 수업 들으러 와ㅋㅋㅋ

X