장바구니 담기 close

장바구니에 상품을 담았습니다.

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

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

  • 정재준
  • |
  • 커널연구회
  • |
  • 2012-05-06 출간
  • |
  • 431페이지
  • |
  • 188 X 257 mm /849g
  • |
  • ISBN 9788997750085
판매가

33,000원

즉시할인가

29,700

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
29,700

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

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

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

목차

제1부 자료구조 알고리즘 이해 9
1. 자료구조 알고리즘 개요 10
2. 링크드 리스트(LINKED LIST) 15
2.1 주소(포인터)연산 이해 15
2.2 링크드 리스트 전체소스 19
2.3 LIST_ADD (STACK) 32
2.4 LIST_ADD_TAIL (QUEUE) 39
3. 큐(QUEUE) 45
4. RED-BLACK TREE 59
4.1 RED-BLACK TREE 개념 59
4.2 RED-BLACK TREE 소스 64
4.2.1 include/linux/rbtree.h 64
4.2.2 lib/rbtree.c 67
4.2.3 rbtree_test.c 78
4.2.4 실행 결과 83
4.3 RED-BLACK TREE 구조체 87
4.4 삽입(INSERT) 소스1 분석 90
4.4.1 노드(key=10) 삽입 91
4.4.2 노드(key=20) 삽입 94
4.4.3 노드(key=30) 삽입 97
4.4.4 노드(key=40) 삽입 103
4.4.5 노드(key=50) 삽입 106
4.4.6 노드(key=60) 삽입 109
4.4.7 노드(key=70) 삽입 111
4.4.8 노드(key=80) 삽입 114
4.5 삽입(INSERT) 소스2 분석 120
4.5.1 노드(key=80) 삽입 121
4.5.2 노드(key=70) 삽입 124
4.5.3 노드(key=60) 삽입 127
4.5.4 노드(key=50) 삽입 132
4.5.5 노드(key=40) 삽입 136
4.5.6 노드(key=30) 삽입 139
4.5.7 노드(key=20) 삽입 141
4.5.8 노드(key=10) 삽입 144
4.6 삽입(INSERT) 소스3 분석 150
4.6.1 노드(key=10) 삽입 150
4.6.2 노드(key=30) 삽입 153
4.6.3 노드(key=20) 삽입 156
4.6.4 노드(key=50) 삽입 163
4.6.5 노드(key=40) 삽입 164
4.6.6 노드(key=25, 22) 삽입 167
4.6.7 노드(key=35) 삽입 169
4.7 탐색(SEARCH) 소스 분석 174
4.8 삭제(ERASE) 소스 분석 181
4.8.1 노드(key=10) 삭제 188
4.8.2 노드(key=20) 삭제 192
4.8.3 노드(key=30) 삭제 195
4.8.4 노드(key=40) 삭제 202
4.8.5 노드(key=50) 삭제 205
4.8.6 노드(key=60) 삭제 211
4.8.7 노드(key=70) 삭제 215
4.8.8 노드(key=80) 삭제 218
5. B+TREE 221
5.1 B+TREE 소스 221
5.2 B+TREE 구조체 247
5.3 B+TREE 삽입 알고리즘 250
5.3.1 노드 분할 253
5.3.2 부모노드 생성 255
5.3.3 부모노드 분할 259

제2부 머신러닝 알고리즘 263
6. 머신러닝 알고리즘 264
6.1 머신러닝 소개 264
6.1 TENSORFLOW 설치 269
6.2 TENSORFLOW 기본 272
6.2 LINEAR REGRESSION 274
6.2.1 가설과 비용함수(학습 모델) 274
6.2.2 비용 줄이기(기울기 예측) 276
6.2.3 미분 함수(Convex) 278
6.3 LINEAR REGRESSION LEARNING 281
6.3.1 단항변수 기울기 학습1 281
6.3.2 단항변수 기울기 학습2 282
6.3.3 단항변수 기울기 학습3 284
6.3.4 다항변수 기울기 학습 286
6.3.5 다항변수 매트릭스 처리 289
6.3.6 다항변수 파일 읽기 291
6.4 LOGISTIC(BINARY) CLASSIFICATION 294
6.4.1 분류 학습 294
6.4.2 비용 함수 295
6.4.3 Logistic Regression 297
6.5 MULTINOMIAL(SOFTMAX) CLASSIFICATION 300
6.5.1 Hypothesis 300
6.5.2 Softmax function 301
6.5.3 Cross-Entropy Cost Function 302
6.5.4 TensorFlow 실습 303
7. DEEP LEARNING 310
7.1 딥러닝 기본 310
7.1.1 행동 함수 311
7.1.2 XOR 문제 312
7.1.3 Neural Network 312
7.1.4 Back Propagation 317
7.2 XOR 문제 해결 실습 321
7.2.1 일반적인 XOR 문제 321
7.2.2 XOR Neural Network 323
7.2.3 XOR Deep Learning 325
7.2.4 XOR Deep Learning2 331
7.2.5 XOR ReLU 334
7.3 딥러닝 정확성 향상 337
7.3.1 ReLU 337
7.3.2 Good Weight (초기값) 339
7.3.3 Overfitting 조정 340
7.3.4 DropOut 341
7.3.4 Optimizer 성능 비교 342
7.4 딥러닝 실습 343
7.4.1 일반적인 softmax 344
7.4.2 ReLU 347
7.4.3 DropOut 349
7.4.4 초기값 설정 352
7.4.5 결과 정리 354
8. CONVOLUTIONAL NEURAL NETWORK 355
8.1 CONVOLUTION LAYER 355
8.2 POOLING LAYER 358
8.3 CNN 종류 361
8.3.1 AlexNet 361
8.3.2 GoogLeNet 361
8.3.3 ResNet 362
8.3.4 DeepMind AlphaGo 362
8.4 CNN 실습 363
8.4.1 Adam Optimizer 363
8.4.2 RMS Optimizer 367
8.4.3 결과 정리 371
9. MOTION 분석 372
9.1 MOTION 소스 빌드 372
9.2 MOTION 소스 분석 383

