본문 바로가기

DATA SCIENCE/Review

Monthly Book Review 05 : 파이썬 라이브러리를 활용한 머신러닝

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=289735220 

 

파이썬 라이브러리를 활용한 머신러닝

사이킷런의 핵심 개발자가 복잡한 수학을 동원하지 않고 실용적으로 머신러닝을 구축하는 모든 단계를 설명한다. 미적분, 선형대수, 확률 이론을 공부하지 않았어도 이 책을 통해 머신러닝을

www.aladin.co.kr

 

1. 이 책을 고른 이유

표지

이 책의 표지에만 해도 AI에 관심을 갖는 사람이라면 흥미가 생길 문구가 무려 두 개나 있다.

첫 번째는 '사이킷런 핵심 개발자가 쓴', 그리고 두 번째는 '사이킷런 1.x' 반영이라는 부분.

인공지능에 대해 공부를 하는 학생이든, 현업에 종사하고 있는 실무자든 저 두 문구를 보고 매력을 느끼지 않을 수 있을까싶다.

 


 

2. 간단한 소개

한 줄로 설명하자면 다음과 같다.

Scikit-Learn과 mglearn을 이용한 머신러닝 전반에 걸친 이해와 실습

조금 더 자세히 설명하자면, 머신러닝에 대해 모르는 사람들조차 첫 장을 넘기기 시작하는 것만으로 머신러닝의 전주기에 대해 이해하고, 왜 그러한 과정이 필요한지, 그리고 어떤 효과를 거둘 수 있는지를 이해할 수 있도록 구성되어 있다. 

이 과정에서 사이킷런의 버전 업데이트로 인해 추가된 기능이라거나, 하위 패키지들에 대해 설명하고 있으며 이러한 여러 알고리즘에 대해 수식을 제시하기는 하나, 이를 수학적으로 이해하라기보다는 인과(Input & Output)에 대해 설명함으로써 각각의 라이브러리가 어떤 기능을 가지고 있고, 어떤 의미를 지니고 있는지를 제시한다.

 


 

3. 이 책의 장/단점

8p 이 책에 대하여

위에서 보다시피 이 책은 기본적으로 머신러닝과 인공지능에 대한 사전 지식이 필요 없는 입문서다. 그 위에서는 실제 문제에 대한 해법을 찾는 머신러닝 기술자를 위해 썼다고 되어 있지만, 솔직히 말해 현직 실무자로서 그리 동의할 수는 없는 부분이다.

이 책은 명백하게 입문서용이며, 머신러닝 전주기에 대해 각 과정의 당위성, 가치를 중심으로 알고리즘 이해를 위한 mglearn의 사용, sklearn을 통한 실전적인 사용을 위한 책이다. 다만 실무자라고 한들, 하나의 라이브러리에 대해 모든 것을 알고 있을 수는 없다. 설령 알고 있었다하더라도 버전 업데이트로 인한 변경에 자유로울 수도 없다.

특히 버전이 0.x에서 1.x로 바뀌는 것은 생각보다 엄청나게 큰 변화이기에 이러한 부분에 관심을 가질 수 있다. 하지만 아쉽게도 이 서적은 머신러닝의 전주기에 사용할 수 있는 기본적인 패키지를 소개한 구판(개정 전 버전)에 대해 버전 업데이트가 된 내용을 추가로 서술한 것이기에 1.x 버전에 대해 좀 더 자세히 알고자 한다면 공식 문서를 참조하는 편이 좋을 것 같다.

 

정리하면 이 책은 철저하게 입문자용이며, 입문자용으로서는 무척이나 추천할만하다.

내가 처음 인공지능을 학습할 때에만 하더라도 적어도 세 권 이상의 책을 통해서만이(어쩌면 그 이상으로 많은 책을 통해서) 온전하게 머신러닝/딥러닝의 전주기에 대한 학습이 가능했다. 그 과정조차도 그저 책에서 소개된 내용을 단순히 복사 붙여넣기하는 수준에 불과했고, 각각의 패키지 안에 무슨 기능이 있는지 혹은 그저 따라치며 사용한 코드가 어떤 알고리즘이며 어떤 의미가 있고, 어떻게 변경/개선할 수 있는지 아는 것은 무척이나 어려웠다. 

캐글에 올려진 여러 사람들의 코드를 역으로 해석하고, 이를 공부하면서 배워야 했고 그렇게 몇 번쯤 클론 코딩이나 다름없는 머신러닝/딥러닝 프로젝트를 반복한 뒤에야 10%쯤 내 코드를 집어넣을 수 있었다. 심지어 이때에도 머신러닝 전주기에 대한 개념은 없어 간혹 사소하지만 아주 중요한 실수를 저지르곤 했다.

 

그런 의미에서 파이썬에 대해 어느정도 다룰 줄 알고, 머신러닝에 대해 관심을 가지고 있다면 이 책을 추천한다.

이전에 머신러닝/딥러닝을 처음 배우는 이들에게 가장 추천할만한 도서로 '이토록 쉬운 머신러닝&딥러닝 입문'을 추천한 적이 있는데, 이 책도 그 반열에 끼워넣을만한 책으로 생각된다.

 

 


 

4. 이 책의 특징

위에서 이 책을 입문자에게 추천할 두 권의 책 중 하나로 선정했는데, 엄밀히 말해 두 책은 성격이 다르다. 이전에 추천한 '이토록 쉬운 머신러닝&딥러닝 입문'이라는 책이 아무래도 머신러닝보다는 딥러닝에 초점이 맞춰져 있고, 전주기에 걸친 파이토치 기반의 코드 구현에 대해 자세히 설명함으로써 [딥러닝 & Pytorch]에 집중한다면, 이 '파이썬 라이브러리를 활용한 머신러닝'의 경우 sklearn과 mglearn을 바탕으로 머신러닝에 대해 중점을 두고 있으며, 알고리즘에 대한 수학적 이해없이 이를 제대로 활용하는 법을 가르침으로써 [머신러닝 & Scikit-Learn]에 더 집중하고 있다.

p.128 거의 한 페이지의 반을 차지하는 옮긴이분의 주석

또한 이 책이 개정판이 나오는 과정에서 옮긴이로 참여하신 분의 주석이 아주 유용하다 보여진다. 일반적으로 주석은 특정 주장에 대한 출처나 참고할만한 것들을 간단히 정리하는 것에 그친반면 이 책은 간혹 한 페이지의 20% 정도는 차지할 정도로 옮긴이의 주석이 많다. 그리고 그 많은 주석들이 아주 유용하다.

이 주석들은 각 알고리즘에 대한 실제 분석, 개정 버전의 유무와 그로 인한 변화, 혹은 책에서 설명하지 않은 실무적 내용이나 실용적 관점에서의 평가를 제시한다. 때문에 이 책을 읽는 이들에게 본문만큼이나, 때로는 본문 이상으로 옮긴이의 주석을 꼼꼼하게 살펴보고 넘어갈 것을 추천한다.

 

 

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."