머신러닝 공부 순서, 방법 및 강의 정리(HowUse 곰씨네)

상세한 강의 내용 및 강의 후기 등은 "HowUse 곰씨네" 홈페이지를 참조하시기를 바랍니다.

"머신러닝 공부를 시작하면서 들었던 강의와 머신러닝 공부 방법에 대해서 정리해보려고 한다. 필자도 아직 머신러닝을 마스터하려면 갈 길이 멀었지만, 그간 공부했던 경험을 토대로 머신러닝 입문자들에게 조금이나마 도움이 됐으면 하는 마음으로 적어봤다."

https://statwith.tistory.com/entry/머신러닝-공부-순서-방법-및-강의-정리HowUse-곰씨네?category=768467

******************************************************
- 통계분석연구회
- 카페 : http://cafe.daum.net/statsas
- 통계분석연구회(Statistics Analysis Study) 그룹
: https://www.facebook.com/groups/statsas
- STATWITH : http://statwith.tistory.com/
- RSS : https://statwith.tistory.com/rss

1. 앤드류 응(Andrew Ng) 머신러닝 강좌

머신러닝 공부를 시작하기 위해 구글 검색을 해보면 열이면 아홉은 Andrew Ng 교수의 머신러닝 강좌부터 볼 것을 추천하고 있다. 앤드류 응 교수는 구글 브래인팀을 이끌었던 세계적인 AI 권위자로 스탠포드 대학 교수이자 코세라 창립자이다.

참고로 코세라 강의는 월 $45를 결제하면 Specializations에 있는 모든 과목을 무제한을 들을 수 있는데, 유명한 머신러닝 강의는 대부분 코세라에 있다. 가입 후 7일 동안은 무료라서 일단 가입했다.



앤드류 응 교수의 강의는 머신러닝 기본 강의라고 보면 될 것 같다. 수업은 원하는 때에 들을 수 있었고, 다만 숙제가 있다. 숙제는 Octave(옥타브)라는 스크립트 언어로 나왔다. 개인적으로 이 강의를 보고 난 후 파이썬을 공부했는데, 파이썬을 이미 공부한 사람들은 강의 숙제를 할 때 GitHub에 파이썬 코드로 재작성된 자료를 참고하면 될 것이다.

2. 파이썬(Python) 공부

어떤 머신러닝 전문가는 머신러닝을 배울 때 코딩부터 배우지 말라고 한다. 그런데 필자는 앤드류 응 교수의 머신러닝 수업을 대강 마무리 하고 바로 파이썬 문법을 공부했다. 삽질부터 해보는 개발자여서 그런지 이론보다는 코드에 먼저 눈이 갔던 것 같다. 

파이썬은 머신러닝에 즐겨 쓰이는 프로그래밍 언어이다. R이나 Matlab 같은 것도 있는데 머신러닝 언어 중 대세는 파이썬이라고 한다.

필자는 파이썬 공부를 하기 위해 파이썬 공식 사이트로 가서 문서들을 한 번 쭉 훑어보고 유데미(Udemy)에서 제일 짧은 강의부터 찾았다. 강의 이름은 김왼손의 유기농냠냠파이썬이라는 강좌였는데 파이썬 문법 부분만 빠르게 넘겨 보았다. 여러가지 프로그래밍 언어를 다뤄봐서 그런지 몇몇 파이썬 만의 독특한 문법들 빼고는 크게 어렵지는 않았다. 개인적으로 파이썬 문법 공부는 하루면 충분했던 것 같다.

만약 이미 코세라를 구독하고 있고 프로그래밍이 처음이거나 파이썬을 기초부터 제대로 배우고 싶다면 Python 3 Programming 강의를 추천한다.

3. 그래프 모형, 인공신경망 강의

머신러닝을 공부할 때는 머신러닝 개론 -> 그래프 모형 -> 인공신경망 순으로 공부하면 된다고 한다. 그래프 모형(Graphical Model)이란 머신러닝의 근간을 이루는 모델로 변수간 상호 의존 관계를 설명한다.



