티스토리 뷰


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


 벌써 두번째 도서다.

 이번에 리뷰할 책은 <머신러닝 파워드 애플리케이션>으로, 표지에서 기술하고 있듯 머신러닝 관련된 아이디어부터 완성된 제품까지의 과정을 '머신러닝 보조 글쓰기 애플리케이션'이라는 구체적인 사례를 통해서 그리고 있는 책이다.

 

[PART I 올바른 머신러닝 접근 방법 모색]

CHAPTER 1 제품의 목표를 머신러닝 문제로 표현하기

  • 머신러닝을 적용하는 문제에 대한 판단 기준과, 머신러닝 카테고리 및 용어를 소개하고, 데이터 타입에 따른 설명 및 대응을 설명한다. 마지막으로 구체적인 예시인 머신러닝 보조 글쓰기 애플리케이션을 통해 어떻게 설계할 것이며 설계시 고려할 사항들을 소개하는 챕터다.

CHAPTER 2 계획 수립하기

  • 성공 측정하기 -> 작업 범위와 문제점 예상하기 -> 머신러닝 에디터 계획하기 -> 규칙적인 향상 방법: 간단하게 시작하기의 순서로 전개되는 챕터다. 성공 측정하기에서는 먼저 시작전에 성능을 평가하는 지표를 소개한다. 이러한 성능에는 제품을 성공을 반영하는 비즈니스 성능이 있고, 두번째로 모델 성능이 있는데 모델 성능의 경우에는 제품에 따라서 측정하는 방법이 다양하다. 다음으로는 최신성(모델을 훈련한 데이터에 최근의 데이터가 포함되어 있는가?), 모델의 속도등이 있다.
  • 작업 범위와 문제점 예상하기에서는 문제를 어떻게 해결할 것인가에 대한 다양한 방법들을 소개하는데 도메인 전문 지식 활용하기, 거인의 어깨 위에 올라서기 - 오픈데이터, 오픈소스코드 사용- 등의 방안을 제시한다.
  • 머신러닝 에디터 계획하기에서는 초기 계획 단계에서 고려할 부분과, 다음은 간단한 모델로 시작하기를 당부하는데 이는 완벽한 모델을 만들기 보다는 최대한 모델을 많이 실패시켜보는 것이 성능을 빠르게 높이는 방법이기 때문이다.
  • 규칙적인 향상방법: 간단하게 시작하기 에서는 부제에 걸맞게 간단한 파이프라인으로 어떻게 시작할 것인가를 다루고 있다. 

[PART II 초기 프로토타입 제작]

CHAPTER 3 엔드투엔드 파이프라인 만들기

  • 가장 간단한 프로토타입-> 머신러닝 에디터 프로토타입-> 워크플로 테스트하기-> 머신러닝 에디터 프로토타입 평가로 이루어진 챕터다. 프로토타입 단계에서는 훈련 과정을 무시하고, 대신 간단한 규칙을 활용하는 것을 보여준다. 대부분의 머신러닝 프로젝트는 간단한 규칙으로 출발하게 되어있다. 여기서 사용하는 규칙은 좋은 질문과 나쁜 질문에 대한 몇가지 규칙을 만들고 이 규칙의 결과를 사용자에게 보여주는 것이다. 이 다음 워크플로 테스트하기에서 해당 모델을 모델과 사용자 관점에서 평가해본다. 

CHAPTER 4 초기 데이터셋 준비하기

  • 반복적인 데이터셋 -> 첫 번째 데이터셋 탐색하기 -> 레이블링으로 데이터 트렌드 찾기 -> 데이터를 활용한 특성 생성과 모델링의 순서로 전개되는 챕터다.
  • 반복적인 데이터셋: 데이터셋 자체가 모델 성공의 핵심 요소이기 때문에 데이터수집, 준비, 레이블링이 반본적이어야하고 이를 통해 데이터셋을 향상시켜야한다고 하고 있다.
  • 첫 번째 데이터셋 탐색하기: 데이터셋도 간단하게 시작해서 발전시켜야한다고 하고 있다. 쉽게 얻을수있는 초기 데이터셋을 준비한 다음, 여기서 통찰을 얻거나, 이를 통해 특성을 만들도록 한다. 다음으로 데이터셋의 다양한 측면을 다룰 기준을 살펴보는데 데이터 포맷/품질/양과 분포 등의 보편적인 기준에 대해서 알아본다. 
  • 레이블링으로 데이터 트렌드 찾기: 데이터를 클러스터로 나누고 각 클러스터에서 공통점을 추출하는 방식으로, 모델 입장에서 어떤 구조를 선택할지 예상해보는 챕터다. 데이터 형식에 따른 벡터화, 차원 축소, 군집 등의 방식을 실제 예시에 적용해서 살펴본다. 
  • 데이터를 활용한 특성 생성과 모델링의 순서: 데이터에서 찾은 트렌드를 사용해서 특성을 생성하고 모델링한다. 

