작도닷넷 블로그
작도닷넷 블로그

컴퓨터

코세라 기계학습 수료 후기

16/06/07 01:24(년/월/일 시:분)

1.

내가 미국에서 대학원을 잘 다닐 수 있을지 궁금해서, 시험삼아 코세라에서 MOOC 강의를 들어봤다. 생각보다 할만했지만, 그래도 충분히 고생스러웠다.


과목은 기계학습을 잡았다. 기술사 공부할때 흥미가 가지만 1~2페이지로 요약하놓은 설명으로는 참 이해가 안되던 토픽이라, 이번 기회에 공부해보고 싶었다.

http://www.moreagile.net/2015/05/how-to-start-machine-learning-study.html
수학을 포기한 직업 프로그래머가 머신러닝 학습을 시작하기위한 학습법 소개

마침 트위터에서 위와 같이 기계학습 온라인 강의 코스를 상세하게 소개한 글이 있어, 이를 따라해보기로 했다. 위에서 추천한 강의는 코세라 공동창업자인 앤드류 응 교수님이 직접 강의하신 과목이었는데, 역시 직접 코세라를 만든 분이라 그런지 시스템이 매우 잘 되어 있었다. 집중력이 떨어질까봐 10분에 한번씩은 미니 퀴즈를 풀어야 했고, 각 강의를 짧게 분리해놔서 이해가 안 되면 부분 별로 쉽게 되풀이해서 볼 수 있도록 했다. 무엇보다 매트랩(MatLab)을 강의기간동안 무료로 사용할 수 있었고, 매트립에서 과제를 바로 인터넷으로 제출해서 즉시 채점되도록 자동화했다. 덕분에 프로그래밍 과제도 재미있게 할 수 있었다.

물론 쉽지 않았다. 이해하고 나면 별 거 아닌데 막상 이해하기까지가 오래 걸렸다. 기계학습은 전혀 직관적이지 않았다. 교수님도 강의에서 자기도 가끔 이해가 잘 안 갈 때가 있으니 괜찮다고 독려하면서 천천히 조금씩 강의를 진행하셨다. 정말 그럴만 했다.

마침 구글 딥마인드 알파고와 이세돌의 대국이 열려 기계학습에 관심이 폭발했는데, 많은 사람들이 기계학습과 인공지능을 오해하는 글을 많이 올렸다. 나는 그런 오해를 이해할 수 있었다. 원체 기계학습이 오해하기가 좋은 기술이니 그럴 만도 했다. 그래도 많은 사람들이 내가 막 공부한 기술에 관심을 가지니 기분이 좋았다.

기계학습이 궁금하거나, 대학 강의 수준의 전문적인 강의가 필요하신 작도닷넷 독자 여러분께도 추천합니다.



2.

오컴의 면도날, 경제성의 원리가 있다. 불필요한 잔가지를 쳐내고, 최대한 단순한 논리로 생각하자는 것이다. 그런데 안타깝게도 기계학습에는 이 원리가 통하지 않는다. 엄청나게 잔가지를 늘려서, 불필요할 정도로 연산량을 늘려서 (실제로 불필요하지는 않지만 언뜻 보기엔 그렇게) 학습을 시킨다.

그래서 기계학습은 요즘 나온 IT기술 중 정말 신기할 정도로 아무데서나 잘 돌아가는데도 불구하고 적용사례를 찾아보기 어렵다. 굳이 이렇게까지 멀리 돌아가야 하나 싶은 마음이 들만큼, 전혀 직관적이지 않고, 내가 과연 제대로 하고 있나 확인하고 싶은 마음까지 든다. (물론 확인해볼 수 있고, 확인해보면 맞다)

오컴의 면도날 대신에 나는 하노이의 탑에 비유하고 싶다. 하노이의 탑은 보기와 달리 시간이 오래 걸리고, 특히 답으로 가는 과정이 잘 가다가 처음과 비슷하게 돌아가야 해서 패닉에 빠지기 쉽다. 반쯤 왔을 때 다시 처음으로 돌아온 것 같으면, 지금까지 했던 고생이 허사인 것처럼 착각하기 쉽다. 맨 처음에서 겨우 아주 조금밖에 앞으로 나아가지 못한 것 같다. 근데 그게 답으로 가는 길이 맞다.

때론 오컴의 면도날이 아니라 하노이의 탑처럼, 전혀 효율적으로 보이지 않는데 한참을 돌아가는 것처럼 느낄 때가 있다. 근데 기계학습은, 특히 신경망은 그렇게 풀어야 한다. 그런 느낌.

물론 기계학습을 적용하자면, 아마존에서도 기계학습 API를 지원하고, 구글에서도 비슷하게 기계학습을 제공한다. 굳이 세부 로직까지 몰라도 돈과 데이터만 때려 넣으면 (그리 비싸지도 않다) 어찌됬건 결과가 나온다. 물론 잘 학습되도록 디버깅할 필요는 있지만, 하나하나 다 짤 필요는 없다.

하지만 적어도 이게 어떤 건지 감을 잡기 위해서는 최소한의 경험이 필요할텐데, 그 높은 문턱을 넘는데 앤드류 응 교수님의 코세라 기계학습 강의가 매우 도움이 되었다. 그래서 다시한번 여러분께도 이 강의를 추천합니다.


3.

기계학습은 컴퓨터 공학에서 하나의 분야라기보다는, 많은 분야에 적용되는 기반 기술이 될 거라서, 자신의 분야와 상관없이 교양 삼아 들어두는 것도 좋습니다. (학회에서 요수아 벤지오 교수님은 "요즘 어떤 분들이 딥러닝을 공부합니까?" 라는 질문에 "모두 다요" 라고 대답했습니다. 아니 정말로요.)

마침 요수아 벤지오를 비롯한 몇몇 교수님들이 딥러닝 전공서를 쓰고 계시는데, 거의 완성된 초안을 인터넷으로 전체 공개중이니 참고바랍니다. 코세라 기계학습 강의와 반 정도는 걸쳐있지만, 또 반 정도는 새로운 내용이네요.

http://www.deeplearningbook.org/
Deep Learning
An MIT Press book
Ian Goodfellow, Yoshua Bengio and Aaron Courville


4.

위의 딥러닝 책에도 있고, 코세라 강의에도 있는 예로 흥미로웠던 것 하나를 들자면, 신경망으로 XOR 논리회로를 만드는 것이었다. Input이 2개가 있을때, 각각의 값이 00 01 10 11 인 것에 따라서 Output이 0 또는 1이 나오는 걸 만드는 것.

여기서 XOR 게이트가 신경망의 은닉층을 딱 1층만 쌓아도 돌아간다. AND 게이트나 NOT 게이트는 당연히 돌아갈테니, 사실상 신경망으로 현재 컴퓨터의 모든 논리회로를 만들 수 있는 것이다.

즉, 프로그래머가 IF문 등을 이용하여 Logic을 구성하는 것을 신경망이 흉내낼 수 있다는 것이다. 이것이 신경망으로 프로그램을 대신할 수 있는 이유다. 나는 이 점이 기계학습에서 가장 흥미로웠다.

여러분은 어떤 점이 흥미로웠습니까?

http://www.xacdo.net/tt/rserver.php?mode=tb&sl=2547

이름
비밀번호
홈페이지 (없어도 됩니다)

비밀글로 등록
작도닷넷은 당신을 사랑합니다.

[이전 목록]   [1] ... [6][7][8][9][10][11][12][13][14] ... [235]   [다음 목록]

최근 글

이웃로그 관리자 옛날 작도닷넷 태터툴즈 ©현경우(xacdo) since 2001