미리보기
C++로 배우는 딥러닝
신경망의 기초부터 C++를 이용한 구현까지
ISBN 978-89-315-5566-0
저자 후지타 타케시 저 / 김성훈 역
발행일 2018-06-29
분량 272쪽
편집 1도
판형 182x235
개정판정보 2018. 6. 29.
정가 23,000원↓
판매가 20,700
(10% off)
적립금 1,150원(5%)
  소득공제
도서소개

1cab4225eb6e14f5


책 소개


입문자와 소프트웨어 엔지니어를 위한 딥러닝과 신경망의 모든 것!


신경망의 기본부터 합성곱 신경망(CNN), 재귀형 신경망(RNN)까지 총 망라!


 

신경망의 기초부터 C++를 이용한 구현까지




C++로 배우는 딥러닝

 

 

 요즘 생활어가 된 인공지능을 구현하기 위해서는 머신러닝, 좀 더 세부적으로는 딥러닝으로 범위를 좁혀서 딥러닝의 기초가 되는 신경망을 공부해야 한다. 집안에서 기가지니, TV 좀 켜줘!”하고 인공지능 스피커에서 말하면 TV를 켜주거나 꺼주기도 하지만 아직은 친구처럼 느껴질 정도로 진화된 단계는 아니다. 익사이트 주식회사(www.excite.co.jp)의 기술 전략실 이사로 머신러닝 기반 제품 개발에 종사 중인 저자 후지타 타케시는 이러한 딥러닝에 대한 갈증을 이 책을 통해 확실하게 풀어 준다.

저자는 딥러닝의 기초가 되는 신경망(뉴럴 네트워크)은 뇌신경 세포의 전기적인 행동에서 영감을 얻어 단순화한 구조를 컴퓨터로 재현 가능한 알고리즘으로 정의한 것으로, “최근에는 딥러닝 전용 프레임워크가 개발되어 구글 사의 텐서플로(TensorFlow)를 비롯, UC버클리의 카페(Caffe), 몬트리올 대학의 테아노(Theano), 프리퍼드네트웍 사의 체이너(Chainer) 등 문턱이 낮아져 일반 사용자도 딥러닝을 이용한 서비스 구축이 가능하다고 말한다. 저자는 활용을 위해서는 기초 이론을 학습해야 한다고 강조하며 이 책의 독자를 딥러닝의 기초를 학습하려는 입문자와 소프트웨어 엔지니어로 규정한다. 역자인 김성훈 씨에 따르면 이 책에서는 CUDA(Compute Unified Device Architecture) 커널을 바탕으로 고속화된 행렬 라이브러리, 활성화 함수, 손실 함수 등 C++로 딥러닝을 하는 이들에게 필요한 다양한 예제가 마련되어 있으며 실제 예제 구현을 위해서는 엔비디어의 GPU를 탑재한 그래픽 카드가 필요하다.

이 책은 1장에서는 신경망 구축에 필요한 최소한의 C++ 프로그래밍 지식을, 2장에서는 병렬 프로그래밍의 중요성과 그에 관한 지식과 행렬 연산을 설명한 뒤 3장 이후부터 신경망에 관한 깊이 있는 내용으로 이어지고 있다. 3장에서는 퍼셉트론이라는 신경망의 최소 단위가 되는 유닛과 퍼셉트론을 중첩한 신경망의 기본형인 다층 퍼셉트론(MLP)를 설명한다. 4장에서는 신경망의 매개변수 학습법인 오차역전파법을, 5장에서는 다층 퍼셉트론을 이용해 손글씨 숫자 이미지를 인식해 본다. 6장에서는 머신러닝 전반에서 발생하는 오버피팅(Overfitting, 과적합)을 신경망에서 억제하는 방법을, 7장에서는 딥러닝이 주목받는 계기가 된 기술 중 하나인 오토인코더(Autoencoder), 8장에서는 현재 딥러닝의 대표 주자로 불리는 합성곱 신경망(CNN), 9장에서는 재귀형 신경망으로 불리는 자기 출력을 입력으로 하는 재귀 구조로 된 신경망을 이용해 자연 언어 처리에 응용하는 예를 소개한다.

