[AI Math] 벡터가 뭐에요

벡터란?

  • 숫자를 원소로 가지는 리스트(list) 또는 배열(array)
  • 공간에서 한 점을 나타냄
  • 원점(0, 0)으로부터 상대적 위치를 표현

벡터의 연산

  • 숫자를 곱해주면 길이만 변함 (스칼라 곱 scala product)
  • 벡터끼리 같은 모양을 가지면 덧셈, 뺄셈, 성분곱(Hadamard product)이 가능
    • 성분곱 (Hadamard product)
    \[x = [x_1, x_2, x_3]\] \[y = [y_1, y_2, y_3]\] \[x \odot y = [x_1 y_1, x_2 y_2, x_3 y_3]\]
  • 두 벡터의 덧셈과 뺄셈은 다른 벡터로부터 상대적 위치이동을 표현

벡터의 노름(norm)

  • 원점에서부터의 거리
    • L1-norm: 변화량의 절대값을 모두 더함
    \[x = [x_1, x_2, ... , x_d]\] \[\lVert x \rVert_1 = \sum_{i=1}^{d} \left\vert x_i \right\vert\]
    • L2-norm: 유클리드 거리 (Euclidean distance)
    \[\lVert x \rVert_2 = \sqrt{\sum_{i=1}^{d} \left\vert x_i \right\vert^2}\]
    • 노름의 종류에 따라 기하학적 성질이 달라지고 그 성질에 따라 쓰이는 노름이 다름

두 벡터 사이의 거리

  • L1, L2-norm을 이용해 두 벡터 사이의 거리를 계산 가능
  • 두 벡터 사이의 거리 = 두 벡터의 뺄셈의 norm

    $\lVert x - y \rVert$ or $\lVert y - x \rVert \quad$ (둘 다 결과 같음)

두 벡터 사이의 각도

  • 제 2 코사인 법칙에 의해 각도 계산 가능
\[\cos \theta = \frac{\lVert x \rVert_2^2 + \lVert y \rVert_2^2 - \lVert x - y \rVert_2^2}{2\lVert x \rVert_2 \cdot \lVert y \rVert_2}\]
  • 내적(inner product)을 이용하여 분자를 쉽게 계산 가능
\[\cos \theta = \frac{2\left\langle x, y \right\rangle}{2\lVert x \rVert_2 \cdot \lVert y \rVert_2}\] \[\left\langle x, y \right\rangle = \sum_{i=1}^{d} x_i y_i\]

벡터의 내적(inner product)

  • 정사영(orthogonal projection)된 벡터의 길이와 관련
  • Proj(x)는 x에서 y를 향하여 직선을 내렸을 때 그 직선과 y 사이의 각도가 직각이 되게 하는 점까지의 벡터를 의미
    • Proj(x)의 길이는 코사인 법칙에 의해 $\lVert x \rVert \cos \theta$가 된다.
  • 내적은 정사영의 길이를 벡터 y의 길이 $\lVert y \rVert$만큼 조정한 값
  • 내적은 두 벡터의 유사도(similarity)를 측정하는데 사용 가능

Leave a comment