네이버 부스트캠프 AI tech 3기

1. 벡터와 행렬

zooyeonii 2022. 1. 23. 18:03

벡터

벡터의 같은 자리 원소 간의 곱 : Elementwise product, Hadamard product 라고 한다.

벡터는 공간에서 한 점을 나타내며, 원점에서 상대적 위치를 표현한 것이다.

벡터의 노름(norm)은 원점으로부터의 거리를 나타내며, 대표적으로 다음과 같은 두가지가 있다. 

L1 norm : $||x||_1 = \Sigma|x_i|$

L2 norm (유클리드 거리) : $||x||_2 = \sqrt{\Sigma|x_i|^2}$

노름의 종류에 따라 기하학적 성질이 달라진다. ‘거리’의 성질이 다르기 때문이다. 
*기계학습의 목적에 따라 다르게 사용한다는 점

L1 norm : 예) Robust 학습, Lasso 회귀 / L2 norm : 예) Laplace 근사, Ridge 회귀

 

두 벡터 사이의 각도 구하기 : 제2 코사인 법칙에 의해 벡터 사이의 각도를 계산함.
$cos\theta =$ ${<x,y>} \over {||x||_2||y||_2}$

*<x,y>는 inner product (내적)을 의미한다. (np.inner)

$<x,y> = \Sigma x_iy_i = ||x||_2||y||_2 cos\theta$ 

내적의 해석

내적은 정사영(orthogonal projection)된 벡터의 길이와 관련이 있다.

두 벡터의 유사도 (얼마나 비슷한 방향인지)를 나타낼 수 있다.

 

행렬

역행렬(inverse matrix)은 행렬식(determinant)이 0이 아닌 경우, 행과 열의 개수가 같은 경우 계산 가능함.
* 역행렬 구하는 코드 : np.linalg.inv(x)

역행렬을 계산할 수 없다면?

유사역행렬(pseudo-inverse), 무어-펜로즈(Moore-Penrose) 역행렬 $A^+$

* 별 내용은 아니다. 행, 열 개수가 안맞을 때 더 큰 행 또는 열에 맞춰 정사각 행렬을 만든 후($AA^T$ 또는 $A^TA$) 역행렬을 구해주고 다시 $A^T$를 곱한다.

* 유사 역행렬을 구하는 코드 : np.linalg.pinv(x)

역행렬 구하는 코드

유사 역행렬의 응용 

데이터를 선형모델로 해석하는 선형회귀식을 찾을 수 있다.

선형회귀의 목적 : 데이터를 제일 잘 대표하는 선형회귀식을 찾는 것

$X\beta = \hat y \approx y$
$\beta = X^+y$ 

L2-norm 을 최소화해서 ($min_\beta ||y-\hat y||_2$) --> 정답 ($y$) 에 근접한 예측치 $(\hat y)$ 를 찾을 수 있다.

* sklearn의 LinearRegression과 같은 결과가 나온다.

'네이버 부스트캠프 AI tech 3기' 카테고리의 다른 글

5. CNN과 RNN  (0) 2022.01.25
4. 확률론, 베이즈  (0) 2022.01.25
3. 딥러닝 학습방법 이해하기  (0) 2022.01.24
2. 경사하강법 (Gradient Descent)  (0) 2022.01.23
회고(1주차)  (0) 2022.01.23