[AI Math] 벡터

ssu_hyun·2021년 11월 30일

벡터

  • 숫자를 원소로 가지는 리스트(list) 또는 배열(array)

  • 숫자의 개수 = 벡터의 차원

  • 공간에서의 한 점

  • 원점으로부터 상대적 위치 표현

  • 스칼라곱(벡터에 숫자를 곱해주는 것)은 벡터의 길이에 영향을 미친다.

    • 이 때 곱해주는 숫자 a에 따라 벡터가 다르게 변한다.
      • a>1a>1 : 벡터 길이가 늘어남
      • a<1a<1 : 벡터 길이가 줄어듬
      • a<0a<0 : 벡터가 반대방향이 됨

  • 벡터끼리 같은 모양을 가질 경우 아래의 연산이 가능하다.

    • 덧셈, 뺄셈 계산
    • 성분곱(Hadamard product)

      numpy



벡터의 덧셈

  • 벡터 = 공간에서 한 점 = 원점으로부터 상대적 위치 표현
  • 두 벡터의 덧셈은 다른 벡터로부터 상대적 위치이동을 표현한다.



벡터의 뺄셈

  • 뺄셈은 덧셈의 방향을 뒤집은 것



벡터의 노름(norm)

원점에서부터의 거리

  • 이는 임의의 차원 dd 에 대해 성립한다

L1L_1-노름

모든 변화량의 절댓값의 합


L2L_2-노름

피타고라스 정리를 이용해 계산한 유클리드 거리


numpy

  • L2L_2-노름은 np.linalg.norm을 이용해도 구현이 가능하다.

두 노름의 차이점

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

거리 구하기

  • L1L_1, L2L_2-노름을 이용해 두 벡터 사이의 거리를 계산할 수 있는데
  • 이 때 벡터의 뺄셈을 이용한다.
  • 뺄셈을 거꾸로 해도 거리는 같다.

각도 구하기

numpy

  • 내적 : np.inner

내적의 해석

∴ 내적 = 두 벡터의 유사도를 측정하는 것






review

  • 벡터(vector)
    • 열 벡터
    • 행 벡터
    • 벡터의 차원
    • 스칼라 곱
    • 연산 : 덧셈, 뺄셈, 성분곱
    • 노름(norm)
      • 임의의 차원 dd
      • L1L_1-노름 : 절댓값의 합
      • L2L_2-노름 : 제곱의 합 (유클리드)
      • 노름에 따라 기하학적 성질 다름
      • 두 벡터 사이의 거리 : L1L_1, L2L_2
      • 두 벡터 사이의 각도 : L2L_2, 제 2 코사인 법칙
    • 내적(inner product)
      • 정사영(orthogonal projection)된 벡터의 길이 (그림자)
      • 두 벡터의 유사도(similarity) 측정

0개의 댓글