한국청소년정책연구원 도서관

로그인

한국청소년정책연구원 도서관

자료검색

  1. 메인
  2. 자료검색
  3. 통합검색

통합검색

단행본

밑바닥부터 시작하는 딥러닝: 파이썬으로 익히는 딥러닝 이론과 구현

발행사항
한빛미디어, 2017
형태사항
312 p, 24cm
소장정보
위치등록번호청구기호 / 출력상태반납예정일
이용 가능 (1)
한국청소년정책연구원00031173대출가능-
이용 가능 (1)
  • 등록번호
    00031173
    상태/반납예정일
    대출가능
    -
    위치/청구기호(출력)
    한국청소년정책연구원
책 소개
직접 구현하고 움직여보며 익히는 가장 쉬운 딥러닝 입문서

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


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

_예제 소스: https://github.com/WegraLee/deep-learning-from-scratch

★ 누구를 위한 책인가?
_ 외부 라이브러리는 최소한만 이용하고 파이썬을 사용해 딥러닝 프로그램을 처음부터 구현합니다.
_ 파이썬이 처음인 사람도 이해할 수 있도록 파이썬 사용법도 간략히 설명합니다.
_ 실제 동작하는 파이썬 코드와 독자가 직접 실험할 수 있는 학습 환경을 제공합니다.
_ 간단한 기계학습 문제부터 시작하여 궁극에는 이미지를 정확하게 인식하는 시스템을 구현합니다.
_ 딥러닝과 신경망 이론을 알기 쉽게 설명합니다.
_ 오차역전파법(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 정리 참고문헌