수학 개념 지도
기하(Geometry)

유클리드 거리(Euclidean distance)

두 점을 잇는 곧은 선분의 길이. 좌표 차이의 제곱을 모두 더해 제곱근을 씌운 값으로, 피타고라스 정리⁠(Pythagorean theorem)⁠가 몇 차원으로든 그대로 늘어난 것이다.

d(x,y)=(x1−y1)2+(x2−y2)2+⋯+(xn−yn)2d(\mathbf x, \mathbf y) = \sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2 + \cdots + (x_n - y_n)^2}
먼저 보면 좋은 개념피타고라스 정리벡터

종이 위의 두 점이 얼마나 떨어져 있는지는 자로 재면 됩니다. 그런데 두 점의 좌표만 알 때는 거리를 어떻게 계산할까요? 아래 왼쪽 그림의 처음 위치에서 P는 (−2, −1), Q는 (1.8, 1.2)에 있습니다. 가로로는 1.8 − (−2) = 3.8, 세로로는 1.2 − (−1) = 2.2만큼 떨어져 있습니다. 이 두 길이를 두 변으로 하는 직각삼각형⁠(right triangle)⁠을 그리면, P와 Q를 잇는 선분은 그 빗변입니다. 그래서 피타고라스 정리에 따라 거리는 3.82+2.22=14.44+4.84=19.28≈4.391\sqrt{3.8^2 + 2.2^2} = \sqrt{14.44 + 4.84} = \sqrt{19.28} \approx 4.391입니다.

일반적으로 가로 차이를 Δx\Delta x('델타 엑스', x 좌표의 차이), 세로 차이를 Δy\Delta y라 쓰면 거리 공식은 d=Δx2+Δy2d = \sqrt{\Delta x^2 + \Delta y^2}입니다. 이것이 유클리드 거리, 우리가 '거리'라고 할 때 보통 뜻하는 곧은 거리입니다.

아래 왼쪽 그림에서는 두 점을 끌어 옮기거나 좌표축을 돌려 볼 수 있습니다. 오른쪽 상자 그림⁠(box plot)⁠은 같은 계산을 3차원으로 넓힌 것으로, 뒤에서 다룹니다. 먼저 왼쪽입니다. 좌표축은 사람이 정한 것이니 돌려도 됩니다. 축을 θ=\theta = 만큼 돌려 보세요. 축 돌리기 새 축으로 잰 좌표 차이는 Δx′=\Delta x' = , Δy′=\Delta y' = 바뀌지만, 유클리드 거리 그대로입니다. 반면 같은 좌표 차이로 계산한 맨해튼 거리(가로 차이와 세로 차이를 그냥 더한 값) 체비쇼프 거리(둘 가운데 큰 값) 축을 돌리면 달라집니다.

축을 돌리는 동안 초록 변과 주황 변의 길이는 바뀌지만, 청록 빗변⁠(hypotenuse)⁠은 길이가 그대로였을 것입니다. 축을 돌려도 선분 PQ 자체는 움직이지 않고, 유클리드 거리는 그 선분의 길이일 뿐이기 때문입니다. 이것이 유클리드 거리가 특별한 이유입니다.

식으로도 확인할 수 있습니다. 점 P, Q의 좌표를 벡터⁠(vector)⁠ x\mathbf x, y\mathbf y로 쓰면 유클리드 거리는 내적(두 벡터의 같은 칸끼리 곱해 모두 더한 값)으로 쓸 수 있습니다. d(x,y)2=(x−y)⋅(x−y)d(\mathbf x, \mathbf y)^2 = (\mathbf x - \mathbf y)\cdot(\mathbf x - \mathbf y). 앞의 예라면 차이 벡터가 (3.8, 2.2)이니 3.8 × 3.8 + 2.2 × 2.2 = 19.28입니다. 내적⁠(dot product)⁠은 두 벡터의 길이와 사잇각만으로 정해지는데, 두 벡터를 함께 돌려도 길이와 사잇각은 그대로입니다. 그러니 벡터를 돌리는 계산인 회전 행렬⁠(rotation matrix)⁠은 내적을 바꾸지 않고, 따라서 유클리드 거리도 바꾸지 않습니다.

