Intro
인공지능이 주어진 문제를 해결하기 위해서는 Feature(특성)을 적절하게 숫자로 변환해주어야 합니다.
특성을 성공적으로 숫자로 변환하는데 성공했다고 가정한다면, 특성은 벡터의 형태로 표현할 수 있습니다.
서로 다른 두 특성 벡터 사이의 관계를 분석하기 위해선 여러 기준이 있습니다.
이번 포스팅에선 그 중에서 많이 활용되는 Cosine 유사도와 Euclidean 거리에 대해서 알아보겠습니다.
Cosine 유사도
코사인 유사도는 두 벡터의 내적을 벡터의 크기로 정규화하여 구하기 때문에, 두 벡터 사이 각도에 초점이 맞춰져있습니다.
따라서 각 Feature의 값 편차가 클 경우 효과적으로 사용할 수 있는 지표입니다.
Euclidean(유클리드) 거리
유클리드 거리는 두 벡터 사이 차 성분을 제곱한 값에 루트를 씌워서 얻을 수 있습니다.
따라서 차원 마다의 영향력을 그대로 반영한 상태에서 벡터 사이의 관계를 확인할 수 있다는 장점이 있습니다.
핵심은 코사인 유사도는 두 벡터 사이의 각도를, 유클리드 거리는 두 벡터 사이의 거리를 반영한다는 점입니다.
코사인 유사도와 유클리드 거리의 차이는 다음 그림을 통해서 직관적으로 확인할 수 있습니다.
- 점 D 및 E는 A 및 B와 같은 코사인 유사도를 갖지만 유클리드 거리가 크게 다릅니다 .
- 반대로 점 A와 F는 A와 B와 코사인 유사도가 크게 다르지만 유클리드 거리는 동일합니다 .
Cosine 유사도 - 유클리드 거리 사이 관계
코사인 유사도와 유클리드 거리는 연관이 거의 없어 보입니다.
하지만 수식적으로 정리하면, 둘 사이 관계를 다음과 같이 표현할 수 있습니다.
유클리드 거리의 제곱을 정리하면 다음과 같게 되고
위의 식은 다음의 식과 동일함을 확인할 수 있습니다.
참고
데이터 과학자와 데이터 엔지니어를 위한 인터뷰 문답집
위키백과