- github) https://github.com/WegraLee/deep-learning-from-scratch
- 코드 돌리기
- ML 기본 학습
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.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.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.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.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.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.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.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 정리
참고문헌
파이썬으로 익히는 딥러닝 이론과 구현
_예제 소스: https://github.com/WegraLee/deep-learning-from-scratch
★ 누구를 위한 책인가?
외부 라이브러리는 최소한만 이용하고 파이썬을 사용해 딥러닝 프로그램을 처음부터 구현합니다.
파이썬이 처음인 사람도 이해할 수 있도록 파이썬 사용법도 간략히 설명합니다.
실제 동작하는 파이썬 코드와 독자가 직접 실험할 수 있는 학습 환경을 제공합니다.
간단한 기계학습 문제부터 시작하여 궁극에는 이미지를 정확하게 인식하는 시스템을 구현합니다.
딥러닝과 신경망 이론을 알기 쉽게 설명합니다.
오차역전파법(backpropagation)과 합성곱(convolution) 연산 등 복잡해 보이는 기술을 구현 수준에서 이해할 수 있도록 설명합니다.
하이퍼파라미터 결정 방식, 가중치 초깃값 등 딥러닝을 활용하는 데 도움이 되는 실용적인 기술을 소개합니다.
배치 정규화, 드롭아웃, Adam 같은 최근 트렌드를 설명하고 구현해봅니다.
딥러닝이 왜 뛰어난지, 층이 깊어지면 왜 정확도가 높아지는지, 은닉층이 왜 중요한지와 같은 ‘왜’에 관한 문제도 다룹니다.
자율 주행, 이미지 생성, 강화학습 등, 딥러닝을 응용한 예를 소개합니다.
★ 누구를 위한 책이 아닌가?
딥러닝 분야의 최신 연구에 대해서는 자세히 다루지 않습니다.
카페(Caffe), 텐서플로(TensorFlow), 체이너(Chainer) 등의 딥러닝 프레임워크 사용법은 설명하지 않습니다.
딥러닝, 특히 신경망에 관한 아주 상세한 이론까지는 담지 않았습니다.
딥러닝의 정확도를 높이기 위한 튜닝은 자세히 설명하지 않습니다.
딥러닝 성능을 높여주는 GPU 기술은 구체적으로 다루지 않습니다.
주로 이미지 인식을 다룹니다. 자연어 처리, 음성 인식 등의 사례는 다루지 않습니다.
- (-)230907
- 230907
- 6.(-)