머신 러닝 교과서

x9791160507966

‘머신 러닝 교과서 with 파이썬, 사이킷런, 텐서플로’는 세바스찬 라시카Sebastian Raschka와 바히드 미자리리Vahid Mirjalili가 쓴 아마존 베스트셀러 ‘Python Machine Learning 2nd Ed.’의 번역서입니다.

이 책은 넘파이를 사용하여 밑바닥부터 알고리즘을 만들어 봅니다. 또한 사이킷런 최신 버전(0.20)에서 변경된 내용을 포함하고 있습니다. 특히 딥러닝 파트는 텐서플로의 최신 버전(2.0.0a)의 변경사항과 특징을 설명할 수 있도록 바꾸었습니다. 640 페이지가 넘는 두꺼운 책을 풀 컬러 인쇄로 제작해주신 길벗 출판사에게 감사드립니다. 많은 수식과 부족한 번역 때문에 고생하신 교정자와 디자이너 분에게 정말 감사드립니다.

  • 온라인/오프라인 서점에서 판매중입니다. [Yes24], [교보문고]
  • 644페이지, 컬러: 33,000원 –> 29,700원, 전자책 26,400원
  • 이 책에 실린 코드는 깃허브에 있습니다.
  • 이 책의 번역 후기를 여기에서 보실 수 있습니다.
  • 이 책의 코드는 scikit-learn 0.20, 0.21.1 버전, 텐서플로 2.0.0a, 2.0.0b, 2.0.0에서 테스트 되었습니다.

이 페이지에서 책의 에러타와 scikit-learn, TensorFlow의 버전 변경에 따른 바뀐 점들을 계속 업데이트 하겠습니다. 구글 그룹스의 머신러닝/딥러닝 도서 메일링 리스트에 가입하시면 책의 에러타나 수정사항을 자동으로 수신할 수 있습니다.

이 책에 대해 궁금한 점이나 오류가 있으면 이 페이지 맨 아래 ‘Your Inputs’에 자유롭게 글을 써 주세요. 또 제 이메일을 통해서 알려 주셔도 되고 구글 그룹스 머신러닝/딥러닝 도서 Q&A에 글을 올려 주셔도 좋습니다.

감사합니다! 🙂