[PART III 모델 반복]

CHAPTER 5 모델 훈련과 평가

  • 5.1 가장 간단하고 적절한 모델:  간단한 모델은 구현이 빠르며 이해가 쉽고 배포할 수 있어야하는 특성을 지니는데 이 특성들에 대해서 설명한다. 그 다음 패턴을 통해 어떤 모델을 구현할지 정하는 부분을 다루고, 데이터 분할, 다음으로 성능을 평가해본다.
  • 5.2 모델 평가: 정확도를 넘어서: 유용하게 사용되는 몇가지 모델 평가방법을 다룬다. 데이터와 예측 대조하기 / 오차행렬 / ROC 곡선 / 보정 곡선 / 오차를 위한 차원 축소 / top-K 방법등을 소개하고 실제로 어떻게 행하는지에 대한 방법을 소개한다.
  • 5.3 특성 중요도 평가: 모델의 특성 중요도를 간단히 만드는 사례들을 설명한다.

CHAPTER 6 머신러닝 문제 디버깅

- 전통적인 소프트웨어 모범 사례와 달리 머신러닝의 특성에 특화된 사례를 소개한다. 데이터 흐름 - 훈련 - 일반화의 순서로 디버깅한다.

  • 6.2 데이터 흐름 디버깅: 시각화와 테스트: 데이터셋에서 작은 부분 집합을 선택해 파이프라인에 통과시키는 과정을 보며 동작을 확인한다.
  • 6.3 훈련 디버깅: 모델 학습하기: 전체 훈련 데이터를 모델이 학습할 수 있도록 만드는 단계에 대한 디버깅이다. 작업 복잡도, 최적화 문제 등을 통해 모델이 훈련세트를 학습하지 못하는 이유를 디버깅한다.
  • 6.4 일반화 디버깅: 유용한 모델 만들기: 이전에 사용되지 않은 데이터에서도 잘 동작하는 모델을 만드는 파트.

CHAPTER 7 분류기를 사용한 글쓰기 추천

- 머신러닝 에디터 프로젝트상에서 7.1 모델로 추천 만들기 -> 7.2 모델 비교하기 -> 7.3 추천 생성하기를 수행하는 과정을 다룬 파트다. 추천 만들기에선 모델 없이 할수 있는 것 / 특성 통계 사용하기 등의 방법을 소개한다. 다음으로 모델 비교하기 에서는 핵심 측정 지표를 사용해서 모델들을 평가하고, 마지막으로 이를 바탕으로 어떻게 추천을 생성하는지를 다룬다.

 

[PART IV 배포와 모니터링]

CHAPTER 8 모델 배포 시 고려 사항

- 모델을 배포할때 고려해야할 사항으로 8.1 데이터 고려 사항,  8.2 모델링 고려 사항을 다루는 챕터다. 데이터 고려 사항은 데이터 소유권과 데이터 저장에 관한 책임에 대한 파트고, 모델링 고려 사항은 모델이 원치 않는 방향으로 편향될 경우를 최소화하기 위해 고려해야할 사항을 다룬다.
CHAPTER 9 배포 방식 선택

- 다양한 배포 방식에서 9.1 서버 측 배포, 9.2 클라이언트 측 배포, 9.3 연합 학습: 하이브리드 방법을 다루고, 각 방식의 장단점을 다루는 파트다.
CHAPTER 10 모델 안전장치 만들기

- 아무리 좋은 모델이라도 데이터에 따라선 실패할 수도 있는데 이런 실패에 대비한 안전장치를 만드는 방법에 대해서 다루는 파트다. 10.1 실패를 대비하는 설계 - 10.2 성능 설계 - 10.3 피드백 요청의 순서로 전개된다.
CHAPTER 11 모니터링과 모델 업데이트

- 머신러닝 모델을 모니터링할때 유념해야하는 요소를 설명하는 파트다. 11.1 모니터링의 역할 - 11.2 모니터링 대상 선택 - 11.3 머신러닝을 위한 CI/CD의 순서로 전개된다.

- AI관련 스타트업에서 백엔드 개발자로 일하면서 너무 ML 모델에 무지하고, 이로 인해 모델을 어떻게 서빙해야할지에 대해서 궁금한 부분이 많았다. 이 책을 신청했던 것도 이런 작업 환경에서 기인한 것인데 전반적으로 머신러닝 프로젝트가 어떻게 설계되는지에 대해서 알 수 있었다. 개인적으로 가장 유용했던 파트는 챕터 9 배포 방식 선택인데 현재는 서버측 배포를 주로 활용하고 있는데 다른 방식에 대해서도 참고가 되었다. 
 

반응형
댓글