메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

머신러닝 파워드 애플리케이션

아이디어에서부터 완성된 제품까지, 강력한 머신러닝 애플리케이션 구축 과정 배우기

한빛미디어

번역서

판매중

  • 저자 : 에마뉘엘 아메장
  • 번역 : 박해선
  • 출간 : 2021-09-06
  • 페이지 : 304 쪽
  • ISBN : 9791162244692
  • 물류코드 :10469
  • 초급 초중급 중급 중고급 고급
4.8점 (34명)
좋아요 : 15

아이디어가 현실이 되는, 나만의 머신러닝 애플리케이션 구현하기

 

머신러닝 기반 애플리케이션을 설계, 구축, 배포하는 과정에 필요한 모든 기술을 설명하는 책이다. 초기 아이디어가 제품으로 개발되기까지의 과정을 머신러닝 에디터 예제 프로젝트를 통해 순서대로 배운다. 데이터 과학자, 소프트웨어 엔지니어, 제품 관리자가 머신러닝 애플리케이션을 단계별로 구현하는 데 필요한 도구와 실무에서 맞닥뜨리게 되는 도전 과제와 모범 사례를 살펴본다. 유용한 코드와 친절한 그림, 업계 리더와의 인터뷰를 통해 실용적인 머신러닝 개념을 터득해 본인만의 머신러닝 애플리케이션을 자신 있게 구현해보자.

 

 

대상 독자

  • 프로그래밍 경험과 머신러닝 기초 지식을 가진 누구나
  • 데이터 과학자, 머신러닝 엔지니어로 현업에 종사하는 개발자
  • 코딩은 모르지만 데이터 과학자와 함께 일해야 하는 직군

 

주요 내용

  • 제품의 목표를 정의하고 머신러닝 문제를 설정합니다.
  • 첫 번째 엔드투엔드 파이프라인을 빠르게 만들어 초기 데이터셋을 획득합니다.
  • 머신러닝 모델을 훈련, 평가하고 성능 병목을 해결합니다.
  • 제품 환경에 모델을 배포하고 모니터링합니다.

 

부별 요약

  • 1부: 아이디어를 머신러닝 문제로 표현하고 성능을 측정하는 방법을 배워 초기 계획을 세웁니다.
  • 2부: 첫 번째 파이프라인을 만들고, 초기 데이터셋을 탐색하고 시각화하는 법을 배웁니다.
  • 3부: 목표를 달성할 때까지 모델을 향상하는 방법을 살펴봅니다. 
  • 4부: 모델 배포 시 고려해야 할 부분과 배포 방식, 모니터링 전략을 다룹니다.

 

추천사

머신러닝에서 가장 어려운 부분인 문제 정의, 모델 디버깅, 배포를 건너뛰는 책은 너무나 많습니다. 하지만 이 책은 이런 문제에 초점을 맞춰 이야기를 풀어갑니다. 이 책을 읽으면 아이디어에 불과했던 프로젝트를 큰 영향을 발휘하는 애플리케이션으로 만들 수 있습니다.

_알렉산더 구드, Intuit 데이터 과학자

 

머신러닝 모델을 도입하는 방법, 잘못되기 쉬운 부분과 특별히 주의해야 할 사항에 대한 실용적인 조언을 찾고 있다면 바로 이 책이 답입니다. 10년 전에 이 책을 읽었더라면, 교훈을 찾아 헤매던 시간을 단축할 수 있었을 겁니다.

_루카스 텐서, 트위치 ML 수석 매니저

 

상세이미지700_머신러닝 파워드 애플리케이션.jpg

에마뉘엘 아메장 저자

에마뉘엘 아메장

수년간 머신러닝 기반 제품을 만들었고, 현재는 스트라이프(Stripe)에서 머신러닝 엔지니어링을 담당하고 있습니다. 그전에 인사이트 펠로의 AI 책임자로 150개 이상의 머신러닝 프로젝트를 이끌었습니다. 집카(Zipcar)의 데이터 과학자로 온디맨드 예측과 머신러닝 모델을 제품 환경에 배포하는 것을 돕는 프레임워크와 서비스를 만들었습니다. 파리쉬드(Paris-Sud) 대학교에서 AI 석사 학위를 받았고 동 대학교 대학원에서 엔지니어링 석사 학위를 받았습니다. ESCP에서 경영학 석사 학위를 받아 머신러닝과 비즈니스를 아우르는 배경지식을 가지고 있습니다.

박해선 역자

박해선

기계공학을 전공했지만 졸업 후엔 줄곧 코드를 읽고 쓰는 일을 했습니다. 텐서 플로우 블로그(tensorflow.blog)를 운영하고 있고, 머신러닝과 딥러닝에 관한 책을 집필하고 번역하면서 소프트웨어와 과학의 경계를 흥미롭게 탐험하고 있습니다.

『인공지능 전문가가 알려 주는 챗GPT로 대화하는 기술』(한빛미디어, 2023), 『혼자 공부하는 데이터 분석 with 파이썬』(한빛미디어, 2023), 『혼자 공부하는 머신러닝+딥러닝』(한빛미디어, 2020), 『Do it! 딥러닝 입문』(이지스퍼블리싱, 2019)을 집필했습니다.

『핸즈온 머신러닝(3판)』(한빛미디어, 2023), 『코딩 뇌를 깨우는 파이썬』(한빛미디어, 2023), 『트랜스포머를 활용한 자연어 처리』(한빛미디어, 2022), 『케라스 창시자에게 배우는 딥러닝 개정 2판』(길벗, 2022), 『개발자를 위한 머신러닝&딥러닝』(한빛미디어, 2022), 『XGBoost와 사이킷런을 활용한 그레이디언트 부스팅』(한빛미디어, 2022), 『구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js』(길벗, 2022), 『파이썬 라이브러리를 활용한 머신러닝(번역개정2판)』(한빛미디어, 2022), 『머신러닝 파워드 애플리케이션』(한빛미디어, 2021), 『파이토치로 배우는 자연어 처리』(한빛미디어, 2021), 『머신 러닝 교과서 with 파이썬, 사이킷런, 텐서플로(개정3판)』(길벗, 2021), 『딥러닝 일러스트레이티드』(시그마프레스, 2021), 『GAN 인 액션』(한빛미디어, 2020)을 포함하여 여러 권의 책을 우리말로 옮겼습니다.

 

 

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


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

1.1 어떤 작업이 가능한지 예상하기

1.2 머신러닝 에디터 설계

1.3 모니카 로가티: 머신러닝 프로젝트의 우선순위 지정하기

1.4 마치며

 

CHAPTER 2 계획 수립하기

2.1 성공 측정하기

2.2 작업 범위와 문제점 예상하기

2.3 머신러닝 에디터 계획하기

2.4 규칙적인 향상 방법: 간단하게 시작하기

2.5 마치며

 

 

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


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

3.1 가장 간단한 프로토타입

3.2 머신러닝 에디터 프로토타입

3.3 워크플로 테스트하기

3.4 머신러닝 에디터 프로토타입 평가

4.5 마치며

 

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

4.1 반복적인 데이터셋

4.2 첫 번째 데이터셋 탐색하기

4.3 레이블링으로 데이터 트렌드 찾기

4.4 데이터를 활용한 특성 생성과 모델링

4.5 로버트 먼로: 데이터를 찾고, 레이블링하고, 활용하는 방법

4.6 마치며

 

 

[PART III 모델 반복]


CHAPTER 5 모델 훈련과 평가

5.1 가장 간단하고 적절한 모델

5.2 모델 평가: 정확도를 넘어서

5.3 특성 중요도 평가

5.4 마치며

 

CHAPTER 6 머신러닝 문제 디버깅

6.1 소프트웨어 모범 사례

6.2 데이터 흐름 디버깅: 시각화와 테스트

6.3 훈련 디버깅: 모델 학습하기

6.4 일반화 디버깅: 유용한 모델 만들기

6.5 마치며 

 

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

7.1 모델로 추천 만들기

7.2 모델 비교하기

7.3 추천 생성하기

7.4 마치며

 

 

[PART IV 배포와 모니터링]


CHAPTER 8 모델 배포 시 고려 사항

8.1 데이터 고려 사항

8.2 모델링 고려 사항

8.3 크리스 할랜드: 배포 실험

8.4 마치며

 

CHAPTER 9 배포 방식 선택

9.1 서버 측 배포

9.2 클라이언트 측 배포

9.3 연합 학습: 하이브리드 방법

9.4 마치며

 

CHAPTER 10 모델 안전장치 만들기

10.1 실패를 대비하는 설계

10.2 성능 설계

10.3 피드백 요청

10.4 크리스 무디: 데이터 과학자에게 모델 배포 권한 부여

10.5 마치며

 

CHAPTER 11 모니터링과 모델 업데이트

11.1 모니터링의 역할

11.2 모니터링 대상 선택

11.3 머신러닝을 위한 CI/CD

11.4 마치며

머신러닝 아이디어 생각만 하고 있었다면? 

지금 바로 애플리케이션 개발에 힘을 실어줄 강력한 한 방!

 

머신러닝이 점점 더 활발하게 다양한 제품에 사용되면서, 새로운 제품 개발에 대한 아이디어가 번쩍번쩍 샘솟는 분들이 많을 겁니다. 생각에만 그치지 않고 아이디어를 실제 애플리케이션으로 구현하고 싶은데 어떤 것부터, 어디서부터 시작해야 할지 모르겠다면 바로 이 책을 펼쳐보세요. 대부분의 머신러닝 책이 알고리즘과 라이브러리 설명에 중점을 두는 것과 달리, 이 책은 머신러닝 기반의 애플리케이션 아이디어가 실제 애플리케이션으로 구현되는 모든 과정을 살펴봅니다. 실무자가 실제로 애플리케이션을 구현할 때 필요한 도구와 마주하게 될 도전 과제를 살펴보고, 업계 리더 4명의 생생한 경험이 담긴 인터뷰를 통해 유용한 팁을 얻어 본인만의 스킬을 쌓아가세요. 이 책을 읽고 나면 본인만의 머신러닝 애플리케이션을 구현하는 과정의 첫 삽을 자신 있게 뜰 수 있을 겁니다. 

IMG_9349.jpg

 

안녕하세요 괴짜 개발자 namedboy 입니다.

 

여러분은 머신러닝을 얼마나 활용해 보셨나요?

저는 항상 머신러닝에 대해서 얘기를 하다보면 지식의 한계 지점을 느낍니다.

그만큼 제가 머신러닝에 대해 모르기도 하고 어떤식으로 머신러닝을 구상해야 할지 어렵기 때문일 겁니다. 

 

머신러닝을 제대로 돌리기 위해서는 모델을 알아야 하고 그것을 또 배우는데 시간이 필요하고 그것을 잘 알지 못하면 또 머신러닝을 실행하지 못해서 어려운 것도 있습니다.

 

그런면에서 이 책에선 그런 모델을 먼저 가르쳐줍니다. 모델을 알고 나면 머신러닝을 설계하고 계획하고 수립해서 실제로 해볼 수 있습니다.

 

한걸음 나아가는 셈이죠.

전반적으로 머신러닝에 필요한 부분들을 계획하고 실제로 돌려볼 수 있도록 가이드가 되어 있습니다.

 

더구나 요즘은 클라우드 서비스에서 충분히 머신러닝을 돌려볼 수 있기 때문에 모델을 알게 되고 데이터셋을 정리해서 계획을 세우고 배포를 하는 것을 더 쉽게 잘 할 수 있게 됩니다.

 

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

책의 내용이 궁금하다면 [이곳] 통해 확인할 있습니다.

 

머신러닝에 대해 공부한 사람이나 관련 분야에 종사하시는 분은 아시겠지만

머신러닝 관련 엔지니어와 데이터 사이언티스트에게 머신러닝을 구축한 후 제품을 구축하는 것과

관련된 책은 정말 찾아보기 어렵습니다.

실제로 이전에 프로젝트 과정에서 머신러닝 모델을 만들고 모델 웹앱을 구성해서 배포하기까지

관련된 자료를 구글링하고 다큐멘터리를 참고해서 구축했던 기억이 나네요!

하지만 완벽하지 않음을 느꼈고, 더 알아가고 싶기도 해서 이 책을 제공받게 되었습니다.

관련 경험이 있는 만큼 이 책이 어떻게 구성되었을지, 어떤 것을 가르치고 있을지 정말 궁금했어요.

그리고 다시 한 번 느꼈지만, 한빛미디어는 어쩜 이런 책들을 찍어내죠..? 역시 이번에도 엄지척입니다!

 

 

성장하는 머신러닝 엔지니어, 데이터 사이언티스트에게 도움이 될 책

우선 저자 역시 이 책이 머신러닝을 구축한 후의 과정을 소개한 책은 없었고,

머신러닝 구축 이후의 책이 필요하다는 생각에서 출발을 했습니다.

저자가 이에 대한 필요성을 느꼈고, 이를 기반으로 출발했기 때문에 더욱 신경 쓰지 않았을까 생각됩니다.

실제로 종사하며 생각하고 느꼈던 것에 대해 선배가 조언을 해주시듯 친절하게 설명을 담아내고 있어

정말 많은 도움이 될 것 같습니다.

단순히 제품을 구축하는 방법 뿐 아니라,

제품을 구축하기 이전에 머신러닝의 문제들을 풀어나가는 방법,

모델을 만들어 나갈 때 계획을 세우고 성능을 측정하고 문제점을 예상하고 대응하는 방법,

