공간에 있는 두 점을 매칭을 하기 위해서는 이들이 얼마나 떨어져 있는지 측정하는 거리척도를 마련해야 합니다.

오늘은 이런 거리척도로 사용하는 유클리디안 거리와 마할라노비스 거리에 대해서 알아봅시다.

 

예시를 들면서 시작해 봅시다.

그림에서 a와 b중에 어느 것이 점μ와 더 가까울까요?

일반적인 거리로만 봤을때 점a점μ와 더 가깝다고 할 수 있을 것입니다.

하지만 이번에 알게 될 마할라노비스 거리점b점μ에 더 가깝다고 말합니다.

 

유클리디안 거리

유클리디안 거리는 앞서 말했던 일반적인 거리, 그리고 가장 널리 사용하는 거리척도입니다. 식은 다음과 같습니다.

유클리디안 거리(Euclidean distance)

 

마할라노비스 거리

자 그럼 마할라노비스 거리는 대체 무엇이길래 앞선 예시에서 점b가 점μ에 더 가깝다고 주장했을까요?

마할라노비스 거리는 데이터 분포로부터 점 x의 거리를 측정합니다.

 

데이터 분포로부터? 이것을 이해하기 위해 다시 예제로 가봅시다.

다음은 앞서 예시를 들었던 다변량 데이터의 산점도 입니다. 여기서 기존에 있던 축을 없애 데이터만 봅시다.

 

그 후에 데이터를 사용하여 새롭게 축을 만들어 줍니다.

중심점은 데이터들의 평균으로, 데이터의 분산이 가장 큰 방향으로 첫번째 좌표축을 그리고 첫번째 축에 수직으로 두번째 축을 만들어 줍니다.

 

이제 각 축에 규모를 설정해 봅시다. 축을 따라 단위를 설정하는 데에는 표준편차를 사용하게 됩니다.

점의 약68%는 한 단위 내에 있어야 하고, 약95%는 두 단위 내에 있어야 합니다.

해당 단위를 예제에 그려넣어 보면, 그림과 같은 결과가 나오게 됩니다. 이를 우리가 알아보기 쉽게 축을 정렬해 그려보면 다음 그림과 같습니다.

 

다시 맨 처음 예제로 돌아가 봅시다.

처음에 있던 이 예제를 새로운 좌표축에 다시 찍어보면, a는 2.x 정도의 거리를, b는 1.x정도의 거리임을 확인할 수 있습니다.

따라서 마할라노비스 거리는 앞서 예제에서 점b가 점μ에 가깝다고 주장합니다.

 


직관은 이정도로 하고 이제 수식적으로 마할라노비스 거리를 구하는 방법을 살펴봅시다.

점 a와 N(μ,Σ)사이의 마할라노비스 거리

N(μ,Σ)는가우시안분포이고, 여기서 μ는 평균벡터, Σ는 공분산 행렬입니다.

 

마할라노비스 거리를 직접 계산해 봅시다!

더보기

다음은 네 개의 검은점{(2,1),(1,3),(2,5),(3,3)}이 확률 분포를 이루는 간단한 상황입니다.

먼저 이 분포를 무시하고 유클리디안 거리를 계산하게 되면, 눈금의 개수만큼

μ에서 점b까지의 거리는 d(μ,b)=2 , μ에서 점c까지의 거리는 d(μ,c)=3 입니다.

 

이제 확률 분포를 고려한 거리, 마할라노비스 거리를 계산해 봅시다.

이 분포의 평균은 μ=(2,3)이고, 공분산행렬은 Σ=[[0.5,0],[0,2]]입니다.

공분산 행렬의 역행렬은 [[2,0],[0,0.5]]가 되어 이제 위에서 보았던 다음식에 적용할 수 있게 됩니다.

 

이제 위의 식을 사용하여 실제 계산을 해봅시다.

점b=(4,3)와 가우시안 분포 사이의 마할라노비스 거리는

 

점c=(2,6)와 가우시안 분포 사이의 마할라노비스 거리는

 

만약 분포가 아닌 두점 사이의 마할라노비스 거리를 구하고 싶다면, 평균μ대신 거리비교 대상으로 바꾸어주기만 하면 됩니다. 수식은 다음과 같습니다.

두 점 a와 b 사이의 마할라노비스 거리

 

화이트닝 변환

이제 화이트닝변환에 대해서 이야기 해봅시다.

갑자기 뜬금없이 왜 화이트닝 변환이 나왔나 한다면, 공분산행렬Σ가 단위행렬 I인 특수한 경우에는 유클리디안 거리와 마할라노비스 거리가 같기 때문입니다.

(공분산행렬의 역행렬이 단위행렬이 되어 수식에서 생략이 가능하기 때문)

화이트닝 변환의 직관

이렇게 화이트닝 변환을 하게 되면 유클리디안 거리로 거리를 측정할 수 있게 됩니다.


화이트닝 변환의 수식은 다음과 같습니다.

여기서 Φ는 공분산 행렬에서 구한 고유벡터를 담고 있고, Λ는 공분산 행렬에서 구한 고유값을 담고 있습니다.

 

화이트닝 변환을 직접 계산해 봅시다!

더보기

앞선 예시에서 나왔던 공분산 행렬을 다시 가지고 와봅시다. 이것으로 Φ와 Λ를 구해보면 위와 같습니다.

 

이제 구한 Φ와 Λ로 화이트닝 변환 수식에맞게 계산을 해보면 다음과 같은 행렬을 구할 수 있습니다.

 

이를 가지고 앞서 예제에서 나온 4개의 점{(2,1), (1,3), (2,5), (3,3)}을 화이트닝 변환을 해봅시다!

변환된 4개의 점의 좌표는 다음과 같습니다. {(2.8284, 0.7071), (1.4142, 2.1213), (2.8284, 3.5355), (4.2426, 2.1213)}

이 4개의 점으로 새롭게 공분산 행렬을 구해보면, 단위행렬 I가 되어 화이트닝 변환이 적용되었음을 확인할 수 있습니다.

 

Reference

더보기

화이트닝 변환

마할라노비스 거리

공분산 계산

오일석(2014), 컴퓨터 비전 Computer Vision, 한빛아카데미

 

+ Recent posts