Search
Duplicate

벡터 (Vector)

태그
기초수학

벡터 (Vector)

mai_01.pdf
4668.5KB
벡터는 숫자를 원소로 가지는 리스트(list) 또는 배열(array) 이다
벡터는 공간에서 한 점을 나나탠다
벡터는 원점으로부터 상대적 위치를 표현한다
벡터끼리 같은 모양을 가지면 성분곱(Hadamard product) 을 계산할 수 있다
벡터의 덧셈
두 벡터의 덧셈은 다른 벡터로부터 상대적 위치이동을 표현한다
벡터의 뺄셈

벡터의 노름(norm)

원점에서부터의 거리
L1 - 노름은 각 성분의 변화량의 절대값을 모두 더한다
L2 - 노름은 피타코라스 정리를 이용해 유클리드 거리를 계산한다
def l1_norm(x): x_norm = np.abs(x) x_norm = np.sum(x_norm) return x_norm def l2_norm(x): x_norm = x * x x_norm = np,sum(x_norm) x_norm = np.sqrt(x_norm) return x_norm
Python
복사

왜 다른 노름을 소개하나?

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

두 벡터 사이의 거리 구하기

L1, L2 노름을 이용해 두 벡터 사이의 거리를 계산할 수 있다
두 벡터 사이의 거리를 계산할 때는 벡터의 뺄셈을 이용한다
뺄셈을 거꾸로 해도 거리는 같다
각도로 두 벡터 사이의 거리를 이용하여 계산?
제 2 코사인 법칙에 의해 두 벡터 사이의 각도를 계산할 수 있다 ( L2 노름만 가능)

내적 (inner product)

분자를 쉽게 계산하는 방법
def angle(x, y): v = np.inner(x, y) / (l2_norm(x) * l2_norm(y)) # np.inner을 이용해서 계산 theta = np.arccos(v) return theta
Python
복사

내적은 어떻게 해석?

내적은 정사영(orthogonal projection) 된 벡터의 길이와 관련 있다
→ Proj(x) 는 벡터 y로 정사영된 벡터 x의 그림자를 의미한다