이 책 한 권이면 딥러닝의 기본 개념에 대한 설명과 이론에 대한 골격이 잡히면서 C++로 코딩을 해보면서 딥러닝 서비스 개발에 대한 자신감까지 덤으로 얻을 수 있을 것이다    

 

저자 소개


후지타 타케시 - 익사이트 주식회사 전략실 실장. Excite Media Service PH Inc. 이사.

머신러닝을 기반으로 한 제품 개발에 종사하고, 콘텐츠 추천 엔진 위스티리어(Wisteria) 등 자사 서비스의 개발 지 휘를 맡고 있다. 2000년 익사이트 주식회사에 입사한 후 웹 검색 엔진 개발과 운영에 참여했고, 인프라 책임자 및 응용 프로그램 개발 책임자로 활약했다. 2008년 웹사이트 개발, 모바일 애플리케 이션 및 게임을 개발·운영하는 회사를 설립한 바 있다. 2013년에는 빅데이터 분석을 중심으로 하는 신생 기업에 합류해, 소셜 미디어 상의 데이터 분석 및 주가 분석 등을 담당했다. 2015년 이후, 익사이트 주식회사로 돌아와 현직에 이른다.

 

 

역자 소개


김성훈 주로 IT 관련 서적을 번역하는 번역가.

주로 IT 관련 서적을 번역하는 번역가로, 주요 번역서는 다음과 같다. [C가 보이는 그림책], [프로그래밍이 보이는 그림책], [게임 프로그래밍의 정석], [웹을 지탱하는 기술], [Objective-C 프로그래밍], [안드로이드 개발 레벨업 교과서], [실무에서 바로 통하는 자바], [C 이보다 쉬울 순 없다], [iOS 디버그 & 최적화 기법], [UML 모델링의 본질], [프로가 가르쳐주는 시퀀스 제어], [만화로 쉽게 배우는 선형대수] 등 다수. 


 

목차

차례

Chapter 01 딥러닝 개론

1-1 딥러닝

1-1-1 딥러닝이란

1-1-2 딥러닝의 배경

1-1-3 딥러닝이 할 수 있는 일

1-1-4 딥러닝의 응용 예

1-1-5 이 책이 대상으로 하는 독자

1-1-6 이 책의 구성

1-1-7 이 책에서 제공하는 소스 코드에 대해서

1-2 학습에 필요한 C++ 언어의 기능

1-2-1 포인터

1-2-2 공유 포인터

1-2-3 vector

1-2-4 map

1-2-5 리스트 구조

1-2-6 트리 구조

 

Chapter 02 신경망을 위한 행렬 연산과 병렬 프로그래밍

2-1 GPU 활용하기

2-1-1 병렬 프로그래밍의 중요성

2-1-2 GPU와 딥러닝

2-2-3 GPU 이용하기

2-2 CUDA 프로그래밍

2-2-1 CUDA 커널

2-2-2 스레드 구성

2-2-3 CPU 메모리와 GPU 메모리

2-3 행렬 연산

2-3-1 행렬 연산의 프레임워크화

2-3-2 cuBLAS

2-3-3 행렬사칙연산 이외의 예

2-3-4 연산자 정의

 

Chapter 03 신경망

3-1 단순 퍼셉트론

3-1-1 단순 퍼셉트론 모델

3-1-2 단순 퍼셉트론이 할 수 있는 일

3-1-3 단순 퍼셉트론의 학습 과정

3-2 다층 퍼셉트론

3-2-1 다층 퍼셉트론 모델

3-2-2 활성화 함수

3-2-3 회귀 문제에서 다층 퍼셉트론 학습

3-2-4 분류 문제에서 다층 퍼셉트론 학습

3-3 신경망의 매개변수 추정

3-3-1 확률적 경사 하강법(Stochastic Gradient Descent, SGD)

3-3-2 미니배치(mini-batch)

3-3-3 가중치 초기화

 

Chapter 04 오차역전파

4-1 순방향 계산

4-1-1 계산 그래프

4-1-2 미니배치 행렬 표현

