본문 바로가기

부스트캠프 AI Tech/Math

Vector

Vector

  • N차원 공간에서의 한 점
  • 숫자를 원소로 가지는 list로 표현 가능
  • 벡터에 스칼라곱을 하면 길이만 변화
    • 음수를 곱하면 반대 방향
  • 서로 같은 차원의 벡터만 덧셈, 뺄셈, 곱셈 가능
  • Hadamard product (element-wise product) - 성분곱

Norm

  • N차원에서 원점에서 하나의 벡터까지의 거리

L1 Norm

  • 각 성분의 절댓값을 모두 더함

def L1_norm(x):
    x_norm = np.abs(x)
    x_norm = np.sum(x_norm)
    return x_norm

L2 Norm

  • 유클리드 거리를 구함 (피타고라스의 정리)

def L2_norm(x): # np.linalg.norm으로 구현 가능
    x_norm = x*x
    x_norm = np.sum(x_norm)
    x_norm = np.sqrt(x_norm)
    return x_norm

두 Vector의 거리

  • 벡터의 뺄셈
  • y - x = x - y

두 Vector의 각도

  • L2 Norm에서만 가능
  • 제2 코사인 법칙 사용
    제2 코사인 법칙
  • 내적(inner product) 연산

 

분자를 2*<x, y>으로 치환 가능

def angle(x, y): # 두 벡터 x,y
    v = np.inner(x,y) / (L2_norm(x) * L2_norm(y))
    theta = np.arccos(v)
    return theta

Inner Product (내적)

  • 두 vector의 유사도를 측정할 때 사용
  • 정사영(orthogonal projection)된 벡터의 길이를 조정한 값

Proj(x) = 정사영된 벡터 X 

 

Proj(x)에 y의 norm을 곱함
inner_prodcut

Radian

'부스트캠프 AI Tech > Math' 카테고리의 다른 글

Statistics  (0) 2022.01.19
Probability  (0) 2022.01.19
Neural Network  (0) 2022.01.19
Gradient Descent  (0) 2022.01.18
Matrix  (0) 2022.01.17