나에게 필요한 지식과 기술을 검색해 보세요.

밑바닥부터 시작하는 딥러닝

파이썬으로 익히는 딥러닝 이론과 구현

지은이

사이토 고키

옮긴이

개앞맵시(이복연)

출간일

2017.01.03

레벨

초급

평점

4.3(12명)

정가

24,000

판매가

21,600

총 결제 금액

10%

21,600

적립 예정

1,080P

쪽수

312P

ISBN

9788968484636

브랜드

한빛미디어

직접 구현하고 움직여보며 익히는 가장 쉬운 딥러닝 입문서 

 

이 책은 라이브러리나 프레임워크에 의존하지 않고, 딥러닝의 핵심을 ‘밑바닥부터’ 직접 만들어보며 즐겁게 배울 수 있는 본격 딥러닝 입문서입니다. 술술 읽힐 만큼 쉽게 설명하였고, 역전파처럼 어려운 내용은 ‘계산 그래프’ 기법으로 시각적으로 풀이했습니다. 무엇보다 작동하는 코드가 있어 직접 돌려보고 요리조리 수정해보면 어려운 이론도 명확하게 이해할 수 있습니다. 딥러닝에 새롭게 입문하려는 분과 기초를 다시금 정리하고 싶은 현업 연구자와 개발자에게 최고의 책이 될 것입니다.

 

★ 누구를 위한 책인가?

_ 외부 라이브러리는 최소한만 이용하고 파이썬을 사용해 딥러닝 프로그램을 처음부터 구현합니다.

_ 파이썬이 처음인 사람도 이해할 수 있도록 파이썬 사용법도 간략히 설명합니다.

_ 실제 동작하는 파이썬 코드와 독자가 직접 실험할 수 있는 학습 환경을 제공합니다.

_ 간단한 기계학습 문제부터 시작하여 궁극에는 이미지를 정확하게 인식하는 시스템을 구현합니다.

_ 딥러닝과 신경망 이론을 알기 쉽게 설명합니다.

_ 오차역전파법(backpropagation)과 합성곱(convolution) 연산 등 복잡해 보이는 기술을 구현 수준에서 이해할 수 있도록 설명합니다.

_ 하이퍼파라미터 결정 방식, 가중치 초깃값 등 딥러닝을 활용하는 데 도움이 되는 실용적인 기술을 소개합니다.

_ 배치 정규화, 드롭아웃, Adam 같은 최근 트렌드를 설명하고 구현해봅니다.

_ 딥러닝이 왜 뛰어난지, 층이 깊어지면 왜 정확도가 높아지는지, 은닉층이 왜 중요한지와 같은 ‘왜’에 관한 문제도 다룹니다.

_ 자율 주행, 이미지 생성, 강화학습 등, 딥러닝을 응용한 예를 소개합니다.

 

★ 누구를 위한 책이 아닌가?

_ 딥러닝 분야의 최신 연구에 대해서는 자세히 다루지 않습니다.

_ 카페(Caffe), 텐서플로(TensorFlow), 체이너(Chainer) 등의 딥러닝 프레임워크 사용법은 설명하지 않습니다.

_ 딥러닝, 특히 신경망에 관한 아주 상세한 이론까지는 담지 않았습니다.

_ 딥러닝의 정확도를 높이기 위한 튜닝은 자세히 설명하지 않습니다.

_ 딥러닝 성능을 높여주는 GPU 기술은 구체적으로 다루지 않습니다.

_ 주로 이미지 인식을 다룹니다. 자연어 처리, 음성 인식 등의 사례는 다루지 않습니다.

 

출판사 리뷰

파이썬으로 익히는 딥러닝 이론과 구현

 

새로운 지식을 배울 때 설명만 들어서는 석연치 않거나 금방 잊어버리게 됩니다. 그래서 무엇보다 ‘직접 해보는 것’이 중요합니다.

이 책은 딥러닝의 기본을 ‘이론 설명’과 ‘파이썬 구현 코드’라는 투 트랙으로 설명합니다. 각 장은 주제 하나를 설명한 후 그것을 실습할 수 있도록 꾸몄습니다. 즉, 실행되는 소스 코드를 준비했습니다. 직접 실행해보세요! 소스 코드를 읽으면서 스스로 생각하고 그 생각을 반영해 실험하다 보면 확실하게 자기 것으로 만들 수 있습니다. 여러 실험을 해보면서 겪는 시행착오 역시 큰 자산이 될 것입니다.

저자

목차

