인공지능을 위한 선형대수학 기초 2

미누·2025년 10월 14일

벡터의 거리와 내적

벡터 간의 관계를 이해하는 것은 머신러닝, 정보 검색, 자연어 처리(NLP)
다양한 데이터 분석 및 인공지능 분야에서 매우 중요한 개념임.

벡터는 데이터를 수학적으로 표현하는 기본 단위이기 때문에, 그 거리와 방향을 이해하는 것은 모델의 성능과 해석력에 직결됨.


유클리드 거리 (Euclidean Distance)

두 점(벡터) 사이가 얼마나 멀리 떨어져 있는지를 측정하는 지표

  • 벡터 간의 실제 공간상 거리
  • “비슷한 정도”를 거리 개념으로 측정할 때 사용
  • 예: 고객 간 거리, 제품 간 거리, 이미지 간 유사도 등

내적 (Dot Product)

두 벡터가 얼마나 같은 방향을 향하고 있는지 측정

  • 벡터의 방향과 크기를 모두 고려
  • 값이 클수록 두 벡터는 비슷한 방향을 가짐
  • 음수면 반대 방향, 0이면 직교(서로 관련 없음)

코사인 유사도 (Cosine Similarity)

내적을 정규화(normalization) 하여, 벡터의 방향(각도) 만 비교할 수 있게 만든 지표

  • 내적은 벡터의 크기(길이)에도 영향을 받지만, 코사인 유사도는 이를 제거하고 오직 방향만 평가
  • 문서나 문장의 의미적 유사도 계산, 추천 시스템 등에서 자주 사용
  • 값의 범위는 -1 ~ 1
    • 1 → 완전히 같은 방향
    • 0 → 직교(무관함)
    • -1 → 완전히 반대 방향

개념 요약

개념의미활용 예시
유클리드 거리벡터 간 물리적 거리KNN, 클러스터링
내적방향의 일치 정도투영, 회전, PCA
코사인 유사도방향 유사성 (크기 무시)문서 유사도, 임베딩 비교

1. 유클리드 거리 (Euclidean Distance)

두 벡터
a=(a1,a2,,an)\vec{a} = (a_1, a_2, \ldots, a_n),
b=(b1,b2,,bn)\vec{b} = (b_1, b_2, \ldots, b_n) 사이의 유클리드 거리는 다음과 같다:

거리=(a1b1)2+(a2b2)2++(anbn)2\text{거리} = \sqrt{(a_1 - b_1)^2 + (a_2 - b_2)^2 + \cdots + (a_n - b_n)^2}

예시 (2차원)
a=(1,2)\vec{a} = (1, 2), b=(4,6)\vec{b} = (4, 6)

거리=(14)2+(26)2=9+16=5\text{거리} = \sqrt{(1-4)^2 + (2-6)^2} = \sqrt{9 + 16} = 5

예시 (3차원)
p=(1,2,3)\vec{p} = (1, 2, 3), q=(4,5,6)\vec{q} = (4, 5, 6)

거리=(14)2+(25)2+(36)2=275.196\text{거리} = \sqrt{(1-4)^2 + (2-5)^2 + (3-6)^2} = \sqrt{27} \approx 5.196

2. 내적 (Dot Product)

두 벡터의 내적은 같은 위치의 성분끼리 곱해서 모두 더한다:

ab=a1b1+a2b2++anbn\vec{a} \cdot \vec{b} = a_1b_1 + a_2b_2 + \cdots + a_nb_n

예시 (2차원)
a=(3,4)\vec{a} = (3, 4), b=(2,1)\vec{b} = (2, 1)

ab=3×2+4×1=10\vec{a} \cdot \vec{b} = 3 \times 2 + 4 \times 1 = 10

예시 (3차원)
u=(1,2,3)\vec{u} = (1, 2, 3), v=(4,5,6)\vec{v} = (4, 5, 6)

uv=1×4+2×5+3×6=32\vec{u} \cdot \vec{v} = 1 \times 4 + 2 \times 5 + 3 \times 6 = 32

3. 벡터의 크기 (Norm, Magnitude)

벡터의 크기는 각 성분의 제곱을 모두 더한 뒤 제곱근을 취한다:

a=a12+a22++an2|\vec{a}| = \sqrt{a_1^2 + a_2^2 + \cdots + a_n^2}

예시 (2차원)
a=(3,4)\vec{a} = (3, 4)

a=32+42=5|\vec{a}| = \sqrt{3^2 + 4^2} = 5

예시 (3차원)
u=(1,2,3)\vec{u} = (1, 2, 3)

u=12+22+32=143.742|\vec{u}| = \sqrt{1^2 + 2^2 + 3^2} = \sqrt{14} \approx 3.742

4. 코사인 유사도 (Cosine Similarity)

두 벡터의 코사인 유사도는 내적을 두 벡터의 크기의 곱으로 나눈 값이다:

cosθ=abab\cos \theta = \frac{\vec{a} \cdot \vec{b}}{|\vec{a}| \cdot |\vec{b}|}

예시 (2차원)
a=(3,4)\vec{a} = (3, 4), b=(2,1)\vec{b} = (2, 1)

  • 내적: 1010
  • a=5|\vec{a}| = 5
  • b=52.236|\vec{b}| = \sqrt{5} \approx 2.236
cosθ=105×2.236=1011.180.894\cos \theta = \frac{10}{5 \times 2.236} = \frac{10}{11.18} \approx 0.894

예시 (3차원)
u=(1,2,3)\vec{u} = (1, 2, 3), v=(4,5,6)\vec{v} = (4, 5, 6)

  • 내적: 3232
  • u3.742|\vec{u}| \approx 3.742
  • v=778.775|\vec{v}| = \sqrt{77} \approx 8.775
cosθ=323.742×8.775=3232.830.975\cos \theta = \frac{32}{3.742 \times 8.775} = \frac{32}{32.83} \approx 0.975

공식 요약

  • 유클리드 거리: 각 성분의 차의 제곱을 더해 루트
  • 내적: 같은 위치의 성분끼리 곱해서 모두 더함
  • 벡터의 크기: 각 성분의 제곱을 더해 루트
  • 코사인 유사도: 내적을 두 벡터의 크기 곱으로 나눈 값
profile
AI 엔지니어 노트

0개의 댓글