맨해튼 거리⁠(Manhattan distance)⁠와 체비쇼프 거리⁠(Chebyshev distance)⁠는 왜 바뀔까요? 세 거리는 Lp 노름⁠(Lp norm)⁠이라는 한 가족에 속합니다. 좌표 차이를 (a, b)라 하면 L1 노름⁠(norm)⁠은 ∣a∣+∣b∣|a| + |b|(맨해튼), L2 노름은 a2+b2\sqrt{a^2 + b^2}(유클리드), L∞ 노름은 ∣a∣|a|와 ∣b∣|b| 가운데 큰 값(체비쇼프 거리)입니다. 일반적으로 Lp 노름은 (∣a∣p+∣b∣p)1/p(|a|^p + |b|^p)^{1/p}입니다. 이제 (1, 0)을 45° 돌려 (1/2,1/2)≈(0.707,0.707)(1/\sqrt2, 1/\sqrt2) \approx (0.707, 0.707)로 만들어 봅시다. L2 노름은 0.5+0.5=1\sqrt{0.5 + 0.5} = 1로 그대로이지만, L1 노름은 0.707 + 0.707 ≈ 1.414(= 2\sqrt 2)로 커지고 L∞ 노름은 0.707로 작아집니다. 다른 p로 계산해도 돌리기 전의 값은 늘 1이고 돌린 뒤의 값은 21/p−1/22^{1/p - 1/2}이라서, p = 2일 때만 둘이 같습니다. 그래서 Lp 노름 가운데 좌표축을 어떻게 돌려 잡든 값이 같은 것은 p = 2뿐입니다(2차원 이상에서). 공간에 특별한 방향이 없다고 보는 물리학과 기하학이 이 거리를 쓰는 까닭입니다.

차원이 늘어도 방법은 같습니다. 오른쪽 상자(끌어서 돌려 볼 수 있습니다)에서 바닥의 대각선은 가로와 세로로 만든 빗변 , 여기에 높이 차 Δz=\Delta z = 를 더해 피타고라스 정리를 한 번 더 쓰면 공간 대각선 나옵니다. 처음 값이라면 19.28+1.52=21.53≈4.640\sqrt{19.28 + 1.5^2} = \sqrt{21.53} \approx 4.640입니다. 제곱을 하나씩 더할 뿐이니 좌표가 n개인 n차원 벡터에도 같은 식이 통합니다. 맨 위의 공식이 그것으로, 좌표마다 차이를 제곱해 모두 더한 뒤 제곱근을 씌웁니다. 직각이 아닌 삼각형으로 넓힌 것이 코사인 법칙⁠(law of cosines)⁠입니다.

제곱한 거리는 통계⁠(statistics)⁠에서도 자주 쓰입니다. 분산⁠(variance)⁠은 각 자료가 평균⁠(mean)⁠에서 떨어진 거리를 제곱해 평균한 것입니다. 예를 들어 1, 2, 3의 평균은 2이고 떨어진 거리는 1, 0, 1이니, 분산은 (1 + 0 + 1)/3 = 2/3입니다. 점들 사이를 지나는 직선을 찾는 최소제곱법⁠(method of least squares)⁠의 선형 회귀와, 점들을 몇 무리로 나누는 k-평균 군집⁠(k-means clustering)⁠도 제곱 거리의 합이 가장 작아지도록 답을 고릅니다.

종 모양의 정규분포⁠(normal distribution)⁠도 거리로 읽을 수 있습니다. 변수가 여럿인 표준 정규분포(변수마다 평균 0, 표준편차⁠(standard deviation)⁠ 1이고 서로 독립⁠(independence)⁠인 경우)에서, 어떤 점 근처에 값이 나올 가능성(밀도)은 중심에서 그 점까지의 유클리드 거리 r에만 달려 있습니다. 정확히는 e−r2/2e^{-r^2/2}(e ≈ 2.718)에 비례해, r이 커질수록 빠르게 줄어듭니다. 그래서 지도의 등고선처럼 밀도가 같은 점들을 이으면 중심을 둘러싼 원(3차원이면 구)이 됩니다.

