책소개:
358쪽 | 257*188mm (B5) | 695g | ISBN : 978-89-97750-10-8
직접 코딩하면서 배우는 머신러닝/딥러닝 Second Edition
저자 정재준(rgbi3307@nate.com) Copyright(c) 커널연구회(www.kernel.bz)
커널연구회는 리눅스 커널과 자료구조 알고리즘을 연구하고 리눅스 시스템 프로그래밍 및 디바이스드라이버 개발을 통하여 창의적인 프로젝트를 수행하여 IoT 관련 제품들을 만들어 일상 생활을 풍요롭고 편리하게 하는데 가치를 두고 있다. 아울러 관련 기술들을 교육하여 여러사람들과 공유할 수 있도록 노력하고 있다.
이책은 1부와 2부로 나누어져 있다.
제1부에서는 텐서플로우/파이썬 환경에서 실습하면서 머신러닝을 이해할 수 있도록 구성했다.
제2부에서는 C언어로 머신러닝 알고리즘을 직접 코딩하면서 자세히 익힐 수 있도록 구성했다.
제1장에서는 머신러닝을 컴퓨터에서 실습할 수 있도록 각종 패키지 프로그램을 설치하고 환경설정하는 방법에 대해서 기술했다. 제2장에서는 머신러닝 기본 알고리즘을 이해할 수 있도록 했고, 제3장 부터는 Neural Network을 어떻게 구성하여 딥러닝을 전개해 나가는지 자세히 설명한다. 제4장은 CNN 알고리즘에서 어떻게 영상이미지들을 인식하는지 설명하고, 제5장에서는 RNN 알고리즘을 사용하여 문자와 음성 데이터를 어떻게 인식하는지 설명한다.
제2부에서는 C언어로 머신러닝 알고리즘을 직접 코딩하면서 자세히 익힐 수 있도록 구성했다.
제1부에 있는 텐서플로우는 머신러닝 알고리즘을 라이브러리에 구현해 놓고 그것의 사용법을 익히면 쉽게 사용할 수 있는 반면에, 알고리즘 소스가 라이브러리에 숨겨져 있기 때문에 Back Propogation과 같은 중요한 알고리즘은 자세히 분석하기 힘들다. 그래서 필자는 C언어로 머신러닝 알고리즘들을 하나씩 코딩해 가면서 상세히 익힐 수 있도록 내용을 구성했다. 필자의 이 책은 머신러닝 알고리즘을 처음부터 끝까지 익혀서 알고리즘 성능 개선에 대해서 연구하고자 하는 독자분들에게 아주 유용할 것이다. 제2부의 제6장부터 머신러닝 알고리즘들을 C언어로 하나씩 코딩하면서 기본기를 탄탄히 익히고 제7장에서는 C언어로 Neural Network 알고리즘을 코딩한다. 이를 바탕으로 제8장에서 얼굴인식 알고리즘에 대해서 설명한다.
목차:
내용 직접 코딩하면서 배우는 머신러닝/딥러닝 1
저작권 2
커널연구회 로드맵 3
저자 소개 4
차 5
제1부 텐서플로우/파이썬 기반 머신러닝 9
1. 머신러닝 실습 환경 10
1.1 머신러닝 소개 10
1.2 리눅스용 개발환경 설치 16
1.3 윈도우용 개발환경 설치 20
1.4 TENSORFLOW 기본 21
2. 머신러닝 알고리즘 23
2.1 LINEAR REGRESSION 23
2.1.1 가설함수(학습 모델)와 비용함수 23
2.1.2 비용 줄이기(기울기 예측) 30
2.1.3 미분 함수(Convex) 32
2.2 LINEAR REGRESSION LEARNING 35
2.2.1 단항변수 기울기 학습1 35
2.2.2 단항변수 기울기 학습2 37
2.2.3 단항변수 기울기 학습3 39
2.2.4 다항변수 기울기 학습 41
2.2.5 다항변수 매트릭스 처리 44
2.2.6 다항변수 파일 읽기 47
2.3 LOGISTIC(BINARY) CLASSIFICATION 51
2.3.1 학습 모델(Hypothesis) 51
2.3.2 비용 함수 55
2.3.3 Logistic Regression 57
2.4 MULTINOMIAL(SOFTMAX) CLASSIFICATION 61
2.4.1 학습 모델(Hypothesis) 61
2.4.2 Softmax 함수 64
2.4.3 비용 함수 67
2.4.4 TensorFlow 실습 69
3. DEEP LEARNING 77
3.1 딥러닝 기본 78
3.1.1 행동 함수 80
3.1.2 XOR 문제 80
3.1.3 Neural Network 82
3.1.4 Back Propagation 88
3.2 XOR 문제 해결 실습 93
3.2.1 일반적인 XOR 문제 93
3.2.2 XOR Neural Network 95
3.2.3 XOR Deep Learning 98
3.2.4 XOR Deep Learning2 105
3.2.5 XOR ReLU 108
3.3 딥러닝 정확성 향상 110
3.3.1 ReLU 110
3.3.2 Good Weight (초기값) 112
3.3.3 Overfitting 조정 113
3.3.4 DropOut 114
3.3.5 Optimizer 성능 비교 116
3.4 딥러닝 실습 117
3.4.1 일반적인 softmax 118
3.4.2 ReLU 121
3.4.3 DropOut 123
3.4.4 초기값 설정 126
3.4.5 결과 정리 128
4. CONVOLUTIONAL NEURAL NETWORK 129
4.1 CONVOLUTION LAYER 129
4.2 POOLING LAYER 133
4.3 CNN 종류 136
4.3.1 AlexNet 136
4.3.2 GoogLeNet 136
4.3.3 ResNet 137
4.3.4 DeepMind AlphaGo 138
4.4 CNN 실습 139
4.4.1 Adam Optimizer 139
4.4.2 RMS Optimizer 144
4.4.3 결과 정리 148
5. RECURRENT NEURAL NETWORK 149
5.1 RNN 이해 149
5.2 RNN 활용 153
제2부 C언어로 머신러닝/딥러닝 코딩하기 154
6. 머신러닝 기본 알고리즘 코딩 155
6.1 LINEAR REGRESSION 155
6.1.1 가설함수 및 비용함수 코딩 156
6.1.2 비용 산출 전체 소스 157
6.1.3 최소비용 산출 함수 코딩 163
6.1.4 학습진행 함수 코딩 165
6.1.5 학습진행 전체 소스 166
6.1.6 미분함수 코딩 172
6.1.7 미분값 산출함수 코딩 179
6.2 다항변수 머신러닝 186
6.2.1 다항변수 학습 코딩 186
6.2.2 매트릭스(행열) 코딩 195
6.2.3 매트릭스(행열) 미분함수 변경 210
6.3 LOGISTIC(BINARY) CLASSIFICATION 218
6.3.1 학습 모델 코딩 218
6.3.2 비용 함수 코딩 219
6.3.3 Logistic Regression 220
6.3.4 전체 실행 소스 224
6.4 MULTINOMIAL(SOFTMAX) CLASSIFICATION 231
6.4.1 학습 모델(Hypothesis) 231
6.4.2 Softmax 함수 코딩 233
6.4.4 TensorFlow 실습 234
7. NEURAL NETWORK 알고리즘 코딩 235
7.1 데이터 읽기 236
7.2 읽기 실행 소스 241
7.3 읽기 결과 248
7.4 NEURAL NETWORK 코딩 250
7.5 FORWARD PROPAGATION 251
7.6 BACK PROPAGATION 254
7.7 NEURAL NETWORK 소스 260
7.8 실행 결과 271
8. 얼굴 인식 알고리즘 275
8.1 얼굴 검출 알고리즘 275
8.2 얼굴 학습 310
부록A. 머신러닝 관련 오픈소스들 313
부록B. 커널연구회 교육과정 상세안내 314
B.1 커널연구회 교육과정 로드맵 314
B.2 C언어와 자료구조 알고리즘 315
B.3 리눅스 시스템 프로그래밍 319
B.4 ARM 아키텍쳐, STM32 프로그래밍 323
B.5 리눅스 커널 자료구조 알고리즘 실습 326
B.6 리눅스 커널 소스 디버깅 실습 330
B.7 리눅스 커널 DEVICE TREE 실습 334
B.8 교육 내용 테이블 338
직접 코딩하면서 배우는 머신러닝/딥러닝