hands_on_machine_learning-01

작년부터 기다려왔던 핸즈온 머신러닝 2판이 번역되었다는 소식을 듣고 기대하고 있었다. 이전에 1판을 읽고 2판 원서를 가지고 있는데, 아무래도 원서는 보기가 불편했었다. 그래서 대략 1000 페이지가 되는 엑박에도 불구하고 열심히 2판을 읽어보기로 결심했었다.

책은 1판과 동일하게 번역이 깔끔하게 잘 되어 있다. 그래서 읽는데 번역투로 인해 불편함을 겪는다거나 하는 경우는 거의 없었다. 또한 이번 책은 컬러로 되어 있어서 그런지 시각화 그래프가 눈에 잘 들어왔다. 1판과 다른 점은 1장(머신러닝)에서는 “비지도 학습” 이 추가되었으며 2장(딥러닝) 에서는 전처리, 대규모 모델 훈련방법 등 여러가지가 추가되었다. 단순한게 생각하면 1판 내용에 더 많은 것들이 추가되었다고 생각하면 좋을 듯 싶다.

머신러닝 입문서긴 하지만 아예 파이썬을 모르고 실습하는 것은 불가능하다. numpy, pandas, matplotlib 는 따로 설명하지 않기 때문에 이 부분을 미리 알고서 봐야 한다. 아무래도 핸즈온 머신러닝 자체가 이론에만 치중해서 설명하기 보다는 코드와 함께 돌아가는 것을 함께 보면서 설명하기 때문에 코딩에 대한 아무런 지식이 없을 경우 읽어나가기 힘들 수도 있다. 물론 라이브러리 마스터가 되어서 볼 필요는 없다. 딱, 이 코드가 뭘 설명하는지 읽을 수 있으면 된다.

명성에 맞게 책 내용은 정말 마음에 들었다. 정말 깊게 들어가서 입문하는 사람이 어렵지 않게 쓰여 있어 전문적으로 데이터 분석 업무를 맡고 있지 않은 사람이 취미로 읽어보기에 딱 알맞다. 그래서 처음 데이터 분석에 입문하고 싶은 사람들에게 매우 추천하고 싶다. 또한 작성자처럼 이전에 공부했었지만 이후에 잊어버려서 다시한번 상기시켜보고 싶은 사람들도 읽어보면 좋을 듯 싶다.

다만 핸즈온 머신러닝 특성상 이론에 대해서 깊게 파고들거나 하지 않는다. 혹은 뒤에서 다시 자세히 설명해주곤 한다. 처음 읽는 사람들에게는 조금 이해가 안가는 부분이 있을 수 있는데 이 부분은 건너뛰기를 바란다. 개인적으로도 일단 모든 이론을 다 알고 사용하는 것보단, 처음에는 전체적으로 흐름을 되짚어보고 이해 안갔던 부분을 복습하고 찾아보면서 익히는 것이 좋은 공부법이라고 생각하고 있다.

결론적으로 만약 이 책을 두세번정도 정독해본 독자라면 머신러닝과 딥러닝에 대해서 전체적인 흐름을 이해할 수 있는 수준이 될 수 있지 않을까 싶다. 그 후에 더 자세하게 공부하고 싶다면 그 분야를 심층적으로 파보는 것을 추천한다.

hands_on_machine_learning-02

책에서는 우선 머신러닝이 무엇인지 알려주고, 머신러닝 프로젝트를 진행할 때 어떤 방식으로 진행되는지 알려준다. 사실 통계에 대한 지식이 이 부분에 밀집되어 있어 통계에 대한 지식을 잊어버린 분이라면 이 파트를 한번 훝어보길 바란다. 또한 딥러닝, 머신러닝 기술에 대해서만 집중을 하는 사람들이 많은데 이 파트를 읽으면서 어떤 목적을 가지고 기술을 쓸 것인지를 생각하면서 읽으면 어떨까 싶다.

그 후에는 머신러닝 알고리즘에 대해서 설명하기 시작한다 그러면서 다양한 알고리즘에 대해서 알려준다. 우선 일반적인 회귀분석으로 시작하여 로지스틱회귀, 서포트 벡터 머신, 트리, 앙상블, 차원축소에 대해서 설명해준다. 파트파트가 짧지만 함축적으로 많은 내용을 담고 있기 때문에 시간은 걸리겠지만 이해하면서 읽기에는 충분하다. 머신러닝 마지막장에는 이번에 추가된 비지도 학습에 대해서 알려준다. 사실 이전 파트에서 비지도 학습을 알려주지만 이 장은 클러스터링에 대한 이야기라 생각하면 될 것 같다.

2장부터는 드디어 딥러닝에 대한 이야기가 나온다. 작년에 텐서플로우가 2.X 으로 바뀌면서 이전 버전과는 달리 2.X 버전을 가지고 설명한다. 즉, 케라스에 대해서 설명해준다. 그래서 그런지 초반에 텐서플로우에 대한 내용이 추가되었다. 또한 전처리 파트가 하나의 장으로 추가된 점은 인산적이였다. 그 후부터는 이제 딥 뉴럴 네트워크 알고리즘에 대해서 하나하나 설명해준다. ANN, CNN, RNN, GAN 을 포함해서 강화학습까지 진행하면서 전체적인 딥러닝의 알고리즘에 대해 배워 볼 수 있다.

hands_on_machine_learning-03

이 책을 읽으면서 이전부터 지금까지 항상 관심 가지고 있는 머신러닝에 대해서 다시 한번 공부해볼 수 있는 좋은 기회를 가졌던 것 같다. 작성자처럼 전문분야는 아닌 사람들도 이 책으로 한번쯤 공부하면서 미래를 대비해보는 건 어떨까 싶다. 나중에 시간이 난다면 다시 정독할 수 있는 기회가 있었으면 좋겠다.

마지막으로 혹시 어떤 책으로 머신러닝을 입문할까 고민하는 분들에게 일단 이 책을 먼저 권하고 싶다. 또한 레퍼런스 용으로 책 한권 구매하고 싶은 사람도 이 책을 추천한다. 이 책은 무려 1000 페이지라서 왠만한 내용들은 쉽게 찾아볼 수 있을 것이다.