Intro


인공지능이 주어진 문제를 해결하기 위해서는 Feature(특성)을 적절하게 숫자로 변환해주어야 합니다.

특성을 성공적으로 숫자로 변환하는데 성공했다고 가정한다면, 특성은 벡터의 형태로 표현할 수 있습니다.

서로 다른 두 특성 벡터 사이의 관계를 분석하기 위해선 여러 기준이 있습니다.

이번 포스팅에선 그 중에서 많이 활용되는 Cosine 유사도Euclidean 거리에 대해서 알아보겠습니다.

 

Cosine 유사도



코사인 유사도는 두 벡터의 내적을 벡터의 크기로 정규화하여 구하기 때문에, 두 벡터 사이 각도에 초점이 맞춰져있습니다.

따라서 각 Feature의 값 편차가 클 경우 효과적으로 사용할 수 있는 지표입니다.

 

Euclidean(유클리드) 거리



유클리드 거리는 두 벡터 사이 차 성분을 제곱한 값에 루트를 씌워서 얻을 수 있습니다.

따라서 차원 마다의 영향력을 그대로 반영한 상태에서 벡터 사이의 관계를 확인할 수 있다는 장점이 있습니다.

핵심은 코사인 유사도는 두 벡터 사이의 각도를, 유클리드 거리는 두 벡터 사이의 거리를 반영한다는 점입니다.

코사인 유사도와 유클리드 거리의 차이는 다음 그림을 통해서 직관적으로 확인할 수 있습니다.

https://stackoverflow.com/questions/53173654/best-way-to-identify-dissimilarity-euclidean-distance-cosine-distance-or-simp

  • 점 D 및 E는 A 및 B와 같은 코사인 유사도를 갖지만 유클리드 거리가 크게 다릅니다 .
  • 반대로 점 A와 F는 A와 B와 코사인 유사도가 크게 다르지만 유클리드 거리는 동일합니다 .

 

Cosine 유사도 - 유클리드 거리 사이 관계


코사인 유사도와 유클리드 거리는 연관이 거의 없어 보입니다.

하지만 수식적으로 정리하면, 둘 사이 관계를 다음과 같이 표현할 수 있습니다.

 

유클리드 거리의 제곱을 정리하면 다음과 같게 되고

 

위의 식은 다음의 식과 동일함을 확인할 수 있습니다.


참고
데이터 과학자와 데이터 엔지니어를 위한 인터뷰 문답집
위키백과