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

rgbi3307의 이미지


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

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

판매중인 시중서점 링크:

알라딘:
http://www.aladin.co.kr/shop/wproduct.aspx?ItemId=84243586

교보문고:
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788997750085&orderClick=LAH&Kc=

예스24:
http://www.yes24.com/24/goods/27803206?scode=029

목차
내용
자료구조 알고리즘 & 머신러닝 상세분석 1
저작권 2
저자 소개 3
목차 4
제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

댓글

익명 사용자의 이미지

결제 오류가 난 김에 다시 살펴보던 중에,
자료구조는 C언어로 실습하고, 머신러닝은 파이썬으로 실습한다고 하니 당혹스럽네요.
목차를 보니, 부록에 왠 ARM아키텍쳐, STM32프로그래밍.
뭔가 진지함이 없어 보이고, 제대로 준비한 책이 아닌거 같아 아쉽습니다.

일단 보류네요. 서점에서 직접 확인 후 구입해야 할 거 같습니다. 의외로 괜찮을 수도 있겠죠.

rgbi3307의 이미지

이번주 금요일에 시중서점에 보도자료가 전달되었기 때문에 다음주가 되어야 서점에 책이 배포될 예정입니다.
지적하신것처럼, 1부에서는 전통적인 자료구조 알고리즘(링크드리스트, Red-Black Tree, B+Tree)을 C언어로 학습할 수 있도록 구성했고, 2부에서 머신러닝/딥러닝을 파이썬과 TensorFlow로 실습할 수 있도록 되어 있습니다. 머신러닝/딥러닝은 전통적인 자료구조 알고리즘을 몰라도 구현하기 쉽습니다. 행렬(Matrix) 연산이 대부분이기 때문에 for루프 2개씩 실행하면 되고, 알고리즘 복잡도(효율)은 O(n^2) 형태로 나타납니다. 그리고 머신러닝/딥러닝은 파이썬과 TensorFlow 예제 소스들이 많고 처음에는 이런 예제들로 학습하는것이 오히려 쉬울듯 합니다. 먼저 2부에 있는 내용을 파이썬과 TensorFlow로 학습하시고 C언어에 대해서 잘 알고 계신분은 1부의 내용을 참고하여 머신러닝 알고리즘을 직접 구현해 보는 방향으로 책의 내용이 구성되어 있습니다. 책에 있는 예제 소스들은 모두 Github에 공개했으니 책의 내용을 참고하시면 될듯 합니다.
그리고 부록에 있는 "ARM아키텍쳐, STM32프로그래밍"은 커널연구회 교육과정을 소개하는 것입니다. 이점 양해 부탁드립니다. 감사합니다.

From:
*알지비 (메일: rgbi3307(at)nate.com)
*틈틈히 커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.