잠시 자만했던 사람의 서문…
2016년 알파고와 이세돌 선수의 경기 이후로 2년이 채 지나지도 않았는데, 그 전에는 배우는 것조차 막막하게 다가왔던 머신러닝이 이제는 중고등학생들부터 누구든지 관심만 있으면 배우고 실제 풀고싶은 문제에 적용할 수 있는 시대가 되었습니다. 물론, 이 바탕에는 텐서플로우도 있었고, 한국의 경우에는 김성훈 교수님의 강의가 있었다고 생각합니다.
솔직히 나름 이른 시점부터 머신러닝이라는 학문?에 관심을 가지기 시작했고, 현재 머신러닝 엔지니어로 근무하고 있는 입장에서 머신러닝을 어느 정도 안다고 생각하며 지내왔습니다. 그러나 최근 NYU 조경현 교수님께서 네이버에서 강연하신 영상을 보다가 문득 “나는 제대로 아는 것이 맞는 것인가?” 라는 의문을 가지게 되었습니다. 그리고 그 생각은 점점 더 강해졌고 단순히 텐서플로우를 쓸 줄만 아는 것 즉, 이미 선례가 있는 도메인에 어떤 function을 쓰면되고 알고리즘을 쓰면 되는지 따라하는 것에 그치고 있다는 생각까지 이어졌습니다.
또, 실제 업무에서 프로젝트를 진행하다보니 기본의 중요성을 많이 느끼게 되었습니다. 실제 업무를 진행하다보면 새로운 데이터셋 그리고 새로운 도메인을 접하는 경우가 많기 때문에 더더욱 기본적으로 해볼 수 있는 방법론부터 차근차근 접근해보는 것이 중요합니다.
이 지루하고 긴 이유때문에 이미 존재하는 많은 튜토리얼, 설명, 유튜브 강의들을 뒤로하고 다시 한 번 머신러닝 그리고 뒤에 이어질 딥러닝에 대해 정리해보고자 합니다. 물론, 개인적으로 정리하는 것에 초점을 맞추고 있기 때문에 다른 자료들과 완벽하게 똑같지도 않을 것이며 그리 자세하지도 않을 것입니다. 다만, 중간중간 해당 개념을 쓸 때 느꼈던 노하우 같은 것들이 포함될 예정이므로 혹시라도 이 글에 관심을 가지시는 분들은 그런 내용들을 주의깊게 보신다면 다 아시는 내용을 다시 읽긴하지만 재미있게 읽으실 수 있을 것 같습니다. 또, 기본부터 공부하시고자 하는 분들이 이 글을 보시게 된다면, 댓글로 다소 생략된 부분에 대해 질문을 남겨주신다면 답변 드리겠습니다.
얼마나 길어질지, 얼마나 오래 이 생각을 이어갈 수 있을지 확신하지 못하겠습니다. 다만, 최선을 다해서 완결지을 수 있도록 노력하겠습니다. (스스로에 대한 다짐입니당…)