흔히 거리를 제곱한 값도 거리처럼 쓸 수 있다고 생각하지만, 그렇지 않습니다. 거리라면 '다른 점을 거쳐 돌아가는 길이 곧장 가는 길보다 짧을 수 없다'는 규칙(삼각부등식⁠, triangle inequality⁠)을 지켜야 하는데, 제곱 거리는 이를 깹니다. 수직선 위의 0, 1, 2를 봅시다. 제곱 거리로 0에서 2까지는 2² = 4인데, 1을 거쳐 가면 1² + 1² = 2로 오히려 짧아집니다. 그래서 제곱 거리는 거리 함수⁠(metric)⁠가 아닙니다.

역사. 이름은 기원전 300년 무렵 알렉산드리아의 유클리드에서 왔습니다. 그의 『원론』에는 피타고라스 정리가 증명과 함께 실려 있지만, 『원론』의 기하학에는 좌표가 없었습니다. 길이는 수로 계산하지 않고 선분끼리 견주었습니다. 두 점의 좌표만으로 거리를 계산하는 이 공식은 17세기에 데카르트(1637년 『기하학』)와 페르마가 도형을 좌표와 식으로 다루는 길을 연 뒤에야 자연스럽게 나올 수 있었습니다.

이어지는 곳. 곧은 길이 늘 옳지는 않습니다.

  • 지구 위에서는 땅속을 뚫고 갈 수 없으니 표면의 대원(지구 중심을 지나는 평면이 지표면과 만나는 큰 원)을 따라 재야 합니다. 위도와 경도로 그 길이를 구하는 식이 하버사인 공식⁠(haversine formula)⁠입니다.
  • 길이 바둑판처럼 난 도시에서는 가로세로로만 움직일 수 있으니 맨해튼 거리가 현실적입니다.
  • 키(cm)와 몸무게(kg)처럼 단위가 다르고 서로 상관된 데이터에서는 좌표 차이를 그대로 제곱해 더하는 것이 공정하지 않습니다. 이때는 퍼짐과 상관을 반영한 마할라노비스 거리⁠(Mahalanobis distance)⁠가 맞습니다.
  • 좌표가 서로 독립으로 흩어진 점들이라면, 차원이 아주 높을 때 가장 가까운 점과 가장 먼 점의 거리 차이가 거리 자체에 비해 작아져 유클리드 거리마저 구별력을 잃습니다(차원의 저주⁠, curse of dimensionality⁠).
  • 모든 벡터를 길이 1로 맞추면 ∥q−d∥2=2−2cos⁡(q,d)\lVert q - d\rVert^2 = 2 - 2\cos(q, d)라서, 유클리드 거리로 가까운 순서와 코사인 유사도⁠(cosine similarity)⁠로 비슷한 순서가 같아집니다. 문서 임베딩⁠(embedding)⁠을 찾는 검색 증강 생성⁠(retrieval-augmented generation)⁠ 시스템이 흔히 벡터를 길이 1로 맞추어 저장하는 까닭입니다.

이 개념이 나오는 긴 글

거리와 유사도 까마귀와 택시 까마귀는 곧장 날고 택시는 블록을 돌아간다. '얼마나 먼가'에는 답이 하나가 아니고, 어떤 거리를 고르느냐가 통계와 기계 학습의 답을 바꾼다. 통신과 잡음 잡음 너머로 대서양 바닥의 케이블은 왜 신호를 뭉갰을까? 잡음이 있어도 오류 없이 보낼 수 있다는 섀넌의 정리와, 그 한계를 50년 동안 쫓은 부호들.

이 개념 위에 세워진 것

이 개념을 언급하는 페이지

이 페이지가 가리키는 개념