4-2 미분의 연쇄법칙

4-2-1 합성함수의 미분

4-2-2 미분의 연쇄법칙

4-2-3 다층 신경망에서의 각 매개변수 미분

4-2-4 연쇄법칙의 시각적 표현

4-3 기울기 소실 문제

4-3-1 기울기 소실 문제란?

4-3-2 기울기 소실 문제에 관한 대처

 

Chapter 05 C++를 이용한 신경망 구현

5-1 역방향 자동 미분 구현

5-1-1 변수

5-1-2 함수의 기반 클래스

5-1-3 활성화 함수의 정의

5-1-4 선형함수의 정의

5-1-5 교차 엔트로피 오차함수

5-1-6 역전파

5-2 함수 래퍼

5-3 모델

5-3-1 모델의 정의

5-3-2 모델의 저장과 복원

5-4 옵티마이저

5-4-1 옵티마이저의 기반 클래스.

5-4-2 옵티마이저의 예

5-5 MNIST를 예로 든 학습과 평가

5-5-1 MNIST 데이터 셋 구하기

5-5-2 MNIST 데이터 형식

5-5-3 분류 모델

5-6 Iris를 예로 한 학습과 평가

5-6-1 Iris의 데이터 형식

5-6-2 분류 모델

 

Chapter 06 학습 최적화와 오버피팅

6-1 학습 최적화

6-1-1 모멘텀 SGD

6-1-2 NAG

6-1-3 AdaGrad

6-1-4 RMSprop

6-1-5 AdaDelta

6-1-6 Adam

6-1-7 Adam의 구현

6-2 오버피팅 대책

6-2-1 정규화

6-2-2 드롭아웃

6-2-3 드롭아웃 구현

6-2-4 배치 정규화

6-2-5 배치 정규화 구현

 

Chapter 07 사전 학습

7-1 오토인코더와 사전 학습

7-1-1 오토인코더

7-1-2 희소 오토인코더(sparse autoencoder)

7-1-3 은닉층의 가중치

7-1-4 디노이징 오토인코더

7-1-5 사전 학습

7-2 오토인코더 구현

7-2-1 은닉층

7-2-2 은닉층의 래퍼

7-2-3 오토인코더 구축과 학습

 

Chapter 08 합성곱 신경망

8-1 합성곱

8-1-1 이미지

8-1-2 이미지 필터

8-1-3 패딩

8-1-4 풀링

8-2 합성곱층

8-2-1 합성곱층 계산

8-2-2 합성곱층 계산 연구.

8-2-3 필터 계수 초기화

8-2-4 합성곱층 구현

8-2-5 풀링층 구현

8-2-6 전결합층

 

8-3 CIFAR-10을 사용한 이미지 인식

8-3-1 CIFAR-10의 라벨

8-3-2 파일 형식

8-3-3 분류 모델

 

Chapter 09 재귀형 신경망

9-1 폭넓게 응용할 수 있는 재귀형 신경망

9-1-1 재귀형 신경망 모델

9-1-2 재귀형 신경망의 역전파

9-1-3 역전파 세부 사항

9-2 재귀형 신경망의 문제점과 해결책

9-2-1 LSTM

9-2-2 LSTM의 오차역전파

9-2-3 LSTM 구현

9-2-4 GRU

9-2-5 GRU의 구현

9-2-6 잘린 BPTT(Truncated BPTT)

9-2-7 숫자 기억하기

9-2-8 사인파 재현

9-3 단어의 벡터 표현

9-3-1 벡터 표현

9-3-2 벡터 표현의 구현

9-4 번역 모델·어텐션 모델

9-4-1 인코더·디코더 모델

9-4-2 패딩

9-4-3 어텐션 모델

9-5 자동 번역 구현

9-5-1 번역 코퍼스

9-5-2 인코더·디코더 모델을 사용한 네트워크 훈련.

9-5-3 인코더·디코더 모델을 사용한 번역(추정)

9-5-4 실행 결과의 고찰

참고 문헌

INDEX

 

 

저자
부록/예제소스
정오표
    최근 본 상품 1