자료구조 알고리즘 & 머신러닝 상세분석

책소개:430쪽 | 257*188mm (B5) | 819g | ISBN : 9788997750085 이 책은...

자료구조 알고리즘 & 머신러닝 상세분석

28,000원 33,000원
추가 금액
수량
품절된 상품입니다.

책소개:

430쪽 | 257*188mm (B5) | 819g | ISBN : 9788997750085

 

이 책은 머신러닝을 이론적으로만 설명하는 것이 아니라 기본부터 심화 학습까지 직접 파이썬에서 TensorFlow로 직접 따라하면서 익힐 수 있도록 구성했다. 책은 1부와 2부로 구성되어 있는데, 1부는 전통적인 자료구조와 알고리즘에 대해서 C언어로 실습할 수 있도록 구성했고, 2부에서 머신러닝/딥러닝을 파이썬과 TensorFlow로 실습하면서 학습할 수 있도록 구성했다.  

 

컴퓨팅에서 자료구조와 알고리즘은 계산적인 절차이며, 자료구조는 프로그래밍 언어에서 데이터 구조(struct)로 표현되고 알고리즘은 이러한 데이터 구조에 접근하는 순서 및 회수에 해당한다. 자료구조와 알고리즘은 상호 의존적이다. 자료구조를 잘 설계하면 알고리즘 효율이 좋아진다. 알고리즘은 컴퓨터 하드웨어가 시작되기 전부터 연구되어 왔다. 그러나 현대에 이르러 컴퓨터 하드웨어 성능이 비약적으로 발전하고 많은 데이터들이 축적됨으로 인해서 알고리즘 연구가 새로운 전환기를 맞이하고 있다. 그동안 컴퓨팅 역사에서 해결하지 못하고 있었던 문제들을 머신러닝/딥러닝에서 하나씩 해결하기 시작하면서 이것에 적용된 알고리즘 학습이 중요해 졌다. 머신러닝/딥러닝은 인간의 뇌세포가 학습해 나가는 방식과 유사하게 동작한다. 이것의 원리는 매우 단순하므로 쉽고 재미있게 머신러닝/딥러닝을 학습할 수 있다. 이 책은 머신러닝을 이론적으로만 설명하는 것이 아니라 기본부터 심화 학습까지 직접 파이썬에서 TensorFlow로 직접 따라하면서 익힐 수 있도록 구성했다. 이 책은 1부와 2부로 나누어져 있는데, 머신러닝/딥러닝부터 공부하고자하는 독자분들은 2부부터 학습해도 된다. 2부에서 학습한 머신러닝 알고리즘을 직접 C언어로 구현해 보고 싶다면, 1부의 내용을 학습하면 좋을 듯 하다. 이책에 있는 모든 예제 소스들은 Github에 공개했다.

 

이책은 1부와 2부로 구성되어 있다. 1부는 전통적인 자료구조와 알고리즘에 대해서 C언어로 실습할 수 있도록 구성했고, 2부에서 머신러닝/딥러닝을 파이썬과 TensorFlow로 실습하면서 학습할 수 있도록 구성했다. 머신러닝/딥러닝부터 공부하고자 하는 독자분들은 1부 내용은 간략히 참조만하고 바로 2부의 내용을 학습해도 된다.

 

머신러닝은 가설함수(학습모델)와 비용함수를 사용하여 비용이 최소화 되는 방향으로 반복연산하면서 가중치(Weight)값을 찾아가는 알고리즘으로 구성되어 있다. 대부분 행렬(Matrix)연산을 하므로 전통적인 자료구조 알고리즘보다 쉽게 구현할 수 있다. 또한 딥러닝에서 과거에 해결하지 못했던 난제들을 어떻게 해결했는지 자세히 실습할 수 있도록 책의 내용을 구성했다. 2부의 머신러닝/딥러닝 알고리즘을 학습한후 C언어로 알고리즘을 직접 구현해보고자 한다면 1부의 내용이 많은 도움이 될듯하다. 이책에 있는 예제 소스들은 모두 Github에 공개했으니 책의 내용을 참조해 주기 바란다.  

 

목차:

내용

자료구조 알고리즘 & 머신러닝 상세분석 1

저작권 2

커널연구회 로드맵 3

저자 소개 4

목차 5

제1부 자료구조 알고리즘 이해 10

1. 자료구조 알고리즘 개요 11

2. 링크드 리스트(LINKED LIST) 16

2.1 주소(포인터)연산 이해 16

2.2 링크드 리스트 전체소스 20

2.3 LIST_ADD (STACK) 33

2.4 LIST_ADD_TAIL (QUEUE) 40

3. 큐(QUEUE) 46

4. RED-BLACK TREE 60

4.1 RED-BLACK TREE 개념 60

4.2 RED-BLACK TREE 소스 65

4.2.1 include/linux/rbtree.h 65

4.2.2 lib/rbtree.c 68

4.2.3 rbtree_test.c 79

4.2.4 실행 결과 84

4.3 RED-BLACK TREE 구조체 88

4.4 삽입(INSERT) 소스1 분석 91

4.4.1 노드(key=10) 삽입 92

4.4.2 노드(key=20) 삽입 95

4.4.3 노드(key=30) 삽입 98

4.4.4 노드(key=40) 삽입 104

4.4.5 노드(key=50) 삽입 107

4.4.6 노드(key=60) 삽입 110

4.4.7 노드(key=70) 삽입 112

4.4.8 노드(key=80) 삽입 115

