336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
[손실함수 (Loss function)]
출력값과 정답의 오차를 정의하는 함수.
딥러닝에서 아래 두가지 손실함수가 많이 쓰임.
1. 오차제곱합 (Sum of Squares for Error, SSE)
출력층의 모든 뉴런에서 출력값과 정담의 차이를 제곱하고 이 값들을 모두 합함.
E : 오차제곱의 합
yk : 출력층의 각 출력값,
tk : 정답
1/2 은 미분을 쉽게하기 위해 존재.
신경망의 출력값이 정답과 어느정도 일치하는지 정량화 가능.
출력값과 정답이 연속적인 수치인 경우에 잘 맞기 때문에 회귀에서 자주 사용됨.
[코드]
1 2 3 4 | import numpy as np def square_sum(y, t): return 1.0 / 2.0 * np.sum(np.square(y-t)) | cs |
2. 교차 엔프로피 오차 (Cross Entropy Error, CEE)
두 분포간의 차이를 나타내는 척도로서 분류 문제에서 많이 사용됨.
위의 식은 다음과 같이 변형 가능함.
분류문제의 정답은 [ 0 0 1 0 ] 형태의 one-hot encoding으로 표현.
따라서 시그마 내부에서 tk가 1인 항만 살아남음. (나머지는 정답t가 0 이라서 없어짐)
결국 정답이 1인 항만 오차에 영향을 줌.
[-log(x) 그래프]
-logx 성질에 따라 -log(yk)은 정답에 가까울수록 작아지며 멀어질수록 무한대로 감.
따라서 출력값이 정답에서 멀어질수록 오차도 한없이 커지며 정답에 가까울수록 오차가 0에 가까워짐.
장점 : 출력값과 정답의 차이가 클 때 학습 속도가 빠름.
[코드]
log 함수의 진수부분이 0이 되면 자연로그가 마이너스 무한대로 발산.
이를 방지하기 위해 y에 아주 작은 값 1e-7을 더함.
'AI > 딥러닝 기초' 카테고리의 다른 글
출력층 기울기 구하기 (0) | 2019.10.12 |
---|---|
경사 하강법(Gradient Descent) (0) | 2019.10.12 |
훈련 데이터와 테스트 데이터(Training data & Test data) (0) | 2019.10.11 |
학습규칙 & 역전파(Backpropagation) (0) | 2019.10.11 |
활성화 함수(Activation function) (0) | 2019.10.11 |