Outputs (aka. errata)

  • 1~20: 2쇄에 반영되었습니다.
  • 21~33: 3쇄에 반영되었습니다.
  1. (p8) 마지막 문단에서 “정오표는 블로그(https://bit.ly/2Hn88ZM)에 등록해 놓겠습니다”를 “정오표는 블로그(https://bit.ly/ml-textbook)에 등록해 놓겠습니다”로 수정합니다.
  2. (p9) 마지막 문단의 첫 문장에서 “‘machine learning’을 검색하면 180만 건이라는”을 “‘machine learning’을 검색하면 440만 건이라는”으로 수정합니다.
  3. (p12) 두 번째 문단에서 “14장은 계산 그래프와 세션의 핵심 개념을”을 “14장은 계산 그래프와 텐서의 핵심 개념을”으로 수정합니다.
  4. (p57) 7번 주석에서 “η(y(1)Ф(0) x(1))=η(y(1)-1)x(1)과 같습니다”를 “η(y(1)Ф(0))x(1))=η(y(1)-1)x(1)과 같습니다”로 정정합니다.(최*진 님)
  5. (p201) 페이지 중간에서 “변수 \gamma=\frac{1}{2\sigma}을 도입하여”를 “변수 \gamma=\frac{1}{2\sigma^2}을 도입하여”로 정정합니다.(정*현 님)
  6. (p220) 첫 문장에서 “악성(benign) 종양은 클래스 1로 표현되고 양성(malignant) 종양은 클래스 0으로”를 “악성(malignant) 종양은 클래스 1로 표현되고 양성(benign) 종양은 클래스 0으로”로 정정합니다.(정*현 님)
  7. (p230) 첫 문장에서 “왼쪽 위 그래프는 분산이 높은”을 “왼쪽 위 그래프는 편향이 높은”으로 정정합니다.(정*현 님)
  8. (p241) 위에서 세 번째 줄에서 “악성 종양인 하나의 샘플을 양성 종양(FP)으로”를 “양성 종양인 하나의 샘플을 악성 종양(FP)으로”로 정정합니다.(정*현 님)
  9. (p247) 아래에서 다섯 번째 줄에서 “212개의 양성 종양(클래스 1)과 357개의 음성 종양(클래스 0)”을 “212개의 악성 종양(클래스 1)과 357개의 양성 종양(클래스 0)”으로 정정합니다. 마지막 문단에서 “357개의 음성 종양 샘플 전체와 40개의 양성 종양 샘플을 … 무조건 다수 클래스(음성 종양의 클래스 0)를 예측하는”을 “357개의 양성 종양 샘플 전체와 40개의 악성 종양 샘플을 … 무조건 다수 클래스(양성 종양의 클래스 0)를 예측하는”로 정정합니다.(정*현 님)
  10. (p364) 두 번째 문단에서 “이 알고리즘은 정상치(inliner)라는 일부 데이터로”를 “이 알고리즘은 정상치(inlier)라는 일부 데이터로”로 정정합니다.(정*현 님)
  11. (p420) 페이지 중간 수식에서 \Delta \bold{w}=-\eta \nabla (\bold{w}) 를 \Delta \bold{w}=-\eta \nabla J(\bold{w}) 로 정정합니다.(정*현 님)
  12. (p422) 아래에서 세 번째 줄에 “a_i^{(b)}는 은닉층의 i번째 유닛이고”를 “a_i^{(h)}는 은닉층의 i번째 유닛이고”로 정정합니다.(정*현 님)
  13. (p423) 위세서 세 번째 줄에 “가중치 행렬을 \bold{W}^{(b)} 로 표시할 수 있습니다”를 “가중치 행렬을 \bold{W}^{(h)} 로 표시할 수 있습니다”로 정정합니다.(정*현 님)
  14. (p426) 페이지 중간에서 수식 A^{(h)}=\phi(Z^{(h)}) 의 A와 Z를 \bold{A}^{(h)}=\phi(\bold{Z}^{(h)}) 와 같이 굵은 글씨체로 바꿉니다.(정*현 님)
  15. (p445) 역주 17번에서 “NeuralNetMCP”를 “NeuralNetMLP”로 정정합니다.(정*현 님)
  16. (p481) 페이지 중간의 수식에서 분모 \sum_{i=1}^{M} e^{z_j}\sum_{j=1}^{M} e^{z_j} 로 정정합니다.(정*현 님)
  17. (p503) 페이지 마지막 줄의 출력 결과에서 “<tf.Variable 'w:0' shape=(2, 4) dtype=int64>“를 “<tf.Variable 'w1:0' shape=(2, 4) dtype=int64>“로 정정합니다.(정*현 님)
  18. (p506) 페이지 맨 처음 출력 결과 “[[4 5 6 7] [8 9 10 11]]“을 “[[2 3 4 5] [6 7 8 9]]로 정정합니다.(정*현 님)
  19. (p422) 노트 아래 첫 번째 문장에서 “활성화 출력을 a_i^{(r)} 이라고 하겠습니다”를 “활성화 출력을 a_i^{(l)} 이라고 하겠습니다”로 정정합니다.
  20. (p97) 페이지 아래쪽 코드 블럭 중간에서 lrgd.fit(X_train_01_subset, y_train_01_subset)Thelrgd.fit(X_train_01_subset, y_train_01_subset)로 정정합니다.(최*진 님)
  21. (p319) 페이지 중간의 코드 label = {0:'양성', 1:'음성'}label = {0:'음성', 1:'양성'}으로 정정합니다.(최*진 님)
  22. (p361) 페이지 중간의 코드 num_rooms_std = sc_x.transform([5.0])num_rooms_std = sc_x.transform([[5.0]])로 정정합니다.(최*진 님)
  23. (p49) 마지막 문장에서 z = w_1 + x_1 + \cdots + w_m x_mz = w_1 x_1 + \cdots + w_m x_m 로 정정합니다.(정*훈 님)
  24. (p581) 페이지 하단 노트에서 from collection import Counter 를 from collections import Counter 로 정정합니다.(정*복 님)
  25. (p86) 사이킷런 0.21 버전에서 수정된 SGD 알고리즘의 버그(#9043)로 인해 바뀐 출력 결과를 반영합니다. 첫 번째 코드 블록의 출력 결과 “잘못 분류된 샘플 개수: 14“를 “잘못 분류된 샘플 개수: 1“로 수정합니다. 그 다음 문장에서 “14개를 잘못 분류합니다”를 “1개를 잘못 분류합니다”로 수정하고 “약 0.31 또는 31%입니다(14/45 ≈ 0.067)”을 “약 0.022 또는 2.2%입니다(1/45 ≈ 0.022)”로 수정합니다. 그다음 노트에서 “0.69 또는 69%“를 “0.98 또는 98%“로 수정합니다. 두 번째와 세 번째 코드 블럭의 출력에서 “정확도: 0.69“를 “정확도: 0.98“로 수정합니다. 그림 3-1을 다음 그림으로 바꿉니다. (류*윤 님)
    3-1
  26. (p52) 두 번째 식 아래 첫 번째 문장에서 “일반적으로 0.0에서 1.0 사이 정수입니다”를 “일반적으로 0.0에서 1.0 사이 실수입니다”로 정정합니다.(C 님)
  27. (p45) 위에서 세 번째 항목에 “TensorFlow 2.0.0-alpha0“을 “TensorFlow 2.0.0“으로 바꿉니다.
  28. (p461) 주석 6번에서 “2.0 알파 버전은”을 “2.0 버전은”로 “2.0.0-alpha0“을 “2.0.0“으로 바꿉니다.
  29. (p458) 페이지 중간 Note에서 “2019년 초에 텐서플로 2.0 알파 버전이”를 “2019년 10월에 텐서플로 2.0 버전이”로, “13장부터 텐서플로 2.0 알파 버전을”를 “13장부터 텐서플로 2.0 버전을”로, “텐서플로 2.0 알파 버전 이후에도”를 “텐서플로 2.0 버전 이후에도”로 바꿉니다.
  30. (p462) 두 번째 문단에서 “텐서플로 버전은 2.0.0-alpha0입니다”를 “텐서플로 버전은 2.0.0입니다”로 바꿉니다.
  31. (p620) A.2 아래 두 번째 문단에서 “텐서플로 2.0 알파 버전을”를 “텐서플로 2.0 버전을”로 바꿉니다. 그 아래 설치 명령에서 “2.0.0-alpha0“를 “2.0.0“으로 바꿉니다.
  32. (p621) 첫 번째 코드의 실행 결과 “2.0.0-alpha0“를 “2.0.0“으로 바꿉니다.
  33. (p627) 페이지 중간에서 “텐서플로 2.0.0-alpha0 버전을”을 “텐서플로 2.0.0 버전을”로, “1.13.1 버전입니다”를 “1.15.0 버전입니다”로, “2.0.0-alpha0 버전을 설치해 주세요”를 “2.0.0 버전을 설치해 주세요”로 바꿉니다.

 


Your Inputs

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

This site uses Akismet to reduce spam. Learn how your comment data is processed.