1장 헬로 파이썬

1.1 파이썬이란?

1.2 파이썬 설치하기

__1.2.1 파이썬 버전

__1.2.2 사용하는 외부 라이브러리

__1.2.3 아나콘다 배포판

1.3 파이썬 인터프리터 

__1.3.1 산술 연산 

__1.3.2 자료형 

__1.3.3 변수 

__1.3.4 리스트 

__1.3.5 딕셔너리

__1.3.6 bool 

__1.3.7 if 문 

__1.3.8 for 문 

__1.3.9 함수 

1.4 파이썬 스크립트 파일 

__1.4.1 파일로 저장하기 

__1.4.2 클래스 

1.5 넘파이 

__1.5.1 넘파이 가져오기 

__1.5.2 넘파이 배열 생성하기 

__1.5.3 넘파이의 산술 연산 

__1.5.4 넘파이의 N차원 배열 

__1.5.5 브로드캐스트 

__1.5.6 원소 접근 

1.6 matplotlib 

__1.6.1 단순한 그래프 그리기 

__1.6.2 pyplot의 기능 

__1.6.3 이미지 표시하기 

1.7 정리 

 

2장 퍼셉트론

2.1 퍼셉트론이란? 

2.2 단순한 논리 회로 

__2.2.1 AND 게이트 

__2.2.2 NAND 게이트와 OR 게이트 

2.3 퍼셉트론 구현하기 

__2.3.1 간단한 구현부터 

__2.3.2 가중치와 편향 도입 

__2.3.3 가중치와 편향 구현하기 

2.4 퍼셉트론의 한계 

__2.4.1 도전! XOR 게이트 

__2.4.2 선형과 비선형 

2.5 다층 퍼셉트론이 출동한다면 

__2.5.1 기존 게이트 조합하기 

__2.5.2 XOR 게이트 구현하기 

2.6 NAND에서 컴퓨터까지 

2.7 정리 

 

3장 신경망

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.2.5 시그모이드 함수와 계단 함수 비교 

__3.2.6 비선형 함수 

__3.2.7 ReLU 함수 

3.3 다차원 배열의 계산 

__3.3.1 다차원 배열 

__3.3.2 행렬의 내적 

__3.3.3 신경망의 내적 

3.4 3층 신경망 구현하기 

__3.4.1 표기법 설명 

__3.4.2 각 층의 신호 전달 구현하기 

__3.4.3 구현 정리 

3.5 출력층 설계하기 

__3.5.1 항등 함수와 소프트맥스 함수 구현하기 

__3.5.2 소프트맥스 함수 구현 시 주의점 

__3.5.3 소프트맥스 함수의 특징 

__3.5.4 출력층의 뉴런 수 정하기

3.6 손글씨 숫자 인식 

__3.6.1 MNIST 데이터셋 

__3.6.2 신경망의 추론 처리 

__3.6.3 배치 처리 

3.7 정리 

 

4장 신경망 학습

4.1 데이터에서 학습한다! 

__4.1.1 데이터 주도 학습 

__4.1.2 훈련 데이터와 시험 데이터 

4.2 손실 함수 

__4.2.1 평균 제곱 오차 

__4.2.2 교차 엔트로피 오차 

__4.2.3 미니배치 학습 

__4.2.4 (배치용) 교차 엔트로피 오차 구현하기 

__4.2.5 왜 손실 함수를 설정하는가? 

4.3 수치 미분 

__4.3.1 미분 

__4.3.2 수치 미분의 예 

__4.3.3 편미분 

4.4 기울기 

__4.4.1 경사법(경사 하강법) 

__4.4.2 신경망에서의 기울기 

4.5 학습 알고리즘 구현하기 

__4.5.1 2층 신경망 클래스 구현하기

__4.5.2 미니배치 학습 구현하기 

__4.5.3 시험 데이터로 평가하기 

4.6 정리 

 

5장 오차역전파법

5.1 계산 그래프 

__5.1.1 계산 그래프로 풀다 

__5.1.2 국소적 계산 

__5.1.3 왜 계산 그래프로 푸는가? 

5.2 연쇄법칙 

__5.2.1 계산 그래프에서의 역전파 

__5.2.2 연쇄법칙이란? 

__5.2.3 연쇄법칙과 계산 그래프 

5.3 역전파 

__5.3.1 덧셈 노드의 역전파 

__5.3.2 곱셈 노드의 역전파 

__5.3.3 사과 쇼핑의 예 

5.4 단순한 계층 구현하기 

