핵심 딥러닝 입문: RNN, LSTM, GRU, VAE, GAN 구현 아즈마 유키나가 pdf 다운로드를 무료로 제공합니다 현 시점에서 개발자가 꼭 알아야 할 최신 딥러닝 기술들만을 골라 수식과 코드를 번갈아가며 매우 이해하기 쉽게 알려준다. 간결하고 이해하기 쉬운 예제 코드들을 하나 하나 따라 해가다
관련 교재 pdf 모음
책 소개
인간과 AI, 혹은 지구와 AI가 공존하는 미래 사회가 조금씩 다가오고 있습니다. AI 기술 중에서도 딥러닝(Deep Learning)은 전 세계적인 관심을 받으며 다양한 모습으로 발전하고 있습니다. 딥러닝을 활용한 얼굴 인식, 음성 인식, 보안 기술은 이미 우리 생활 깊숙이 침투해 있습니다. 그러나 딥러닝을 이해하기란 쉽지 않습니다. 딥러닝을 이해하려면 선형대수, 미분 같은 수학은 물론, 파이썬 프로그래밍 기술, 신경망이나 역전파 같은 알고리즘 지식까지 갖춰야 합니다. 이처럼 높은 배움의 진입 문턱을 조금이라도 낮추기 위해 저의 전작 『실체가 손에 잡히는 딥러닝, 기초부터 실전 프로그래밍』에서는 파이썬 프로그래밍과 기초 수학을 설명하고 프레임워크를 쓰지 않고도 딥러닝을 구현하는 방법을 살펴봤습니다. 또한, 딥러닝에 필요한 수식을 간결한 코드로 구현하고 딥러닝의 구조와 원리를 명료하게 설명했습니다. 이 책에서는 이전 책을 기반으로 조금 더 깊은 내용을 다룹니다. RNN(순환 신경망)과 RNN이 발전된 형태인 LSTM을 비롯해 GRU, 생성 모델 VAE와 GAN까지 살펴 봅니다. 이번 책에서도 마찬가지로 프레임워크는 사용하지 않으며, 필요한 수식을 직접 코딩하면서 딥러닝을 구현합니다. 이런 방식으로 학습하면 딥러닝의 내부 원리와 구현 방법을 더 잘 이해할 수 있고, 문제가 발생했을 때 원인을 찾기 쉬워 작업이 더 즐거워집니다. 되도록 프레임워크를 이용하지 않고 딥러닝을 응용하고 구현할 수 있는 실력을 갖추는 것이 바람직합니다. 이 책은 저의 전작인 『실체가 손에 잡히는 딥러닝, 기초부터 실전 프로그래밍』을 굳이 읽지 않았어도 학습할 수 있도록 전작에서 다룬 핵심 내용을 다시 한번 요약 정리해뒀습니다.
핵심 딥러닝 입문: RNN, LSTM, GRU
[1장] 딥러닝의 발전
1.1 딥러닝 개요
__1.1.1 AI와 머신러닝
__1.1.2 딥러닝
1.2 딥러닝 응용 분야
__1.2.1 이미지 인식
__1.2.2 이미지 생성
__1.2.3 이상 탐지
__1.2.4 자연어 처리
__1.2.5 강화학습
__1.2.6 기타 분야에서의 응용 사례
1.3 이 책에서 다루는 딥러닝 기술
__1.3.1 RNN
__1.3.2 생성 모델
[2장] 학습 준비
2.1 아나콘다 개발 환경 구축
__2.1.1 아나콘다 다운로드
__2.1.2 아나콘다 설치
__2.1.3 주피터 노트북 실행
__2.1.4 주피터 노트북 사용
__2.1.5 노트북 종료
2.2 구글 코랩 사용
__2.2.1 구글 코랩 준비
__2.2.2 코랩 노트북 사용
__2.2.3 GPU 사용
__2.2.4 파일 사용
2.3 파이썬 기초
__2.3.1 변수와 변수형
__2.3.2 연산자
__2.3.3 리스트
__2.3.4 튜플
__2.3.5 딕셔너리
__2.3.6 if문
__2.3.7 for문
__2.3.8 함수
__2.3.9 변수의 범위
__2.3.10 클래스
2.4 넘파이와 맷플롯립
__2.4.1 모듈 임포트
__2.4.2 넘파이 배열
__2.4.3 배열을 생성하는 다양한 함수
__2.4.4 reshape를 이용한 형태 변환
__2.4.5 배열 연산
__2.4.6 원소 값에 접근
__2.4.7 그래프 그리기
__2.4.8 이미지 생성
2.5 수학 기초
__2.5.1 벡터
__2.5.2 행렬
__2.5.3 각 원소 간의 곱셈
__2.5.4 행렬 곱
__2.5.5 행렬 전치
__2.5.6 미분
__2.5.7 연쇄 법칙
__2.5.8 편미분
__2.5.9 연쇄 법칙의 확장
__2.5.10 정규분포
[3장] 딥러닝 기초
3.1 딥러닝 개요
__3.1.1 딥러닝이란?
__3.1.2 층의 방향과 층의 개수
__3.1.3 경사 하강법
__3.1.4 에포크와 배치
3.2 전결합층 순전파
__3.2.1 순전파의 수식
__3.2.2 순전파를 행렬로 표현
__3.2.3 순전파를 코드로 구현
3.3 전결합층 역전파
__3.3.1 역전파 수식
__3.3.2 역전파를 행렬로 표현
__3.3.3 역전파를 코드로 구현
3.4 전결합층 구현
__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 손글씨 숫자 이미지 인식의 전체 코드
[4장] RNN
4.1 RNN 개요
4.2 RNN층의 순전파
__4.2.1 순전파 개요
__4.2.2 순전파 수식
__4.2.3 순전파를 코드로 구현
4.3 RNN층의 역전파
__4.3.1 역전파 수식
__4.3.2 역전파를 행렬로 표현
__4.3.3 역전파를 코드로 구현
4.4 RNN층 구현
__4.4.1 RNN층 클래스
4.5 간단한 구조의 RNN 구현
__4.5.1 훈련 데이터 생성
__4.5.2 데이터 전처리
4.5.3 훈련
__4.5.4 예측
__4.5.5 곡선 생성
__4.5.6 sin 곡선 예측에 대한 전체 코드
4.6 2진수 덧셈 학습
__4.6.1 2진수 덧셈
__4.6.2 2진수 준비
__4.6.3 출력층
__4.6.4 훈련
__4.6.5 2진수 계산에 대한 전체 코드
4.7 RNN의 단점
[5장] LSTM
5.1 LSTM 개요
__5.1.1 LSTM 개요
__5.1.2 기억 셀
__5.1.3 망각 게이트 주변
__5.1.4 입력 게이트와 새로운 기억
__5.1.5 출력 게이트
5.2 LSTM층의 순전파
__5.2.1 LSTM층의 순전파
__5.2.2 순전파 코드 구현
5.3 LSTM층의 역전파
__5.3.1 역전파 수식
__5.3.2 망각 게이트
__5.3.3 입력 게이트
__5.3.4 새로운 기억
__5.3.5 출력 게이트
__5.3.6 행렬로 표현
__5.3.7 역전파 코드 구현
5.4 LSTM층 구현
__5.4.1 LSTM층 클래스
5.5 간단한 LSTM 구현
__5.5.1 LSTM 훈련
__5.5.2 sin 곡선 예측에 대한 전체 코드
5.6 LSTM을 이용한 문장 자동 생성
__5.6.1 텍스트 데이터 읽어들이기
__5.6.2 문자와 인덱스 관련
__5.6.3 문자 벡터화
__5.6.4 출력 결과의 의미
__5.6.5 텍스트 생성용 함수
__5.6.6 기울기 클리핑
__5.6.7 문장 생성에 대한 전체 코드
__5.6.8 결과 확인
[6장] GRU
6.1 GRU 소개
__6.1.1 GRU
__6.1.2 리셋 게이트
__6.1.3 새로운 기억
__6.1.4 업데이트 게이트
6.2 GRU층의 순전파
__6.2.1 GRU의 순전파
__6.2.2 순전파를 코드로 구현
6.3 GRU층의 역전파
__6.3.1 새로운 기억
__6.3.2 업데이트 게이트
__6.3.3 리셋 게이트
__6.3.4 입력의 기울기
__6.3.5 이전 시점 출력의 기울기
__6.3.6 GRU의 각 기울기를 행렬로 나타내기
__6.3.7 GRU의 역전파를 코드로 구현하기
6.4 GRU층 구현
__6.4.1 GRU층의 클래스
6.5 GRU 구현
__6.5.1 GRU 구현의 전체 코드
6.6 RNN을 이용한 이미지 생성
__6.6.1 이미지를 시계열 데이터로 간주하기
__6.6.2 훈련 데이터 준비하기
__6.6.3 이미지 생성
__
6.7 Seq2Seq
[7장] VAE
7.1 VAE 소개
__7.1.1 오토인코더
__7.1.2 VAE
7.2 VAE의 구조
__7.2.1 잠재 변수 샘플링
__7.2.2 재파라미터화 트릭
__7.2.3 오차 정의
__7.2.4 재구성 오차
__7.2.5 규제화항
7.3 오토인코더의 구현
__7.3.1 신경망 구현
__7.3.2 각 신경망층의 구현
__7.3.3 순전파와 역전파 구현
__7.3.4 미니 배치 학습 구현
__7.3.5 오토인코더 구현의 전체 코드
__7.3.6 생성된 이미지 나타내기
7.4 VAE에 필요한 신경망층
__7.4.1 VAE 구성
__7.4.2 평균과 표준편차를 출력하는 신경망층
__7.4.3 샘플링층
__7.4.4 출력층
7.5 VAE의 구현
__7.5.1 순전파와 역전파
__7.5.2 VAE를 구현하는 전체 코드
__7.5.3 잠재 공간의 시각화
__7.5.4 이미지 생성하기
7.6 VAE에서 파생되는 기술
__7.6.1 조건부 VAE
__7.6.2 β-VAE
__7.6.3 VQ-VAE
__7.6.4 VQ-VAE-2
[8장] GAN
8.1 GAN 소개
__8.1.1 GAN
__8.1.2 DCGAN
__8.1.3 GAN의 용도
8.2 GAN의 구조
__8.2.1 식별자의 학습 과정
__8.2.2 생성자의 학습 과정
__8.2.3 오차의 정의
8.3 GAN에 필요한 신경망층
__8.3.1 생성자와 식별자의 구조
__8.3.2 생성자의 출력층
__8.3.3 식별자의 출력층
8.4 GAN의 구현
__8.4.1 순전파와 역전파
__8.4.2 GAN의 훈련
__8.4.3 GAN의 학습
__8.4.4 이미지 생성
__8.4.5 GAN을 구현하는 전체 코드
__8.4.6 오차와 정확도 추이
8.5 GAN에서 파생되는 기술
__8.5.1 조건부 GAN
__8.5.2 pix2pix
__8.5.3 Cycle GAN
[9장] 딥러닝 추가 학습을 위한 유용한 정보
9.1 최적화 알고리즘
__9.1.1 최적화 알고리즘 개요
__9.1.2 확률적 경사 하강법(SGD)
__9.1.3 모멘텀
__9.1.4 아다그라드
__9.1.5 RMSProp
__9.1.6 아담
__9.1.7 최적화 알고리즘 구현 예
9.2 학습 테크닉
__9.2.1 드롭아웃
__9.2.2 Leaky ReLU
__9.2.3 가중치 감소
__9.2.4 배치 정규화
9.3 데이터 세트 소개
__9.3.1 사이킷런 데이터 세트
__9.3.2 케라스 데이터 세트
9.4 딥러닝의 미래
[부록]
A.1 간단한 구조의 RNN을 이용한 텍스트 생성
A.2 GRU를 이용한 텍스트 생성
A.3 참고문헌