더불어 어떤 모델을 사용하고 어떤 특성들을 뽑아내야 하는지 등

중요하지만 어디에서 듣기 힘든 조언과 꿀팁들을 만날 수 있습니다.

 

머신러닝을 배웠는데 좀 더 공부하고 싶다라는 생각이 드는 분들도 도움이 많이 될 것 같습니다.

 

 

이것으로 끝나지 않았다!

이 책이 분명 머신러닝 애플리케이션 구축에 관한 책인데,

파이프라인을 만들고, 디버깅을 하는 방법, 추천 모델 만드는 법,

배포와 배포 후 모니터링모델 업데이트에 관련된 부분도 다루고 있습니다.

 

저는 A/B 테스트에 대해서도 궁금했는데, 심지어 이 책에 A/B 테스트도 다루고 있어 굉장히 광범위하게 다루고 있기도 합니다. 하지만 광범위하다고 내용이 허술하진 않은 것 같습니다.Emotion Icon

 

 

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

 

 


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


 벌써 두번째 도서다.

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

 

[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 배포 방식 선택인데 현재는 서버측 배포를 주로 활용하고 있는데 다른 방식에 대해서도 참고가 되었다. 

<머신러닝 파워드 어플리케이션>은 아이디어에서 완성된 제품까지, 강력한 머신러닝 애플리케이션을 구축하는 과정을 다룹니다. 

구체적인 예시로는, 인터넷 커뮤니티에 질문을 올릴 때 좋은 답변을 받을 수 있도록
작성자의 질문 텍스트를 더 좋은 답변으로 수정할 수 있도록 조언을 제시하는 애플리케이션을 만듭니다.

- 문자 개수 높이세요
- 어휘 다양성 높이세요
- 쉼표 빈도 높이세요
- 부사 빈도 높이세요 

같이 말입니다.

책은 위 기능을 하는 머신러닝 애플리케이션을 만들기 위해서 거쳐야 하는 과정을 어렵지 않게, 차근차근 설명해나갑니다. 

먼저 제품의 목표를 머신러닝 문제로 표현하기 위해 제품을 설계하는 방법과,
이를 간단하게 시작할 수 있도록 여러 가지 조언을 제시합니다.

다음으로는 초기 프로토타입을 제작하는 방식을 설명하며 이를 평가하는 방법까지 설명합니다.

이어서 데이터셋을 준비하는 방법, 데이터셋을 탐색하고 특성을 생성하는 법을 다루고,

모델을 반복 훈련하며 평가하고 상황에 따라 어떤 모델이 알맞은지, 모델 배포 시 고려할 사항은 무엇인지에 대한 내용으로 구성됩니다.

페이지가 진전됨에 따라, 책에 소개된 '글쓰기 추천 모델'도 점점 개선됩니다. 책을 읽으면서 '나도 할 수 있겠다'란 생각이 들고, 어서 데이터셋을 모으고 코드를 따라 치고 싶어서 손이 간질간질했습니다.

수년간 머신러닝 기반 제품을 만들고, 2년간 데이터 과학자와 머신러닝 엔지니어들에게 멘토링을 해온 저자인 만큼,
머신러닝 모델을 만들고 훈련시키는데에 있어 간과해서는 안될 팁이 책 사이사이에 가득합니다. 

 

 

놓치면 안 되겠다 싶은 항목마다 밑줄을 그으며 읽었는데, 밑줄을 안 그은 페이지가 없을 정도였네요..! ㅎㅎ 

몇 가지 꼽아서 옮겨보자면, 

  • 제품에 도움이 되는 모델을 만들어야 한다는 것. 모델의 성공 지표와 프로젝트의 성공 지표를 일치시킬 것. 
  • 머신러닝을 시작할 때 처음 만드는 모델은 제품의 요구 사항에 맞는 가장 간단한 모델일 것
  • 가능한 한 케라스나 싸이킷런 같이 잘 알려진 라이브러리의 모델, 튜토리얼에 많이 사용되고 도움을 얻을 수 있는 모델로 빠르게 모델을 구현할 것
  • 프로젝트를 시작할 때 기업의 테라바이트급 데이터를 사용하기보단 먼저 로컬 컴퓨터의 메모리에 맞는 샘플로 시작할 것
  • 유용한 공개 데이터셋 페이지들(인터넷 아카이브, r/datasets, 캐글 데이터셋 페이지, 구글 데이터셋 검색, 커먼 크롤 등)
  • 모델링 결정을 내리는 데 테스트 세트의 성능을 사용하지 말 것 (모델의 성능이 과대평가될 위험이 있음)
  • 책에서 다루는 글쓰기 추천 모델의 경우, 한 명의 작성자는 학습 세트/검증 세트/테스트 세트 중 하나에만 속하게 데이터셋을 분할할 것 (GroupShuffleSplit 사용)

등이 있습니다.

 

또한 이 책이 좋았던 이유 중의 하나는, 데이터에 대한 편향의 위험성을 여러 차례에 걸쳐 설명하고 이를 피할 수 있는 방법을 제시하기 때문입니다. 

아마존 채용 AI는 왜 남성을 우대했나

인간의 편견 그대로 배웠다, 혐오 내뱉는 AI '이루다 쇼크'

AI 판단, 다시 고려해 봐야 하는 이유...다양한 AI 편향성 논란

지난 10월 아마존은 2014년부터 비밀리에 개발해온 인공지능(AI) 채용 시스템을 폐기했다고 밝혔다. 프로그램을 테스트해 본 결과 여성차별 문제가 나타나 자체 폐기한 것이다.

문제는 개발한지 약 1년이 지난 2015년에 불거졌다. AI가 경력 10년 이상 남성 지원자 서류만 고용할 후보로 제시하기 시작한 것이다. 심지어 ‘여성’이라는 단어가 들어가기만 해도 감점요소로 분류했다.

 

위 사례에서 보듯이 AI는 인간의 편견이 그대로 담긴 데이터셋을 학습하며 편견을 배웁니다. 

책에서는

- 전이 학습이 편향을 유발할 수 있다는 것(데이터셋을 주의 깊게 정제하더라도, 위키백과 전체에서 사전 훈련된 모델을 사용한다면 성별 편향이 그대로 옮겨질 수 있다는 것)

- 편향된 데이터셋은 편향된 머신러닝 모델을 만든다는 것

- 이런 데이터셋에서 훈련된 편향된 머신러닝 모델은 재앙에 가까운 결과를 만들 수 있다는 것

을 지적하는데 그치지 않고, 

'모델의 공정성을 위해 Fairness Constraints: Mechanisms for Fair Classification 논문에서 소개된 p% 규칙을 사용하여 편향을 정량화하고, 모델이 편향되지 않도록 특성을 계속 살펴야 한다'라는 해결책을 제시하는 점이 흥미로웠습니다.

다음에 머신러닝 모델을 만들 때 해당 논문을 참고하고 p% 규칙을 사용해 봐야겠습니다. 

 

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

머신러닝 파워드 애플리케이션.png

기존 애플리케이션 개발과 머신 러닝을 적용한 애플리케이션 개발의 차이를 알 수 있습니다.

전통적인 프로그래밍 방식과 다른 머신 러닝이 가지는 속성을 어떻게 애플리케이션에 녹여내고, 반영할 수 있는지 전체 과정을 보여줍니다.

 

머신러닝이 애플리케이션에서 없어서는 안 되는 무거운 상황을 가정하지 않습니다. 애플리케이션의 기본 기능에 영향을 미치지 않으면서 사용자에게 도움을 줄 수 있는 기능을 목표로 합니다.

마치 쇼핑몰 사이트에서 상품을 조회할 때, 페이지 아래에 나열되는 같이 구매한 상품 기능처럼 사용자에게 부가 정보를 제공하는 기능을 만들어가는 과정으로 진행합니다.

 

 

장점

생각보다 코드가 많지 않습니다. 중심을 코딩보다 개발에 두고 있음을 알 수 있습니다.

다양한 이미지를 통해 이해를 돕고 있습니다. 현재 하는 작업이 어떤 역할이며 무엇을 하고 있는지 글로 풀어 알려주면서 적재적소에 이미지를 배치하여 정리해 줍니다. 작업이나 개념 사이 관계나 하고자 하는 바를 이미지로 보여주므로 설명만으로는 이해하기 어려운 부분에 쉽게 다가가게 합니다.

 

pipeline_debug.jpg

 

각 장마다 마무리에서 그 단원의 내용을 정리합니다. 생각보다 많은 도움이 됩니다. 책을 통해 프로그램 개발의 전체 사이클을 살피고자 하기 때문에, 특정 부분을 깊이 파고들기보다 각 장은 전체 개발 단계 가운데서 한 부분씩 맡고 있습니다. 그래서 알리고자 하는 목표가 있습니다.  마무리에서 해당 장의 목표를 위해 무엇을 다루었고 설명했는지 정리합니다.

 

 

느낌

머신러닝을 애플리케이션에 적용하는 게 어떤 것인지 감을 잡을 수 있습니다. 머신러닝을 배운 뒤 어떻게 활용할지 막막한 경우, 개발은 하지만 머신러닝과 엮으려면 어디서부터 손을 대야할지 알 수 없을 때, 머신러닝을 적용하여 개발하면서 단계별로 놓친 건 없는지 확인할 때 모두 유용하다고 생각합니다.

 

 

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

추천 대상:

  • 머신러닝이 적용된 제품을 만들고자 하는 분
  • 머신러닝 엔지니어로 취업/이직하고자 하는 분

한줄평: 데이터 수집, 전처리, 학습 … 이제 이걸 가지고 뭘 하지?

머신러닝 모델은 서비스가 될 때 진정한 가치가 있다

“머신러닝에 대해 배운다” 라고 하면 대부분의 커리큘럼은 갖가지 알고리즘과 그 작동 방식에 대해 배우는 것부터 시작한다. 가장 간단한 형태의 모델부터 최신의 복잡한 구조의 모델까지 훑고, 토이 데이터셋으로 실습까지 진행한다. 머신러닝이라는 기술을 구현하기 위한 대략적인 지식을 얻게 되었다면, 그 다음에는 이 질문이 떠올라야 한다.

“그럼 이제 이걸 가지고 뭘 하면 되지?”

머신러닝, 딥러닝, 인공지능이라는 신박한 기술이 소개되어 사람들을 매료시키던 시대는 이제 지났다고 할 수 있다. 기술은 실제로 사용이 되어야 그 가치가 있는 것과 마찬가지로 머신러닝 모델 또한 사용자에게 서비스가 될 때 진정한 가치가 있다. 우리는 지금 이 기술을 활용한 제대로 된 제품을 만들어 내야 하는 시기에 있다.


머신러닝 파워드 애플리케이션 은 책 제목 그대로 머신러닝 기술에 기반한 제품(서비스)를 만들기 위한 내용을 담고 있다. 따라서, 현업에서 머신러닝 기술을 연구하는 단계가 아닌, 실제로 적용한 비즈니스 진행시켜야 하거나, 머신러닝 엔지니어로서 취업/이직을 고려하는 사람에게 적합하다. 단, 이 책은 머신러닝에 대한 기본적인 개념이 잡혀 있다는 것을 전제로 하고 있기 때문에, 초심자에게는 권하지 않는다. (머신러닝 개발자와 커뮤니케이션이 자주 발생하는 기획자는 업무에 참고할 만 하다.)

머신러닝 제품화 길잡이

머신러닝 파워드 애플리케이션 은 머신러닝 기반 제품을 만들기 위한 아주 좋은 가이드북이다. 책에서 참고할 수 있는 내용들은 다음과 같다.

1. 문제를 해결하기 위한 머신러닝 모색

  • 문제를 해결하고 편의를 제공하기 위한 어플리케이션 정의
  • 문제를 어떻게 정의하고, 적합한 모델을 선정하여 필요한 데이터를 준비해야할 지 파악하는 과정
  • 머신러닝 기반 제품 개발의 전체적인 프로젝트의 일정의 계획하는 과정

2. 가장 간단하게 만드는 엔드투엔드 파이프라인

  • 가장 필요로 하는 서비스를 제공하기 위한 최소한의 기능을 하는 엔드투엔드(End-To-End) 파이프라인 설계
  • 가장 간단한 파이프라인의 성능을 평가하는 다양한 시각 (모델 성능, 사용성, 비용, 속도 등)

3. 모델 학습과 디버깅

  • 모델 학습 과정
    • 토이 프로젝트가 아닌 실제 제품 개발을 위한 데이터 준비 과정
    • 반복적인 과정을 거친 모델 학습 과정
  • 실제 서비스되는 모델의 정상적인 동작을 위한 테스트 과정

4. 모델 배포와 모니터링

  • 사용자가 실제로 머신러닝 모델을 사용하기 위한 다양한 배포 방식
  • 배포 과정에서 생길 수 있는 다양한 문제점들
  • 모델의 이상 작동을 포착하고, 데이터 분포를 감지하기 위한 모니터링의 중요성

마무리하며

이 책은 기본적으로 다양한 예시를 들어 머신러닝 기반 제품이 만들어지는 과정을 설명한다. 따라서 읽는 사람에 내용의 흐름이 약간은 혼란스러울 수 있다. 일반적인 내용만 파악하더라도 실제로 만들고자 하는 서비스를 구현하는데에는 충분히 참고할 수 있는 책이기 때문에, 예시와 예제 코드에 너무 집중할 필요는 없다고 생각한다.

 

또한 위에서 서술한 바와 같이 머신러닝의 기초적인 내용은 다루지 않기 때문에, 어느 정도 개념이 잡힌 상태에서 읽는 것을 권장한다.

 

+) 현업 CTO / 머신러닝 엔지니어 / 데이터 사이언티스트 들의 인터뷰는 피가 되고 살이 되는 조언들이 담겨있으니 꼭 읽어보자 !!


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

