위키득계정 ↗
과학

바서슈타인 거리

바서슈타인 거리과학
영문명
Wasserstein distance
1차 거리의 비용
옮긴 확률질량 × 이동 거리
필요한 정보
확률질량과 그 위치 사이의 거리
1차원 1차 거리
누적분포함수 차이 절댓값의 적분
바서슈타인 거리는 한 확률분포의 질량을 옮겨 다른 분포로 만드는 최소 운송 비용을 바탕으로 한 거리다. 1차원 1차 거리에서는 이동한 질량에 이동 거리를 곱한 비용을 최소화한다.

한 점의 질량을 옮기는 예

전체 확률이 위치 0에 있는 분포와 위치 4에 있는 분포를 비교하자. 질량 1을 네 단위 옮겨야 하므로 1차 바서슈타인 거리는 4다. 위치 0에서 위치 1로 옮기는 경우에는 1이다. 겹치는 확률이 없더라도 위치가 얼마나 떨어져 있는지를 구분한다.

절반만 이동하는 경우

P가 위치 0에 절반, 위치 2에 절반을 두고 Q가 위치 0에 전부를 둔다고 하자. 이미 위치 0에 있는 절반은 움직일 필요가 없다. 나머지 절반을 두 단위 옮기면 비용은 1이며 이것이 최소다. 질량의 양과 이동 거리 모두가 계산에 들어간다.

누적분포함수로 보는 넓이

1차원에서는 두 누적분포함수 사이 차이의 절댓값을 실수 전체에서 적분해 같은 값을 얻을 수 있다. 위치에 따른 누적 질량의 부족과 초과를 합산하는 관점이다. 원래 확률값들의 차이를 단순히 더하는 것과 달리 가로축의 위치 정보가 중요하다.

숫자의 역할과 거리의 차수

SciPy의 wasserstein_distance 함수에서 입력 값은 질량의 위치 또는 표본값이고 별도 가중치가 각 위치의 질량을 나타낸다. 히스토그램의 높이를 위치처럼 넣으면 다른 문제를 계산하게 된다. 또한 바서슈타인 거리에는 차수에 따른 여러 정의가 있으므로 1차인지도 구분해야 한다.

관련 문서

확률분포 / 누적분포함수 / 적분 / 젠슨섀넌 발산 / 쿨백라이블러 발산 / 유클리드 거리