1. Vector

유승우·2022년 5월 2일
0

1. Vector

벡터


  • 숫자를 원소로 가지는 리스트 또는 배열
  • 공간에서 원점으로부터 한 점까지 상대적 위치를 표현
  • 벡터에 숫자를 곱해주면 길이만 변함 → 스칼라곱 연산
  • 벡터끼리 같은 모양을 가지는 경우에만 덧셈과 뺄셈이 가능하며, 성분곱을 계산할 수 있다.

벡터의 덧셈&뺄셈


  • 벡터의 덧셈과 뺄셈은 다른 벡터로부터의 상대적 위치 이동을 표현
  • y - x 는 y벡터에서 x벡터의 반대 방향으로 이동하는 것

노름(norm)


  • 벡터의 노름은 원점에서부터의 거리를 의미
  • 노름의 종류에 따라 거리의 개념이 달라지기 떄문에 기하학적 성질이 달라진다

L1 norm


  • 각 성분의 변화량의 절대값을 모두 더함
x1=i=1dxi||x||_1= \sum_{i=1}^{d}|x_i|
def l1_norm(x):
		x_norm = np.abs(x)
		x_norm = np.sum(x_norm)
		return x_norm

L2 norm


  • 유클리드 거리를 계산
x2=i=1dxi2||x||_2= \sqrt{\sum_{i=1}^{d}|x_i|^2}
def l2_norm(x):
		x_norm = x*x 
		x_norm = np.sum(x_norm)
		x_norm = np.sqrt(x_norm)
		return x_norm

  • 벡터 사이의 거리&각도
    • L1 , L2 norm을 이용해 두 벡터 사이의 거리를 계산할 수 있다.
    • 두 벡터 사이의 거리를 구할 수 있다면, 제 2코사인 법칙에 의해 l2노름과 내적을 이용해 차원에 구애받지 않고 각도를 계산할 수 있다.

💡 제 2 코사인 법칙
a2=b2+c22bcCosA\small a^2 = b^2 + c^2 -2bc CosA

b2=a2+c22acCosB\small b^2 = a^2 + c^2 -2ac CosB

c2=a2+b22abCosC\small c^2 = a^2 + b^2 -2ab CosC
  • 내적
    • 빛을 쐈을 때 그림자를 볼 수 있듯이 x벡터의 y벡터 상에서의 그림자를 정사영이라고 이해하면 편하다.
    • 정사영의 길이는 ||x||cos세타가 되며, 이를 벡터 y의 길이 ||y|| 만큼 조정한 값이 내적이다.
    • 파이썬에서는 np.inner를 이용해서 내적을 계산할 수 있으며, 두 벡터의 유사도를 측정하는데 사용 가능하다

0개의 댓글