[AI Math] 1. 벡터

[AI Math] 1. 벡터

벡터

1.1 벡터의 노름

  • 벡터의 노름(norm)은 원점에서부터의 거리를 말한다.
  • 다양한 형태의 노름(norm)이 존재한다.
  • 노름(norm)은 임의의 차원 \(d\)에 대해 성립한다.


1.1.1 \(L_1\) 노름

  • 각 성분의 변화량의 절대값을 모두 더한다.
  • 좌표축을 따라 움직이는 거리
\[||\mathbb{x}||_1 = \sum_{i=1}^d | x_i |\]


1.1.2 \(L_2\) 노름

  • 피타고라스 정리를 이용해 유클리드 거리를 계산한다.
  • \(L_2\) 노름은 np.linalg.norm 을 이용해도 구현 가능하다.
\[||\mathbb{x}||_2 = \sqrt{\sum_{i=1}^d {| x_i |}^2}\]


1.1.3 왜 다른 노름을 소개하나?

  • 노름의 종류에 따라 기하학적 성질이 달라진다.
  • 머신러닝에선 각 성질들이 필요할 때가 있으므로 둘 다 사용한다.

     


1.2 두 벡터 사이의 거리

  • \(L_1\), \(L_2\) 노름을 이용해 두 벡터 사이의 거리를 계산할 수 있다.
  • 두 벡터 사이의 거리를 계산할 때는 벡터의 뺄셈을 이용한다.
    • 벡터 \(\mathbb{x}\)와 벡터 \(\mathbb{y}\) 사이의 거리 : \(\|\|\mathbb{y}-\mathbb{x}\|\|=\|\|\mathbb{x}-\mathbb{y}\|\|\)


1.3 두 벡터 사이의 각도

  • 두 벡터 사이의 각도를 구하는 것은 \(L_2\) 노름에서만 가능하다. (\(L_1\) 노름에서는 각도를 계산할 수 없다.)
  • 제 2 코사인 법칙에 의해 두 벡터 사이의 각도를 계산할 수 있다.

  • 벡터 \(\mathbb{x}\)와 벡터 \(\mathbb{y}\) 사이의 각도
\[cos \theta = \frac{||\mathbb{x}||_2^2 + ||\mathbb{y}||_2^2 - ||\mathbb{x} - \mathbb{y}||_2^2}{2 ||\mathbb{x}||_2 ||\mathbb{y}||_2}\]
  • 위 공식의 분자를 쉽계 계산하는 방법이 내적이다.
\[cos \theta = \frac{2 <\mathbb{x}, \mathbb{y}>}{2 ||\mathbb{x}||_2 ||\mathbb{y}||_2} = \frac{<\mathbb{x}, \mathbb{y}>}{||\mathbb{x}||_2 ||\mathbb{y}||_2}\]
  • 내적(inner product) 연산
\[<\mathbb{x}, \mathbb{y}> = \sum_{i=1}^d x_i y_i\]
  • 내적은 np.inner 응 이용해서 계산한다.


1.4 내적을 어떻게 해석할까?

  • 내적은 정사영(orthogonal projection)된 벡터의 길이와 관련 있다.

     

  • \(Proj(\mathbb{x})\) : 벡터 \(\mathbb{y}\)로 정사영된 벡터 \(\mathbb{x}\)의 그림자를 의미

  • \(Proj(\mathbb{x})\) 의 길이는 코사인법칙에 의해 \(\|\|\mathbb{x}\|\| cos \theta\) 와 같다.

\[Proj(\mathbb{x}) = \|\|\mathbb{x}\|\| cos \theta\]

     

  • 내적은 정사영된 벡터의 길이를 벡터 \(\mathbb{y}\) 의 길이 \(\|\|\mathbb{y}\|\|\) 만큼 조정한 값이다.

     

  • 내적은 두 벡터의 유사도(similarity)를 측정하는 데 사용 가능하다.

© 2021. All rights reserved.