머신러닝/딥러닝을 공부하면서 들었던 생각은, "내가 하는 이 작업이 과연 쓸모있는 일일까?"라는 것이었다. 단순히 현업에서 당면한 문제를 해결하기 위해서 머신러닝/딥러닝을 이용할 수는 있지만, 당장 문제를 해결하는 것과 전체적인 '서비스'를 만드는 것은 조금 다른 이야기인 것 같다. 서비스를 만드는 과정 속에서 머신러닝과 딥러닝 기법을 이용하는 것이 포함되는 것이고, 고객이 만족하는 서비스를 제공하는 것은 그것보다 더 큰 범위의 이야기를 만들어가는 것일테니 말이다. 

  그런 의미에서 에마뉘엘 아메장의 "머신러닝 파워드 애플리케이션"은 "머신러닝을 이용한 서비스"를 위한 학습 지침서가 될 수 있을 것 같다. 게다가 믿고보는 박해선님의 수준높은 번역으로 리뷰하는 시간동안 많은 것들을 배울 수 있었다.

 

 

 

 

  본문에서 참조한 헨리크 크나베르크님의 삽화는 직관적으로 서비스를 개발할때 어떠한 관점으로 개발해야 하는지 이해하게 해주었던 것 같다. "최소기능제품(Minimum Viable Product, MVP)"을 빠르고 정확하게 구현해서 작더라도 한 사이클을 구현한 후에 이에 살을 덧붙여가는 방식이 고객의 요구를 잘 반영할 수 있는 방법이라는 것을 배울 수 있었다.

 

 

 

 

전체 서비스의 파이프라인을 구축하면서 '병목'지점을 찾아 개선하고, 데이터 수집과 준비부터 시작해서 핵심적인 ML 모델 개발과 고객에게 보여질 UI에 이르는 전체적인 과정을 빠르게 개발하고 개선하며 서비스의 완성도를 높여가는 것의 중요성을 배울 수 있었다.

 

아직 나만의 서비스를 완전히 구축해보지는 못했지만, 이 책을 벤치마킹하며 이미지 데이터 분석관련된 서비스를 토이프로젝트로 개발해봐야겠다. 본문에서 사용한 예제가 개인적으로는 친숙하지 않은 텍스트 데이터를 사용한 것이 조금은 아쉬우면서도, 한편으로는 텍스트 데이터를 다루는 것도 훑어볼 수 있었던 시간이었다.

 

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


머신러닝관련 애플리케이션을 구축하는 경험을 담은 책입니다. 저자는 다양한 머신러닝 프로젝트를 진행한 경험이 있는 것 같군요.

저자는 일반적인 애플리케이션 개발 과정과 근본적으로는 같지만 머신러닝 애플리케이션 개발 과정에서 다른 점이 어떤 부분인지 다양한 경험을 통해서 얻어낸 통찰을 쏟아 내고 있습니다.

 

- 경험적으로 해결책을 정의할 수 없는 문제에 적합한 시스템을 만들 때 특히 머신러닝이 유용합니다. ( 27쪽 )

- 비슷한 모델이나 데이터셋으로 만든 공개된 모델을 찾아보세요 ( 61쪽 )

- 머신러닝처럼 변화가 많은 분야에서는 기존의 방법을 잘 활용하는 것이 중요합니다. ( 62쪽 )

- 머신러닝은 반복적인 과정입니다. 모델이 어떻게 실패하는지 확인하는 것이 가장 성능을 빠르게 높이는 방법입니다. ( 67쪽 )

- 아직 필요하지 않는 것을 만들려는 충동을 억제하는 일입니다. ( 68쪽 )

- 방향을 잘못 잡으면 비용 손실이 매우 큽니다. ( 75쪽 )

- 전략이 세워진 후에 큰 데이터셋으로 사이즈를 늘리는 것이 합리적입니다. ( 93쪽 )

- 테스트 커버리지가 높으면 애플리케이션이 잘 동작한다는 강한 확신을 줄 수 있습니다. ( 176쪽 )

- 전체 훈련 세트를 전달하고 모델의 성능이 제품의 목표를 위해 정의한 요구 사항에 도달한다면 다음 단계로 이동해도 괜찮습니다. ( 193쪽 )

- 모든 데이터셋은 편향되어 있다는 가정에서 출발해 이 편향이 모델에 얼마나 영향을 미칠지 추정해야 합니다. ( 231쪽 )

 

저는 미래에 대한 두려움, 호기심 같은 것 때문에 몇년전 부터 머신러닝이나 딥러닝에 대한 책들을 읽고 있는데요. 지금까지 책을 읽으면서, 느낀건, '정말 대단한 기술이라는 것'과, '이걸 어떻게 애플리케이션으로 만들어 내는지'에 대한 의문이었습니다.

 

그러나 이 책을 읽으면서, 머신러닝 또는 딥러닝 애플리케이션을 어떻게 만들어 나가는지 전반적인 과정을 이해할 수 있었던 것 같아서 좋았습니다.

 

게다가, 저자가 일반적인 애플리케이션 개발 과정이라 말하는 MVP나 KISS와 같은 개념들은 정말 많은 생각을 하게 했습니다. 사실 맞는 이야기 인데 그 일반적인 과정이 우리 주변에서는 잘 지켜지지 않고 있는 경우가 많기 때문입니다.

