티스토리 뷰

<해당 포스트에서 다루고 있는 "파이썬 라이브러리를 활용한 머신러닝" 책은 한빛미디어로부터 지원을 받고 이에 대한 서평을 쓴 것임을 알려드립니다>

 SNS나 주변 뉴스만 보더라도 알겠지만, 최근의 기술 트렌드는 머신러닝, 딥러닝 이런 것들이다. 우리가 알고있는 세계적인 기업들의 기술의 발전 방향도 이런 부분을 중점적으로 다루고 있다. 사실 개인적으로 봤을 때도 정말 놀라운 기술 발전이 아닌가 싶다. 과거 같으면 사람이 수동적으로 했어야 했던 일들을 이런 기술을 적용시킴으로써 자동화할 경우, 노동력도 절약할 수 있고, 사람이 할 수 있는 일을 대체할 수 있다고 생각하면 정말 놀랍고 편한 세상이 될것 같다. 

 그래서 주변에서 보면 정말 많은 사람들이 이에 대해 관심을 가지고 공부하고 있는 것들이 보인다. 나도 주변에서 활용할 수 있는 강의나 자료들을 통해서 계속 공부하고 있다. 최근에 Udacity에서 진행하고 있는 Machine Learning NanoDegree 프로그램을 신청해서 듣고 있었고, 마침 공부하는 데 참고가 될 수 있는 책을 받고 읽어보았다. 그래서 이에 대한 서평을 짧게 써보고자 한다.

 이 책은 딱 책 제목으로도 나와있는 것과 같이 Python Library를 활용해서 우리 주변에서 다뤄질 수 있는 예제들을 직접 다뤄보는 실무 입문서이다. 그 중에서도 많이 사용되는 scikit-learn 패키지를 주로 활용하고, 해당 패키지에서 제공하는 데이터셋을 기반으로 책의 내용이 진행된다.
 사실 처음 책을 마주했을 때는 "개념서가 이렇게 얇아도 되는건가" 싶을 정도로 책이 그렇게 두껍지 않다. 그도 그럴것이 보통 Python을 이용한 머신러닝을 다룰 때, 꼭 빠지지않고 등장하는 파트가 Python 문법에 대한 설명과 Data를 handling할 수 있는 Numpy나 Pandas같은 package에 대한 설명인데, 이 책은 그런 주변 툴에 대한 내용은 싹 빼고, 딱 머신러닝에 국한된 내용과 이를 코드로 설명한 내용만 언급되어 있다. 아마 처음 Python을 다루는 사람이라면 이 책을 읽을 때 조금 어려움을 겪을 수도 있겠지만, 어느정도 Python도 익숙하고 당장이라도 scikit-learn package을 이용해 머신러닝 예제를 경험하고 싶은 사람에게는 정말 딱인 책이다. 참고로 책의 소개 부분에도 이렇게 언급되어 있는 부분이 있다.

 "미적분, 선형대수, 확률을 공부하지 않았어도 이 책으로 머신러닝을 사용할 수 있게 되기를 바랍니다."

 이렇게 언급된 바와 같이 책의 어디를 읽어봐도 복잡한 수식이나 알고리즘의 내부를 소개한 내용이 하나도 없다. 그 대신 Line-by-Line으로 설명되어 있는 코드와 이에 대한 output을 matplotlib으로 뽑아낸 그래프들로 구성되어 있어, 직접 해보지 않더라도 수행한 알고리즘의 원리와 그게 어떻게 나오게 되었는지에 대해서 잘 이해할 수 있었다. 물론 이런 실무 입문서의 특성상 직접 해보면서 경험하며 배우는 부분이 크긴 하지만, 이 책은 그게 힘들더라도 output을 통한 분석을 통해 적어도 원리를 느낄 수 있게끔 해준다. 다만 책 서문에도 잠깐 나와있는 내용이긴 하지만, 이 책은 알고리즘을 설명하는 책이 아니다. 그렇기 때문에 적용한 알고리즘에 대한 설명이 상대적으로 부족하다고 느낄 수 있다. 그렇기 때문에 원리도 같이 이해하고자 하는 사람이라면, 이 책을 실무 입문서로 읽되, Bishop의 Pattern Recognition and Machine Learning 같은 책을 base로 깔고 읽어야 한다. 책의 구성이나 장수의 제한때문에 어쩔수 없는 부분이지만, 상대적으로 빈약한 알고리즘 설명은 눈에 띈다.

 참고로 이 책은 본래 Introduction to Machine Learning In Python 을 번역한 책인데, 한국판으로 번역되면서 위와 같이 영화 리뷰 분석 예제가 추가되었다. 물론 해당 예제가 큰 비중을 차지하는 것은 아니지만, 이런식으로 원서에서 다룬 내용을 응용한 예제가 포함되어 있다는게 신기했다.(보통 일반적인 번역본은 그냥 원서 내용만 번역해오는데 그쳤다면, 역자 분께서 이러 부분까지 신경쓰신게 참 쉽지 않았을 듯하다.)

 2년전쯤 읽었던 책을 찾다보니 동 출판사에서 출판된 "파이썬 라이브러리를 활용한 데이터 분석" 이라는 책도 가지고 있었다. 사실 "파이썬 라이브러리를 활용한 머신러닝" 책을 다 읽고 돌이켜보면, 위의 책과 병행해서 보면 좋을거 같다는 생각이 들었다. 물론 데이터 분석 책은 머신러닝 내용을 담고 있다기 보다는 앞에서 잠깐 소개한 Numpy와 Pandas 패키지를 통해 분석및 시각화에 활용하는 방법을 언급한 책인데, Scikit-learn도 만능이 아닌 만큼 Numpy와 Pandas 사용방법은 어느정도 숙지해야 한다고 본다. 이 책도 예제가 많이 포함된 책인 만큼 뭔가 Python을 통해서 머신러닝의 전반 내용을 다루는 데 있어 큰 도움이 될거라고 생각한다.

 간단하게 책을 읽고 난 후의 느낌에 대해서 언급해보았다. 이 책을 읽다보면, 그리고 책에 나와있는 코드를 하나하나 실행해보면 우리가 그냥 신문으로만 봐왔던 머신러닝의 결과물을 직접 체험할 수 있고, 그만큼 실무에 적용할 수 있는 가능성을 넓혀준다. 그런 의미에서 학습자의 경험을 확장시킬 수 있는 실무서에 가깝다고 평하고 싶다. 다만 원론적인 내용과 수학적인 내용을 요구하는 독자에게는 뭔가 부족함이 느껴질 수 있는 부분들이 다소 있다. 이런 경우는 주변에서 흔히 Bible이라고 언급되는 책을 기반으로 같이 따라가다 보면 조금더 얻을 수 있는 부분이 크지 않을까 생각한다. (참고로 책 마지막 장을 보면, 다 읽고 난후 실력을 향상시키기 위해 필요한 자료나 책들이 소개되어 있으니 참고하면 좋을 듯 하다) 말이나 글로 표현하다 보니 이 책이 가진 장점을 다 표현하지 못했지만, 한번 실무에서 적용할 수 있는 머신러닝에 발을 담그고자 하는 사람에게는 추천해주고 싶다.

댓글