티스토리 뷰


머신러닝 공부를 시작하며 - 머신러닝과 통계학

본 포스팅은 딥러닝의 D자로 모르는 개발자의 머신러닝 공부 이야기입니다.

참고하셔도 좋지만 무조건적인 신뢰는 위험할 수 있습니다. ^_^; 잘못된 점은 언제든 지적 해 주세요.

어디서부터 시작하지?

머신러닝 공부를 해야하겠다고 마음먹고 제가 가장 처음 던진 질문입니다. 머신러닝에 대해서 아는거 딱 하나, 각종 개발자 행사에서 슬라이드를 통해 지겹도록 본 그림 한 장.

신경망

  1. 딥러닝은 신경망을 쓴다.
  2. 중간에는 은닉계층(Hidden Layer)가 여러개 존재할 수 있다.
  3. Input을 통해 Output을 구할 수 있지만, 어떻게 이런 Output이 나왔는지 역추적하기는 불가능하다. (인과관계를 알 수 없다.)
  4. 조금이라도 더 높은 점수(확률)을 가진 결과를 도출할 수 있게 하는 모델을 만드는 과정을 '학습' 이라고 한다.

여기까지가 제가 알고 있는 전부였습니다. (지금도 크게 나아지지는 않았지만..) 그나마 여러 세미나를 기웃기웃거리고, 팀내에 석사때 인공지능 연구를 진행했던 분께 세미나 듣고, 물어보고 따지고 혼나고 하며 정립한 내용이 위의 내용이었습니다.

머신러닝과 딥러닝은 다르다(?)

제가 따지고 혼나고 하는 주요 부분이었습니다. 대충 요약하면은 'CNN(Convolutinal Neural Network) 같은 알고리즘을 이용하여 학습하는 것들을 딥러닝이라고 부른다.' 하는 건데.. 흠..

지금 와서는 왜 다르다고 강조했는지 알것도 같습니다. 흔히 머신러닝에서 사용하는 기법과 딥러닝에서 사용하는 기법이 다르기 때문인데, 그렇다고 수학적으로 완전 다르냐? 라고 하면 또 그렇지는 않은 것 같습니다. 제가 아직 세부 기법에 대해 논할 실력은 아닌 것 같아서 여기다가 요로코롬 적어놓고 나중에 와서 한번 더 체크해보겠습니다. :)

어쨋든 이러한 이유로 많이 논쟁했었는데, 이 두 용어들을 어떻게 분류하느냐에 따라 판단이 다른 것 같습니다. 저는 머신러닝은 딥러닝을 포함하는 상위 집합이다. 라고 분류하고 있기 때문에 '딥러닝은 머신러닝의 한 분야' 로 이해하고 있습니다.

자, 제가 아는건 요정도. 그 외에는 백지였습니다. 머신러닝을 공부하고 싶은데 뭘 공부해야하는지 알 수가 없었죠. 그러던 중에 Naver Deview 2016 세미나에서 하나의 힌트를 얻었습니다.

딥러닝 예제로 보는 개발자를 위한 통계 - 최재걸(Naver) - 발표영상

네이버의 개발자 행사에서 '개발자를 위한 통계' 라는 주제로 최재걸님이 발표를 진행 해 주셨습니다. 세미나를 들으시던 분들은 개발자 행사에 나타난 외계 수식들을 보며 다들 힘들어 하셨던 것 같은데요, 저는 보면서 웬지 길이 보이는것 같았습니다. 물론 저도 통계학은 전혀 몰랐습니다.

여기서 추천드릴 책 한권! 벌거벗은 통계학 입니다.

이 책은 이야기 책 처럼 많은 예제와 쉬운 용어들로 쉽게 풀어쓴 책입니다. 이 책을 보며 중간중간 통계의 놀라움과 함께 머신러닝을 떠올린건 아마도 저 뿐만이 아닐겁니다. 특히 머신러닝 분야에 두루 쓰이는 '회귀분석' 파트를 읽다보면, 이 많은 계산량을 컴퓨터에게 맡긴다는 아이디어는 탁월한 선택인 것만 같습니다. 통계학 입문서를 읽으면서 어떻게 머신러닝분야가 발전해왔고, 딥러닝까지 발전했는지 그 역사를 짐작할 수 있었습니다.

그래서 저는 통계학을 공부하기로 했습니다. 통계학으로 머신러닝을 시작하기로 했습니다. 그리고 텐서플로 첫걸음이라는 책도 한권 구입했습니다. 통계학을 공부하면서 텐서플로를 따라 쳐보며 응용해볼 요량입니다.

To 딥러닝으로 자비스를 만드는 날까지..


댓글
  • 프로필사진 Dev.. 회기분석->회귀분석 오타발견했어요 2017.04.24 11:17 신고
  • 프로필사진 norux 앗 정말 그러네요.
    오타 지적 감사드립니다~
    2017.04.24 14:45 신고
  • 프로필사진 ND 세미나에 관심이 많으신가요?
    전 세미나가 언제 어떤분야가 있는지 정확히 알지 못하는것 같은데.. 어디에서 정보를 얻을 수 있을까요?
    2017.06.01 14:13 신고
  • 프로필사진 norux 1. 정기 컨퍼런스
    Deview(Naver) / Tech Planet(SK Planet) / NDC(Nexon) 등등.. 매년 정기적으로 열리는 컨퍼런스 같은 경우는 기억해놨다가 참가 신청날 신청하구요.

    2. OnOffMix(http://onoffmix.com/)
    온오프믹스에 보면 많은 세미나정보가 올라옵니다. 듣고 싶은 세미나에 신청해서 참여하면 됩니다.

    3. 페이스북의 각종 개발자 그룹이 있습니다. (ex. TensorFlow KR, 프론트엔드 개발 그룹, 몽고디비 한국 사용자그룹 등) 이 그룹을 팔로우 하시면 세미나 정보가 올라오기도 합니다.

    2017.06.02 10:17 신고
댓글쓰기 폼