ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Mahalanobis Distance(마할노비스 거리)
    ML&DL 이야기/ML 2024. 7. 3. 15:25

    Mahalonobis Distance는 맥락을 고려한, 분포를 고려한 거리를 의미한다. 

    우선 참고한 내용들에 따라 본 글에서도 행벡터를 기본적인 기본방향으로 하겠다. 이는 아래와 같이 데이터가 구성되기 때문이다. 보통 선형대수 등 수학에서는 column vector, 열벡터를 기본 방향으로 하고, 이에 따라 행과 벡터의 곱 등 많은 부분이 정의되기에 곱의 순서 등에 있어서 행벡터를 기본방향으로 한다는 것은 많은 부분이 변형된다는 것을 의미한다. 

    출처: 공돌이의 수학정리노트

    즉, Matrix D가 표본의 수가 n이고 Feature가 d라고 한다면, D를 n * d 차원의 행렬로 표현한다. 

     

    맥락은 표준편차다

    출처: 공돌이의 수학노트

    아래의 그림을 보자. 보면 주황색과 노란색 점끼리의 거리는 L2 norm 혹은 유클리디안 거리 관점에서는 원점으로부터 동일한 거리를 가진다. 하지만 주변 데이터들, 파란점을 고려한다면, 특정 점들의 분포를 본다면 이 둘의 거리는 우측 그림과 같이 차이가 생기게 된다. 

    이러한 관점, 맥락을 고려하는 관점에서 마할노비스 거리는 시작한다. 

     

    조금 더 수학적인, 엄밀한 관점으로 표현하면 확률분포와 확률과 관련이 있을 것이다.

    분포, 거리를 표준편차로 생각해보자. 

    아래 그림과 같이 데이터가 정규분포를 띈다고 해보자. 그렇다면 데이터는 각 표준편차에 따라 1시그마 범위에는 68.27%의 데이터가 2시그마 내에는 95%가 3시그마 내에는 99.7%가 존재한다고 할 수 있다. 

    이런 관점에서 마할노비스 분포를 설명하기 위한 예시그림을 보면, 각 표준편차 별로 등고선을 그릴 수 있을 것이다. 

    이 때 두 그림은 표준화처럼 우측의 그림을 좌측으로 맥락을 정규화 시킨것이다. 즉, 맥락을 고려해 벡터 공간을 변환한 것이다. 

     

    거리 측정과 선형변환

    그럼 위 그림에 적힌 것과 같이, 맥락을 고려해 이미 선형변환되었다면, 유클리디안 거리를 구하듯이 점간 거리를 측정하면맥락을 고려한 거리를 구할 수 있다. 

    선형변환은 어떻게 할 수 있는가? 행렬을 곱하여 할 수 있다. 그 행렬은 결과부터 말하자면 공분산 행렬의 역행렬을 이용한다. 

     

    공분산행렬

    위에서 정의한것과 같이 각각의 행은 표본들을 의미하고 열은 Feature를 의미하는 X라는 행렬이 있다고 하자. 표본의 개수가 n, Feature의 수가 d라면 n*d행렬일 것이다. 

    그럼으로 $X^TX$를 계산하면 d*d 행렬이고 이는 각 Feature간의 닮은정도, 상관을 파악하기 위한 행렬임을 알 수 있다(그래서 공분산 행렬이지만)

    출처: 공돌이의 수학노트

    그러면 행렬의 대각요소는 각 feature의 분산을 의미하고, i,j가 다른 부분들은 이 둘간의 상관성을 나타낸다(공분산 행렬이 되려면 n-1로 나누어야한다)

     

    이제 만일 X라는 행렬이 Z라는 원시 형태의 데이터를 선형변환 R을 거쳐 만들어낸 행렬이라고 보자. 이 때 Z는 모든 열이 iid 표준 정규분포에서 추출한 데이터셋이라고 하자(각 열은 표준정규분포에서 무작위로 추출된 값으로 구성되어있다, 즉, 각 열의 평균은 0 표준편차는 1이다)

     

    그렇다면 X = ZR이라고 할 수 있을 것이다(선형변환이 뒤에 붙은 이유는 벡터의 기본 방향을 행벡터로 보았기 때문이다)

     

    따라서 $X^TX$식을 아래와 같이 변형할 수 있다. 

     

     

    이때 Z는 iid 정규분포 샘플로 생성된 행렬이기 때문에 아래와 같은 특징을 지닌다. 

     

    이는 Z가 정규분포이고, 각각의 feature가 독립적이라고 가정하였을 때, feature가 다른 경우에 대해서는 0이고(독립임으로 공분산은 0), 대각성분은 분산 1이 n개 더해진것과 같다(각 feature의 분산은 1이고 그것이 표본의 수만큼 더해짐). 

     

    따라서 최종적으로 식 15는 Expectation에 근사한다면 16으로 변형된다. 

     

     

    즉, 선형변환 R과 데이터 X의 관계가 정의되며, n으로 나눈다면 다음과 같이 공분산행렬로 정의된다. 

    만일 n-1로 나눈다면 표본 공분산 행렬이라고 할 수 있다. 

    공분산 행렬의 각 원소는 아래 그림과 같이 각 feature의 분산을 나타내게 된다. 

    마할노비스 거리

    그러면 우리는 최종적으로 Z로 분포가 변형되었을 때의 유클리디안 거리를 구하면 마할로비스 거리를 구할 수 있다. 

    즉, 유클리디안 거리의 정의를 이용하면 아래 식과 같다. 

    결국 마할노비스 거리는 맥락을 고려한 유클리드 거리라고 정의할 수 있다. 

Designed by Tistory.