ML에 입문하고자 하는 어떤 대학생분의 메일과 그 답변

아래 메일 내용은 주말에 어떤 학생분이 메일을 보내주신 것에 대한 답변 메일이다. 물론 이 메일 공개에 대해 사전에 동의를 얻은 상태다.

사실 이런 메일 내용에 대한 문의는 자주 있어 왔다. 하지만 이 메일이 가장 많은 내용을 포괄적으로 질문한 것이라 다른 궁금증을 가지고 있는 분들도 참고하면 좋을거 같다.

——————————————————————————————–

안녕하세요. 질문 잘 받았습니다.

1. 머신러닝 및 데이터 마이닝 관련 연구실을 졸업 후 어느 분야로 취업이 가능한가요?(구체적 fields 부탁드립니다)

ML만으로는 좀 힘듭니다. ML 그저 문제 해결을 위한 알고리즘에 지나지 않습니다. 취업을 하기 위해서는
문제해결능력도 중요하지만 특정 취업하고자 하는 도메인 영역내의 지식이 무엇보다 중요합니다. 저의 경우는 검색 서비스에서 ML을
활용하는데 관심이 있을 뿐입니다. 제가 검색엔진이나 검색 서비스에 대해서 지식이 없었다면 검색에 ML을 적용하고자 하는 노력도
하지 못했을겁니다.

2. 머신이라는 분야를 어떻게 접근해야 쉽게 받아들일 수 있나요?(소스 및 책 등의 추천도 부탁드립니다)

머신러닝이겠죠?

머신러닝을 충분히 이해하기 위해서는 statistics, linear algebra, probability 등등의 수학적 지식에
대한 충분한 이해가 필요합니다. 피상적으로 시험을 위해 수학공부를 해왔다면 아마도 위 관련 책들을 다시 보셔야 할 것입니다.

단 위 관련 수학지식이 있으시다면, ML을 적용하고 싶은 도메인 영역을 골라보세요. 이미지 처리도 좋고, 음성처리도 좋구요,
아니면 검색도 좋고, 자연어 처리도 좋습니다. 이 도메인 영역 선택이 앞으로 공부하는데 큰 동기가 됩니다.
그런 다음에 입문서로 많이 선택을 하는 책이 Machine Learning,  Tom Mitchell, McGraw Hill,
1997, 이 책과 Introduction to Machine Learning, Alpaydin 입니다.
수식이 난무한 책이니 각오가 필요하겠죠. ^^;
이 다음으로 읽는 책이 있지만 이 소개는 나중으로 미루도록 하겠습니다.

 

3. 학부 때 학교 커리큘럼에 조금은 소홀한 탓에 그다지 프로그래밍이라던지 수학적인 개념이 크게 자신이 없는데, 2년이라는 석사 생활의 시작으로써 어느 조언을 해주실 수 있나요?

다시 공부하세요. 이해 될 때까지 교수님에게 물어보고 선배들에게 여쭤보십시요.
프로그래밍에 자신이 없다는건 크게 중요하지 않구요, 프로그래밍에서 재미를 느낄 수 만 있으면 됩니다.

4. 만약 석사생활을 하게 된다면 졸업 논문과 관련된 주제 선정은 쉬운편이지 또는 어려운편인지(다른 리서치 분야랑 단순비교), 그리고 혹시 석사급 논문과 관련된 아이디어나 조언이

있으시면 살짝이라도 귀뜸해주실 수 있나요?

논문은 기존의 해결방법을 조금이라도 개선할 수 있는 아이디어와 이를 증명할 수 있는 객관적인 데이터를 제공해 주는게 중요합니다. 평소 관심이 있는 분야에 대해서 왜 그럴까 의문을 가지는 자세가 무엇보다 필요합니다.

5. 희원님 블로그 글들과 검색엔진에서의 검색을 통해 머신러닝 분야에 대한 기초를 접하고 있는 시점에서 이런저런 용어가 너무나
헷갈려서 바로바로 이해가 되지가 않는 현 시점입니다.(예를 들어, instance, example, training set,
test set, 가정, bias & variance, attribute…등등 용어들의 명확한 이해가 뒷받침되어야 할
것 같다는 생각에…;;;;)

instance : 학습셋이나 테스트셋에서의 하나의 데이터 레코드를 의미함
example : 학습셋에서 쓰이는 데이터 예제
training set : 머신러닝 모델을 학습시키는데 사용하는 데이터셋
test set : 학습된 모델의 성능을 테스트 하는데 쓰이는 데이터셋
가정 : 실험을 하기 전에 정해놓은 조건
bias & variance : variene + bias^2 = error (정확히는 mean square error)
attribute : 학습이나 테스트를 할때 쓰이는 데이터를 표현하는 하나의 속성
등등 입니다. ^^
위 용어는 도메인에 따라 다른 의미로 해석될 수 있으니 유의하세요.

6. 만약 연구실이나 회사에서 관련 프로젝트를 한다면 구체적인 예를 들어 어떤 것이 있을 수 있고, 하나의 프로젝트 예를
바탕으로 데이터 확보, 전처리, 구현, 실험 및 검증 등의 절차에 따른 각 과정에서의 쉬운 설명을 부탁드립니다.( 위의 5번
질문의 답변인 용어의 정리와 함께 6번 질문에 대한 답변을 부탁드립니다)

이 질문은 짧게 답변을 드릴 수 있는 부분의 것이 아니네요.

의 경우 스팸에 대한 논문을 쓸 때, 데이터는 직접 크롤러를 만들어 수집을 하고 2천여개의 데이터를 기반으로 평가를 해 직접
학습 데이터를 만들었습니다. 구현의 경우도 직접 통계학 책과 ML책을 보면서 직접 만들었고 알고리즘 개선도 동시에 했습니다.
실험의 경우 각 ML파라메터를 조절해 가면서 수백번 정도는 실험을 했습니다. 물론 대조 실험군을 만들기 위해 다른 알고리즘
기반의 테스터기도 만들었구요. 실험 및 검증은 이미 나와 있는 실험 방법들을 모두 사용했습니다. 이 실험 방법은 제 블로그에도
있으니 찾아보시면 될 듯 합니다.

답변이 되었을지 모르겠네요. 현재 상황이 많이 힘들거라는 말씀이 마음속에 남는군요. 상황이 힘들다고 섣부르게 자신이 평생 할 일을
결정하는 과오는 하지 말았으면 좋겠습니다. ML, DM 이쪽 영역 분명 고수준의 기술력과 사고력을 요하는 분야라서 국내에
전문가가 별로 없는게 사실이지만 공부하기도 만만치 않습니다. 그러니 결정을 하기 전에 가장 중요한게 학문에 대한 호기심과 이것을
어떻게 현실문제를 해결하는데 사용할 수 있을까 곰곰히 생각해 보는 것일겁니다. 그 이후에야 공부를 즐길 수 있겠죠.

그럼 올바른 결정을 내리는데 도움이 되었길 바라겠습니다.

전희원 드림

CC BY-NC 4.0 ML에 입문하고자 하는 어떤 대학생분의 메일과 그 답변 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.