[머신러닝] 초보자에게 바치는 5가지 “하지 마라” 시리즈 Part.1

in #kr-steemit6 years ago

본 글은 Pabii 이경환 대표님의 블로그 글이 너무나도 유익해 공유한 내용입니다.


데이터 사이언스, 머신러닝, 빅데이터, 교재

데이터 사이언스 강의를 시작했다, 그 강의 중에 머신러닝도 많이 들어가있다고 소개를 했더니, 어떤 책을 사서 공부해야되냐고 묻는 사람, 그거할려면 개발 지식 필요하냐고 묻는 사람, 통계학 지식이 필요하냐고 묻는 사람 등등 다양한 종류의 질문을 받았다. 필자는 이렇게 대답하고 싶다. “일단 예제 하나 돌려보세요.”

언젠가 어느 개발자가 “친구가 R 공부하려고 하는데, 어떻게 시작하면 될까요?”라고 묻길래, 비슷한 대답을 해 준 적이 있다. 그냥 아무 예제나 닥치고 실행해보라고. 적어도 코딩을 “공부”한다는 측면에서는 다른 대안이 더 있는지 잘 모르겠다. 코딩은 언어고, 언어는 어린 아이가 배우듯이 남들이 하는 표현을 따라하면서 늘 수 밖에 없다.

머신러닝 공부 ≠ 코딩 공부

그럼에도 불구하고 코딩으로 시작하시는 분들께


런던에 석사 학위가서 필자가 배운 코딩 언어는 Matlab이었다. 많은 개발자들이 Matlab이 어떻게 코딩 언어냐고 하는데, 당신들이 머신러닝의 Guru라고 생각하는 Andrew Ng 아저씨의 강의를 가보면 Matlab의 공짜버젼인 Octave를 쓰고 있다. 더군다나 실제로 대면 강연에서 보면 Matlab이 좋다는 이야기를 여러번하더라. (사실 연구하는 사람들 대다수가 아직도 Matlab을 쓰고 있다. 그리고 “우리”끼리는 이걸 “코딩”이라고 부른다 ㅋㅋ)

어쨌든 교수님들이 계량경제학 숙제 답안지를 Matlab으로 올려주시는 바람에 필자는 본의아니게 처음 2년동안 Matlab만 열심히 배웠다. 그러다 3년차에 교수님과 Eurozone Banking System Network 만드는 프로젝트를 진행하는데 교수님이 R을 쓰시는거다. 어쩔 수 없이 R을 또 새로 배웠다.

그 기간 내내 필자가 Matlab이나 R 교과서를 산 적이 있을까? 런던의 살인 물가에 1파운드 덜 비싼 식사 먹으러 10분씩 더 걸어다녔던 필자가 몇 백불파운드짜리 교과서를 샀을리가…

그냥 숙제에 나오는 작업들을 하나하나 진행해보면서 모르는 부분은 구글을 뒤지고, Stack에서 답을 찾고, 아니면 같이 숙제하던 친구들에게 물어보면서 배웠다. 친구들도 구글에서 답 찾아서 같이 공유하고, 그러다가 답안지에 코드가 나오면 그걸보고 또 배우고 그랬다. 학계에서는 코드 공유해주는 사람들이 많지 않아서, 실력자들이 만들어 놓은 코드를 보는 기회는 흔치 않은데, 한 줄 한 줄 엄청 신경쓰면서 공부했던 걸로 기억한다.

책 파시는 분들이 필자에게 엄청 욕할 것 같기는 한데, 적어도 코딩만큼은 아마 책 쓰신 분들도 필자와 똑같은 방식으로 배우지 않았을까 싶다.

그래서 R을 새로 배우건, 머신러닝을 새로 배우건, 뭔가 이쪽 관련 지식을 새로 배우는 분들께 이렇게 시작하지 마라는 간략한 조언글을 써본다.

1. 이론부터 시작하지 마라


교과서부터 시작하지 말자는 이야기와 매우 비슷하다. 머신러닝으로 구글 검색을 넣어보면 딥러닝이 어떻고, 신경망 모델이 어떻고 등등 개론 수준의 이론이 넘쳐난다. 다 필요없다. (어차피 읽어봐도 모르니까 지금 이 글을 찾아본 거 아닌가? ㅋㅋㅋ)

일단 예제부터 시작하자. 아마 바로 다음 질문이 이런 종류일 것이다.

R 어떻게 시작해요? 구글에서 다운받으면 된다. 데이터는 어떻게 불러와요? 구글 검색하면 된다. 그러지 말고 예제 좀 보여달라고? 필자가 블로그에 오늘까지 4개나 올려놨다. 여기, 여기, 여기, 그리고 여기.

무슨 선형대수부터 시작해야된다, 회귀분석도 배워야된다, 교과서 어느책이 좋다더라, 이러다보면 PhD 따야된다는 이야기까지 나올꺼다. 이 글을 읽는 사람들의 99.99%는 박사학위 중에 머신러닝을 공부하는 사람이 아니라, 다들 인공지능이라고 그러니까 그냥 궁금해서 보시는 분들 아닌가? 아카데믹들이 머리 쥐어짜면서 하는 공부에 굳이 동참하실 필요는 없다.

(물론 남들 코드 복사하고 있다보면 이게 도대체 무슨 뜻인지 궁금해지는 시점이 올 것이다 ㅋㅋ 기초 수준을 통과했다는 뜻이다!)

2. 머신러닝을 다 배울려고 하지 마라


머신러닝은 교과서 한 줄, 한 페이지짜리 내용이 아니다. 통계학에서 쓰는 방법론들 몇 백가지를 조합해서 나온 완전히 새로운 학문이다. 이거 다 배울려고하면 아무것도 못 배운다. 고등학교 3년치 수학을 공부해야 고1 때 배우는 집합 예제 풀 수 있는거 아니지 않나? 집합 배우고, 집합 예제 풀고, 함수 배우고, 함수 예제 풀면 된다.

제일 불쌍한 친구들이 computer vision (사진, 얼굴 같은거 인식하는 분야), natural language processing (자연어 처리, 지난 글에서 언급했듯이 난이도 Hell이다), 그리고 speech 분석같은 고난이도 전문 영역부터 붙잡고 시작하는 초심자들이다.

“미안한데, 그거말야, 세부전공으로 박사하고 있는 친구들도 힘들어하는거야. 좀 기분 나쁘겠지만, 니네는 수학이랑 통계학 백그라운드가 박사 학위 있는 친구들만큼 안 될테니 그냥 베껴서 쓰는거 밖에 못할꺼야. 모델을 제대로 이해해야 니네 사업에 맞춰서 고쳐서 쓸텐데, 그게 그렇게 간단한 일은 아닐듯”

to be continued..

* 출처 : 머신러닝 초보자에게 바치는 5가지 “하지 마라” 시리즈

Sort:  

짱짱맨 호출에 출동했습니다!!
고팍스에서 MOC상장 에어드롭 이벤트를 진행합니다.
혜자스러운 고팍스!
https://steemit.com/kr/@gopaxkr/moc

Coin Marketplace

STEEM 0.27
TRX 0.13
JST 0.032
BTC 62737.73
ETH 2925.66
USDT 1.00
SBD 3.50