일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- project euler
- c#
- 수달
- 오토인코더
- neural network
- 히토요시
- 딥러닝
- Convolutional Neural Network
- CNN
- 자전거 여행
- Python
- 소수
- 합성곱 신경망
- A Neural Algorithm of Artistic Style
- 오일러 프로젝트
- 역전파법
- 신경망
- 전처리
- SQL
- 소인수분해
- 베이지안
- deep learning
- 냥코 센세
- backpropagation
- Autoencoder
- 비샤몬당
- bayesian
- mnist
- Gram matrix
- 역전파
- Today
- Total
통계, IT, AI
딥러닝: 화풍을 모방하기 (8) - 연습: 역전파법 본문
1. 회귀문제
- 본 포스팅에 있는 결과는 다음 첨부파일(code.7z)을 통하여 재현이 가능하다.code.7z
- 역전파법을 회귀문제에 적용해보자. 실습을 위해 정의역이
그림 1. Sin function without hidden layer
- 그림 1은 은닉층을 추가하지 않고 적합한 결과이다. 붉은 선은
그림 2. Sin function with 1 hidden layer
- 그림 2는 같은 자료에 1개의 은닉층을 추가한 결과이다. 은닉층의 노드의 수는 3개이며 활성화함수로 모두
2. 분류문제
- 분류문제를 실습하기 위하여 MNIST data set(이하 MNIST)를 사용한다. MNIST는 사람의 손글씨를 모아둔 자료로 60,000개의 훈련용 자료와 10,000개의 테스트용 자료로 구성되어 있다. 각 픽셀은 0부터 255의 값을 가지며 숫자가 클 수록 진한 부분이다. 그림 3은 MNIST의 예시이다. 1
그림 3. example of MNIST
- 주의할 점은, 훈련을 시작하기 전에, 데이터의 각 값이 255에 의하여 나누어짐을 당하게 하여야 한다는 것이다. 이 나누어짐을 통하여 데이터의 값이
- 회귀문제와 마찬가지로 은닉층이 있는 경우와 없는 경우를 각각 비교해보자. 하이퍼 파라미터에 대한 자세한 설정은 첨부파일의 main_mnist.py에 있다. 결과를 재현해보고자 한다면 첨부파일의 mnist 폴더의 mnist_loader.py를 먼저 실행시켜야 한다. 2
그림 4. MNIST data set with or without hidden layer
- 그림 4는 테스트 데이터에 대하여 은닉층이 없을 때와 1개 있을 경우 epoch에 따라 변하는 정확도를 표시한 것이다. 붉은 선이 은닉층이 존재하는 신경망의 결과, 파란 선이 없는 신경망의 결과이다. 은닉층이 없는 경우, 두개 이상의 class가 있는 logistic regression과 같다. 은닉층이 없는 경우 epoch을 거듭해도 학습을 하는 모습을 보여주지 못하고 있다.
3. Gradient Vanishing
- 회귀와 분류문제에서 공통적으로 은닉층을 추가하였을때 더 좋은 결과가 나옴을 확인할 수 있다. 그렇다면 은닉층을 많이 추가한다면 그만큼 좋은 결과가 나올까? 이를 확인하기 위하여 분류문제에서 15개의 은닉층을 설정하여 훈련을 진행하였다. 하이퍼 파라미터에 대한 정보는 main_gradient_vanishing.py에 있다.
그림 5. MNIST with 15 hidden layers
- 지속적으로 10%의 정확도를 보이는데, 10%의 정확도라는 것은 임의로 결정하는 것 즉, 찍는 것과 다름이없다. 왜 이런 결과를 보일까?
-
- 이것을 해결하기 위하여 3장에서 소개한 방법이 어느정도 도움이 되긴 하지만 본질적인 해결책은 아니며 이 기울기 소실을 해결하기 위한 방법으로 소개된 것이 앞으로 소개할 사전학습이다.
'머신러닝' 카테고리의 다른 글
딥러닝: 화풍을 모방하기 (10) - 연습: 자기부호화기(Autoencoder) (0) | 2017.04.30 |
---|---|
딥러닝: 화풍을 모방하기 (9) - 책 요약: 5. 자기부호화기 (0) | 2017.04.17 |
딥러닝: 화풍을 모방하기 (7) - 책 요약: 4. 역전파법 (0) | 2017.02.16 |
딥러닝: 화풍을 모방하기 (6) - 연습: 다클래스 분류 문제 (1) | 2017.02.02 |
딥러닝: 화풍을 모방하기 (5) - 연습: 이진 분류 문제 (0) | 2017.02.01 |