( 특히 헨릭 크니버그의 블로그 내용을 인용하는 부분은 인상정이었습니다. https://blog.crisp.se/2016/01/25/henrikkniberg/making-sense-of-mvp )

 

머신러닝이나 딥러닝 분야는 아직도 활발하게 발전하고 있는 분야이기 때문에, 책도 많지만 조금만 깊이 공부하려고 하면 논문도 많이 봐야 하는 것 같습니다. 이런 경우 이렇게 한꼭지 정리해주는 책은 상당히 큰 도움이 됩니다.

 

그런 의미에서 이 책은 직접 머신러닝/인공지능 분야에 뛰어드는 개발자에게 도움이 될 것 같습니다.

 

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

 


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

 

그동안 수많은 머신러닝 관련 책들이 나왔었습니다.  간단히 소개하는 입문자용 책부터 설치 라이브러리를 다루는 책, 날코딩으로 하나씩 만들어가는 책, 데이타 전처리등을 다루는 책 등등 하지만 막상 이런 책들을 보고 난 후에는 이제 뭘 어떻게 하지라는 생각이 들곤 했습니다. 무엇을 만들것이라는 목표의식없이 공부했기 때문입니다. 

이 책은 "머신러닝 보조 글쓰기 어플리케이션" 이라는 글 쓸 때 더 나은 문장을 쓸 수 있도록 교정 추천서비스를 제공하는  제품을 만든다고 가정합니다.
그리고 머신러닝 제품개발 프로세스를 하나씩 밟아갑니다. 
기획 => 엔드 투 엔드 파이프라인 만들기 => 데이타셋 준비하기 => 모델 훈련과 평가 => 머신러닝 문제 디버깅 => 분류기를 사용한 글쓰기 추천 =>
배포와 모니터링

무엇을 만들지가 미리 정해졌기 때문에 다루는 내용에 선택과 집중이 가능했던 거 같습니다. 각 프로세스마다 이 제품에 필요한 데이타 수집, 정제 
이 제품에 사용할 머신러닝알고리즘 위주로 소개했기 때문에 책 분량도 읽기 적당했습니다. 

머신러닝에서 디버깅이 쉽지 않은데 다른책에서는 보통 다루지 않는 디버깅관련 내용을 한 챕터에 할애해줘서 좋았습니다. 
예제 코드는 책에선 일부 함수정도만 소개하고 있고 대부분은 github등에 링크로 걸려있으며 설치나 실행등과 관련된 내용은 들어있지 않기에 
머신러닝을 처음 접하는 사람보다는 기존 머신러닝을 공부했던 사람이 전반적으로 내용을 정리한다는 느낌으로 보는게 좋을 거 같습니다.

 

ㄴ.jpeg

 

 

 

머신러닝 구축의 핵심인 

1. 주어진 특성에 맞는 올바른 머신러닝 방법 선택,
2. 모델의 오류와 데이터 품질 문제 분석,
3. 모델의 결과를 검증하여 제품의 품질 보장

위의 일련의 과정들을 안내하고 있다.


제품 아이디어에서 프로토타입 배포까지 전체 과정을 다루고 있기에 
코딩 경험과 머신러닝 기초 지식을 가지고 
머신러닝 기반 제품을 구축하는 방법을 배우는데 안성맞춤이다. 

 

 

 


 

 

머신러닝의 전체 과정

머신러닝 제품을 성공적으로 사용자에게 제공하려면

제품의 요구 사항을 머신러닝 문제로 표현하고, 적절한 데이터를 수집하고, 여러 모델을 효율적으로 반복하고, 결과를 검증하고, 견고한 방법으로 배포해야 한다.

1. 올바른 머신러닝 접근 방법 모색: 머신러닝 분야는 넓고 제품의 목표를 달성하기 위한 다양한 방법이 존재한다. 주어진 문제를 위한 최상의 방법은 성공 기준, 가용 데이터, 문제의 복잡성과 같은 많은 요소에 따라 달라진다. 이 단계의 목표는 올바른 성공 기준을 설정하고 적절한 초기 데이터셋과 모델을 찾는 것이다. 

 2. 초기 프로토타입 제작: 모델링 작업을 하기 전에 먼저 엔드투엔드 프로토타입을 만든다. 이 프로토타입은 머신러닝을 사용하지 않고 제품의 목표를 달성하는 것이 목적이다. 또한 최상의 머신러닝 적용 방법을 결정하는 데 도움이 된다. 프로토타입이 구축되면 머신러닝의 필요성을 알 수 있고 모델 훈련을 위해 데이터 수집을 시작할 수 있다. 

 3. 모델 반복: 데이터셋이 준비되면 모델을 훈련하고 단점을 평가할 수 있다. 이 단계의 목표는 오류 분석과 구현 사이를 오가며 반복하는 것이다. 이 반복 루프의 속도를 높이는 것이 머신러닝 개발 속도를 높이는 최상의 방법이다.

 4. 배포와 모니터링: 모델이 좋은 성능을 내면 이제 배포를 할 단계이다. 배포된 후에 예상치 못한 이유로 종종 모델이 실패하는 경우가 있기 때문에 모델의 오류를 완화하고 모니터링 하는 방안을 마련하는 것 또한 아주 중요하다. 

 


 

책의 목차는 아래와 같다.

Part 1. 올바른 머신러닝 접근 방법 모색

Ch1. 제품의 목표를 머신러닝 문제로 표현하기

Ch2. 계획 수립하기

 

Part 2. 초기 프로토타입 제작

Ch3. 엔드투엔드 파이프라인 만들기

Ch4. 초기 데이터셋 준비하기

 

Part 3. 모델 반복

Ch5. 모델 훈련과 평가

Ch6. 머신러닝 문제 디버깅

Ch7. 분류기를 사용한 글쓰기 추천

 

Part 4. 배포와 모니터링

Ch8. 모델 배포 시 고려 사항

Ch9. 배포 방식 선택

Ch10. 모델 안전장치 만들기

Ch11. 모니터링과 모델 업데이트

 

이제 책의 예제를 따라가며 사용자가 글을 더 잘 쓰도록 돕는 '머신러닝 보조 글쓰기 애플리케이션' 을 구축해 볼 차례이다!

 


 

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

[나의 한줄 추천사]

머신러닝 어플리케이션의 전체 Life Cycle 경험하고 싶다면 이책을 보라

[책 추천 이유]

머신러닝 어플리케이션을 만들기 위해서 아이디어 부터 구현 배포 후 관리까지 중요 포인트를 “머신러닝 에디터” 어플리케이션 머신러닝 구축 "파이프라인" 만들어 보면서 뜬구름 잡지 않고, 직접 체험해 볼 수 있게끔 구성되어 있다. 무엇보다도 "박해선" 님이 옮기 셨기 때문에 믿고 봐도 된다.

[내가 찾고자 했던 질문들]

1.모델 실패를 감지하는 하는 방법은?

- 모델의 신뢰도 출력이 정확한지 여부를 추정한다.

분류모델 같은 경우 신뢰로를 추정하는데 사용할 수 있는 확률을 제공한다. 확률이 잘 보정되어 있다면, 모델이 불확실하게 판단하는 샘플을 감지하여 이 샘플의 결과를 사용자에게 제공할지 결정할 수 있다.

- 메인 모델이 실패할 것 같은 샘플을 감지하는 또 다른 모델을 만든다.

"필터링 모델"을 만들어서 앞단에서 메인 모델을 타기전에 다른 방법으로 처리할지에 대해서 판단하여 오류를 최소화시킨다.

2.모델의 재학습 주기는?

- 대부분의 모델은 일정수준의 성능을 유지하기 위해 정기적으로 업데이트해야 한다. 모델이 더 이상 최신이 아니어서 재학습이 필요할 때를 "정확도 모니터링"이 감지할 수 있다. "정확도"가 일정부분이 떨어지고 있다면, 재학습이 필요한 시점이므로, 정확도 임계치 모니터링을 통해 정할 수 있다.

3.수정된 모델을 안전하게 평가하는 방법은?

- 현재의 모델을 일단 유지하면서, 동시에 수정된 모델도 같이 추론하는 "Shadow mode" 로 모델을 배포한다. 하나의 쿼리로 "기존모델", "수정모델" 동시에 추론시키고, "기존모델"의 로그와 "수정모델"의 로그를 비교 평가하여 "수정모델"을 사용할지 결정하는 방법이 있다.

4.데이터 학습할 때 고려해야할 질문들은?

- 사용하고 있는 데이터를 어떻게 수집했나요?

데이터 소유권 문제 (유럽 GDPR 규정), 데이터 편향

- 이 데이터셋으로부터 모델이 어떤 가정을 만든나요?

- 이 데이터셋이 유용한 모델을 만들기에 충분한 대표성을 띠고 있나요?

테스트 세트에 모든 사용자의 유형을 대표하는 샘플을 포함해야한다.

- 훈련한 모델이 어떻게 잘못 사용될 수 있나요?

피드백 루프에 빠질 수 있다.

- 예상하는 모델의 사용 범위는 무엇인가요?

5.좀더 알고 싶다면?

https://github.com/hundredblocks/ml-powered-applications

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

작년에 출간 소식을 접했을 땐 막연히 박해선 역자님의 신간이 출시 되었네 한 번 읽어봐야겠다라고 생각했던 책이었습니다. 출간 이벤트 때 책과 연이 닿지 않았고, 당장 필요한 책은 아니어서 찜 목록에 잠들어 있었습니다. 3월 리뷰 도서 리스트에서 다시 만났을 때도 제목만 보고 뭐 서빙 도구들을 연결하고, 연구와는 다른 접근법이 필요하다 정도의 상투적인 내용이지 않을까 지레짐작하며 희망 도서 3권 중 한 권으로 선택했습니다. 택배 파업으로 다소 늦게 선정 된 도서를 받았고, 책을 머릿말과 베타리더들의 추천사를 읽으면서 내가 짧은 식견으로 책을 섣불리 판단하고 만나지 못 할 뻔 한것을 깨달았습니다.

책의 부제는 완성된 제품까지를 이야기하면서 상품으로 완성돼가는 머신러닝모델을 이야기하고 있습니다. 이 책을 꼭 제품이나 서비스 구축을 위해서가 아니라 머신러닝을 이제 막 시작한 프로그래머, 좀 더 깊게 부딪히려는 초보 연구자 등 다양한 스펙트럼의 사람들에게 필요하단 생각이 들었습니다.

파트 1의 제목인 올바른 머신러닝 접근 방법 모색은 이 분야에 종사하는 모두가 알아야하는 내용이라고 생각합니다. 이 전 글들에서 한 두 번 언급한 내용이지만 2016년 알파고 이 후 인공지능/머신러닝 관심도가 수직 상승해 이제는 비전공자도 단어 정도는 익숙해진게 지금의 20년대입니다. 투자와 관심이 늘었지만, 머신러닝이 단 하나의 만능열쇠인줄 알고 사용하거나 요구하는 경우가 아직도 너무 많습니다. 전통적인 방식이 성능과 리소스 면에 우수하지만 인공지능을 써야만 한다면서 때로는 너무 과한 리소스와 복잡도를 감수하는 경우가 있습니다. 혹자는 NLP는 다 같은 언어 모델이라고 생각해 저 모델로 저건 되는데 이건 못 할게 뭐 있냐면서 분류와 기능을 구분짓기를 어려워 하기도 합니다. 제가 인공지능을 처음 배울 때 교수님 강조 하셨던 것은 이 문제를 인공지능이 아닌 다른 방법으로 풀 수 있는지 먼저 고민해라 이었습니다.

제품화하는 것은 연구 단계와는 다른 치열함을 가지고 있습니다. 때로는 연구보다 더 엄격하고 깐깐한 잣대를 들이밉니다. 돈을 받고 누군가에서 재화를 제공하는 일은 그렇습니다. 그래서 이 책에서 다루고 있는 내용은 단순히 점수가 잘 나오는 모델을 만드는 법이 아니라 당장 사용할 수 있게 단단하게 쌓여 올려가는 과정을 다룹니다. 단순히 모델 가중치를 어떻게 웹으로 보여주고 이걸 서비스하는 방법이 아니라 서비스를 위한 데이터를 어떻게 수집하고, 검증하고 모델을 그에 맞춰 발전시켜가는 방법을 다루고 있습니다. 연구는 하나의 지표에서만 성능이 잘 나와도 괜찮은 경우가 있습니다. 속도는 다소 떨어져도 정확도가 높은 모델, 같은 정확도로 경량화 된 모델 등등 연구 초점에 따라 중요시 여기는 포인트들이 다르고 해당 포인트들만 만족시키면 됩니다. 하지만 서비스 되는 모델들은 이렇게 연구실에게 만들어지고 다듬어진 모델들을 곧장 쓰기에는 여러문제에 봉착합니다. 그러한 문제를 어떻게 접근해서 풀어갈지 푼 이후에는 이제 파이프라이닝을 하고 모니터링까지 모델을 서비스에 적합하게 만들어 낸 이후 서비스를 최소 단위에서부터 점차 키워나가고 있습니다.

이 책은 연구와 서비스를 위한 모델은 어떻게 다르며, 머신러닝이라는 풀이법을 어떻게 들고 접근해야하는지 나누고 있습니다. 저는 이 책을 인공지능 분야에 종사하는 모두가 읽어보면 좋겠다고 생각합니다. 연구와 서비스는 분명 결이 다르고, 누가 더 힘들고 어려운 일을 하냐는 판가름 낼 수 있는 영역은 아닙니다. 연구의 성과가 있기에 서비스를 위해 튜닝과 재설계가 가능하고, 여러 모델들의 집합체이기 때문에 제 글의 일부 표현 때문에 연구자 분들에게 상처가 되지 않았으면합니다.

난이도: 중
추천대상: 인공지능 및 머신러닝 종사자 전반


한빛미디어 2022 도서 서평단 "나는 리뷰어다"의 일원으로 도서를 제공받아 작성한 리뷰입니다.

머신러닝 모델링에 대한 자료는 이제 구글을 통해 검색하면 충분히 많은 자료를 찾을 수 있습니다.

 

그러나 머신러닝 프로젝트를 설계하고 진행한다면 (모델링 이상으로 프로젝트 배포와 운영까지), 그 내용을 다루는 블로그 글은 거의 찾아보기 힘들 것입니다.

 

이와 관련해서 도움을 줄 수 있는 책이 머신러닝 파워드 애플리케이션이고, 책도 두껍지 않아서, 1주일이면 충분히 읽고, 프로젝트를 빌드해 볼 수 있는 책이라 생각합니다.

 

추가로 프로젝트 운영에 관해 함께 언급되어 있는 논문들도 책에 포함되어 있고, 전문가들의 Q&A 내용도 있어, 보다 현업에서 프로젝트를 어떻게 리딩해 나가는지에 대한 내용들을 함께 확인할 수 있습니다.

 

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

이 책은
머신러닝 모델의 동작 방식과 관련된 자료는 많지만, 머신러닝 서비스에 대한 내용을 다룬 자료는 별로 없는데, 
아이디어를 머신러닝 서비스(어플리케이션)으로 구축하는 전반적인 과정을 다루고 있는 책이다. 

 

 

어떤 사람이 이 책을 보면 좋을까? 

비지니스적인 문제를 머신러닝으로 해결하고 싶은분께 이 책을 추천한다. 어떤 문제의 경우 머신러닝이 적합한지를 다루고 있으며, 머신러닝을 학습한 후 프로토타입을 거쳐 실제 고객들에게 서비스 되는 전체 흐름과 배포 이후 모니터링하는 전체 과정을 설명하고 있다.

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

 

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

 

Book_Review_Building_Machine_Learning_Powered_Applications.png

 

0. 소개Permalink

만약 여러분이 직접 만든 추천 시스템 Machine Learning Model을 여러 사람들에게 서비스하고 싶다면 ?

여러분들은 다양한 Dataset으로 훌륭한 Data Preprocessing을 할 수 있고, 훌륭한 직감을 가지고 있으며 훌륭하게 여러분의 Model을 Tuning 할 수 습니다.

수 없이 많은 .fit()을 호출하면서 Accuracy / ROC-AUC 등의 지표를 보면서 더욱 나은 성능이 나올 수 있도록 Model을 만들 수 있는 능력이 있습니다.

하지만, 여러분들이 훌륭하게 동작하는 Model을 만들 수 있는 능력이 있다고 하더라도, 그 Model을 이용하여 실제 서비스를 구축하는 것은 완전히 다른 문제입니다.


거대한 서비스에 Machine Learning Model을 적용하는 것은 다양한 능력이 필요합니다. Machine Learning 자체에 대한 능력뿐만 아니라, 전체적인 서비스가 작동하는 방식에 대한 이해도 요구됩니다.

서비스가 필요로 하는 Machine Learning Model이 무엇인지에 따라서 어떤 방식의 Machine Learning 기법을 선택할 지, 실제 적용시에 오류와 실제로 수집되는 Data를 바탕으로 Model을 어떻게 Update할 지와 같은 다양한 문제는 매우 어려운 문제들입니다.

여러분들이 이런 문제를 고민하고 있거나, 실제로 Machine Learning Model을 서비스에 적용해야 한다면 이 책을 추천드립니다.

시중에는 Machine Learning / Deep Learning 자체를 다루는 훌륭한 책은 매우 많이 있습니다.

하지만, Machine Learning / Deep Learning을 이용해서 만든 Model을 실제로 서비스에 적용할 수 있도록 도움을 줄 수 있는 책들은 거의 없습니다.

이 책은 Machine Learning Model을 서비스에 적용하기 위한 모든 과정을 설명해 줍니다.

관련된 예제 Code들과 오랜 경험을 가진 저자의 조언을 함께 할 수 있기 때문에 목표 달성에 큰 도움이 될 것입니다.

필자는 이 책을 통하여, 다양한 실제 경험을 바탕으로 실질적인 서비스 구축에 도움이 되는 Know-How를 전수하고 있습니다.

또한, 실제로 Model을 서비스에 적용해 가는 과정을 예제 Project를 통해서 설명하고 있습니다.

최근 YouTube를 통해 광고를 하고 있는 ‘Grammarly’와 유사한 구현해 가는 과정을 설명해 줍니다.

이 책은 다음과 같은 독자분들에게 추천드립니다.

  • Python 및 다양한 Machine Learning & Deep Learning Open Source Framework 사용 가능한 분
  • 기초적인 Web 지식을 가지신 분
  • Data Scientist / Data Analyst
  • Machine Learning & Deep Learning 관련 지식은 없지만, 해당 서비스를 실제 적용해야 하는 일을 하시는 분\




1. PART IPermalink

  • Part I에서는 우리가 구현하고 실제 적용하고자 하는 서비스에 대해서 구체적으로 어떤 기준으로 성공/실패를 판별할지와 최초의 Dataset은 어떻게 선택하고 모을지에 대한 초기 계획을 결정하는데 도움을 줄 수 있는 여러 조언들이 실려있습니다.

  • 서비스에 처음 Machine Learning을 적용하려고 한다면, 과연 이 작업이 Machine Learning 기법 적용이 적합한지부터 판단해야 할 것입니다.

  • 기존의 전통적 Programming 방식을 사용중이고 이미 훌륭한 성능을 내고 있는데, Machine Learning을 적용해야 하는지에 대한 고민부터 Machine Learning 적용한다면 분류(Classification) 문제인지 회귀(Regression) 문제인지 등을 판단해야 합니다.

  • 또한, Machine Learning을 적용하려면 Data는 어떻게 수집하며 어떤 종류의 Data가 필요한지에 대한 고민을 반드시 해야할 것 입니다.

  • Baseline Model의 성능 평가 방법에 관한 고민도 하여야 할 것입니다.

  • Part I에서는 위와 같이, Machine Learning을 서비스에 적용하기 위한 최초의 고민들에 대한 실질적이고 유용한 정보를 얻을 수 있습니다.




2. PART IIPermalink

  • Part II에서는 실제 Machine Learning을 사용하지 않고 Prototyping을 하는 방법에 대해서 이야기합니다.

  • Prototype에서 Machine Learning을 사용하지 않는 이유는 Prototype때 Machine Learning을 사용하지 않는 것이 오히려 가장 적합한 Machine Learning Model을 선택하는데 도움이 되기 때문입니다.

  • 이번 Part에서는 Prototyping에 대한 기본적인 규칙 및 기본적인 Data Preprocessing 작업에 대한 Know-How를 공유합니다.

  • 대부분의 Machine Learning / Deep Learning 관련 교육이나 책에서는 최초부터 깔끔하게 Preprocessing을 거친 Dataset이 제공이 되고, Model 그 자체에 교육이 집중됩니다.

  • 하지만, 현실적으로 Data 준비에 굉장히 많은 시간과 노력이 들어갑니다. 이 책은 다른 교육이나 책에서 간과한 이런 부분들에 대해서 현실적인 도움을 줍니다.




3. PART IIIPermalink

  • Part III에서는 앞에서 Prototype으로 모은 Data를 바탕으로 실제 적용할 Model을 Train시키고 성능을 높이는 과정을 설명합니다.

  • Machine Learning / Deep Learning Model의 선택 / 구현 / 측정 / 분석의 반복에 대해여 설명하고 Know-How를 공유합니다.

  • 최초 Model 선택시에 어떤 사항들을 고려해야 하는지, 최초 시도 Model 구현시에 어떤 open source library or framework을 이용하여 빠르게 구현해야 하는지와 이런 선택에서 실제 배포시에 고려해야 할 것이 있는지 등과 같이 Model 관련 중요 사항에 대해서 이야기 합니다.

  • 또한, Model 뿐만 아니라 Model 만큼 중요한 Data 생성 방법 및 주의 사항들에 대해서도 이야기합니다.

  • 이 Part에서 가장 중요하다고 할 수 있는 부분은 Model의 Debugging입니다.

  • 사실 이 부분은 Machine Learning / Deep Learning Model 책이나 교육에서도 잘 다루지 않는 부분이라고 생각합니다. 그 이유는 고려해야할 사항들이 워낙 많고 영향을 미치는 변수들이 많기 때문에 어떤 것이 정답이라고 단정적으로 말하기 어렵기 때문일 것입니다.

  • 이 책은 성능에 영향을 줄 수 있는 다양한 요소들을 설명해주며 실질적 Debugging 방법을 공유합니다.




4. PART IVPermalink

  • Part IV에서는 Train된 Model을 실제 서비스에 적용하는 방법에 대해서 다룹니다.

  • Model 자체는 훌륭할지 모르지만, 적용 방법에 따라서 실패하는 경우도 있으니, 이 Part에서는 실무에서의 범할 수 있는 오류를 줄이고, Model이 잘 작동하는지 Monitoring하는 방법에 대해서 다룹니다.

  • 배포 방식에 따른 고려사항들, Server / Client 고려 사항

  • Data 수집시에 고려해야할 사항 ( 윤리적 문제 / 소유권 문제 )

  • Model이 잘못된 동작을 하고 있을 때 대처 방안

  • 모니터링에 관련해서도 어떤 요소를 모니터링 할 것인가와 같은 이야기를 하게 된다.

  • 또한, Update된 Data로 성능이 좋아진 Model을 어느 시점에 재배포를 할 것인지 그리고 어떤 방식으로 재배포를 할 것인가에 대한 이야기를 하게 된다.




5. 총평Permalink

  • 이 책은 Machine Learning Model을 실제 서비스에 적용하고는 싶은데, 어디서부터 무엇을 어떻게 해야 할 지 막막한 분들에게 단비같은 책입니다.

  • 다만, 이 책에 담겨있는 모든 내용들을 모두 자신의 것으로 만들기 위해서는 다방면에 대한 지식이 필요하다는 것이 조금 부담스러울수는 있지만, 저자가 다년간 쌓은 Know-How를 얻을 수 있다면 충분히 도전해 볼 가치가 있다고 본다.

1.jpg

 

목차

 

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

 

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

CHAPTER 2  계획 수립 하기

 

 

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

 

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

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

 

 

[PART III  모델 반복 ]

 

CHAPTER 5  모델 훈련과 평가

CHAPTER 6 머신러닝 문제  디버깅

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

 

 

[PART IV  배포와 모니터링 ]

 

CHAPTER 8  모델   배포 시 고려 사항

CHAPTER 9  배포 방식  선택

CHAPTER 10  모델 안전장치  만들기

CHAPTER 11  모니터링 과  모델 업데이트

본문


예제 코드는 파이썬 사용하며, 깃허브로 코드 제공


 

머신러닝 에디터를 직접 구현해보는 등  유용한 예제 수록

코드와 그림  풀컬러  구성

 

현업 기술자들의 인터뷰를 통한 실용적인 조언 수록

 

책의 특징

1. 아이디어에 불과했던 프로젝트를 실제 애플리케이션으로 구현 할 수 있습니다.

2. 머신러닝 모델을 도입하는 방법, 잘못되기 쉬운 부분과 특별히 주의해야 할 사항에 대한 실용적인 조언이 수록되어, 해당 문제로 인한 시간 소모를 줄일 수 있습니다.

 

추천 독자

1. 프로그래밍 경험과 머신러닝 기초 지식을 가진 누구나

2. 데이터 과학자, 머신러닝 엔지니어로 현업에 종사하는 개발자

3. 코딩은 모르지만 데이터 과학자와 함께 일해야 하는 직군

 

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

아이디어가 현실이 되는, 나만의 머신러닝 애플리케이션 구현하기.

사실 이 책을 고른 배경에는 옮긴이가 박해선님이었던 것도 이유가 컸다. 워낙 AI 관련 도서를 많이 번역하시고, 혼공머신이라는 책도 냈던 분이라 기본적으로 책에 대한 궁금증이 생겼다.

이 책에서는 머신러닝의 기본 지식을 자세히 설명하기 보다는 머신러닝 기반 애플리케이션을 구축하기 위해 필요한 단계별로 실용적인 가이드를 제공하고 있다. 그러므로 이 책은 독자가 이미 프로그래밍에 어느 정도 익숙하다고 가정하고 있으며 주로 python을 이용한 예제 코드를 제공한다.

이 책은 머신러닝에 대한 전체적인 흐름을 볼 수 있는 책이다. 머신러닝 공부를 하다보면 그래서 개념도 어느정도는 알겠고 실습도 해본 적이 있는데, 이걸 뭐 어떻게 활용하라는거야?라는 의문이 든적이 있었다면, 이 책이 그에 대해 조금이나마 도움을 줄 수 있을 것 같다.

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

처음에는 도서명을 보고 '머신러닝'을 배운다는 것은 알겠는데 구체적으로 무엇을 배우는 것일까 의문점이 들었다. 그리고 머신러닝하면 굉장히 어렵다는 인상도 있어서 이름이 생소한 만큼 내용도 꽤 어렵지 않을까라는 두려움도 있었다. 그런데 막상 책을 펼쳐보니 생각했던 것과는 전혀 다른 인상이었다. 우선 머신러닝이 무엇인지도 설명하지만 가장 인상 깊었던 것은 머신러닝이 모든 것의 해법이 될 수는 없다는 것이었다. 다른 머신러닝 책들을 보면 딥마인드의 알파고 마냥 적용만 하면 안되는 것이 없다는 지나친 기술을 향한 낙관론만 설파하기 때문에 나에게는 신선한 것으로 다가 왔던 것이다. 그래서 시도하는 프로젝트가 먼저 머신러닝에 맞는 유형인지를 파악하고, 만약 적합하다면 어떤 모델을 써야할지도 신중하게 선택해야 한다는 것이다.

 

그리고 그냥 글로만 설명해서는 이해가 가지 않는 내용을 독자들이 아주 쉽게 이해할 수 있도록 그림과 도형 등 시각화로 표현했는데 금방 해당 용어가 의미하는 바를 머리로 체득할 수 있었다. 예를 들어 '바운딩 박스', '분할 마스크'가 각각 무엇인지와 차이점은 무엇인가를 고양이 그림을 통해 쉽게 설명하였다. 굳이 구구절절한 문장이 필요 없는 것이다. 

 

결론적으로 말하면 이 책은 머신러닝을 이용한 애플리케이션을 개발하기 위해 필요한 모든 것을 담고 있는 책이다. 그래서 앞서 언급했지만 과연 머신러닝에 적합한 것인지 설명하는 것처럼 애플리케이션을 제작하기 위해 반드시 검토해야할 사항을 처음 부분부터 2부 전까지 페이지를 할애하였다. 즉, 직접 파이썬으로 구현해보는 머신러닝의 각종 모델, 유형은 조금 진도가 나가야 진행이 되지만 이 '기획'이라는 단계를 절대 소홀히 하지 않고 저자가 큰 심혈을 기울였구나라는 것을 느낄 수 있었다.

 

이 책에서는 머신러닝을 이용한 애플리케이션을 개발하기 위해 필요한 것을 담았다고 했으니 그 예제로 어떤 가상의 프로젝트를 제시했을 것이다. 그것이 바로 머신러닝 에디터이다. 글을 쓸 때 고쳐야 할 점을 머신러닝이 미리 학습한 모델을 통해 제안을 제공해주는 것이다. 그렇다보니 다른 머신러닝 책들과 차별화된 점이 있었는데 '테스트', '디버깅' 같은 내용을 다루었던 것이다. 이러한 내용은 소프트웨어를 개발할 때 반드시 거쳐야 하는 필수 단계이므로 단순히 머신러닝이 아니라 머신러닝을 이용한 소프트웨어를 개발하기 위한 과정에서는 반드시 설명이 필요한 것이다. 책 후반부에 '배포'와 '모니터링'이 포함되는 이유도 바로 그 때문이다.

 

이 책이 도움을 줄 수 있는 독자 층으로는 '머신러닝'을 공부하시거나 관심이 있으신 분들이다. 그러나 그냥 데이터 분석을 위해 통계적 도구로 사용하려는 사람보다는 정말 머신러닝 기능을 적용한 소프트웨어를 만드는 사람들에게 더 유용할 것으로 보인다. 머신러닝을 사용해서 큰 수익 얻을 수 있는 주가를 추천해주는 애플리케이션을 만드는 사람이 있다고 해보자. 그런 분들에게 매우 큰 도움이 될 것이다. 단지 기술적 활용 뿐만 아니라 각각의 단계에서 고민하고 생각해봐야 하는 것을 제시해주니 애플리케이션 제작에 좋은 지침서가 될 것이라 확신한다.

머신러닝 파워드 애플리케이션은 머신러닝 모델을 장착한 실용적인 애플리케이션을 만드는 방법을 다루는 책입니다. 머신러닝의 도움을 받을 수 있는 실용적인 문제를 식별하고 이런 문제를 위해 성공적인 솔루션을 제공해주고 있습니다. 또한 고수준의 제품 목표에서부터 시작해 머신러닝을 활용해 결과를 만들어내는 도전적인 작업을 완수할 수 있도록 돕고 있습니다.

 

이 책은 파이썬을 사용하기 때문에 파이썬에 대한 기본 문법을 알고 있으면 많이 도움이 됩니다. 또한 머신러닝 알고리즘의 내부 동작을 다루지는 않기 때문에 기본적인 머신러닝 개념을 알고 있다는 전제하에 씌여진 책이라고 보면 됩니다

 

머신러닝 애플리케이션을 배포하기 위해서는 1. 올바른 머신러닝 접근 방법 모색, 2. 초기 프로토타입 제작, 3. 모델 반복, 4. 배포와 모니터링의 과정을 거칩니다. 이 책에서는 이 4단계의 과정을 모두 다루고 있습니다.

 

1. 올바른 머신러닝 접근방법을 모색하기 위해 먼저 제품의 목표를 머신러닝 문제로 표현하는 방법에 대해 다룹니다. 또한 어떻게 계획을 수립하는지에 대해서 다루고 있습니다.

 

2. 초기 프로토타입 제작하는 방법을 다루기 위해 엔드투엔드 파이프라인 만드는 방법과 초기 데이터셋을 준비하는 방법을 다룹니다.

 

3. 모델 반복의 과정을 위해 모델 훈련과 평가, 머신러닝 문제 디버깅, 분류기를 사용한 글쓰기 추천에 대한 내용을 다룹니다.

 

4. 배포와 모니터링 과정을 위해 모델 배포 시 고려 사항, 배포 방식 선택, 모델 안정장치 만들기, 모니터링과 모델 업데이트에 대해 다룹니다.

 

300 페이지가 조금 안되는 분량에 많은 내용을 다루고 있습니다. 코드는 꼭 필요한 부분만이 포함되었고, 어려운 개념을 쉽게 설명하기 위해 그래프, 표, 그림을 많이 첨부하였습니다. 하지만 개발 환경을 다루는 부분과 기본적인 모델에 대한 알고리즘에 대한 내용을 다루지 않아 약간 아쉽습니다.

 

 

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

 

옛 속담에 '구슬이 서 말이라도 꿰어야 보배'라는 말이 있는데, 인공지능 분야야 말로 이 말에 딱 맞는 예라 할 수 있다. CNN, GAN, LSTM, 미디어파이프 등 다양한 패턴이나 알고리즘에 대해 아무리 많이 알고 있다고 해도 이것들을 제대로 응용하지 못한다면, 아무 쓸모없기 때문이다. 

 

하지만 그 응용 방법을 배울 기회가 적다는 근본적인 문제가 있다. 현재 인공지능 애플리케이션들이 많이 등장하고 있지만, 인공지능이 모든 프로그램에 적용되는 것이 아니다 보니, 인공지능 프로젝트에 참여할 기회가 많은 편은 아니다. 그리고 인공지능 분야는 경험에 따른 노하우 능력 차이가 워낙 커서 소위 초짜의 진입 장벽이 높다. 결국 해본 사람이 계속하게 되는 빈익빈 부익부 상태가 되고 있다. 

 

실무 개발 기회가 적다고 암울해질 필요는 없다. 다행스럽게도 에마뉘엘 아메장의 저서, '머신러닝 파워드 애플리케이션'을 통해, 누구나 머신러닝 애플리케이션 프로젝트에 함께하며 얼마든지 노하우를 쌓을 수 있는 기회를 얻을 수 있다.

 

이 책은 머신러닝 프로그램 개발 처음부터 끝까지 모든 과정을 담았다. 사용자가 글을 더 잘 쓰도록 돕는 문장 추천하는 '머신러닝 에디터'를 개발하겠다는 단순한 아이디어 상태부터 시작해서, 이 개발 목표를 머신러닝 문제로 어떻게 표현할지 맨 먼저 검토해보고, 초기 계획에 맞춰, 가장 간단한 프로토타입을 만들어 본다. 그리고 데이터를 어떻게 구하고, 가공과 테스트는 어떻게 할지 점진적으로 구체화하며, 모델도 만들어 보고, 디버깅, 배포와 모니터링도 하며 머신러닝 애플리케이션을 완성한다. 

 

 

 

전체적인 개발 과정을 보고 있으면, 저절로 애자일 개발방법론이 떠오른다. 머신러닝 애플리케이션 개발도 동일한 과정이 적용되는 것이다. 다만 기존에 프로그래밍 관련 책과는 다르게, '머신러닝 파워드 애플리케이션'에서는 파이썬 코드가 나오긴 하지만 코딩 자체 비중은 적다. (전체적인 코드 분석은 깃허브를 통해 독자가 스스로 해야 한다) 거의 대부분이 머신러닝 애플리케이션 실제 개발에 관련된 내용이다. 

 

어떤 데이터가 유용한지, 데이터를 벡터화하고 군집 클러스터를 만들고 테스트하는 법, 학습 시에 발생할 수 있는 문제들, 어떤 사이트가 도움이 되고, 오픈 데이터, 오픈 소스 사용법, 방법에 따른 장점과 단점 등 기존의 인공지능 책에서 보지 못한 실무에 유용한 조언들을 가득 담고 있다. 심지어 저자의 경험 이야기만으론 부족했는지, 링크드인 외에 다양한 AI 전문 기업의 지인들의 견해와 노하우도 Q&A 방식으로 독자에게 알려주고 있다. 

 

 

 

그리고 이것을 박해선 번역자도 제대로 한 몫 하며 거들고 있다. 곳곳에 옮긴이 주석을 달아서, 책 원본에 부족하거나, 추가로 설명하고자 하는 것들을 마구마구 담은 것이다. 역자의 이런 노고가 좀 더 완성도 높고, 독자에게 도움이 되는  '머신러닝 파워드 애플리케이션'을 만들었다 생각한다.

 

그런데 '머신러닝 파워드 애플리케이션'은 인공지능 이론을 가르쳐 주는 책이 아니다. 어디까지나 실무 개발 방법을 다룬 책이다. 그만큼 쉬운 책이 아닌 것이다. 적어도 중급서 이상으로 파이썬은 기본으로 알고 있어야 하고, 인공지능에 관련된 지식도 갖추고 있어야 한다. 책 자체의 설명은 어렵지 않으나, 일반적인 수준의 머신러닝 관련 내용은 자세한 설명 없이 이야기하고 있으므로 모르는 부분이 있다면, 주석을 참고해서 일일이 찾아 볼 필요가 있다. 인덱스까지 포함 303쪽의 그리 많아 보이지 않은 분량의 책이지만, 저자가 참고하라는 거, 주석, 내가 모르는 파트 같은 거 다 찾아가며 보면, 절대 작은 분량이 아니다. 

 

 

 

머신러닝 프로그램의 잘못된 결과는 데이터의 문제, 모델링의 문제, 학습의 문제 등에서 발생한다. 그렇기 때문에 저자는 아파트 임대 예약이나 환자 희귀 질병 예측 같은 예를 들어가며 발생할 수 있는 여러 조건과 문제 상황에 대해 말하고, 개선 또는 해결 방법을 말하고 있다. 

 

인공지능 관련 책을 보면 다들 느끼겠지만, 인공지능은 1+1=2처럼 딱 떨어지는 게 아니고, 대충 2쯤 된다 그런 느낌을 받는다. 2가 정답이지만, 학습을 잘못하면, 3이나 1이 나와 잘못된 결과를 얻을 수 있는 것이다. (물론 연산을 인공지능으로 구현하진 않을 것이다. 그냥 예다.) 2라는 정답이 간단해 보여도, 인공지능에서는 이것을 제대로 도출하는 것이 개발자의 노하우이자, 능력인 것이다. 그러기 때문에 책에 나온 저자의 경험과 조언은 시행착오를 줄이고, 제대로 된 결과를 얻는데 많은 도움이 되는 것이다.

 

'머신러닝 파워드 애플리케이션'처럼 실무 측면에서 머신러닝을 다룬 책은 이번에 처음 접한다. 실제 머신러닝 애플리케이션을 어떻게 개발하는지 확실히 엿보고 배울 수 있는 책이었다. 머신러닝 실무를 배운다는 생각으로 봐도 좋겠지만, 책 구성 상, 저자와 함께 프로그램을 한 단계 한 단계 올라가며 만들어 본다는 느낌으로 보면 더 현실감을 느끼며 볼 수 있을 거 같다. 이 책이 모든 머신러닝 작업에 표준이 되지는 않겠지만, 적어도 개인적으로는 머신러닝 프로그램을 개발하게 된다면, PC 옆에 두고, 자주 보며, 참고할 거 같다. 

 21세기의 연금술로 떠오른 ML이 현실적으로 적용된다면 이 책에서 소개하는 방법을 숙지하는 것도 좋다.

책의 현업자들이 지적하는 대로 ML을 반드시 모든 분석 프로젝트와 앱 서비스에 넣어야 될 필요는 없다. 뭔가 그 연금술의 멋져보이는 면에 현혹되어 한 삽으로 뜨면 해결될 걸 굳이 포크레인으로 뜨는 무리는 하지 말자는 거다. 

사실 ML은 요 근 몇 년간 이론 중심적으로 많이 홍보된 게 사실이다. 그걸 전공한 석박이 강의를 해서 그럴 수도 있지만 ML서비스를 만드는 것에 관심이 있는 사람이 그 모든 이론을 꿰고 연구급의 이해력을 갖춰야 되는 건 아니라고 본다. 그저.. 잘 만들어진 알고리즘을 잘 갖다붙이는 정도만 해도 될 것 같다(이게 쉽다는 건 아님). 

 

그 유명한 박해선 님이 번역한 거라 그런지 옮긴이 특유의 주석이 많고 책을 이해하는 데 도움이 된다. 

이젠 좀 나오는 책들이 현실적으로 DS, ML을 적용한 사례를 많이 보여줌. 그래서 좋다고 생각한다. 

 

현실의 문제는 데이터를 '갖고오느냐!!'부터 시작한다. 저자도 이 부분을 언급하고 있음. 실제로 공장자동화 이런 부분은 데이터 협조도 안되는 경우가 많음. 갠적으론 그렇기 때문에 이런 전체적인 플로우로 데이터 분석 및 그 주변 작업? 을 소개하고 갈쳤으면 어떨까. 

다음은 주요 내용 정리.

 

머신러닝을 해결할 수 있는 문제는 무엇인가?

- 완벽한 규칙이 존재하는 도메인은 ML을 사용할 필요가 없다. 예) 세금 앱