그래프 모형에 대한 강의는 Daphne Koller 교수의 Probabilistic Graphical Models 강의가 가장 유명하다. 이 역시 코세라 강의이다.

다음으로 최근 머신러닝의 대세가 된 알고리즘인 인공신경망(Neural Network) & 딥러닝(Deep Learning) 공부를 했다. AI, 머신러닝, 인공신경망, 딥러닝 개념이 어렵다면 아래 그림과 같은 관계라고 보면 된다.



AI(Artificial Intelligence)란 인간의 지능을 기계로 만든 것을 의미하며, 그 구체적인 방법 중 하나가 머신러닝(Machine Learning)인 것이다. 그리고 머신러닝을 구현하는 알고리즘 중의 하나가 인공신경망(Neural Network)과 딥러닝(Deep Learning)인 것이다.

딥러닝은 인공신경망에서 발전된 형태로 심화신경망 또는 개선된 인공신경망 등으로 불리기도 한다.

인공신경망 강의 역시 앤드류 응 교수의 코세라 강의인 Neural Networks and Deep Learning 강의를 들었다. 참고로 아직 보지는 않았지만 인공신경망 쪽에서 휴고 라로첼(Hugo Larochelle)의 유튜브 강의도 괜찮다고 한다.

4. 머신러닝 실습 강의

코세라 강의를 들으면서 잘 이해되지 않은 부분도 있고, 영어로 수업이 진행되다 보니 놓치는 부분도 많았던 것 같다. 그래서 조금 더 쉽고 실용적인 강의가 없나 찾다가 추가로 유데미에 있는 머신러닝 강의를 들었다.

참고로 유데미 강의는 프로그래밍을 전혀 해보지 않은 사람은 다소 따라가기 어려워 보였다. 강의는 텐서플로우와 케라스를 통해 인공 신경망 개발 환경을 구축해보고 딥러닝을 통한 이미지, 데이터 분류 실습을 해본다. 

또한 강화학습에 대한 내용과 Apache Sparks MLlib을 통한 대량 데이터 머신러닝 처리에 대한 내용도 배울 수 있었다.

5. 추가 학습

유데미 강의는 아직도 틈틈히 수강하고 있다. 그 와중에 다른 머신러닝/딥러닝 강의를 알아보다가 홍콩과기대 김성 교수님의 강의를 보게 되었다. 뭔가 이전에 배웠던 내용을 recap 하는 차원에서 보게 되었는데 머신러닝 이론에 대해 깔금하게 정리되어 있다. 머신러닝 공부를 시작하거나 공부 중이라면 참고하면 괜찮은 강의이지 않을까 싶다.

6. 머신러닝 공부에 도움 될 만한 URL 모음

머신러닝 공부에 도움 될 만한 사이트나 자료에 대한 URL은 이곳에 계속 업데이트할 예정이다. 

- 딥러닝을 위한 기초 수학 : https://www.slideshare.net/theeluwin/ss-69596991
- 텐서플로우 연습 코드 모음 : https://github.com/golbin/TensorFlow-Tutorials
- 구글 딥러닝 강의 : https://www.udacity.com/course/deep-learning--ud730
- 머신러닝 오픈소스 튜토리얼 : https://scikit-learn.org/stable/tutorial/
- 옥스포드 머신러닝 수업자료 : https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/
- 머신러닝 용어집 : https://developers.google.com/machine-learning/glossary/?hl=ko


아리스토텔레스의 "시작이 반이다" 라는 명언이 있다. 그런데 영어 원문은 "Well begun, is half done." 이다. 한국어로 번역되면서 Well의 의미가 삭제된 것 같다. 제대로 해석하면 "좋은"시작이 반을 차지한다는 것이지 무작정 시작만 하면 된다는 의미는 아니다.

머신러닝, 딥러닝 공부 역시 마찬가지인 것 같다. 제대로 된 강의와 가이드로 공부를 시작해야 한다. 그리고 그 첫 시작은 앤드류 응 교수의 coursera 강의라고 생각한다. 아직도 머신러닝 공부를 망설이고 있다면, 일단 코세라에 접속해서 무료 강의부터 들어보자.
Posted by uniqueone
,