欲速不達

일을 급히 하고자 서두르면 도리어 이루지 못한다.

Fantastic AI, Fantastic World

DS | Data Science/ML | Machine Learning

[ML Statistics] KL Divergence

_껀이_ 2022. 10. 6. 14:06
728x90
반응형

KL Divergence는 쉽게 말해 '두 분포 사이의 거리'를 말한다. 

 

KL Divergence을 이해하기 전에 Cross Entropy (CE)를 먼저 간단하게 정리해보자.

 

 

1. Cross Entropy

1-1) Binary Cross Entropy

binary의 경우는 출력값이 0 또는 1의 두 가지로 있을 수 있다.

예를 들어, 어떤 데이터(키, 몸무게 등)에서 남자 또는 여자로 분류하는 출력을 얻기 위해서는 결과를 0과 1로 표현할 수 있게 된다.

 

target 값을 y, 예측값이 y^이라고 했을때

Binary Cross Entropy는 위와 같은 수식이 된다. 

이때, y와 y^은 경우의 수로 y = 0 또는 1, y^ = 0 또는 1이며, 조합의 수는 4가지 경우가 된다.

 

 

 

1-2) Cross Entropy

BCE는 출력값이 두 가지 경우일 때만을 가정한다.

BCE는 다음과 같이 쓸 수도 있다.

이떄 P(x)는 target에 대한 값이고, Q(x)는 target에 대한 모델의 예측값이 된다.

 

위의 수식을 일반화하여 여러가지 종류의 출력값을 갖는 경우를 수식화하면 아래와 같다.

CE는 Q라는 모델의 결과값에 대한 P라는 값을 기대했을 때의 '치우침'의 정도를 정보량으로 표현한 것이다. 즉, 기대하는 결과값과 모델의 예측값의 차이가 크면 CE의 값은 커진다. 머신러닝 모델에서는 데이터를 통해 실제 분포를 알 수 있기 때문에 그 분포와 모델의 예측값의 차이를 줄여나가는 방향으로 loss를 업데이트 할 수 있게 된다.

 

 

 

2. KL Divergence

Kullback-Leibler Divergence (KL Divergence)는 발산(Divergence)라는 말에 주목해야한다. 일반적으로 발산은 그래프나 벡터에서의 발산이 아니라 단순히 '차이'라고 보는 것을 기억해야 한다. 

 

여기서 말하는 발산, '차이'는 두 확률 분포 사이를 비교하는 것이다.

 

확률 분포를 비교할 때 CE를 사용하게 되며, 수식으로 표현하면 아래와 같다.

전개해보면 CE 수식과 매우 유사한 것을 볼 수 있다. 

여기서 summation과 확률 P(x)를 기댓값으로 치환할 수 있기 때문에 아래와 같이 생각해볼 수도 있다.

결과적으로 두 확률 분포가 완전히 같으면 KL Divergence의 값은 0이 되고, 달라질수록 값이 커지게 된다.

 

 

 

728x90
반응형