ROKO

Linear algebra for ML 본문

Mathematics/Algebra

Linear algebra for ML

RO_KO 2023. 3. 26. 19:10
728x90

http://www.yes24.com/Product/Goods/97032765

 

선형대수와 통계학으로 배우는 머신러닝 with 파이썬 - YES24

머신러닝에 필요한 선형대수, 통계학, 최적화 이론부터파이썬, 사이킷런, 텐서플로를 활용한 실습까지『선형대수와 통계학으로 배우는 머신러닝 with 파이썬』은 머신러닝의 기본적인 사용 방

www.yes24.com

위 책을 기준으로 간략히 정리하였다.

Matrix (행렬)

행과 열로 이우러진 집합.

n차원으로 확장시 matrix가 아닌 tensor라고 부른다.

 

Diagonal matrix (대각행렬)

대각원소를 제외한 모든 element가 0인 행렬

만약 대각원소가 1이라면 단위 행렬 identity(I)라고 부른다.

 

Transposed matrix (전치 행렬)

\(A=(a_{ij}\), \(a_{ij}=a_{ji}\)인 행렬

 

행렬간의 연산, 행렬과 스칼라의 연산은 생략.

 

Determinant (행렬식)

행렬의 특성을 하나의 숫자로 표현하는 식. invertible을 확인하기 위한 척도로 쓰인다.

행렬식의 절대값은 해당 행렬을 함수라고 생각했을때, 단위 공간을 input으로 받아 얼만큼 변환시켰는지 나타낸다.

 

만약 det|A|=1이라면 단위공간의 부피와 변환된 부피가 같다는 것을 의미하고, 0이라면 변환된 부피는 0이라는것을 의미한다.

 

ex)

A는 행벡터를 가진 3차원 텐서라고 하자.

\(A=\begin{pmatrix} 1 &0 &0 \\ 0 &1 &0 \\ 0 &0 &0 \\ \end{pmatrix}\)

단위공간은 \(\begin{pmatrix} 1 &0 &0 \\ 0 &1 &0 \\ 0 &0 &1 \\ \end{pmatrix}\) 이 될 것이다.

det|A|를 구하면 0이 나오게 되는데, 이러한 의문이 생긴다. 

 

A를 거쳐 단위공간 차원이 감소하긴 했지만 감소한 차원에서 공간은 "0"이 아니다. 그러면 정의가 잘못된 것이 아닐까?

 

본인이 생각하기로는 determinant의 정의를 다시금 살펴보면 "단위공간을 얼마나 변환"이 중요하다. 각각의 공간이 아니라 input으로 들어가는 단위공간을 상대적으로 비교했을때 얼만큼 변화하냐는 것이다. 따라서 차원이 부피가 넓이로 줄어든다는건 0만큼 변환되었다고 생각할 수있다.

 

Inverse matrix (역행렬)

\(A^{-1}A=I=AA^{-1}\)을 만족하는 A가 있다면 A는 역행렬이 존재(invertible matrix)한다고 한다.

이를 계산으로 판단할 수 있는것이 위에서 언급한 행렬식 |A|이다. 행렬식이 0이 아니라면 역행렬이 존재하고 0이라면 존재하지 않는다.

 

역행렬이 존재한다는 명제와 동치인 다양한 명제가 있다.

 

A is nxn invertible matrix (가역행렬)

-> Ax=0 방정식이 자명해를 가진다

-> Ax=b 방정식이 유일해를 가진다

-> \(|A| \neq 0 \)

-> rank(A) = n

-> ker(A) = 0

-> A의 모든 행, 열 벡터들이 basis이다

-> A의 고유벡터가 basis이다

-> A의 고유값이 0이 아니다

etc

 

Inner product (내적)

\(u\cdot v=\bar{u}^Tv=||u|| \times ||v|| \times cos\theta\) in L2 euclidean space

벡터와 벡터간의 내적시 스칼라가 나오는 특징이 있다.

 

내적이 머신러닝에서 엄청난 영향을 주는데 그것은 바로 벡터간의 유사도를 구할 수 있다는 것이다. 각 데이터는 D차원의 벡터로 표현될 수 있다. 서로 다른 두 데이터가 얼마나 근사한지 판단하는 척도중 하나로 \(cos\theta=\frac{u \cdot v}{||u||||v||}\)를 통해 알아낼 수 있다.

1에 가까울수록 두 벡터는 유사하고 -1에 가까울수록 두 벡터는 다르다. cos유사도를 통해 선형 분류를 하게 된다면 분류기의 선형벡터와 \(cos\theta=0\)이 되는 직선이 decision boundary가 될 것이다. 왜인지는 그림을 보며 생각해보길 바란다.

2022.12.20 - [AI/Machine Learning] - What is SVMs?

 

What is SVMs?

Binary classification Targets : \(t \in \{ -1,+1 \} \) Linear model : \(z=w^{T}x+b, y=sign(z)\) Loss function : \(L_{0-1}=\mathbb{I} \{ y \neq t \} \) Hyperplane에 두 종류의 데이터가 표시되어있다. 이 두 종류의 데이터를 분류하기

ro-ko.tistory.com

 

또는 정사영(projection)의 개념으로 PCA에 활용되기도 한다. 정사영하고자 하는 벡터 v, v를 평면 U에 정사영한 벡터 u가 있을때 \(u=vcos\theta\)로 표현된다.

 

Linear transformation (선형 변환)

행렬 \(\Theta\)가 있을때 벡터 x,y 스칼라 a,b에 대해 \(\Theta (ax+by)=a\Theta x + b\Theta y\)를 만족하면 선형변환이라고 한다. 즉 input도메인의 벡터의 곱, 합차에 대해서 성질을 보존해준다고 생각할 수도 있다.

 

Rank

