반응형
Kullback–Leibler divergence
- 두 확률분포의 차이를 계산하는 데에 사용하는 함수
- 두 확률변수에 대한 확률분포 가 있을 때, 두 분포의 KL divergence는 다음과 같이 정의
<식 1>
- KL divergence는 어떠한 확률분포 가 있을 때, 그 분포를 근사적으로 표현하는 확률분포 를 대신 사용할 경우 엔트로피 변화를 의미
즉, 의 분포를 사용하고 싶은데 모를 때, 분포로 추정하기 위해 사용
결국, ( 대신 를 사용할 때의 cross entropy)와 (원래의 분포가 가지는 entropy)의 차이는 다음과 같으며, 이는 <식 1>과 동일
- <식 2>
예를 들어, 다음 세 분포가 있을 때,
파란선은 평균 0, 분산 0.1인 정규분포,
주황선은 평균 0.05, 분산 0.1인 정규분포,
초록선은 평균 1, 분산 0.5인 정규분포이다.
그림으로 확인해봐도 파란선과 주황선이 파란선과 초록선보다 비슷한 분포임을 알 수 있다.
실제 위 식에 의한 KL divergence를 계산해 보았을 때,
파란선 분포와 주황선 분포의 값은 -1.0344597768494548,
파란선 분포와 초록선 분포의 값은 82.41610796643755로 계산되었다.
python code
def KL(p,q):
return(sum(p*np.log(p/q)))
반응형
'AI > 잡지식' 카테고리의 다른 글
AI(Artificial Intelligence) VS ML(Machine Learning) VS DL(Deep Learning) (1) | 2024.09.02 |
---|---|
[R] XIA(eXplainable AI) 패키지 중 DALEX로 변수 중요도 뽑기(classification) (2) | 2021.11.15 |
[R] XIA(eXplainable AI) 패키지 중 DALEX로 변수 중요도 뽑기 (0) | 2021.11.15 |
넬슨 법칙이란? What is the Nelson Rules? (0) | 2020.02.04 |
curse of dimensionality - 차원의 저주 (2) | 2018.09.20 |