- 명확한 논리가 존재하는 문제는 ML을 사용하지 않아도 된다.

- 정답이 있는 지도 학습 -> 정답이 없는 비지도 학습의 경우 일부 현업자는 부정적인 의견을 공유한 적이 있다. 

 

알고리즘을 구현하기 전에 할 것

- 직접 알고리즘이 되어보기

: 데이터를 사용하지 않고 사전 지식으로 원하는 답을 만드는 방법을 정의해보기

-> 이렇게 하는 이유: 기준 모델을 빨리 구현하고 모델을 평가하는 척도로 사용하기 위해. 즉 부분에 매몰되지 않을 수 있음.

 

ML 프로젝트에서 초점을 맞춰야 할 곳

: 성능 병목. 간단한 모델부터 시작해서 전체 파이프라인 디버깅. 즉 목표 Y값이 간단하고 쉬운 단계부터 예측하는 모델로 시작해보는 거다. 의외로 많은 문제가 이런 간단한 모델에서 끝날 수도 있음

 

전체 파이프라인 구축 후 성능 병목을 찾을 떄

: 했다치고 결과 상상하기. 즉 이 프젝을 완료했을 때 내가 SNS나 기사에 어떻게 발표할 건지. 도움이 되었는지를 생각해보라. -> 배포에 필요한 노력을 낮추도록 인프라를 구축하는 게 도움이 됨. 

 