__5.4.1 곱셈 계층 

__5.4.2 덧셈 계층 

5.5 활성화 함수 계층 구현하기 

__5.5.1 ReLU 계층 

__5.5.2 Sigmoid 계층 

5.6 Affine/Softmax 계층 구현하기 

__5.6.1 Affine 계층 

__5.6.2 배치용 Affine 계층 

__5.6.3 Softmax-with-Loss 계층 

5.7 오차역전파법 구현하기 

__5.7.1 신경망 학습의 전체 그림 

__5.7.2 오차역전파법을 적용한 신경망 구현하기 

__5.7.3 오차역전파법으로 구한 기울기 검증하기 

__5.7.4 오차역전파법을 사용한 학습 구현하기

5.8 정리 

 

6장 학습 관련 기술들

6.1 매개변수 갱신 

__6.1.1 모험가 이야기 

__6.1.2 확률적 경사 하강법(SGD) 

__6.1.3 SGD의 단점 

__6.1.4 모멘텀 

__6.1.5 AdaGrad 

__6.1.6 Adam 

__6.1.7 어느 갱신 방법을 이용할 것인가? 

__6.1.8 MNIST 데이터셋으로 본 갱신 방법 비교 

6.2 가중치의 초깃값 

__6.2.1 초깃값을 0으로 하면? 

__6.2.2 은닉층의 활성화 분포 

__6.2.3 ReLU를 사용할 때의 가중치 초깃값 

__6.2.4 MNIST 데이터셋으로 본 가중치 초깃값 비교 

6.3 배치 정규화 

__6.3.1 배치 정규화 알고리즘 

__6.3.2 배치 정규화의 효과 

6.4 바른 학습을 위해 

__6.4.1 오버피팅 

__6.4.2 가중치 감소 

__6.4.3 드롭아웃 

6.5 적절한 하이퍼파라미터 값 찾기 

__6.5.1 검증 데이터 

__6.5.2 하이퍼파라미터 최적화 

__6.5.3 하이퍼파라미터 최적화 구현하기 

6.6 정리 

 

7장 합성곱 신경망(CNN)

7.1 전체 구조 

7.2 합성곱 계층 

__7.2.1 완전연결 계층의 문제점 

__7.2.2 합성곱 연산 

__7.2.3 패딩 

__7.2.4 스트라이드 

__7.2.5 3차원 데이터의 합성곱 연산 

__7.2.6 블록으로 생각하기 

__7.2.7 배치 처리 

7.3 풀링 계층 

__7.3.1 풀링 계층의 특징 

7.4 합성곱/풀링 계층 구현하기 

__7.4.1 4차원 배열 

__7.4.2 im2col로 데이터 전개하기 

__7.4.3 합성곱 계층 구현하기 

__7.4.4 풀링 계층 구현하기 

7.5 CNN 구현하기 

7.6 CNN 시각화하기 

__7.6.1 1번째 층의 가중치 시각화하기 

__7.6.2 층 깊이에 따른 추출 정보 변화 

7.7 대표적인 CNN 

__7.7.1 LeNet 

__7.7.2 AlexNet 

7.8 정리 

 

8장 딥러닝

8.1 더 깊게 

__8.1.1 더 깊은 네트워크로 

__8.1.2 정확도를 더 높이려면 

__8.1.3 깊게 하는 이유 

8.2 딥러닝의 초기 역사 

__8.2.1 이미지넷 

__8.2.2 VGG 

__8.2.3 GoogLeNet 

__8.2.4 ResNet 

8.3 더 빠르게(딥러닝 고속화) 

__8.3.1 풀어야 할 숙제 

__8.3.2 GPU를 활용한 고속화 

__8.3.3 분산 학습 

__8.3.4 연산 정밀도와 비트 줄이기 

8.4 딥러닝의 활용 

__8.4.1 사물 검출 

__8.4.2 분할 

__8.4.3 사진 캡션 생성 

8.5 딥러닝의 미래 

__8.5.1 이미지 스타일(화풍) 변환 

__8.5.2 이미지 생성 

__8.5.3 자율 주행 

__8.5.4 Deep Q-Network(강화학습) 

8.6 정리 

 

부록 A Softmax-with-Loss 계층의 계산 그래프

A.1 순전파 

A.2 역전파 

A.3 정리 

참고문헌 

리뷰

전체 평점

4.3

오탈자

등록된 오탈자가 없어요

오탈자를 발견하셨다면 작성해주세요.

24,000

10%

21,600