이 책은 혼자서 딥러닝을 공부하고 싶은 분들을 위한 책입니다.
아주 오래전부터 사람들은 인공지능에 관심을 가지고 연구했지만, 2016년 까지만 해도 국내에서는 크게 알려지지 않았다. 오히려 2016년 전까지는 "big data" 라는 키워드가 더 유명했다. Google Trend에서 "big data" 와 "machine learning"의 트렌드를 검색했다. [그림 1.1]에서 보여주듯이 2016년 까지는 그래도 "big data" 가 상대적으로 더 많이 검색 된 것을 알 수 있다.

<그림 1.1> 대한민국에서 지난 5년 간 "big data" 와 "machine learning" 검색의 차이, 출처: https://trends.google.co.kr
그러나 2016년 3월 9일부터 시작된 이세돌과 알파고의 바둑 시합 이후로 인공지능이 실제로 우리 삶으로 깊이 들어온 느낌이 들었다. [그림 1.1]에서도 "machine learning" 키워드가 이때부터 상대적으로 많이 검색된 모습을 볼 수 있다. 필자는 이 대국을 호기심과 공포심이 반쯤 섞인 감정으로 바라보았다. "기계가 이제는 정말로 사람의 지능을 가질 수 있을까?"라는 의문도 들었다. 이런 의문은 나중에 공부를 시작하면서, 결국 "머신러닝은 통계와 확률에 근거하는 알고리즘에 지나치지 않는다."라는 것을 깨닫고 사라진 상태다.
하지만 이를 깨닫는 데까지는 꽤 오랜 시간이 걸렸다. 그 이유는 "머신러닝"이라는 학문은 선형대수부터 시작해서 통계와 확률, 프로그래밍, 알고리즘 등 다양한 지식을 두루 알아야 했기 때문이다. 나중에서야 알게 됐지만, 지금까지 조각조각 배운 지식이 하나로 모이니까 알 수 있었다.
많은 사람들이 머신러닝을 공부하려고 하지만 어디서 부터 시작해야 할지 모르고 이런 질문을 많이 한다.

영화 ALPHAGO, 이미지 출처: https://www.imdb.com
머신러닝을 공부하고 싶은데 뭐부터 봐야 하나요?
첫째, 공부해야 하는 분야가 많기 때문에 목적에 맞춰 공부하고 싶은 것부터 시작하자!
우선 위 질문은 당연하게 물어볼 수 있다고 생각한다. 머신러닝은 데이터 사이언스 분야에서 사용하는 하나의 도구다. 데이터 사이언스 분야에서 데이터 분석가, 데이터 엔지니어, 머신러닝 엔지니어, 데이터 사이언티스트 등등의 직군이 존재하지만, 머신러닝은 각 직군 별로 다양하게 사용되고 있다. 때문에 공부의 순서는 공부하고 싶은 사람의 목적에 따라서 다르다.
어디까지나 주관적인 의견이지만, 예를 들어 데이터 분석 일을 하고 싶다면, 주어진 데이터로부터 현상과 인사이트를 파악해야 하므로 데이터를 분석할 수 있는 통계학 지식과 이를 시각화해낼 수 있는 일부 프로그래밍 지식, 조금 더 나아가서 예측하고 싶다면 간단한 머신러닝 알고리즘을 사용할 수도 있다. 머신러닝 엔지니어의 경우, 자신이 속한 분야에 모델을 개발하고 제품에 적용하는 일을 하게 된다. 그렇다면, 머신러닝에 대한 지식은 기본으로 알아야 하고 모델을 구현하는 프로그래밍 스킬이 또한 월등히 높아야 할 것이다.
때문에, 자신의 목적에 따라서 필요한 부분을 먼저 공부하는 것이 가장 좋다고 느낀다.
둘째, 유명한 강좌, 책으로 시작하자!
하지만 필요한 부분을 아예 모르는 경우가 있는데, 비 전공자, 즉 수학 및 통계 혹은 프로그래밍 둘 다 모르는 상태면 조금 막막할 수 있다.
필자가 처음 머신러닝 공부를 시작했을 때 국내에서 혼자서 공부할 수 있는 자료가 크게 활성화되지 않았다. 그러나 지난 약 2년이 안 되는 기간 동안 인터넷상에 학습할 수 있는 자료가 많이 활성화된 상태다. Couresra 설립자 중의 한 분인 Andrew Ng 교수님의 머신러닝 강좌, Sung Kim 교수님의 유명한 "모두를 위한 딥러닝" 등 초보자가 많이 접할 수 있는 영상 강좌도 많고, 사이토 고키의 "밑바닥부터 시작하는 딥러닝" 등 좋은 번역 책들이 국내에 많이 출간되었다. 많은 선택지가 있지만, 필자는 위에서 언급한 세 가지로 시작하는 것이 좋다고 생각한다. 강좌와 책으로 이 분야가 어떤 것인지 체험을 하고, "내가 정말 이 분야를 공부해보고 싶은 것인지?", "나의 적성과 궁합이 맞는지?"를 먼저 알아볼 수도 있고, 다음 단계로 무엇을 공부해야 할지 길이 보일 것이다.
Lec 00 - Machine/Deep learning 수업의 개요와 일정
그렇다면 이 책은 왜 썼는가?
최근에는 머신러닝과 딥러닝을 쉽게 사용할 수 있는 프레임워크(Frameworks)가 많이 등장했다. 머신러닝에 자주 사용되는 Scikit-Learn, 딥러닝에 자주 사용되는 TensorFlow, Pytorch 등 이들은 코드 몇 줄로 하나의 모델을 만들고 원하는 작업을 쉽게 이룰 수 있다. 쉽게 사용할 수 있지만, 기술을 쉽게 익힐 수 있는 것은 아니다. 내부의 원리를 알아야 여러분이 당면한 문제에 잘 적용해서 쓸 수 있다. 이 책을 쓴 이유는 바로 “왜 이렇게 사용하는가? 언제 사용하는가?” 에 대한 필자의 탐구와 참고 자료들을 정리하였다. 이를 바탕으로 필자가 겪은 어려움을 독자 여러분들이 조금 덜 겪고, 데이터 분야에 진입을 조금 더 쉽게 만들 것이라 믿는다.