[리뷰] 핸즈온 머신러닝(3판)
in Review on Review, Book, 머신러닝, 딥러닝, 분류, 훈련, 모델, Svm, 결정트리, 앙상블, 차원축소, 비지도, 케라스, 텐서플로, 전처리, 비전, Rnn, Cnn, Gan, Rl, 배포
한빛미디어
출판사의"핸즈온 머신러닝(오렐리앙 제롱 저/박해선 역)"
를 읽고 작성한 리뷰입니다.
AI 분야에서 단 한 권의 책만 읽을 수 있다면 주저없이 꼽고 싶은 명작. 드디어 3판 개정판이 발간되었다.
이 책은 참 묘한 책이다. 전체적으로 난이도가 높은 편임에도 부분 부분 읽다보면 의외로 읽기가 편하고 이해가 잘 되는 편이다.
엄밀한 수학적 정의를 다룬다든가 대부분의 논문 이해에 무리가 없을 수준의 깊이가 담겨있는 것은 아니지만 AI 진영에 두루 쓰이는 기술이 체계적으로 망라
되어있다. 이 분야를 과학과 공학으로 나눈다면 과학보다는 공학 중심적인 내용을 담고 있다.
과학도 상당 부분 담겨있지만 과정의 도출보다는 결론을 깔끔하게 정리하는 식으로 기술되어있으며 이를 구현해 내는 것과 응용하는 데 보다 많은 도움을 주는 책이다.
따라서 이 분야의 기술을 숲을 보는 시각으로 두루 섭렵한다든가 프로그래밍 능력이 뛰어난 개발자가 AI 진영의 기술을 담은 서비스를 구현하는 데 많은 도움을 받을 수 있다. 물론 연구 진영에서도 AI분야의 비교적 최신 이론을 빠르게 정리하고 연구의 방향성을 잡는 데에도 큰 도움이 될 것이다.
이 책에는 1000페이지가 넘는 방대한 분량이 수록되어있음에도 어느 정도의 통계학적 혹은 데이터 관련 지식 - 예를 들면 그림으로 배우는 StatQuest 머신러닝 강의 책에 담긴 내용을 잘 숙지하는 정도-을 습득하고 있고, Python 중급 이상의 프로그래밍 실력을 갖춘 독자라면 긴 AI의 여정을 이 책으로 시작할 것을 권하고 싶다.
무언가를 골똘히 연구할 때나 고민하거나 혹은 문제해결을 위해 고심하고 있을 때 우리는 보통 마인드 맵과 같은 도구를 통해 생각을 정리하고 방향성을 잡는다.
이 책은 그런 마인드 맵에서 첫 출발 지점 동그라미의 위치로 적합한 책
이다. 책 한 권으로 AI 진영의 폭넓은 지식을 한 눈에 파악하기에는 이 책보다 뛰어난 책이 없다고 생각한다. 방대한 내용을 담아내고 있음에도 하나하나의 주제는 매우 친절하고 자세하게 수록되어있고 직관적인 시각화를 통해 개념을 깊이있게 이해할 수 있도록 도와준다.
우선 머신러닝 서비스의 전반을 이해
하는데에는 이 책의 1~2장 만으로도 충분하다. 2장의 실습을 진행하며 예측을 위한 머신러닝 모델을 어떤식으로 만들어나가는지 감을 잡는다면 뒤에 이어질 내용을 익혀 특정 데이터, 도메인, 기술, 아이디어, 문제에 심화 적용하기만 하면 되는 셈이다.
실리콘 밸리의 주택 가격을 예측하는 모델 하나를 만들어보는 과정으로 AI 진영에서 활용되는 기술 전반을 이해하기에 부족함이 없다. 더욱이 더 깊이있는 수준의 지식을 습득하는데 상당한 지적 호기심을 제공하여 향후 학습의 강력한 동기부여로 작용하기도 한다. 단 두개 챕터에 수록된 내용이지만 능히 한 권의 책을 낼 수 있을 정도의 분량이기도 하다.
이 책은 출판사의 배려로 3판부터는 2권의 책으로 나뉜다
. 1권은 주로 머신러닝 내용을 다루고 있으며 케라스를 활용하여 간단한 딥러닝을 맛볼 수 있다. 머신러닝 대부분의 지식과 기술은 딥러닝에도 요긴하게 활용되므로 2권을 읽기 전에 충분히 개념을 학습해 두면 좋다.
이번 개정판에는 사이킷런에 추가된 새로운 기능들과 최신 라이브러리가 수록되었지만 1권에 해당하는 머신러닝 진영의 기술은 딥러닝에 비해 훨씬 오랜 기간 연구되었고 변화가 딥러닝 분야에 비해 적기 때문에 2판에 비해 크게 달라진 사항은 없다.
하지만 기술 측면에서 불필요하고 중요하지 않은 내용들이 많이 삭제되어 보다 집중력있게 핵심을 이해하는 데 도움을 주는 방향으로 편집된 것 같고 의외로 실무적으로 중요한 요긴한 팁들이 생략된 경우가 더러 있었는 데 그런 부분들이 알차게 보완된 느낌이다.
2판에서 계속 이어지는 기조 중에 정말 마음에 드는 것은 개인적으로 쉬운 내용 기술과 더불어 애매한 개념을 눈으로 보이게 하는 시각적 자료의 활용
이 인상적이다.
예를 들면 3장에서 다루는 오차 행렬
의 시각화는 볼 때마다 놀랍다. 2차원적인 동적 기억을 필요로하는 개념이라 보는 순간에는 이해가 되어도 기억이 휘발되고 나면 다시 깊이있는 통찰로 로딩하는데 제법 시간이 걸리는 이상한 지식 구조이다. (마치 법률 분야의 if에 따른 리걸 마인드 기억 구조와도 유사하다.)
어떤 책은 예측과 실제의 축을 거꾸로 명시해 많은 혼동을 주는가 하면 오차 행렬 혹은 혼동 행렬이라는 용어 답게 저자들도 혼동된 것인지 오류로 기술된 책들도 은근 많다. 반면 본 도서에는 이 오차 행렬표 내부에 숫자 그림이 들어가 있어 예시를 활용한 명쾌한 이해 및 개념을 잡는 데 도움을 주고 있어 저자의 전달력과 깊이 있는 인사이트에 여러번 감탄했다.
이런 장치는 책을 읽는 내내 여러번 경험할 수 있다. 아래 그림은 경사하강법의 여러 방식을 적용하며 실제 파라미터 공간에 표시된 경로를 시각화
한 것인데 예제를 실습하며 직접 구현해보려고 노력하다보면 말로는 전달하는 데 한계가 있는 경사하강법의 움직임을 눈으로 확인하고 직관적으로 이해하는 데 많은 도움을 받을 수 있다.
소프트맥스 회귀나 결정트리 등 알고리즘 설명 파트도 마찬가지이다. 대충 그렇다는 말 보다는 확실히 그림으로 경계선을 확인하고 파라미터 변수의 조정으로 달라지는 경계선을 눈으로 확인
하는 것이 이 알고리즘을 확실하게 이해하는데 큰 도움이 된다.
하다 못해 통계의 가장 기초적인 성절인 대수의 법칙(큰수의 법칙)이나 차원의 저주
도 눈으로 보여준다. 방대한 분량의 쉽지 않은 책을 때로는 매우 쉽게 만들어주는 묘한 장치들이다.
책에 수록된 코드를 실습하기 쉽게 안배하고 있는 점도 이 책의 뛰어난 장점 중 하나이다. 말로 설명하는 것 이상으로 실제 구현하고 눈으로 확인할 수 있게 도와주는 방식이 매력적이다. 이 책의 역자는 저자의 배려를 한층 업그레이드 하여 더욱 편리하게 실습할 수 있도록 도와주고 있어 인상적이었다. 역자의 깃허브로 들어가 Open in Colab
버튼만 누르면 되니 어지간히 게으른 독자도 실습 핑계를 대긴 어려운 구조이다.
2권부터는 딥러닝의 여정을 떠난다. 보다 저수준의 텐서플로 API를 활용하는 예제들이 등장한다.
특히 CNN, RNN, LSTM의 기본 3모델에서 더욱 확장된 ResNeXt, CSPNet과 같은 다양한 신형 모델
들이 등장한다. 이는 이 책의 또 하나의 매력이기도 하다. 개정판이 나올 때마다 비교적 최신의 선풍적인 인기를 끌었던 새로운 모델들과 기술들이 소개되고 있어 개인적으로 매우 유익했다.
가진 레거시 환경의 변화 대비 AI 진영의 SOTA 지식들은 차고 넘쳐 이젠 따라갈 수 없는 지경에 이르렀다. 가진 역량의 한계로 소소한 변화는 더이상 추적할 수 없게 되었고 집중하는 분야의 SOTA를 파악하고 시스템에 반영하는 것도 무리수였는데 이 책 덕분에 그간 잃어버린 고리, 미씽 링크를 연결할 수 있어 저자에게 많은 감사를 느낀다.
그러면서도 내용은 더욱 풍부해졌다. RNN 모델을 다룰때도 전통적인 통계 진영의 시계열 모델링도 다루고 있어 비교 대조하면서 관련 지식의 깊이를 풍부하게 만드는 데 도움이 되었다.
ARIMA
모델은 전통적으로 오랜 기간 동안 그리고 지금까지도 잘 쓰이는 모델인데 딥러닝 도서 대부분에는 이 부분이 생략되어있어 양 진영의 시너지를 활용하기 부족함이 많았는데 이번 개정판에는 그런 부분도 신경쓰고 있어 더욱 알차게
구성되었다는 느낌을 받을 수 있었다.
한편 이번 개정 3판의 백미는 역시 딥러닝 파트의 커다란 변화인데 허깅페이스의 트랜스포머스
라이브러리나 잡음 제거 확산 확률 모델 DDPM
등 2020년 이후 굵직한 변화를 추적하기에 좋다.
3판이나 개정되면서 1권 영역은 성숙도가 높아졌으니 다음번에는 딥러닝 위주의 2권에 대한 개정판만 나와도 좋겠다는 생각도 든다.
방대한 내용을 한정된 리뷰로 모두 담아내는 것은 보통 무리가 아니었다. 처음엔 챕터별로 다른 책에서 익히기 힘든 내용들을 본 도서는 어떻게 기술하는지에 중점을 두고 리뷰를 작성했다가 폭발하는 분량이 감당이 안되어서 다시 줄여 썼는데 이러니 또 책이 가진 모든 장점을 잘 보여주지 못해서 안타깝다.
개인적으로 2판의 베타리딩에 참여하였기에 더욱 정이 가는 책이고, 이번 3판 역시 참여의 기회가 있었으나 개인적인 좋지 못한 사정으로 인해 참여하지 못해 많이 아쉬웠던 책이기도 하다. 그만큼 더 알찬 리뷰를 정리하고 싶었는데 방대한 규모와 책의 수준이 뛰어나 수준에 걸맞는 리뷰 작성에는 한계가 있다.
하지만 분명한 사실은 AI 분야의 관련 기술을 한 권의 책으로 이 보다 폭넓게 파악하고 가진 레거시에 적용하는데 있어 이보다 도움되는 책은 없을거라 확신한다. 관련 분야의 도서를 벌써 300권은 넘게 읽은 것 같은데 이 만한 책을 찾지 못했기에 더욱 확신한다.