raw data를 들여다보기

: raw data를 들여다보는 것은 항상 옳다. 수동으로 읽어보기-> data literacy가 생각나는 대목.

 

 

 

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

 

해당 책은 일반적인 딥러닝/머신러닝 학습 도서가 아닌 개발자/엔지니어들을 위한 책입니다.
다양한 모델들을 만들고 살펴보는 것보다는 데이터 수집부터 서비스 개발까지 전체 파이프라인을 이해하고 실제 구축하는데 목적을 두고 있습니다.
개인적으로는 데이터 엔지니어링 업무가 예정되어 있어 일독하면서 흥미롭고 재미있게 읽었고 많은 부분에 인사이트를 얻을 수 있어 의미있는 학습 시간이었습니다.
데이터 개발자/엔지니어들을 위한 책이지만 협업 관계에 있는 분석가, 시스템 관리자들에게도 추천드리는 책입니다.

 

1.jpg

 

이 책을 읽기 위해 필요한 것!

프로그래밍 능력, 파이썬 기본지식, 머신러닝 기본개념!

초심자를 위한 책은 아니라고 생각한다.

지금 까지 수많은(?) 책을 읽고 예제를 돌리고 데이터를 대입하며 ..

어쩌라고!! 하고 좌절한 사람들에게 필요한 책이다.

머신러닝의 기본인 데이터를 다루는 방법에 대하여 코딩과 함께 설명해준다.

이 얼마나 친절한가?!

머신러닝은 데이터와의 싸움이다. 올바른 데이터 셋을 구성하고 정제하고 테스트하고 다시 분석하는 무한 반복의 굴레의 어디쯤 원하는 결과가 있다.

우린 이미 충분히 성능좋고 멋진 라이브러리가 많다.

이젠 데이터에 충분히 집중해.볼 필요가 있다.

이 책은 왜 좋은 데이터가 필요한지 어떻게 좋은 데이터를 만들고 사용하는지를 알려준다.

What이 아닌 Why와 그 답인 How에 대한 친절한 지도서다.

왜 결과가 원하는 것과 달랐는지 머리를 싸맸다면 이제 이 책을 읽고 원하는 데이터를 고르고, 이미 있는 데이터를 읽고 재활용 해보자 문제 해결을 위해 구체적으로 무엇을 해야하는지 잘 알려주고 있다고 생각한다.

Book_2.JPG

 

머신러닝을 이용하여실용적인 애플리케이션을 제작하고자 하는 이들에게 좋은 지침이 될만한 책이 출간되었다. 바로 ‘머신러닝 파워드 애플리케이션 (원제:Building Machine Learning Powered Applications)’. 머신러닝의 인기만큼 머신러닝을 소개하고, 모델 만들고 훈련시키는 방법을 다룬 책들은 많지만, 머신러닝을 이용하여실제 애플리케이션을 구축하는 과정에 대해 제대로 설명하고 있는 안내서를 찾기는 쉽지 않다. 이 책은머신러닝을 이용한 애플리케이션을 만들고 배포하고자 할 때, 프로젝트의 진행에 따라 무엇을 고민해야할지에 대한 실용적인 가이드를 해주고 있다.

저자에 따르면아이디어로부터 머신러닝 애플리케이션 배포를 하는 전체 과정은 다음의 4단계로 이루어진다고 한다.

1.    올바른 머신러닝 접근방법 모색

2.    초기 프로토타입 제작

3.    모델 반복

4.    배포와 모니터링

첫 단계인 올바른 머신러닝 접근방법 모색에서는 제품의 목표를 달성하기 위한올바른 성공 기준을 설정하고, 적절한 초기 데이터셋과 모델을 찾는 것이 중요하다. 두번째 단계인 초기 프로토타입 제작은 모델링 작업에 앞서 머신러닝을 사용하지 않고 제품의 목표를 달성하는 엔드투엔드 프로토타입을 제작한다. 이 프로토타입은 최상의 머신러닝 적용방법을 결정하는 데 도움이 된다. 다음의모델 반복단계는 모델을 훈련하고 평가하면서 점진적으로오류를 분석하고 모델을 다듬어나가는 과정이다. 마지막 배포와모니터링단계는 학습된 모델을 이용하여 적절한 방식을 통해 배포하는 과정에 대한 것으로, 모델의 오류를 완화하고 모니터링하는 방법을 다룬다.

 이책의 전체적인 구성 역시, 저자가 제시한 4단계를 따르고있다. 각 단계에 필요한 내용과 개념을 보다 효과적으로 전달하기 위해,머신러닝 보조 글쓰기 애플리케이션인 머신러닝 에디터를만들어가는 과정을 담고 있다. 이 책의 예제로 등장하는 머신러닝 에디터는 사용자가 글을 더 잘 쓰도록돕는 시스템, 특히 더 좋은 질문을 쓰도록 도와주는 것을 목표로 한다.예제프로젝트를 통해 실전과 같은 고민을 해 볼 수 있고, 예제코드는 깃허브에서 받아볼 수있다.

또한, 책의 전반에 걸쳐 머신러닝 전문가와의 인터뷰및 조언이 포함되어 있는데, 실제 애플리케이션을 구축하고 서비스하면서 얻은 다양한 노하우 및 실용적인충고를 담고 있다

 

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

20211024_120251.jpg

