ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ML] Entropy와 Negative log likelihood(NLL)
    ML&DL 이야기/ML 2023. 10. 2. 10:04
    본 내용은 허민석님의 머신러닝 영상 중 엔트로피에 해당하는 50~53까지의 내용을 참고하여 작성하였습니다. 

    Entropy(Shannon's Entropy)

    정보의 불확실성의 척도, 즉 정보의 불확실성이 높을 수록 얻을 수록 정보가 높다

    즉, 엔트로피는 정보를 표현하는데 있어서 필요한 최소 자원량, 확률이 적은(불확실성이 높은, p(x)가 작은) 애를 길게 코딩하고 확률이 큰 아이를 짧게 코딩한다는 원칙이다. 

    엔트로피의 식, log 밑은 2

     

    길이와 확률은 반비례하기에 -log로 표현되고, 엔트로피는 x에 따른 코드 길이에 대한 확률의 기댓값으로 표현된다. 

    확률이 균등하면 엔트로피는 최대이다(discrete 일때)

     

     

    혹은 아래와 같이 표현도 가능함. Expectation 수식과 비교하면

    출처: https://www.youtube.com/watch?v=CdH7U3IjRI8

     

    즉, 정보의 양인 log2(1/pi)에 관한 기대값이라고 생각하면 된다. 해당 수식에서 역수는 위에서 말한 정보표현의 길이의 개념과, log는 각 사건이 독립일때,두 정보량이 동시에 존재한다면 두 정보량을 더한 값과 이는 같아햔다는 원칙을 지킨다. 마지막으로 log2를 사용하는 이유는 정보의 양을 bit의 개수로 연관짓기 위해서이다. 

    출처: https://www.youtube.com/watch?v=CdH7U3IjRI8

    Example for calculating Entropy

    출처: https://www.youtube.com/watch?v=CdH7U3IjRI8

     

    위 예제는 동전던지기, 즉 2의 최대경우의 수가 존재할때의 문제일 때 Entropy 계산 예제이다. 

    보면 2^1임으로 최대 entropy가 1임을 알 수 있다. 

     

    Entropy 계산 예제는 Decision tree에서 Entropy gain을 계산할 때는 사용할 수 있다(더 엔트로피를 낮추는, 혹은 엔트로피의 변화의 크기를 늘리는 방향으로). 

     

    Cross-entropy

    불확실성을 더하고 엔트로피를 구한 것.

    실제 분포인 p를 모르고, q분포를 모델링을 하여 실제분포를 예측하고자 하는 것이다. 예측 모델링을 통해 구한 분포를 q(x) 라고 해보자. 실제 분포인 p를 예측하는 q분포를 예측하였을때, 이 때 cross-entropy 는 아래와 같이 정의된다. 

    p가 실제 분포, q가 예측하는 분포 위 엔트로피 식에서 내가 생각한 분포로 log부분이 바뀐다고 생각하면 된다

     

    0에 가까울수록 q가 예측이 잘된것이고, 완전히 다른 경우 무한으로 발산한다. 

     

    Cross Entropy는 대부분 Entropy보다 크다. 

    Kullback-Leibler Divergence(KL Divergence)

    상대적인 엔트로피라고 한다. 비효율적인 정도를 말한다. 위에서 정의한 엔트로피와 cross 엔트로피의 차이다. 

     

    즉, 정답분포 P의 엔트로피와 Cross entropy의 차를 의미하고, 작으면 작을수록 더 잘 예측한 것이다. 

     

    Negative log likelihood(NLL)

    https://secundo.tistory.com/41

     

    Likelihood(우도, 가능도)와 MLE(Maximum Likelihood Estimaton) 그리고 우주도킹에 관해

    Likelihood(우도, 가능도) 데이터가 만일 위의 그림처럼 1,4,5,6,9가 나왔을 때 분포는 주황색으로 추정하는 것이 옳을까?, 아니면 파란색으로 추정하는 것이 좋을까? 우도란 이런 정도를 나타내는 것

    secundo.tistory.com

    인풋 데이터를 두 개 이상의 클래스 중 하나로 매핑하는 문제에서 사용하는 손실함수 

    확률 값을 음의 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

     

    Auto Encoder와 VAE 전 내용들 정리

    VAE 논문을 읽던 도중에 Auto Endcoder 및 VAE 논문에 나오는 기타 개념들을 정리할 필요가 있어서 따로 정리해보려고 한다. 내용 참조는 Auto Encoder의 모든 것이라는 네이버 D2(이활석 발표자님) 강연, K

    secundo.tistory.com

    추가적으로 BackPropagation을 사용할 때 Loss Function에 대한 Activation Function의 미분 값을 사용하느냐에서도 나타난다. MSE의 경우 $\bigtriangledown_{a} C \odot \sigma'(Z^{L})$로 구하는데 CEE는 $sigma'(Z^L)$항을 사용하지 않아 역전파시 기울기 손실이 덜하며 속도도 더 빠르다. 그러므로 CEE는 역전파에 유리한 함수라고 할 수 있다. (하지만 중간 Layer에서는 활성 함수에 대한 미분 값을 사용하므로 결국 Gradient Vanishing이 일어나게 된다.)

     

Designed by Tistory.