부록A. 이세돌 9단과 알파고 384
A.1 경우의 수 줄이기(REDUCTION) 385
A.2 학습하기 (DEEP LEARNING) 387
A.3 알파고 1차 대국 정리 388
A.3.1 첫번째 싸움의 시작 389
A.3.2 두번째 싸움의 시작 390
A.3.3 승패의 갈림길, 세번째 싸움 393
A.4 알파고 2차 대국 정리 396
A.4.1 초반에 흔들리는 알파고 397
A.4.2 중후반부터 강해지는 알파고 401

부록B. 커널연구회 교육과정 상세안내 406
B.1 커널연구회 교육과정 로드맵 406
B.2 C언어와 자료구조 알고리즘 407
B.3 리눅스 시스템 프로그래밍 411
B.4 ARM 아키텍쳐, STM32 프로그래밍 415
B.5 리눅스 커널 자료구조 알고리즘 실습 418
B.6 리눅스 커널 소스 디버깅 실습 422
B.7 리눅스 커널 DEVICE TREE 실습 426
커널연구회 교육학원 위치(약도) 431

라즈베리파이 라지그 프로젝트

저자소개

저자 정재준은 학창시절 마이크로프로세서 제어 기술을 배웠으며 리눅스 커널을 연구하고 있다. 15년 이상 쌓아온 실무 경험을 바탕으로 “C언어와 자료구조 알고리즘”, “리눅스 시스템 프로그래밍”, “리눅스 커널과 디바이스드라이버 실습2”, “자료구조 알고리즘 & 머신러닝 상세분석\"등의 책을 집필하고, 월간임베디드월드 잡지에 다수의 글을 기고 하였다. 또한 “맞춤형 문장 자동 번역 시스템 및 이를 위한 데이터베이스 구축방법 (The System for the customized automatic sentence translation and database construction method)” 라는 내용으로 프로그래밍을 하여 특허청에 특허등록 하였다. 최근에는 서울시 버스와 지하철 교통카드 요금결재 단말기에 들어가는 리눅스 커널과 디바이스드라이버 개발 프로젝트를 성공적으로 수행했고 여러가지 임베디드 제품을 개발했다. 저자는 스탠포드대학교의 John L. Hennessy 교수의 저서 “Computer Organization and Design” 책을 읽고 깊은 감명을 받았으며, 컴퓨터구조와 자료구조 알고리즘 효율성 연구를 통한 기술서적 집필에 노력하고 있다. 저자는 커널연구회(http://www.kernel.bz/) 웹사이트를 운영하며 연구개발, 교육, 관련기술 공유 등을 위해 노력하고 있다.

도서소개

『자료구조 알고리즘 & 머신러닝 상세분석』은 1부와 2부로 구성되어 있다. 1부는 전통적인 자료구조와 알고리즘에 대해서 C언어로 실습할 수 있도록 구성했고, 2부에서 머신러닝/딥러닝을 파이썬과 TensorFlow로 실습하면서 학습할 수 있도록 구성했다. 머신러닝은 가설함수(학습모델)와 비용함수를 사용하여 비용이 최소화 되는 방향으로 반복연산하면서 가중치(Weight)값을 찾아가는 알고리즘으로 구성되어 있다. 대부분 행렬(Matrix)연산을 하므로 전통적인 자료구조 알고리즘보다 쉽게 구현할 수 있다. 또한 딥러닝에서 과거에 해결하지 못했던 난제들을 어떻게 해결했는지 자세히 실습할 수 있도록 책의 내용을 구성했다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.