좋은 책이란 어떤 책일까?
나에게 도움을 주는 책일 것이다. 이번주에 그런 책을 읽었다. 머신러닝 책들이 요즘 많이 나와서, 읽어도 거기서 거기인 책들이 많았는데, 조금 더 넓은 시선에서 바라본 책이라서 마음에 들었다.
그렇다고 어렵지는 않았다.
누가 읽으면 좋을 책일까?
머신러닝을 체계적으로 하나하나 설명해주는 책은 아니다. 그래서, 간단한 머신러닝 관련 책으로 입문한 사람부터 읽으면 좋겠다는 생각이다. 그래도 한번 즈음은 책 내용을 따라해본 초보에게 더 적합한 책이다. 물론 수많은 머신러닝을 모델을 만들면서 기존의 책에서 가르쳐준대로만 하고 있다면 좋은 인사이트를 받을 수도 있다.
수식 같은 것이 있을까요?
머신러닝, 딥러닝 책들을 보면 기본 수학 수식을 설명한 책들도 많다. 이 책에는 그런 것이 없다. 두려워할 필요가 없다. 

 

머신러닝 기본 개념에 한두번 따라해본 사람이라면 누구나 쉽게 읽을 수 있도록 번역자가 잘 번역해주셨다. 번역자가 다년간 머신러닝쪽으로 워낙 유명하신 분이라, 이번 번역본도 완성도가 높다.
 

20211024_120308.jpg

그런데, 전체 이야기가 머신러닝 이야기이다. 그냥 보면 일반 머신러닝 책과 비슷해보인다.
그럼, 이 책만의 특징으로, 어떤 이야기들이 덧붙여졌을까?
머신러닝 전체 파이프라인에서 우리가 생각해볼 문제점들을 하나 하나 건들어준다.
그 팁들이 머신러닝을 오래하다보면 어디선가 다 들어본 이야기일수도 있다.
그래도 이번 기회에 한번 완독해보기를 바란다.
왜냐하면 주말이면 되기 때문이다. 하루 반나절 정동면 빠르게 책을 스킵할 수 있다.

 

대충 머신러닝에 대한 전체적인 그림을 잡고, 본인이 실제 진행하는 과정에서 한번 더 찾아보면 좋을 것 같다.
 

20211024_120409.jpg

 

책 전체를 관통하는 느낌은 44페이지의 가장 간단한 알고리즘이 되어보기이다.
바빠서, 몰라서 매번 바로 자동화 작업으로 들어갔는데,
수동으로 해결해보기에 고개가 끄덕여졌다. 
수동으로,단순하게, 빠르게 반복이 저자의 큰 핵심 줄거리가 아닐까 생각해본다.

이 책이 머신러닝 자체를 공부시켜 주는 책은 아니지만, 옆에 두고, 머신러닝 프로젝트 할 때마다 읽어보면 실패로 가는 많은 순간을 걸러낼 수 있을 것 같다는 생각이 든다.

 

 



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

 

  • 조금은 낚인 기분
    • 책을 중간쯤 넘어갔을 때 남은 페이지를 확인해보고 든 생각이다.
    • 사실 이 책의 출간 소식을 듣고, 제목만 보고 기대했던 내용은 이랬다.
      1. 웹/앱에 머신러닝을 탑재하는 방법
      2. 지속적인 학습으로 성능을 유지할 수 있는 파이프라인을 구축하고 운영하는 법
      3. 한 발 더 나간다면, 웹/앱 사용자 행동으로부터 데이터를 수집하는 법
    • 올해 맡은 업무 중 하나는 데이터 수집과 웹 배포.
    • 여기에 머신러닝 어플리케이션을 하나씩 얹을 계획이라 이런 실용서가 몹시 필요다.
    • 어쩌면 내 수요가 눈을 가려버렸는지도 모르겠다.
    • 하지만 이건 내 일방적인 기대였고, 책은 문제가 없다. 
    • 한편으로는 무게중심을 데이터에 놓는 것이 중요하다는 것을 다시 한번 깨닫게 해준다.

 

  • 이 책의 구성
    • 이 책은 머신러닝 애플리케이션을 개발하며 어떤 고민을 해야 하는지 체계적으로 알려준다.
    • 이 문제를 머신러닝으로 해결하는 것이 맞는지부터 시작해서,
    • 데이터를 어떻게 수집하고 처리할지,
    • 모델을 어떻게 훈련하고 평가하고 디버깅할지,
    • 그리고 무엇보다 MVP(minimum viable product)를 만들고 단계적으로 키워가는 법이 담겨 있다.

 

  • 머신러닝은 거들 뿐
    • 수록된 구루들의 인터뷰와 모범 사례를 보면 내가 3년 전 고민끝에 내린 결론을 다시 한번 확인하는 느낌.
      1. "생각을 잘 해야 한다" - 여기서 생각은 당면한 코드나 알고리즘이 아니다.
        • 문제 정의 자체가 제대로 되어야 하고,
        • 문제를 넓은 시야로 보면서 걸림돌을 찾아내야 하지만
        • 한편으로는 저 걸림돌을 제거하는데 시간을 투자해야 하나? 를 고민해야 한다.  
        • 손자병법에서는 싸우지 않고 이기는 것을 상선(上善)이라고 한다.
        • 코딩을 하지 않고도 문제를 푸는 길이 있다면 그 길로 가면 된다.
      2. "동작이 빨라야 한다" - 여기서 동작은 아이디어의 구현, 결국 대부분 코딩능력이다.
        • 아무리 아이디어가 좋아도 손발이 느리면 말짱 헛생각이다.
        • 특히 MVP로부터 진화시키는 과정은 수많은 시행착오를 당연시해야 한다.
        • 아이디어가 생기자마자 시스템에 옮기지 못하면 지연이 누적되는 건 피할 수 없다.
        • hwp, ppt를 붙들면 코딩을 못하고, 이 기간이 몇 주가 되는 건 순식간이다.
        • 본업과 무관한 자기만의 과제를 만들어 진행하는 것을 side project라고 한다.
        • 구글이 20% 시간을 투자하라고 푸시하는 대상이기도 하고, 데이터를 다루는 이들의 필수품이다.
        • 본업이 잠시 코딩을 놓아도 개인은 실력을 갈고 닦을 수 있고 아이디어와 인맥이 샘솟기 때문이다.
      3. "모니터링: 개념 탑재와 시각화 능력이 중요하다" - 길을 잘 가고 있는지를 확인해야 한다.
        • 피터 드러커의 명언, "측정할 수 없다면 관리할 수 없고 관리할 수 없으면 개선도 없다."이 있다.
        • 좋은 모델은 예측이건 분류건 일을 잘 하는 모델이다.
        • 좋은 모델을 만들려면 현재 모델을 개선시켜야 하는데, 어디를 개선할 지를 정확히 알아야 한다.
        • 그러자면 적절한 측정지표(metric)가 필요하고, 현황을 그림으로 그려야 한다.
        • 어떨 때 어떤 metric을 쓸 지는 개념에서 나오고
        • 적확한 시각화 방법을 선택하는 능력은 개념과 코딩 능력에서 나온다.
        • 황무지에서 길을 잃은 채로 열심히 가면 굶어 죽을뿐이다.
    • 이런 조건들이 갖춰진 뒤에야 머신러닝을 한다.
    • 머신러닝 파이프라인도 처음에는 최소한으로, 돌아가게만 짜고 필요에 의해 하나씩 붙인다.
    • 물론 텐서플로(케라스)나 파이토치같은 머신러닝 프레임워크 사용 능력도 코딩 기본기에 속한다.
    • 이 길을 가고 있는 사람이라면, 내게 부족한 것이 무엇인지를 끊임없이 묻고 파악해서 메워야 한다.

 

  • 숙제를 받은 느낌
    • "이 책을 따라서 하면 머신러닝 애플리케이션을 만들 수 있겠지"라는 기대를 가지고 읽기 시작했지만,
    • "이 책을 따라서 머신러닝 애플리케이션을 만들려면 참 많은 능력이 필요하구나"라는 사실을 깨달았다.
    • 지금 당장도 익숙치 않은 웹 애플리케이션을 만드느라 서버 구축과 관리부터 몸으로 배우는 중이다.
    • 그 중에서도 머신러닝의 핵심은 역시 데이터.
    • 이 책의 80% 가량이 데이터 이야기다.

 

  • 저자의 말에 깊이 공감하며 오늘도 데이터를 주무른다.
    • "대부분의 소프트웨어와 다르게 머신러닝 코드는 겉으로는 올바르게 작동하지만 완전히 잘못된 결과를 출력할 수 있습니다. 위와 같은 도구 - 일반 소프트웨어 품질 관리 도구 - 와 팁을 대부분의 머신러닝 코드에 적용할 수 있지만 일반적인 문제를 진단하는 데 충분하지 않다는 의미입니다. (...) 머신러닝 프로그램은 그냥 실행하는 것이 전부가 아니라 정확한 예측 결과를 만들어야 하기 때문입니다."
    • "데이터 작업을 재미있는 모델링을 하기 전에 수행해야 하는 따분한 일이라 생각하기 쉽습니다. 하지만 모델은 데이터에서 트렌드와 패턴을 추출하는 방법을 제공할 뿐입니다. 사용할 데이터가 모델이 예측하기 충분한 패턴을 담고 있는지 확인해야 합니다(그리고 두드러진 편향이 내재되어 있는지 체크해야 합니다). 이것이 데이터 과학의 핵심 작업입니다(사실 모델 과학자라고 부르지 않고 데이터 과학자라고 부르는 것을 보면 알 수 있습니다)."

 

※ 한빛미디어 2021 도서 서평단 "나는 리뷰어다"의 일원으로 도서를 제공받아 작성한 리뷰입니다.

 

Author: 에마누엘 아메장 지음 / 박해선 옮김

출판사: 한빛 미디어

Score /5: ⭐️⭐️⭐️⭐️⭐️

[이 책의 대상 독자]

  • 실제 머신러닝을 위한 싸이클을 전체적으로 배우고 싶은 분

시중에는 많은 머신러닝 책이 있다. 그 중에서도 특정 알고리즘이나 특정 프레임워크에 초점이 맞춰져 있는 책이 많은 것도 사실이다. 그렇게 특정 프레임워크에 대한 부분을 읽고 나면 남는것은 생각보다 많지 않다.
그런 의미에서 이 책을 보면 전체 사이클을 진행하면서 해당 과정을 이해할 수 있다.

 

나는 머신러닝에 대해서는 초보자이므로 일단은 가벼운 마음으로 이 책을 보기 시작했다. 이 책에서 내가 느낀 부분은 
해당 책이 '정말 친절하다' 라는 것이다. A에서 Z까지 가는 과정을 정말 상세하고도 이해하기 쉽게 풀어 냈다. 소위 술술 읽히는 책이 이 책이 아닐까 한다.

 

이 책은 전체적인 머신러닝 사이클을 배울 수 있으므로 처음 배우는 사람이나 아니면 실무에서 고생하고 있는 실무자도 모두 하나의 레퍼런스로 삼기에 충분한 책이다.

 

※ 이 책은 한빛 미디어의 지원으로 작성된 글입니다

프로그래밍 언어를 배우기 시작하면 보통 해당 언어로 “Hello World”를 출력해보면 접근하듯, 머신러닝을 처음 배우면 대부분 mnist의 숫자 분류나 iris 붓꽃 분류를 해보며 코드를 작성하기 시작한다. 그리고 여러가지 알고리즘과 모델에 대해 배우고 시행 착오를 거치며 하이퍼 파라미터 튜닝을 하곤 한다. 하지만 언제나 그렇듯 실제 업무에선 이 단계들만 신경쓰는 거 만으론 부족하다. (4대 천왕 중 한 명인 앤드류 응 교수의 발언 덕분에 좀 나아지긴 했지만) 여전히 많은 사람들에게 경시당하는 데이터 수집 및 라벨링부터, 지속적인 운영을 위한 배포와 모니터링까지 하나의 “application”으로 동작하기 위해 더 많은 단계를 신경써야 한다.

이 책은 대부분의 사람들이 관심을 갖고 해보길 원하는 알고리즘과 모델에만 집중하지 않고 “application”의 관점에서 단계별로 어떤 부분을 신경써야 하는지 초보자들에게 알려주는 일종의 machine learning관점의 software engineering 책이라는 생각이 든다. 일부 사람들에게는 책의 분량에 비해 코드가 적어서 실망할 수도 있겠지만, 조교수로 시작해서 기업의 AI 책임자가 되면서 느낀 문제점 때문에 이런 전체적인 관점에서 머신러닝을 이야기하는 책을 쓰지 않았을까 하는 생각이 들었고, 개인적으로는 지금 재직하는 회사에서도 비슷한 문제를 가진 개발자들을 볼 수 있어서, 실무에서도 필요하고 도움이 되는 책이란 생각이 들었다.

Ref.

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

평 및 발제

  올 한해 개인적으로 가장 관심이 많이 갔었고, 시간을 많이 보낸 분야가 있다면 머신러닝 (기계학습) 이다. 기계학습이 화자가 된지  10여년이 되어가고 있고, 최근 유행은 딥러닝, 인공지능이 주를 이루는 시대인데 나는 어찌보면 이 분야에서 한참을 뒤쳐저서 이제서야 기계학습을 배우고 있다. 그럼에도 불구하고 기계학습 분야에 대해서 학기 수업을 듣고 혼자서 코딩도 하며 간단한 문제를 풀어보기도 하고, 어려운 문제는 파이썬 전문가 지인의 도움을 받으면서 가까스로 기계학습을 배워가고 있다.

 

