Vector

soominlee·2022년 8월 4일
0

📘 mathematics for AI

목록 보기
1/3

*해당 게시글은 <NAVER boostcourse> 에서 수강한 강의를 바탕으로 정리한 내용입니다.

Vector

  • scalar를 원소로 가지는 list 또는 array

  • 공간 상에서의 한 점

  • 벡터는 원점으로부터 상대적 위치를 표현함

  • 벡터의 스칼라 곱은 원점으로부터의 거리가 변경되는 것임

벡터 간 연산

  • 벡터끼리 같은 모양을 가지면 덧셈, 뺄셈, 성분곱(Hadamard product)를 계산할 수 있음
  • 덧셈,뺄셈 : 두 벡터 간 덧셈과 뺄셈 연산은 다른 벡터로부터의 상대적 위치 이동을 표현함

벡터의 Norm

: 원점에서부터의 거리를 가리킴, ∥·∥ 로 표현함

  • L1 Norm : 각 성분의 변화량의 절대값을 모두 더하는 것
  • L2 Norm : 유클리드 거리를 계산하는 것
🐍 Norm in python
# 원점으로부터의 거리 구하기
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의 종류에 따라 기하학적 성질이 달라짐
  • 같은 좌표계라고 하더라도 어떤 Norm을 척도로 하느냐에 따라 기하학적인 성질이 달라짐

    [Example]
    원의 정의 : 원점으로부터 거리가 1인 점들의 집합
    L1 norm과 L2 norm 상의 원의 형태가 차이를 보임

  • Norm를 이용해 두 벡터 사이의 거리/각도를 구할 수 있음

    1. 두 벡터 사이의 거리
    : 두 벡터 사이의 거리를 계산할 때 벡터의 뺄셈을 이용함

🐍 get length in python
  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벡터의 내적
🐍 get angle in python
def angle(x, y):
	v = np.inner(x, y) / l2_norm(x) * l2_norm(y)
    theta = np.arccos(v)
    return theta

벡터의 내적 (Product)

  • 내적은 정사영(orthogonal projection)된 벡터의 길이와 관련이 있음
    - Proj(x)의 길이는 코사인 법칙에 의해 ∥x∥cosθ 가 됨
    - 내적은 정사영의 길이를 벡터 y의 길이 ∥y∥ 만큼 조정한 값임
profile
Soominlee

0개의 댓글