[서평] 파이썬 라이브러리를 활용한 머신러닝
이 책은 기계 학습 전반에 대해 알려준다. 주된 주제는 '사이킷런' 이라는 파이썬 라이브러리를 이용하여 직접 실습을 통해 기계 학습의 결과를 체험할 수 있게 해준다.
유명하신 알파고 사촌 텐서플로우도 아니고 이렇게 이마에 달고 나와도 되나? 하고 알아봤더니 언어별로 갈려있는 플랫폼들 중에서 파이썬 쪽의 골목 대장이란다.
(텐플이나 카페는? = 중간보스... 최종 파멸 보스는 아직 안나왔는데, 인간들이 스스로 만들고 있단다. 그것도 아주 열심히... ㅠㅠ)
머신러닝의 분야가 여러 가지인데, 그 중에서 분류, 인식 알고리즘과 신경망에 대한 내용이 주로 나온다.
1장은 함께 쓰이는 라이브러리 등에 대해서 소개한다.
2, 3장은 지도 학습과 비지도 학습에 대해서 다루는데, 정치가 얼굴 data set 가지고서 질릴 정도로 집요하게 끝장을 본다.
그래서 결국에는 각 성분을 통해서 얼굴의 재구성을 하는 것까지 보여준다. 책 초반에 이런 게 나오면 앞으로는 뭐가 더 나온다는 거냐?
4장은 데이터의 표현 방법의 중요성에 대해서 말하는데, 이 책 중에서 가장 추상적이고, 이론적인 부분이다. 한 두번 봐서는 그 이전과 이후의 내용에 얼마나 중요성을 가지는지 알기가 힘들다. 책의 초점이 어디에 있는 건지, 내 집중력이 떨어진 건지 헷갈리는 경우.
5장은 단순히 알고리즘들을 소개만 하는 것이 아니라, 그것들을 평가해서 개선, 교체할 수 있게 제공하는구나.
6장은 파이프라인은 일반적인 것인가? 다른 라이브러리에서도 동일, 유사한가?
7장은 텍스트 관련에 필요성이 있어서 유독 열심히 읽긴 했는데, 예상했던 내용은 아니었다.
8장 읽으면서 미진하다고 했던 부분은 절반 이상 8장에서 충족되었다.
PDF 버전이 올라와 있다고 그런다. 일이 점점 커지는구나.
요즘은 좋은 블로그 툴과 게시판 기능 들이 많아져서, 자신이 홈페이지를 직접 프로그램이해가면서 개설한 필요성을 굳이 느끼지 못한다.
그러한 거처럼 어떤 부분이 어때서 알고리즘이 적용되고 아니고를 피드백 해줘야 굳이 하지 않아도 되는 것은 안 해도 상관없어진다.
그런데, 책 뒷표지의 문장 하나가 완전 에러다.
"미적분, 선형대수, 확률을 공부하지 않았어도..." 라고 했는데...
정말 제대로 관심없어 그런 쪽에 대해서 건드린 적이 없으면 이런 책 거들떠 보지도 않을 거 같다.
책을 순수하게 잘 따라가면 잘 몰라도, 공부하지 않았어도 활용은 할 수가 있다.
그 말은 맞는데, 왜? 와 어떻게? 가 온전히 충족되지는 않는다.
"지금까지 배웠던 미적분, 선형대수, 확률이 꽃피게 해주는..." 정도의 문장이 더 낫지 않을까.
비지도 학습 - 이게 뭔진 모르지만, 여기에 뭔가 있긴 있다. 정도가 되겠다.
구글이 학습시킨 고양이라는 것도 어떤 특정 표지가 모여서 다른 동물들에 비해서 고양이 일 때에 그 특징을 잘 잡아내어서 고양이라는 것을 학습 인지 했구나 하는 거지. 자기가 알고 있는 것이 정확하게 고양이라는 것을 인간처럼 인식하고 있는 것은 아닐 거라는 얘기.
이게 순 텍스트북이나 픽처북에서 쉽게 설명해주니까 그럴 대에는 박수치면서 이해했다고는 하지만, 포뮬라북이 되면 내용이 정확하게 같은데도 전혀 이해를 못한다. 다시 코드북 정도가 되어서 단계별로 이해할 수 있게 가이드를 해줘야 알 수가 있다.
아주 기초적인 내용은 신경망 첫걸음(한빛미디어, 2016) 같은 책을 통해서 선수 지식을 좀 가지고 있어야 편하다.
여기에서 기본적인 내용들은 패턴인식, 통계학 책의 내용과 같다.
손쉽게 해당 라이브러리와 연결해서 활용할 수 있으니까 좋다.
책에서는 텍스트 분석(7장) 쪽에 대해서 중요하다고 말은 했지만, 분량상 얼굴 분석(2장) 에 비해서 밀린다.
70여 페이지에 비해서 45여 페이지가 할당됐는데,
주 관심사는 텍스트 쪽이었기 때문에 영화 이외에 한 가지의 주제를 더 다뤄서 480p. 짜리 책이 되었다면 더 단단했을 것 같다는 아쉬움이 있었다.
겸사겸사 다른 인공지능 책에서는 어떤 알고리즘들을 어떻게 소개하고 보여주나? 를 함께 살펴봤다.
텍스트/픽처북, 포뮬라북 까지는 있는데, 코드북은 이세돌이 알파고한테 깨지고 난 다음부터 출현하기 시작한다.
텐서플로우, 카페 등 부터 시작하기 때문에 이건 뭐 끝판왕부터 내려오는 느낌이다.
완전 전공자들 이외의 사람들에게는 코드북 말고는 의미가 없다. 실용적 가치가 없기 때문에 인공지능의 겨울이 왔었으므로, 독자에게 실용적으로 어떤 것으로 활용할 수 있다고 알려주는 건 이 쪽에서는 완전 기본 예의. 비연구자인 일반인이 알아서 활용 방법을 찾아서 알고 있다면 이미 일반인이 아닐 것이다.
첫 1회의 학습에는 이 책과 같은 구성이 괜찮다.
In 과 out 이 구분되어 보여지고, 결과 의 모양에 대해서 표현이 되어있으므로, 계속 확인해가면서 진행할 수 있다.
하지만, 그 다음부터는 지친다.
MS 에서 내놓은 cheat sheet 처럼 특정 case 에 대해서는 이런 solution 같은 식으로 연결해놓는 스타일의 cheat-sheet 가 사이킷런 버전으로 있을 것도 같은데, 저자가 그에 대해서 소개해 줬으면... 하는 아쉬움이 남는다.
얼마 전까지 대학 교재 등에서는 코드를 도입했다 하더라도 한 이론서들은 다음과 같은 구조들이었다.
이론 설명만 주구장창 한 후에 장 말미에 설명도 없고, 주석도 없는 코드가 의미없이 나열되어있곤 했다.
그런데,이 책에서는 결과가 하나 보이면 그것은 작은 하나의 입력에 의한 것이다.
그러면서 각각에 대해서 설명을 하니까 설명에 대해서 이해가 되면서도 작은 파라미터들에 대한 내용들은 사이킷런 help 에 있다고 해서 설명이 없이 넘어가면 초짜 아저씨는 알기가 힘들다.
실제로 웹사이트에서 코드들을 가져다가 복사해서 넣어주고 엔터치는 방식으로 해봤는데, 그다지 좋은 방법은 아니다.
직접 쳐가면서 테스트해보고, 응용을 하려면 파일/함수화 해서 각 변화하는 내용들에 대해서 갈무리해야 할 것이다.
읽으면 읽을수록 게슈탈트 붕괴처럼 내가 이렇게 몰랐나 하는 느낌이다. 천천히 시어를 읽듯이 음미하면서 읽어야지 그렇지 않으면 2차로 의미 파악이 잘 안된다.
이미 수집된 data 에 대해서만 처리하고 있다. data 수집 전처리 등에 대해서도 다른 책 또는 자신이 쓴 방법을 소개해줘도 무방할 듯 한데...
진짜 핵심은 이것의 사용처, 머신 러닝의 사용 기획이므로, 다른 부분을 이 책에서 가이드하기에는 월권일 수도 있겠다 싶어서. 아쉬움을 떨친다.
책 한권에 너무 기대가 심했던 것 같기도 하다. 책 자체적으로는 설명한 내용에 대해서는 약속을 잘 지켰다. 아쉬움이 없으려면 약 1200 페이지 정도가 더 들어가줘야 하는데, 아쉬움을 포기하는 게 정답이다.
실습을 하다가 고생한 기억이 나서 별 4개를 줬다가 5개로 다시 올렸다.
기존 python 사용자는 그 쪽에서 헤매지 말고, anaconda 설치 폴더에서 pip 를 실행시켜야 한다.
- 본 리뷰는 "나는 리뷰어다 (한빛미디어)" 이벤트 에서 제공된 책으로 작성되었습니다.