책소개
"컬러판으로 돌아온 아마존 인공지능 분야 부동의 1위 도서
이 책은 지능형 시스템을 구축하려면 반드시 알아야 할 머신러닝, 딥러닝 분야 핵심 개념과 이론을 이해하기 쉽게 설명한다. 사이킷런, 케라스, 텐서플로를 이용해 실전에서 바로 활용 가능한 예제로 모델을 훈련하고 신경망을 구축하는 방법을 상세하게 안내한다. 장마다 제공하는 연습문제를 풀며 익힌 내용을 확인하고 응용할 수도 있다. 머신러닝을 배우고 싶지만 어디서부터 시작해야 할지 막막하다면, 이 책이 인공지능 마스터로 가는 길에 좋은 친구가 될 것이다. 2판은 텐서플로 2를 반영하고 비지도 학습, 자연어 처리, 생성적 적대 신경망(GAN) 등 최신 기법을 추가했다.
※ 본 2판은 사이킷런과 텐서플로 2에 더해 케라스를 사용하며, 예제 코드도 소프트웨어 최신 버전에 맞춰 갱신했습니다. 1부(머신러닝)에는 1개 장이 추가되었고, 2부(신경망과 딥러닝)는 최신 딥러닝 기법을 방대하게 수록하여 대폭 개정되었습니다. 부록 2개 장이 추가되었으며, 시각적 편의를 위해 전면 컬러로 인쇄했습니다.
머신러닝 전문가로 이끄는 최고의 실전 지침서
텐서플로 2.0을 반영한 풀컬러 개정판
이 책의 원서는 출간 직후부터 미국 아마존 인공지능 분야에서 줄곧 1위 자리를 지키고 있습니다. 가장 많은 명저가 경쟁하는 시장에서 이처럼 확고부동한 호응을 얻은 데는 그만한 이유가 있습니다. 이론과 활용을 적절히 섞으면서도 실무에서 확실히 통하도록 구성했고, 나아가 실무자들의 실력을 한층 끌어올려줄 깊이를 담았기 때문이죠.
완전히 새로워진 2판에서는 내지를 흑백에서 전면 컬러로 변경했습니다. 사이킷런, 케라스, 텐서플로 2.x을 사용하며 비지도 학습, 자연어 처리, 생성적 적대 신경망을 포함한 딥러닝 최신 기법을 소개합니다. 분산 트레이닝이나 배포, 구글 클라우드와의 연동과 관련된 내용도 맛볼 수 있습니다.
이 책 한 권으로 머신러닝과 딥러닝을 통달할 수는 없지만, 인공지능 마스터로 가는 거리를 단축해줄 치트키가 되어줄 것입니다.
★ 2판에서 달라진 점
1. 더 많은 비지도 학습 기법(군집, 이상치 탐지, 밀도 추정, 혼합 모델 등), 심층 신경망을 훈련하기 위한 다양한 방법(자기 정규화 네트워크 등), 추가적인 컴퓨터 비전 기법(Xception, SENet, YOLO를 사용한 객체 탐지, R-CNN을 사용한 시맨틱 분할 등), 합성곱 신경망(CNN)을 사용하여 시퀀스 다루기(WaveNet 등), CNN과 트랜스포머, 순환 신경망을 사용한 언어 처리, 생성적 적대 신경망(GAN)입니다.
2. 추가적인 라이브러리와 API(케라스, Data API, 강화 학습을 위한 TF-Agents), 분산 전략 API를 사용해 대규모 TF 모델을 훈련하고 배포하기, TF 서빙, TF Addons/Seq2Seq, TensorFlow.js를 다룹니다.
3. 최근 중요한 딥러닝 연구 결과를 설명합니다.
4. 모든 텐서플로 관련 장에서 텐서플로 2를 사용하고 가능하면 텐서플로의 케라스 API 구현(tf.keras)을 사용합니다.
5. 사이킷런, 넘파이, 판다스, 맷플롯립, 그 외 다른 라이브러리 최신 버전에 맞게 코드 예제를 업데이트 했습니다.
★ 목적과 접근 방식
이 책은 여러분이 머신러닝을 거의 모른다고 가정하고, 데이터로부터 스스로 학습하는 프로그램을 실제로 구현하는 데 필요한 개념, 직관, 도구를 알려주는 것을 목표로 합니다.
선형 회귀처럼 가장 단순하고 널리 쓰이는 기법부터 시장을 선도하는 딥러닝 기법까지 다채로운 지식과 경험을 담았고, 당장 제품화에 사용할 수 있는 다음의 세 가지 파이썬 프레임워크를 활용했습니다.
- 사이킷런(Scikit-Learn): 다양한 머신러닝 알고리즘을 효율적으로 구현했으며 사용하기도 쉬워 머신러닝을 처음 배우기에 가장 좋은 도구입니다.
- 텐서플로(TensorFlow): 수치계산을 데이터 플로 그래프를 이용하여 분산 처리해주는, 더 복잡한 라이브러리입니다. 연산을 수천 대의 GPU 서버에 분배하여 대규모 신경망을 효율적으로 학습시키고 운영할 수 있습니다.
- 케라스(Keras): 고수준 딥러닝 API입니다. 매우 쉽게 신경망을 훈련하고 실행할 수 있습니다. 케라스는 텐서플로, 시애노(Theano), 마이크로소프트 코그니티브 툴킷(Microsoft Cognitive Toolkit) 위에서 작동합니다. 텐서플로는 자체적인 케라스 API 구현을 tf.keras란 이름으로 포함하며, tf.keras는 텐서플로의 고급 기능을 지원합니다.
★ 주요 내용
1부 머신러닝
●한눈에 보는 머신러닝
●머신러닝 프로젝트 처음부터 끝까지
●분류
●모델 훈련
●서포트 벡터 머신
●결정 트리
●앙상블 학습과 랜덤 포레스트
●차원 축소
●비지도 학습*
2부 신경망과 딥러닝
●케라스를 사용한 인공 신경망*
●심층 신경망 훈련하기
●텐서플로를 사용한 사용자 정의 모델과 훈련*
●텐서플로에서 데이터 적재와 전처리하기*
●합성곱 신경망(CNN)을 사용한 컴퓨터 비전
●순환 신경망(RNN)과 CNN을 사용한 시퀀스 처리하기*
●RNN과 어텐션을 사용한 자연어 처리*
●오토인코더와 GAN을 사용한 표현 학습과 생성적 학습*
●강화 학습*
●대규모 텐서플로 모델 훈련과 배포*
신규 추가 부록
●부록 F 특수한 데이터 구조*
●부록 G 텐서플로 그래프*
별표(*)를 표시한 장은 완전히 새로 쓰였거나, 50% 이상 개정되었습니다.
1부에서는 대부분 사이킷런을 기반으로 하고 2부에서는 텐서플로와 케라스를 사용합니다."
저자소개
머신러닝 컨설턴트. 2013년에서 2016년까지 구글에서 유튜브 동영상 분류팀을 이끌었습니다. 2002년에서 2012년까지 프랑스의 모바일 ISP 선두 주자인 Wifirst를 설립하고 CTO로 일했습니다. 2001년에는 Polyconseil을 설립하고 CTO로 일했습니다. 이 회사는 지금 전기차 공유 서비스인 Autolib’을 운영하고 있습니다.
그 전에는 재무(JP 모건과 소시에테 제네랄), 방위(캐나다 DOD), 의료(수혈) 등 다양한 분야에서 엔지니어로 일했습니다. C++, WiFi, 인터넷 구조에 대한 몇 권의 기술 서적을 썼으며 한 프랑스 공과대학교에서 컴퓨터 과학을 가르쳤습니다.
재미있는 몇 가지 사실: 세 아이에게 손가락으로 이진수 세는 법을 가르쳤습니다(1023까지). 소프트웨어 공학 분야에 들어오기 전에는 미생물학과 진화 유전학을 공부했습니다. 두 번째 점프에서 낙하산이 펼쳐지지 않았습니다.
목차
[PART 1 머신러닝]
CHAPTER 1 한눈에 보는 머신러닝
1.1 머신러닝이란?
1.2 왜 머신러닝을 사용하는가?
1.3 애플리케이션 사례
1.4 머신러닝 시스템의 종류
1.5 머신러닝의 주요 도전 과제
1.6 테스트와 검증
1.7 연습문제
CHAPTER 2 머신러닝 프로젝트 처음부터 끝까지
2.1 실제 데이터로 작업하기
2.2 큰 그림 보기
2.3 데이터 가져오기
2.4 데이터 이해를 위한 탐색과 시각화
2.5 머신러닝 알고리즘을 위한 데이터 준비
2.6 모델 선택과 훈련
2.7 모델 세부 튜닝
2.8 론칭, 모니터링, 그리고 시스템 유지 보수
2.9 직접 해보세요!
2.10 연습문제
CHAPTER 3 분류
3.1 MNIST
3.2 이진 분류기 훈련
3.3 성능 측정
3.4 다중 분류
3.5 에러 분석
3.6 다중 레이블 분류
3.7 다중 출력 분류
3.8 연습문제
CHAPTER 4 모델 훈련
4.1 선형 회귀
4.2 경사 하강법
4.3 다항 회귀
4.4 학습 곡선
4.5 규제가 있는 선형 모델
4.6 로지스틱 회귀
4.7 연습문제
CHAPTER 5 서포트 벡터 머신
5.1 선형 SVM 분류
5.2 비선형 SVM 분류
5.3 SVM 회귀
5.4 SVM 이론
5.5 연습문제
CHAPTER 6 결정 트리
6.1 결정 트리 학습과 시각화
6.2 예측하기
6.3 클래스 확률 추정
6.4 CART 훈련 알고리즘
6.5 계산 복잡도
6.6 지니 불순도 또는 엔트로피?
6.7 규제 매개변수
6.8 회귀
6.9 불안정성
6.10 연습문제
CHAPTER 7 앙상블 학습과 랜덤 포레스트
7.1 투표 기반 분류기
7.2 배깅과 페이스팅
7.3 랜덤 패치와 랜덤 서브스페이스
7.4 랜덤 포레스트
7.5 부스팅
7.6 스태킹
7.7 연습문제
CHAPTER 8 차원 축소
8.1 차원의 저주
8.2 차원 축소를 위한 접근 방법
8.3 PCA
8.4 커널 PCA
8.5 LLE
8.6 다른 차원 축소 기법
8.7 연습문제
CHAPTER 9 비지도 학습
9.1 군집
9.2 가우시안 혼합
9.3 연습문제
[PART 2 신경망과 머신러닝]
CHAPTER 10 케라스를 사용한 인공 신경망 소개
10.1 생물학적 뉴런에서 인공 뉴런까지
10.2 케라스로 다층 퍼셉트론 구현하기
10.3 신경망 하이퍼파라미터 튜닝하기
10.4 연습문제
CHAPTER 11 심층 신경망 훈련하기
11.1 그레이디언트 소실과 폭주 문제
11.2 사전훈련된 층 재사용하기
11.3 고속 옵티마이저
11.4 규제를 사용해 과대적합 피하기
11.5 요약 및 실용적인 가이드라인
11.6 연습문제
CHAPTER 12 텐서플로를 사용한 사용자 정의 모델과 훈련
12.1 텐서플로 훑어보기
12.2 넘파이처럼 텐서플로 사용하기
12.3 사용자 정의 모델과 훈련 알고리즘
12.4 텐서플로 함수와 그래프
12.5 연습문제
CHAPTER 13 텐서플로에서 데이터 적재와 전처리하기
13.1 데이터 API
13.2 TFRecord 포맷
13.3 입력 특성 전처리
13.4 TF 변환
13.5 텐서플로 데이터셋 (TFDS) 프로젝트
13.6 연습문제
CHAPTER 14 합성곱 신경망을 사용한 컴퓨터 비전
14.1 시각 피질의 구조
14.2 합성곱 층
14.3 풀링 층
14.4 CNN 구조
14.5 케라스를 사용해 ResNet-34 CNN 구현하기
14.6 케라스에서 제공하는 사전훈련된 모델 사용하기
14.7 사전훈련된 모델을 사용한 전이 학습
14.8 분류와 위치 추정
14.9 객체 탐지
14.10 시맨틱 분할
14.11 연습문제
CHAPTER 15 RNN과 CNN을 사용해 시퀀스 처리하기
15.1 순환 뉴런과 순환 층
15.2 RNN 훈련하기
15.3 시계열 예측하기
15.4 긴 시퀀스 다루기
15.5 연습문제
CHAPTER 16 RNN과 어텐션을 사용한 자연어 처리
16.1 Char-RNN을 사용해 셰익스피어 같은 텍스트 생성하기
16.2 감성 분석
16.3 신경망 기계 번역을 위한 인코더-디코더 네트워크
16.4 어텐션 메커니즘
16.5 언어 모델 분야의 최근 혁신
16.6 연습문제
CHAPTER 17 오토인코더와 GAN을 사용한 표현 학습과 생성적 학습
17.1 효율적인 데이터 표현
17.2 과소완전 선형 오토인코더로 PCA 수행하기
17.3 적층 오토인코더
17.4 합성곱 오토인코더
17.5 순환 오토인코더
17.6 잡음 제거 오토인코더
17.7 희소 오토인코더
17.8 변이형 오토인코더
17.9 생성적 적대 신경망
17.10 연습문제
CHAPTER 18 강화 학습
18.1 보상을 최적화하기 위한 학습
18.2 정책 탐색
18.3 OpenAI 짐
18.4 신경망 정책
18.5 행동 평가: 신용 할당 문제
18.6 정책 그레이디언트
18.7 마르코프 결정 과정
18.8 시간차 학습
18.9 Q-러닝
18.10 심층 Q-러닝 구현하기
18.11 심층 Q-러닝의 변종
18.12 TF-Agents 라이브러리
18.13 그 외 유명한 강화 학습 알고리즘
18.14 연습문제
CHAPTER 19 대규모 텐서플로 모델 훈련과 배포
19.1 텐서플로 모델 서빙
19.2 모바일 또는 임베디드 장치에 모델 배포하기
19.3 계산 속도를 높이기 위해 GPU 사용하기
19.4 다중 장치에서 모델 훈련하기
19.5 연습문제
[PART 3 부록]
부록 A 연습문제 정답
부록 B 머신러닝 프로젝트 체크리스트
부록 C SVM 쌍대 문제
부록 D 자동 미분
부록 E 유명한 다른 인공 신경망 구조
부록 F 특수한 데이터 구조
부록 G 텐서플로 그래프