위키득계정 ↗
과학

젠슨섀넌 발산

젠슨섀넌 발산과학
영문명
Jensen-Shannon divergence
비교 기준
두 확률분포의 평균
대칭성
입력을 교환해도 같은 값
젠슨섀넌 거리
발산의 제곱근
젠슨섀넌 발산은 두 확률분포를 그 평균 분포와 각각 비교한 뒤 평균을 내는 비유사도다. 두 입력을 바꾸어도 값이 같으며, 이 발산의 제곱근은 젠슨섀넌 거리라고 부른다.

중간 분포를 만드는 계산

두 분포를 P와 Q라고 할 때 같은 가중치의 평균 M=(P+Q)/2를 만든다. P에서 M으로의 쿨백라이블러 발산과 Q에서 M으로의 발산을 구한 뒤 둘을 더해 반으로 나눈다. 한 분포에서 다른 분포로 바로 비교하는 것과 기준이 다르다.

완전히 다른 두 결과의 예

P=(1, 0), Q=(0, 1)이면 M은 (1/2, 1/2)다. 밑이 2인 로그를 쓰면 두 방향의 발산은 각각 1이므로 젠슨섀넌 발산도 1이다. P와 Q가 같다면 평균 분포도 같아 값이 0이 된다.

로그의 밑과 값의 크기

로그의 밑을 바꾸면 계산 결과의 배율도 달라진다. 같은 가중치의 두 분포에 밑 2를 쓰는 경우 발산은 0과 1 사이에 있다. 다른 밑의 결과를 같은 문턱값과 비교하려면 단위를 맞춰야 하며, 사용한 로그의 밑을 함께 기록하는 것이 좋다.

발산을 반환할까 거리를 반환할까

젠슨섀넌 거리에는 발산 뒤에 제곱근을 취하는 단계가 더 있다. SciPy의 jensenshannon 함수는 이 거리를 반환한다. 함수값을 그대로 발산이라고 부르면 제곱근을 혼동하게 되므로, 발산이 필요하면 함수가 반환한 거리의 제곱을 사용해야 한다.

관련 문서

확률분포 / 엔트로피 / 로그 / 코사인 유사도 / 자카드 유사도 / 거리 (수학)