-
[ML] Entropy와 Likelihood관점에서의 Loss functionML&DL 이야기/ML 2023. 10. 2. 10:04
Entropy와 Cross Entropy
Entropy
정보의 불확실성의 척도
정보를 표현하는데 있어서 필요한 최소 자원량, 확률이 적은 애를 길게 코딩하고 확률이 큰 아이를 짧게 코딩해라
길이와 확률은 반비례하기에 -log로 표현됨.
H(x)는 x에 따른 코드 길이에 대한 확률의 기댓값으로 표현된다.
정보의 최소 자원량이기에 lower bound를 제공하는 식이라 생각하면 된다.
확률이 균등하면 엔트로피는 최대이다(discrete 일때)
Cross-entropy
실제 분포인 q 를 모르고, 모델링을 하여 q 분포를 예측하고자 하는 것이다. 예측 모델링을 통해 구한 분포를 p(x) 라고 해보자. 실제 분포인 q를 예측하는 p 분포를 만들었을 때, 이 때 cross-entropy 는 아래와 같이 정의된다.
(q가 참값, p가 내가 구한 값임)
Kullback-Leibler Divergence(KL Divergence)
비효율적인 정도를 말한다. 위에서 정의한 엔트로피와 cross 엔트로피의 차이다.
Negative log likelihood(NLL)
https://secundo.tistory.com/41
인풋 데이터를 두 개 이상의 클래스 중 하나로 매핑하는 문제에서 사용하는 손실함수
확률 값을 음의 log함수에 넣어서 변환(잘못 예측할 수록, 패널티를 부여)
* Likelihood(가능도/우도)란
- 주어진 데이터가 가정한 모델에 얼마나 적합(들어맞는가)한지에 대한 조건부 확률, 혹은 믿음의 정도
즉, 관측한 데이터로 부터 모수가 얼마나 적합한지 알려주는 함수이다
* Negative log likelihood
- Likelihood 를 최대화(Maximizing) 하는 것은 Log-likelihood 를 최대화(Maximizing) 하는 것과 동일하고,
- 이를 반대로 뒤집으면 Likelihood 를 최대화 하는 것은 Negative likelihood 를 최소화 하는 것과 동일하다(음수)
- Negative likelihood 를 최소화 하는 것은 Negative Log-Likelihood 를 최소화 하는 것과 동일하기에
- 최종적으로 Negative Log-Likelihood를 최소화 하는 것은 Likelihood를 최대화 하는 것과 같다.
MSE V.S Cross Entropy
이 둘의 가장 큰 차이는 바로 MLE 관점에서 이 두 손실함수를 바라보았을 때 나온다.
Maximum-Likelihood의 관점에서 모델의 학습을 생각하면 정확한 값을 찾는 것보다 분포에 의한 파라미터(평균, 표준편차)를 찾는다고 생각할 수 있다. 이때, 2가지 가정을 하는데 다음과 같다.
1. 모든 데이터가 독립적이다
2. 각각의 데이터가 동일한 분포를 가진다.
이를 IID condtion이라고 한다.
이 때 각 분포에 대한 가능도를 유도하면 아래와 같은 식이 나온다.
즉, 확률분포 관점에서 모델 출력을 보면, 정해진 확률분포(ex.가우시안, 베르누이 등)에서 출력이 나올 확률이라고 해석할 수 있다.
이 때 그 분포를 가우시안으로 보느냐(연속), 베르누이로 보느냐(이산)에 따라서 손실함수의 식이 각각 다르게 유도되는 것이다.
이때 가우시안을 가정하면 MSE를 베르누이로 보면 Cross entropy인 것이다.
물론 이를 무조건 일관적으로 적용할 수는 없지만 Loss function 사용시 이러한 내용을 고려하는 것도 큰 의미가 있을 것이다.
이는 향후 VAE 관련 내용에도 동일하게 작성되어있다.
https://secundo.tistory.com/42
추가적으로 BackPropagation을 사용할 때 Loss Function에 대한 Activation Function의 미분 값을 사용하느냐에서도 나타난다. MSE의 경우 $\bigtriangledown_{a} C \odot \sigma'(Z^{L})$로 구하는데 CEE는 $sigma'(Z^L)$항을 사용하지 않아 역전파시 기울기 손실이 덜하며 속도도 더 빠르다. 그러므로 CEE는 역전파에 유리한 함수라고 할 수 있다. (하지만 중간 Layer에서는 활성 함수에 대한 미분 값을 사용하므로 결국 Gradient Vanishing이 일어나게 된다.)
'ML&DL 이야기 > ML' 카테고리의 다른 글
[ML] Convolution 합성곱의 정의와 FFT 고속푸리에 변환에 관하여 (1) 2023.10.08 [ML] Regression과 Logit(승수)와 Sigmoid함수 그리고 Softmax함수 (0) 2023.10.02 [ML] Optimizer란 무엇인가 (0) 2023.08.24 Likelihood(우도, 가능도)와 MLE(Maximum Likelihood Estimaton) (0) 2023.07.26 [ML] L1함수와 L2함수 입장에서의 Loss Funtion (0) 2023.07.25