딥러닝의 기초 지식, 수학, 파이썬부터 실전 프로그래밍 구현까지,
| 이 책에서 다루는 내용 |
| 이 책의 독자 대상 |
인간과 AI의 공생이 미션인 회사 SAI-Lab 주식회사의 대표이사로 AI 관련 교육과 연구개발에 종사하고 있다. 토호쿠대학 대학원 이학 연구과 수료. 이학 박사(물리학)이며, 관심 분야는 인공지능(AI), 복잡계, 뇌과학, 싱귤러리티 등이다. 현재 세계 최대의 교육 동영상 플랫폼 Udemy에서 다양한 AI 관련 강좌를 전개해 약 3만명을 지도하는 인기 강사이며, 엔지니어로서 VR, 게임, SNS 등 장르를 불문하고 여러 가지 앱을 개발했다.
[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 참고문헌