행렬 A를 gauss-jordan elimination 기법을 이용해 RREF(Row Reduced Echelon Form)으로 변형한다. 이때 0이 아닌 행의 개수를 A의 rank라고 한다. 물론 열벡터를 기준으로도 가능하다.

 

rank를 A의 dimension(차원)이라고도 부른다. 어떤 행렬이든 basis가 존재한다. basis란 linear independent하면서 행렬의 모든 벡터 형태를 span하는 벡터들의 집합을 의미한다. 그리고 basis의 벡터개수를 A의 차원이라고도 한다.

 

rank(A)=dim(A)=|basis of A|

 

이떄 Ax=0을 만족시키는 x들의 집합을 kernel of A라고 부르며 집합으로는 ker(A), null space로 표현한다. 임의의 벡터 x가 A를 거쳐 영벡터가 되기 때문이다.

 

심화이론으로는 rank-nullity theorem이 있다.

\(\Theta U \rightarrow V\)선형변환 함수가 있을때, dim(U) = rank(U)+Nullity(U)가 성립한다는 것이다.

rank(U) = dim(image(U)), Nullity = dim(ker(U))

 

Orthogonal matrix (직교행렬)

\(AA^T=A^TA=I\)를 만족하는 행렬 A

\(A^T=A^{-1}\)를 만족한다.

 

직교행렬 성질

  1. 직교행렬의 전치행렬은 직교행렬
  2. 직교행렬의 역행렬은 직교행렬
  3. 직교행랼끼리의 곱은 직교행렬
  4. 직교행렬의 행렬식은 1 or -1

4번 증명

\(det(I)=det(AA^T)\)

\(1=|A|^2\)

\(|A|=\pm 1\)

 

Eigenvalue, Eigenvector (고유값, 고유벡터)

vector = direction + magnitude, 여기서 고유값은 특성값(characteristics)이라고도 불리는데 방향은 변하지않고 크기만 변하는 특성을 의미한다. 

\(Ax=\lambda x\)

 

고유벡터 : 방향은 변하지 않고 크기만 변하는 벡터

고유값 : 고유벡터에 대해 변하는 정도의 정량적인 값

 

정리를 하다가 문득 든 생각.

무수히 많은 벡터들의 집합인 벡터공간에서 왜 고유벡터를 고려하는 걸까?

 

선형변환 이후에 변환된 공간에 대해서 방향은 바뀌지 않고 크기만 바뀐 벡터들이 있다면 그 벡터들로 이전의 공간을 기준으로 변환된 공간을 잘 설명할 수 있기 떄문이지 않을까? 라고 생각한다.

 

Singular value decomposition (특이값 분해)

행렬에도 닮음이 존재한다. 정사각행렬 A,B에 대해 \(P^{-1}AP=B\), P is invertible then A~B.

만약 P가 직교행렬이라면 A와 B는 직교 닮음(otrhogonally similar)이라고 한다.

 

\(P^{-1}AP=D\)를 만족한다면 A는 대각화(digonalization) 가능하다고 말한다. 이때 P가 직교 행렬이라면 직교 대각화(orthogonal diagonalization) 가능이라고 한다.

 

* 직교 대각화가 가능하기 위해서는 반드시 대칭행렬이어야 한다.

 

고유값 분해 (eigenvalue decomposition)

직교대각화의 한 종류로 det(A)가 0이 아닌 대각행렬 A에 대해서 \(A=PDPT\)로 분해 될 수 있다. 이때 P는 고유벡터, D는 고유값을 의미한다.

 

특이값 분해 (singular value decomposition)

정사각행렬을 대상으로 하는 고유값 분해와 다르게 모든 행렬에 대해 가능하도록 일반화한 방법이다.

\(A=U\Sigma V^T\)로 분해 되며 U는 \(AA^T\)의 left singular vector이며 V는 \(A^TA\)의 right singular vector이다. \(\Sigma\)는 A의 특이값으로 A의 rank가 d라고 했을때 d까지만 값이 존재하고 나머지는 0으로 채워진 정사각행렬으로 구성된다.

 

\(U,V^T\)는 행렬의 회전 \(\Sigma\)는 행렬 영역의 크기조절에 영향을 준다.

 

Qudratic representation (이차식 표현)

최고차항이 2차인 행렬 곱 형태를 표현하는 방식

\(w_1x_1^2+w_2x_2^2+2w_3x_1x_2\)

\(\begin{pmatrix} x_1& x_2 \\ \end{pmatrix} \begin{pmatrix} w_1 & w_3 \\ w_3 & w_2 \\ \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}=x^TWx\)

 

이러한 형태로 변환했을때 \(x^TWx\)형태로 표현한 식을 W에 대한 이차식이라고 한다. 추가적으로 잘 보면 가운데 w에 대한 식이 대칭행렬이다. 대각화를 통해 값을 적절히 치환한다면 가운데 행렬을 대각행렬로 변환해 간략하게 표현할 수 있다.

 

양정치 행렬 (positive definite)

\(x^TWx>0, for \; all \; x \neq 0\) 조건을 만족하면 positive definite이라고 한다.

 

고유값과의 관계성

\(Ax=\lambda x\)

\(x^TAx=x^T\lambda x\)

\(\lambda |x|^2 >0 \) 는 고유값이 0보다 크다는 것을 의미한다.

 

준양정치 행렬 (semi-positive definite)

\(x^TWx \geq 0, for \; all \; x \neq 0\)

 

Differentiation of vector

벡터를 벡터로 미분한 행렬을 Jacobian matrix라고 한다.

벡터를 스칼라로 2번 미분한 행렬을 Hessian matrix라고 한다.

 

여기서 벡터란 행렬과 동치로 생각하자. (행렬도 하나의 백터의 표현이므로)

728x90
Comments