그런 수고가 있었기에 본 책을 그나마 이해할 수 있었고, 대략적으로 어떤 내용들인지 갈피가 잡힌다. 그 전에는 그저 책 제목 만으로도 기피해야할도서 였다면, 지금은 기계학습의 응용분야가 어딘이지 생각하면서 보게 되니 그래도 내가 좀 변하긴 했다.

 

본 책의 머리말에도 적혀있는데, 이 책은독자가 프고그래밍에 어느정도 익숙하다는 가정하에 쓰여져 있고, 제예재코드는 주로 파이썬을 사용하여 설명하고 있다. 파이썬과 R을 전문적이진 않지만 바이오 분야의 전공자로서 그나마 조금 다루고 사용해볼 수 있었따.

 

 

차례 및 요약

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

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

CHAPTER 2 계획 수립하기

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

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

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

[PART III 모델 반복]

CHAPTER 5 모델 훈련과 평가

CHAPTER 6 머신러닝 문제 디버깅

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

[PART IV 배포와 모니터링]

CHAPTER 8 모델 배포 시 고려 사항

CHAPTER 9 배포 방식 선택

CHAPTER 10 모델 안전장치 만들기

CHAPTER 11 모니터링과 모델 업데이트

 

이 책은 실용적인 머신러닝에 대해 다루고 있다. 검색엔진, 소셜 플랫폼 추천 시스템, 번역 서비스, 사진에서 얼굴 감지 시스템 등 다양하게 사용되고 있는 머신러닝을 배울 수 있고, 활용 예제코드가 수록되어 있다.

 

머신서링의 전체 과정에 대해 이 책에서는 아래의 단계로 소개하고 있다. 

1. 올바른 머신러닝 접근 방법 모색

2. 초기 프로토 타입 제작.

3. 모델 반복

4. 배포와 모니터링

 

머신러닝의 반복 루프는 분석, 접근방법 선택, 수현, 측정을 통해 이루어 진다.

 

머신러닝에서는. 모델 파이프라인 성능이 나쁘다면 모델의 품질 때문인지, 버그 때문인지 알수 있는 가장 좋은 방법은 점진적인 방식을 따르는 것이며, 데이터 흐름부터 시작해서 훈련능력, 마지막으로 일반화 추론의 디버깅을 진행하는 것이다. 

 

위와 같은 내용들이 다양한 예제들과 함께 실용적으로 쓰여진 책으로 머신러니에 대해 상당한 전문 지식이 있어야 소화가 가능한 책이다.

 


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

머신러닝 파워드 애플리케이션

지음에마뉘엘아메장 / 옮김박해선

 

저자 에마뉘엘아메장은 한국어판 서문에서 데이터 과학자와 머신러닝 엔지니어가 이 분야에서 성공하는데 필요한 실용적인 기술을 배울 수 있도록 멘토링을 했었다.

2년간의 멘토링을 마친 후 이 책 Building Machine Learning Powered Appliction(오라일러 2020)을 집필했다.

멘토링을 하면서 머신러닝 모델의 작동방식 가르치는 과정은 많지만 머신러닝을 제품에 사용하는 방법에 초점을 맞춘 자료는 부족하다는 것을 깨닫고 멘토링 과정에서 배운 교훈을 실리콘밸리를 넘어더 많은 사람들과 공유하기 위해 이 책을 썼다고 했다.

저자는 책 출간하고 1년후에 프랑스어중국어로 번역되고 한국어로도 번역되게 되었다며

이 책에 담긴 도구와 조언이 다양한 사람들에게 유용하다는 사실에 정말 기쁘다며독자들의 의견과 질문이 있다면 언제든 연락 바란다고 했다.

이 책은 저자가 말했듯이

     머신러닝을 사용해 실용적인 애플리케이션 만들기

     실용적인 머신러닝

     기술적이고 실용적인 사례연구

     실제 비즈니스 애플리케이션을 다루고 있다

 

머신러닝 전체 과정을 다루고 있다.

멘토링 과정의 경험을 통해 머신러닝 적용의 어려운 문제들을 해결하면서 터득한 4가지에 중점을 두고 있다.

 

올바른 머신러닝 접근 방법 모색

주어진 문제를 풀기 위한 최상의 방법은 성공기준가용 데이터문제의 복잡성과 같은 많은 요소에 따라 달라진다.

이 단계의 목표는 올바른 성공기준을 설정하고 적절한 초기 데이터 셋과 모델을 찾는 것이다.

 

초기 프로토 타입 제작

모델링 작업을 하기 전에 먼저 앤드투앤드 프로토 타입을 만든다.

이 프로토 타입은 머신러닝을 사용하지 않고 제품의 목표를 달성하는 것이 목적이다또한 최상의 머신러닝 적용방법을 결정하는 데 도움이 된다프로토 타입이 결정되면 머신러닝 필요성을 알수있고 모델 훈련을 위해 데이터 수집을 시작할 수 있다.

 

모델 반복

데이터 셋이 준비되면 모델을 훈련하고 단점을 평가할 수 있다이 단계의 목표는 오류 분석과 구현 사이를 오가며 반복하는 것이다.

이 반복 루프와 속도를 높이는 것이 머신러닝 속도를 높이는데 최상의 방법이다.

 

배포와 모니터링

모델이 좋은 성능을 내면 배포를 위해 적절한 방법을 선택해야 한다.

배포된 후에 예상치 못한 방식으로 종종 모델이 실패한다.

 

이 책은 제시한 4가지를 중심으로 다양한 머신러닝 적용사례를 제시하고 문제해결의 어려웠던 부문을 잘 설명하고 있다.

 

4차 산업혁명 시대를 맞이하여 산업계에서는 디지털 변환이 확산되고 있다금융마케팅제조 등의 산업현장의 디지털 혁신 과정에서 머신러닝 기술 적용이 늘어나고 있다.

현재 머신러닝 개발에 종사하고 있는데 문제해결에 어려움이 있다면무엇이 문제인지 고민하지 말고 일독을 통하여 문제해결의 실마리를 발견할 수 있는 기회가 되기를 바란다.

또한머신러닝 분야에 관심을 갖고 있다면 필독서로 추천한다.

 

 

 

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

내용이 어렵지 않아서 쉽게 쉽게 읽고 넘어갈 수 있어서 처음 머신러닝 어플리케이션을 개발해보고 싶은 사람들에게 방향성을 제시해줄 수 있는 좋은 책이라고 생각됩니다.

 


[도서 소개]

머신러닝 기반 애플리케이션을 설계, 구축, 배포하는 과정에 필요한 모든 기술을 설명하는 책이다. 초기 아이디어가 제품으로 개발되기까지의 과정을 머신러닝 에디터 예제 프로젝트를 통해 순서대로 배운다. 데이터 과학자, 소프트웨어 엔지니어, 제품 관리자가 머신러닝 애플리케이션을 단계별로 구현하는 데 필요한 도구와 실무에서 맞닥뜨리게 되는 도전 과제와 모범 사례를 살펴본다. 유용한 코드와 친절한 그림, 업계 리더와의 인터뷰를 통해 실용적인 머신러닝 개념을 터득해 본인만의 머신러닝 애플리케이션을 자신 있게 구현해보자.


[대상 독자]

- 프로그래밍 경험과 머신러닝 기초 지식을 가진 누구나

- 데이터 과학자, 머신러닝 엔지니어로 현업에 종사하는 개발자

- 코딩은 모르지만 데이터 과학자와 함께 일해야 하는 직군 


[주요 내용]

- 제품의 목표를 정의하고 머신러닝 문제를 설정합니다.

- 첫 번째 엔드투엔드 파이프라인을 빠르게 만들어 초기 데이터셋을 획득합니다.

- 머신러닝 모델을 훈련, 평가하고 성능 병목을 해결합니다.

- 제품 환경에 모델을 배포하고 모니터링합니다.


[추천평]

머신러닝에서 가장 어려운 부분인 문제 정의, 모델 디버깅, 배포를 건너뛰는 책은 너무나 많습니다. 하지만 이 책은 이런 문제에 초점을 맞춰 이야기를 풀어갑니다. 이 책을 읽으면 아이디어에 불과했던 프로젝트를 큰 영향을 발휘하는 애플리케이션으로 만들 수 있습니다.

-알렉산더 구드(Intuit 데이터 과학자)


머신러닝 모델을 도입하는 방법, 잘못되기 쉬운 부분과 특별히 주의해야 할 사항에 대한 실용적인 조언을 찾고 있다면 바로 이 책이 답입니다. 10년 전에 이 책을 읽었더라면, 교훈을 찾아 헤매던 시간을 단축할 수 있었을 겁니다.

-루카스 텐서(트위치 ML 수석 매니저)


[서평]

머신러닝 파워드 애플리케이션은 머신러닝 기반 애플리케이션을 사용하는 목적과 만드는 방법 까지 배울수 있다. 파트 1에서는 올바른 머신러닝 접근 방법에 대해서 설명 하고 있다. 먼저 어떤 작업이 가능 한지 예상을 하고 작업 범위와 문제점에 대해서 예상을 하며 계획을 수립하는걸 배운다. 파트2에서는 초기 프로토타입 제작에 대해서 배웁니다. 먼저 End To End 파이프라인 만들기를 합니다. 가장 쉬운 프로토타입을 만들고 워크플로 테스트를 합니다. 초기 데이터셋을 준비하고 레이블링으로 데이터 트렌드를 찾고 데이터를 활용한 특성 생성과 모델링을 합니다. 파트3에서는 모델 훈련과 평가 그리고 머신러닝 문제 디버깅, 분류기를 사용한 글쓰기 추천 모델을 만드는걸 배웁니다. 파트4에서는 모델 배포시 고려되는 사항에 대해서 배우고 서버, 클라이언트 배포등 하이브리드 방법까지 학습 합니다. 마지막으로 모니터링과 머신러닝을 위한 CI/CD 모델 업데이트 구축하는 방법을 학습합니다.


머신러닝 파워드 애플리케이션은 처음 아이디어에서 부터 머신러닝 애플리케이션 개발/배포까지 모든 과정을 배울수 있는 책으로 기존의 레거시 앱을 어떻게 머신러닝 애플리케이션으로 만드는지 굼궁한 독자라면 많은 가장 좋은 참고서가 될것이라 생각합니다.

 

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

 

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

책을 읽기 전에

머신러닝 관련 학습 경험이 거의 없는 상태로 입문서와는 거리가 먼 책을 수령하게 되어 약간 당황스럽기는 했지만, 책이 다루고 있는 전반적인 내용의 흐름을 바탕으로 서평을 작성하기로 했습니다.

아이디어부터 애플리케이션 배포까지

이 책의 모토는 아이디어에서 시작해 완성한 애플리케이션을 배포하는 단계까지 머신러닝 전체 과정을 다루는 것이라 생각합니다. 아이디어에 맞는 올바른 머신러닝 접근 방법, 초기 프로토타입 제작, 모델링 및 반복, 배포와 모니터링까지 넓은 범위의 내용을 순차적으로 다루고 있습니다.

적절한 예제 프로젝트

이 책에서는 개념을 설명하는 과정에서 '머신러닝 에디터'라는 머신러닝 기반 글쓰기 보조 프로그램 예제를 제작하는 방식을 활용합니다. 이를 통해 텍스트 데이터를 다루는 것에 익숙해질 수 있으며, 실용적인 제품을 만드는 과정을 직접 경험할 수 있습니다.

다양한 조건을 고려한 범용적인 서술

단순히 책에서 다루는 예제의 제작 환경만을 다루는 것이 아닌, 다양한 조건에서 어떠한 접근 방식을 취하는 것이 유리한지, 어떤 방향으로 모델을 작성하거나 학습을 진행해야 할 지 모두 고려하여 기술하고 있습니다.

 

한줄평

AI 장인이 되고 싶다면 읽어야 할 책으로 매우 적합하다. 머신러닝을 조금은 아는데 파이프라인 설계나 이런 부분에 있어 경험적으로 부족하다면 이 책은 그 길에 좋은 길잡이가 될 것이다. 저자의 깊고 다양한 경험, 그리고 ML의 권위자의 인터뷰로 꽉찬 이책은 부족한 경험을 채워주고 마치 선배가 AI를 잘가르쳐준다는 느낌을 준다.

난이도

이 책의 난이도는 중급에서 고급이다. 기본적인 머신러닝에 대한 이해도는 있어야 이 책을 제대로 수용이 가능하다.

재질 / 쪽수 / 가격

매트지 / 304 / 27000원

장점

일단 컬러라서 너무나 좋다. 책이 너무나 아름답다는 느낌을 준다.

내가 책을 읽을 때 중요시 여기는 부분은 그거 어디 인터넷에서 퍼온글로 이루어진게 아닌 저자의 경험이 녹아들어가있는가이다.

근데 이 책은 그부분에 있어서 완벽하다. 해당 글은 다음과 같다.

- 경험적으로 해결책을 정의할 수 없는 문제에 적합한 시스템을 만들 때 특히 머신러닝이 유용하다.

- 가장 좋은 방법은 기존의 결과를 이해하하고 재현해보는 것입니다.

 

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
머신러닝 파워드 애플리케이션
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
머신러닝 파워드 애플리케이션
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
머신러닝 파워드 애플리케이션
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실