4.5 삽입(INSERT) 소스2 분석 121

4.5.1 노드(key=80) 삽입 122

4.5.2 노드(key=70) 삽입 125

4.5.3 노드(key=60) 삽입 128

4.5.4 노드(key=50) 삽입 133

4.5.5 노드(key=40) 삽입 137

4.5.6 노드(key=30) 삽입 140

4.5.7 노드(key=20) 삽입 142

4.5.8 노드(key=10) 삽입 145

4.6 삽입(INSERT) 소스3 분석 151

4.6.1 노드(key=10) 삽입 151

4.6.2 노드(key=30) 삽입 154

4.6.3 노드(key=20) 삽입 157

4.6.4 노드(key=50) 삽입 164

4.6.5 노드(key=40) 삽입 165

4.6.6 노드(key=25, 22) 삽입 168

4.6.7 노드(key=35) 삽입 170

4.7 탐색(SEARCH) 소스 분석 175

4.8 삭제(ERASE) 소스 분석 182

4.8.1 노드(key=10) 삭제 189

4.8.2 노드(key=20) 삭제 193

4.8.3 노드(key=30) 삭제 196

4.8.4 노드(key=40) 삭제 203

4.8.5 노드(key=50) 삭제 206

4.8.6 노드(key=60) 삭제 212

4.8.7 노드(key=70) 삭제 216

4.8.8 노드(key=80) 삭제 219

5. B+TREE 222

5.1 B+TREE 소스 222

5.2 B+TREE 구조체 248

5.3 B+TREE 삽입 알고리즘 251

5.3.1 노드 분할 254

5.3.2 부모노드 생성 256

5.3.3 부모노드 분할 260

 

제2부 머신러닝 알고리즘 264

6. 머신러닝 알고리즘 265

6.1 머신러닝 소개 265

6.1 TENSORFLOW 설치 270

6.2 TENSORFLOW 기본 273

6.2 LINEAR REGRESSION 275

6.2.1 가설과 비용함수(학습 모델) 275

6.2.2 비용 줄이기(기울기 예측) 277

6.2.3 미분 함수(Convex) 279

6.3 LINEAR REGRESSION LEARNING 282

6.3.1 단항변수 기울기 학습1 282

6.3.2 단항변수 기울기 학습2 283

6.3.3 단항변수 기울기 학습3 285

6.3.4 다항변수 기울기 학습 287

6.3.5 다항변수 매트릭스 처리 290

6.3.6 다항변수 파일 읽기 292

6.4 LOGISTIC(BINARY) CLASSIFICATION 296

6.4.1 분류 학습 296

6.4.2 비용 함수 297

6.4.3 Logistic Regression 299

6.5 MULTINOMIAL(SOFTMAX) CLASSIFICATION 303

6.5.1 Hypothesis 303

6.5.2 Softmax function 304

6.5.3 Cross-Entropy Cost Function 305

6.5.4 TensorFlow 실습 306

7. DEEP LEARNING 314

7.1 딥러닝 기본 314

7.1.1 행동 함수 315

7.1.2 XOR 문제 316

7.1.3 Neural Network 317

7.1.4 Back Propagation 322

7.2 XOR 문제 해결 실습 327

7.2.1 일반적인 XOR 문제 327

7.2.2 XOR Neural Network 329

7.2.3 XOR Deep Learning 332

7.2.4 XOR Deep Learning2 339

7.2.5 XOR ReLU 342

7.3 딥러닝 정확성 향상 344

7.3.1 ReLU 344

7.3.2 Good Weight (초기값) 346

7.3.3 Overfitting 조정 347

7.3.4 DropOut 348

7.3.4 Optimizer 성능 비교 350

7.4 딥러닝 실습 351

7.4.1 일반적인 softmax 352

7.4.2 ReLU 355

7.4.3 DropOut 357

7.4.4 초기값 설정 360

7.4.5 결과 정리 362

8. CONVOLUTIONAL NEURAL NETWORK 363

8.1 CONVOLUTION LAYER 363

8.2 POOLING LAYER 366

8.3 CNN 종류 369

8.3.1 AlexNet 369

8.3.2 GoogLeNet 369

8.3.3 ResNet 370

8.3.4 DeepMind AlphaGo 371

8.4 CNN 실습 372

8.4.1 Adam Optimizer 372

8.4.2 RMS Optimizer 377

8.4.3 결과 정리 381

9. RECURRENT NEURAL NETWORK 382

9.1 RNN 이해 382

9.2 RNN 활용 386

10. MOTION 분석 387

10.1 MOTION 소스 빌드 387

10.2 MOTION 소스 분석 398

부록A. 이세돌 9단과 알파고 399

A.1 경우의 수 줄이기(REDUCTION) 400

A.2 학습하기 (DEEP LEARNING) 402

부록B. 커널연구회 교육과정 상세안내 404

B.1 커널연구회 교육과정 로드맵 404

B.2 C언어와 자료구조 알고리즘 405

B.3 리눅스 시스템 프로그래밍 409

B.4 ARM 아키텍쳐, STM32 프로그래밍 413

B.5 리눅스 커널 자료구조 알고리즘 실습 416

B.6 리눅스 커널 소스 디버깅 실습 420

B.7 리눅스 커널 DEVICE TREE 실습 424

B.8 교육 내용 테이블 428

B.9 커널연구회 교육학원 내부시설 429

B.10 커널연구회 교육학원 위치(약도) 430