dev-logs
3. 신경망 학습 본문
학습
- 훈련 데이터로부터 가중치 매개변수의 최적값을 획득하는 것.
- 손실 함수(Loss function)를 지표로 해서 loss함수의 결과값을 가장 작게 만드는 가중치 매개변수를 찾아야 한다.
- 기울기 경사법 이용.
- 훈련데이터 training data와 시험데이터 test data를 섞으면 안됨!
- 어떤 데이터셋에 지나치게 최적화된 상태 overfitting 을 피하는 것 중요
특징 추출
- 컴퓨터 비전 분야에서는 SIFR, SURF, HOG 등이 있음.
- 딥러닝인 특징 추출도 사람이 개입하지 않아도 됨.
손실함수 Loss function
- 신경망 성능의 '나쁨'을 나타내는지표 -> 결과값이 작을수록 좋음. 결과값에 -1을 곱하면 '좋음'을 나타내게 됨.
- 평균 제곱 오차, 교차 엔트로피 사용.
평균 제곱 오차 mean squard error, MSE
- (추정값 - 정답)의 제곱의 합 / 2
- MSE 구하기 (숫자 손글씨를 예로)
- Example
- t는 one-hot encoding 상태.
- 위의 표처럼 정답은 2 이다. (실제 추정확률도 2가 가장 높게 나옴)
- MSE = 0.0975
교차 엔트로피 오차 cross entropy error, CEE
- t와 y가 곱하기 연산되어있다. t는 정답인 클래스만 1이고 나머지는 0이므로 시그마 계산이지만 CEE는 정답인 클래스의 출력값과 같다.
- 자연로그 그래프는 아래와 같다.
미니배치 mini-batch
- 모든 학습데이터에 대해 loss를 구하려면 시간이 너무 많이 걸리므로 데이터 중 일부만 골라서 학습 수행.
- 예를 들어 60,000장의 학습이미지 중 무작위로 100개를 뽑아서 그 100장만을 학습함.
왜 손실함수를 써야하는지?
- 신경망 학습에서 최적의 가중치, 편향 값을 찾을 때 loss값을 작게하는 매개변수를 찾는다.
- 매개변수(활성화함수?)의 미분을 이용. (가중치 매개변수의 변화에 대한 loss값 변화량)
- 예를 들어 매개변수 미분값이 음수이면 -> 매개변수를 양의 방향으로 변화시키면 loss값이 작아짐.
- 예를 들어 매개변수 미분값이 양수이면 -> 매개변수를 음의 방향으로 변화시키면 loss값이 작아짐.
- 예를 들어 매개변수 미분값이 0이면 -> 어떤 방향으로 변화시키든 loss값의 변화가 없으므로 갱신하지 않음.
- 정확도를 지표로 삼으면 매개변수의 미분은 대부분의 장소에서 0이 된다...
출처 : 밑바닥부터 시작하는 딥러닝(한빛미디어)
'공부 > Deep Learning' 카테고리의 다른 글
7. CNN (0) | 2019.06.19 |
---|---|
6. 학습 관련 기술들 (0) | 2019.06.18 |
5. 오차역전파법 (0) | 2019.06.17 |
2. 손글씨 숫자 인식_1 (0) | 2019.05.28 |
1. 신경망, Forward Propagation 개념 (0) | 2019.05.28 |