<NAVER boostcourse>
에서 수강한 강의를 바탕으로 정리한 내용입니다.scalar를 원소로 가지는 list 또는 array
공간 상에서의 한 점
벡터는 원점으로부터 상대적 위치를 표현함
벡터의 스칼라 곱은 원점으로부터의 거리가 변경되는 것임
: 원점에서부터의 거리를 가리킴, ∥·∥
로 표현함
# 원점으로부터의 거리 구하기
def l1Norm(x):
x_norm = np.abs(x)
x_norm = np.sum(x_norm)
return x_norm
def l2Norm(x):
x_norm = x*x
x_norm = np.sum(x_norm)
x_norm = np.sqrt(x_norm)
return x_norm
같은 좌표계라고 하더라도 어떤 Norm을 척도로 하느냐에 따라 기하학적인 성질이 달라짐
[Example]
원의 정의 : 원점으로부터 거리가 1인 점들의 집합
L1 norm과 L2 norm 상의 원의 형태가 차이를 보임
Norm를 이용해 두 벡터 사이의 거리/각도를 구할 수 있음
1. 두 벡터 사이의 거리
: 두 벡터 사이의 거리를 계산할 때 벡터의 뺄셈을 이용함
def length(x, y, norm):
if norm=='l1':
return l1_norm(x-y)
if norm=='l2'L
return l2_norm(x-y)
2. 두 벡터 사이의 각도
: 제 2코사인 법칙에 의해 두 벡터 사이의 각도를 계산할 수 있음
**L2 Norm 만 가능함
내적 (Dot product)
- 3개의 값으로 이루어진 a,b vector
- a와 b벡터의 내적
def angle(x, y):
v = np.inner(x, y) / l2_norm(x) * l2_norm(y)
theta = np.arccos(v)
return theta
∥x∥cosθ
가 됨∥y∥
만큼 조정한 값임