티스토리 뷰

 O`reilly 사에 뉴스레터를 신청하면 가끔 신규 책을 준다면서 설문조사를 요청할 때가 있다. 그때 받은 책중 하나가 바로 이거였다.

 사실 내가 선택할 수 있는 책중 가장 관심있는 분야여서 선택한 것도 있지만, 책에 담겨져 있는 이론적인 내용이나 실무적인 내용에 대한 설명이 굉장히 잘 되어 있었다. 알고보니 현재도 amazon에서는 Natural Language Processing 분야에서 Best Seller 1위에 랭크되어 있었다.

  방대한 량만큼이나 최근의 트랜드를 잘 담고 있던 책이라 언제쯤 한국에 번역되려나 싶었는데, 원서가 출시된지 거의 1년만에 번역서로 출시되었다. 이 책에 대한 리뷰를 간단히 해보고자 한다.

 항상 내가 갈구하고 바랬던 머신러닝 관련 책들은 수식이나 원리에 대한 설명이 잘되어 있고, 그 내용을 바탕으로 실제의 예제를 살펴볼 수 있으면 좋겠다고 생각했었고, 시중에 머신러닝 책들이 나오면 그런 트랜드가 반영되어 있나 살펴보는 편이었다. 그런데 어느 책도 그 둘다를 만족하는 책이 사실 잘 없었던 것 같다. 사실 이런 분야가 그렇지만 머신러닝이나 딥러닝을 공부하게 되면 반드시 통계 관련 내용을 다뤄야 되고, 그러려면 책의 두께가 두꺼워지거나 실습을 할 수 있는 여지가 줄어들게 된다.(그나마 스티븐 마슬랜드의 "알고리즘 중심의 머신러닝 가이드" 책이 생각한 것과 유사했는데 책의 주제가 머신러닝 알고리즘에 한정되어 있어, 딥러닝이나 강화학습 관련 내용이 담겨있지 않아 아쉬운 부분이 있다.)

 일단 내가 소개하는 "핸즈온 머신러닝" 책은 내가 지금까지 읽은 책중 가장 내가 바라던 대로 이론과 실제 예제가 적절히 버무러진 책이었다. 장장 660여 페이지안에 저자는 머신러닝과 딥러닝, 강화학습과 관련된 내용을 최대한 담고자 노력한 흔적들이 보인다. 위의 이미지속에 소개된 내용은 Regulation을 고려한 Linear Regression인 Ridge regression과 Lasso Regression의 편향에 대한 소개 내용인데, 수식과 그림, 그리고 scikit-learn내에서 사용하는 방법에 대해서 기술되어있다. 물론 몇몇 알고리즘들은 본편에서 자세하게 다루지 않고, 부록의 후반부에서 간략하게 다뤄져있다. 그래도 끝까지 보면서 " 아 그래도 이 책을 보면서 머신러닝/딥러닝/강화학습은 어느정도 훑어봤구나" 하는 느낌이 들 수 있게끔 구성되어 있다. 또 큰 주제 속에서도 고려해야 될 내용이나, 참고할 수 있는 문헌에 대해서 중간중간 소개하고 있어 놓치기 쉬운 내용을 한꺼번에 다뤘다는 느낌을 받았다. 

 참 실습 환경은 대부분의 머신러닝의 책들이 그러하듯이 Jupyter 환경 위에서 머신러닝 패키지인 scikit-learn과 구글에서 만든 딥러닝 엔진인 tensorflow를 기반으로 진행된다. 머신러닝은 scikit-learn, 딥러닝/강화학습 파트는 tensorflow를 활용하여 실제로 관련 API를 쓰면서 실습을 수행하게 된다. 참고로 나도 최근에 회사에서 강화학습과 관련하여 업무를 맡게 되어 몇가지 코드는 응용해서 좀 써보려고 노력했다. 다뤄지는 코드가 막 복잡하거나 그런게 아니라, 책의 원리를 설명하는 부분에서 소개된 내용이라 글의 흐름이나 코드에 대한 설명이 적절하게 어울렸다. (물론 모든 코드를 다 실행해본 건 아니지만, 책과 코드만 읽고서라도 왜 그렇게 코드가 작성이 되고 결과가 나왔는지를 알 수 있던 형태로 되어 있었다.)

 그래서 그런지 생각보다 나도 인터넷 강의나 다른 책들을 통해서 새로운 개념이나 scikit-learn/tensorflow API들에 대해서 좀 알수 있던 기회였다. 정말 나도 머신러닝에 관심에 많아서 왠만한 머신러닝/딥러닝 책들이 나오면 서점가서 꼭 읽어보고 그랬었는데, 여타 책들보다도 넓은 범위에서 이정도 내용을 담은 내용을 담고 있다는 게 이 책만이 가지는 장점이 아닐까 싶다. 조금 아쉬운 점은 상대적으로 머신러닝에 할당된 부분에 비해서 딥러닝 부분을 설명한 파트가 상대적으로 적어, 해당 부분을 중점적으로 살펴보고자 하는 독자한테는 조금 부족함을 느낄 수 있을 듯한 생각이 잠시 든다. 그렇다고 딥러닝 쪽에 설명된 부분이 부족하거나 그런건 절대 아니다.

사실 요 몇년 사이에 Oreilly 사에서 나온 번역책들을 많이 읽어볼 수 있는 기회를 가졌었던 것 같다. 분명 몇년전만 해도 데이터 분석이라고 나온 책들이 어느새 책에 머신러닝/딥러닝 이라는 타이틀을 가지고 나오고 있는데, 그만큼 기술의 발전도 진행되면서, scikit-learn이나 tensorflow같은 라이브러리의 도움을 많이 받을 수 있는 지금에까지 이르렀다. 이럴 때에 직접 다룰 수 있는 실습과 이를 뒷받침하는 이론들이 잘 섞여있는 이 책을 한번 보면 어떨까 싶다. 정말 근래 읽었던 관련 분야 책중에는 가장 괜찮았던 것 같다.

참고할 만한 링크:
 - 원서 github : https://github.com/ageron/handson-ml
   (github 내용을 보니까 최근까지 저자가 계속 업데이트 하고 있는 듯 하다.)
 - 역자 github : https://github.com/rickiepark/handson-ml
   (역자분께서 원서 notebook까지 번역해서 올려주셨다.)

<이 글에 나오는 "핸즈온 머신러닝" 은 한빛미디어의 지원을 받고 이에 대한 리뷰를 작성한 것임을 알려드립니다.>

댓글