1 분 소요

손실함수

손실함수는 알고리즘이 예측한 값과 실제 정답의 차이를 비교하기 위한 함수이다. 즉 알고리즘이 얼마나 잘못 예측하는지를 확인하기 위한 함수이며 최소화 하는것이 목적인 함수이다. 손실함수를 봤을 때, 손실이 커지고 있으면 학습이 잘 안되고 있다고 판단할 수 있다. 이 손실함수를 통해 타겟과 예측값의 오차를 최소화 하는 방향으로 파라미터들을 조정하여 최적의 모델을 찾아낼 수 있다..

오차제곱합

많이 쓰이는 손실함수 중 하나인 오차제곱합(sum of squares for error, SSE)이다.

\[E = \frac{1}{2}\sum_{k}(y_k - t_k) ^ 2\]

손실함수는 예측한 값과 실제 정답의 차이를 비교하기 위한 함수라 했으므로 실제 정답레이블인 \(t_k\) 와 모델이 예측한 레이블 $y_k$를 뺀 후, 제곱을 한다. 왜냐하면 제곱을 하지 않으면 예를들어, 한 오차는 2, 다른 오차는 -2이면 오차의 값이 상쇄되기 때문에 부호를 무시하기 위해서 제곱을 해준다. 그리고 \(\frac{1}{2}\)를 곱한 이유는 미분 연산 시 발생하는 계산의 편의성때문이다. 오차제곱합을 미분할 때, $\frac{1}[2}$를 곱해 미분을 수행하면 나중에 발생하는 계산이 간단해진다.

크로스 엔트로피

\[E = -\sum_{k}t_klogy_k\]

마찬가지로 \(t_k\)가 정답레이블, \(y_k\)가 신경망이 예측한 레이블이다.

엔트로피

우선 크로스 엔트로피 이전에 엔트로피는 여러 분야에서 쓰이고 있는 단어이지만 정보이론에서의 엔트로피는 불학실성을 나타내며 엔트로피가 높다는 것은 ‘확률이 낮다’, ‘정보가 많다’와 같은 의미이다.

\[E = -\sum_{i = 1}^{n}p(x_i)logp(x_i)\]

크로스 엔트로피 공식에서 $y_k$는 예측한 확률값이므로 $y_k$값 자체는 클수록 좋다. 그리고 $y_k$가 크면 $logy_k$도 커진다(정의역이 0.0~1.0이므로 0에 가까워진다. 즉 절댓값은 작아진다). $t_k$는 0과 1로 만든 벡터, 즉 원핫인코딩을 진행했으므로 값에 영향을 미치지는 않는다. 따라서 크로스 엔트로피 값이 작을수록 예측을 잘 했다고 할 수 있겠다.

댓글남기기