공부를 함에 있어, 좋은 책을 찾아 양질의 정보를 얻는 것만큼 기쁜 건 없다.
오늘부터는 내가 공부했던 책들, 공부하는 책들을 리뷰하며 책의 내용을 정리해보려고 한다.
혼자 공부하는 머신러닝+딥러닝이라는 책은 머신러닝이라는 분야를 입문하는데 있어 감히 최고의 책이라 말하고 싶다.
나는 이 책을 공모전을 하면서 접하게 되었는데, 그때 진행하던 프로젝트에서 자연어 처리 딥러닝 모델을 구현했어야 했다.
허나 문제점은 github에 있는 자연어 처리 코드들을 아무리 봐도 이해가 되지 않았던 것이다.
또, 한국어 자연어 처리 코드도 별로 없어서 프로젝트에 맞는 코드를 찾기란 불가능한 일이었다.
나름 빅데이터 센터 같은 곳에서 제공해주는 무료 강의들도 공부했던 상태였는데, 할 수 있는건 없었다.
하는 수 없이, 우리 팀은 프로젝트 진행을 잠시 멈추고, 모두가 다같이 머신러닝의 기초를 다지는 시간을 가졌다.
팀원 셋이 각자의 방법으로 공부했는데, 내가 골랐던 방법은 바로 이 책이었다.
이 책을 만나게 된 건 내 생일이 다가오면서 카카오 선물하기에서 선물을 고를 때였다.
카카오 선물하기에 책이 많아봤자 얼마나 많겠는가. 그런데 그 중에서 머신러닝 관련된 책이 있으니 이목을 끌기에는 충분했다.
그래서 그냥 별생각없이 이번 프로젝트에 머신러닝이 쓰이니 머신러닝이라는 분야에 대해 시간 날때 조금 공부해둘까 하는 마음으로 관심 목록에 담았었다.
이 책 뿐 아니라 '이것이 취업을 위한 코딩 테스트다 with 파이썬'도 담았었는데, 엄마가 머신러닝 책으로 사주셨다.
(이 책도 요즘 알고리즘 동아리 하면서 추천을 받아서 언젠간 꼭 사고싶다.)
그렇게 이 책을 만나게 됬다. 그리고 곧 우리 프로젝트는 이 책을 통해 운명이 바뀌었다.
나는 이 책을 읽으며 머신러닝의 기초부터 쌓아갔다.
훈련 세트와 테스트 세트, 특성, 데이터 전처리, 샘플, 지도 학습, 비지도 학습, 강화 학습, 과대적합, 과소적합 등등 머신러닝만의 용어들과 그 쓰임들.
matplotlib, scikit-learn, tensorflow, numpy, pandas 등등의 라이브러리들.
k-최근접 이웃 알고리즘, 선형 회귀, 로지스틱 회귀, RNN, LSTM, GRU 등등의 알고리즘.
머신러닝의 기초들을 파이썬이라는 언어조차 낯설던 내게 꼼꼼하고 친절하게 이 책은 알려줬다.
3, 4일 정도의 시간동안 공부해야 했어서 책의 모든 부분을 공부하진 못했지만, 다른 인강도 찾아보고 여러 블로그도 찾아보며 좌절했던 나에게 이 책은 머신러닝이 어렵지 않음을 알려줬다.
이 책을 읽고서 우리 팀은 자연어 처리 딥러닝 모델을 처음부터 하나씩 구축하기로 했다.
데이터셋을 구하는 것부터 시작해서 전처리, 엔진 구축, 테스트까지 모든 과정을 말이다.
깃헙에서 우리 프로젝트에 적합한 코드를 찾기는 어려울 것 같았고, 비슷한 코드를 찾아 수정하는 거나 첨부터 만드는 거나 비슷할 거 같았다.
같은 시간 동안 공부했지만, 책을 통해 공부한 것과 인터넷 글들로 공부한 것은 큰 차이가 났다.
책을 통해 공부한 내가 머신러닝을 어떻게 구축할지 계획을 짜고 일을 분담했다.
토큰화, 데이터 증량, 어휘사전 구축 등등 일을 분담 할때마다 그것이 무엇인지, 그것을 왜 구현해야 하는지 설명해줬어야 했는데, 그게 참 힘들었다.
책으로 하나씩하나씩 퍼즐을 맞춰나간게 아니라 뜨문뜨문 배우니까 팀원들도 이해하기 힘들었을 것이다.
아무튼 결론!
직접 구축한 딥러닝 모델로 공모전 은상을 받았다.
작품 발표 평가 받는 자리에서 심사위원 분들이 2, 3학년들이 너무 잘 만들었다고 해주셨다.
딥러닝 모델에 대해서 칭찬을 많이 받아서 굉장히 기뻤다!
그렇게 완성할 수 있었던 건 이 책의 도움이 정말 크다.
그래서 난 머신러닝에 대해서 입문하고 싶은 분들에게 이 책을 강력히 추천하고 싶다.