서평 - 실무로 통하는 ML 문제 해결 with 파이썬

 

이 포스팅은 도서 실무로 통하는 ML 문제 해결 with 파이썬에 대한 리뷰를 담고 있습니다.

실무로 통하는 ML 문제 해결 with 파이썬 표지

요약

ML 실무에서 필요한 내용을 망라한 책입니다. 책 표지의 “전처리부터 딥러닝까지, 216개 실용 예제로 익히는 문제 해결 기법” 이라는 표현에 맞게 ML을 실무로 한다면 알아야 할 모든 지식을 망라하고 있습니다. 첫째로 ML을 한다면 꼭 알아야 할 numpy, sklearn, 그리고 pytorch 의 각종 기능에 대한 상세한 설명 및 예제를 제공하고 있습니다. 둘째로 데이터를 읽고 저장하는 것과 텍스트 혹은 이미지 등 데이터 자체를 다루는 방법에 대한 안내가 있습니다. 요리할 때 재료마다 어떻게 손질할지 알아야 하듯이 데이터 종류에 따라 어떻게 다뤄야 하는지 설명이 잘 되어 있습니다. 마지막으로는 훈련된 모델을 저장하고 로딩하여 서빙하는 과정을 설명하고 있습니다.

500 페이지 가량에 이 모든 내용이 알차게 잘 들어가있다는 것이 신기할 정도입니다. 업무를 진행하며 많은 사람들이 사용하는 표준 라이브러리에 어떤 기능이 있는지를 전체적인 관점에서 훑어볼 수 있어서 좋았고, 업무에 적용할 것은 없는지 살펴보는데 큰 도움이 되는 책이라고 생각합니다.

ML 문제 해결

ML 문제 해결이란 아래의 3단계로 요약할 수 있습니다.

  • 데이터를 읽고 가공하여 ML에 사용할 수 있게 준비
  • 주어진 문제에 적합한 모델 훈련 및 튜닝
  • 훈련된 모델을 사용할 수 있도록 서빙

위와 같이 요약하면 굉장히 간단해 보이지만 각 단계별로 수많은 세부적인 내용이 있습니다. 예를 들면 훈련에 사용할 데이터를 모을 때 사용할 포맷과 관리를 위해서는 아래 이미지의 내용 정도는 필수로 고민을 해야 합니다.

데이터 처리

이미지

이 책의 흥미로운 점 중 다른 하나는 이미지 다루기에 대해서도 나온다는 것 입니다. 아래는 이미지를 선명하게 하는 예제입니다. 이미지를 다룰 때 검색을 해보면 종종 돌아가지 않는 코드를 보게 되는데 이 책에 정리된 내용을 활용하면 그러한 시간도 많이 줄일 수 있을 것 같습니다.

import cv2
import numpy as np
from matplotlib import pyplot as plt

image = cv2.imread("images/plane_256x256.jpg", cv2.IMREAD_GRAYSCALE)
kernel = np.array([[0, -1, 0],
                   [-1, 5, -1],
                   [0, -1, 0]])

image_sharp = cv2.filter2D(image, -1, kernel)
plt.imshow(image_sharp, cmap="gray"), plt.axis("off")
plt.show()

numpy

ML을 한다면 numpy는 필수죠. numpy내부 연산은 기본적으로 vectorize 연산입니다. 연산자에 따라 내부적으로 알아서 적용되지만 아래의 예제와 같이 명시적으로 broadcasting을 통하여 vectorize를 할 수 있습니다. 이 책을 읽으며 명시적으로 np.vectorize를 사용할 수 있다는 것을 알게 되었네요.

numpy

서포트 벡터 머신

언젠가 이런 질문을 받은 적이 있습니다.

  • 서포트 벡터 머신의 서포트 벡터가 무엇이지?

놀랍게도 이 책에는 그에 대한 답이 적혀 있습니다.

  • 서포트 벡터 머신은 초평면이 비교적 소수의 샘플에 의해 결정 … 이런 샘플을 서포트 벡터라고 ..

이 책은 예제만 나열한 것이 아니라 기초적인 내용에 대한 설명도 놓치지 않고 있습니다. 그래서 상당히 놀랍습니다.

마무리

실무로 통하는 ML 문제 해결 with 파이썬, 이 책을 통해 여태까지 해왔던 ML에 대한 경험을 전반적으로 한번 정리할 수 있었습니다. 또한 실무에서 사용할 수 있는 몇 가지 팁도 얻을 수 있었습니다. ML을 처음 하신다면 전반적인 사항을 익히는데 도움이 될 수 있을 것이라 생각하며, 이미 실무에 사용하고 계신다면 혹시라도 놓친 부분이 있는지 확인하는데 좋은 책이라 생각합니다. 박해선님은 커뮤니티에서 워낙 유명하셔서 이 책을 읽으며 한국어판에만 있다는 덧붙임 항목을 보면서 역시 박해선님 이라는 말이 절로 나왔습니다. 이 책을 읽고 제가 풀만한 ML 문제는 없는지 다시 한번 살펴봐야겠습니다.

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