한 번쯤 정리할 필요가 있다고 느꼈는데 이제 정리해본다.
보통 언급하는 cross entropy loss는 아래의 식들처럼 표현한다.
어렵게 생각할 필요 없고
위 식은 한개의 샘플에 대해서
아래의 식은 전체 샘플의(m)의 평균(1/m)을 계산하여
식을 만든 것으로 보면될 것이다.
log안에 들어가는 값은(y or p) 모델의 output probability,
log 앞에 붙는 값(t or y)은 true label로 생각하면 된다.
보통 true label은 one-hot으로 해당되는 라벨 인덱스만 1이고 나머지는 0이다.
단일 샘플에 대하여 cross entropy loss를 적용해보자
ex)
true label = [0, 1, 0]
output probability = [0.1, 0.6, 0.3]
정답 라벨이 두 번째에 존재하기 때문에
그 두 번째 위치에 존재하는 output probability를 cross entropy식에 적용한다.
(어차피 나머지 클래스들은 true label이 0이기 때문에 계산 패스)
결과 값은 아래와 같이 나올 것이다.
-log0.6 = -(-0.2218) = 0.2218
여기서 log는 자연 로그이며 자연 로그 그래프는 아래와 같이 그래프로 표현할 수 있다.
여기서 우선 x가 1 이하의 y의 값에 집중해보자.
(왜? 보통 분류 모델의 output은 확률값으로 많이 정의하기 떄문에, 확률값이 1을 넘지는 않는다)
위에서 우리는 정답 라벨에 해당하는 값에만 집중하기로 하였다.
위 예시는 모델의 output probability를 0.6으로 들었다.
그런데 만약 0.6에서 조금 더 output probability이 높아진다면?
값은 증가한다(0에 가까워질 것이며)
만약 0.6에서 조금 더 output probability이 낮아진다면?
값은 감소한다(0에서 더 멀어진다)
그래프만 보면 바로 알 수 있는 내용이다.
그런데 추가적으로 값의 변화량을 살펴보자.
0.6에서 확률이 조금 더 높아져 0.1이 증가한 0.7이라면???
그 변화량은 0.6에서 확률이 조금 더 떨어져 0.1이 감소한 0.5보다 작을 것이다.
값의 변화량
0.6 -> 0.7 < 0.6 -> 0.5
이것을 loss function의 관점으로 한번 생각해보자.
예측한 output probability의 값이 낮아질 수록 loss를 크게 가지며
예측한 output probability의 값이 높아질 수록 loss를 작게 가진다.
라는 것을 유추해낼 수 있다.
'딥러닝관련 > 기초 이론' 카테고리의 다른 글
ROC curve and AUC (0) | 2022.08.06 |
---|---|
소프트맥스 회귀(softmax regression) (0) | 2022.03.06 |
로지스틱 회귀(logistic regression) (0) | 2022.03.02 |
규제가 있는 선형 모델 (0) | 2022.02.27 |
편향/분산 트레이드 오프 (Bias/variance trade-off) (0) | 2022.02.27 |