Processing math: 100%
본문 바로가기

STUDY/인공지능

[ML 책] 엔트로피, 크로스 엔트로피, KL Divergence, Negative log Likelihood

728x90

머신러닝에 필요한 기초적인 수학 공부를 하기 위해  "선형대수와 통계학으로 배우는 머신러닝 with 파이썬" 이라는 책을 읽고 블로그에 요약해보고자 합니다. 오직 제 개인적인 공부 공간으로 사용할 목적으로 포스팅을 할 예정이니 자세한 내용이 궁금하신 분들은 아래 표지 책을 구매하여 공부하시길 바랍니다.

책 표지를 누르면 저자의 깃헙으로 이동됩니다:)

이전 포스팅  >>>>> [STUDY/머신러닝\딥러닝] - [ML책] 머신러닝이란?

 

[ML책] 머신러닝이란?

요즘들어 머신러닝/딥러닝 공부를 하면서 수학적 지식이 정말 필수적이구나라는 생각이 많이 듭니다. 물론 수학적인 지식없이도 머신러닝과 딥러닝을 쉽게 접할 수 있습니다. 하지만, 저와같이

chaeso-coding.tistory.com


[엔트로피 Entropy]

  • 확률의 불확실성 정도 측정.
  • 하나의 분포를 대상으로 함.

Entropy(P)=P(x)logP(x)=E(logP(x))

 

 

[크로스 엔트로피 Cross Entropy]

  • 두 분포 P(x),Q(x)를 대상으로 엔트로피를 측정해 두 분포 간 차이를 계산 보통 P(x)를 실제 모형의 분포, Q(x)를 예측 모형의 분포라고 함.

 

CrossEntropy(P,Q)=P(x)logQ(x)=Ep(logQ(x))

 

 

[Kullback-Leiber Divergence, KLD]

  • 상대적 엔트로피 relative entropy라고도 함 

DKL(P||Q)=P(x)logP(x)Q(x)

                 =P(x)logQ(x)+P(x)logP(x)

=Ep(logP(x)Q(x))

 

 

[Negative Log Likelihood, NLL]

 

NegativeLogLikelihood=logf(xi|θ)

 

  • 최대 가능도 추정량을 구하기 위한 로그 가능도 함수

ˆθMLE=argmaxθi=1nlogf(xi|θ) 

 

ˆθMLE=argmaxθ1ni=1nlogf(xi|θ)

=argmaxθE[logf(xi|θ)] 

 

 

* 손실함수 : 실제 값 - 추정 값

  • 실제 모형을 ftrue(xi|θ)라고 하고, 각 데이터 포인터별 손실은 아래와 같음

 

손실 = 실제 - 추정

=logftrue(xi|θ)logf(xi|θ)

 

 

* 손실함수 바탕의 비용함수 cost function

 

비용 =E[logftrue(xi|θ)logf(xi|θ)]

=logftrue(xi|θ)E[logf(xi|θ)]

=E[logf(xi|θ)]

 

  • E[logf(xi|θ)] 이 부분은 cross entropy 에 해당함.

 

* 로그 가능도 함수를 최대화하는 것은 cross entropy를 최소화 하는 것

 

argmaxE[logf(xi|θ)]=argminθ[E[logf(x|θ)]]

 

  • 따라서, 로그 가능도 함수를 최대화 하는 파라미터를 찾는 문제는 cross entropy를 최소화하는 파라미터를 찾는 문제와 동일함.
  • 또한, NLL을 손실함수로 사용가능하다는 것을 보여줌.
728x90