개요

머신러닝을 공부하다 보니 대학교때 배운 선형대수학의 기초를 정리할 필요성을 느꼈다. 하지만 그렇다고 선형대수학을 전체 다시 정리하기에는(그러면 매우 좋긴 할듯하지만) 목적성이 흐려지는 것 같아 선택과 집중 차원에서 머신러닝에서 필요한 선형대수학 액기스 부분만 추려서 정리한다.

기본 벡터 Notation

$v = \begin{bmatrix}x_1 \\ x_2 \\ x_3 \end{bmatrix}$
$v^T = \begin{bmatrix}x_1 & x_2 & x_3 \end{bmatrix}$

Inner Product

$ v.w = x_1y_1 + x_2y_2 + … + x_ny_n $
$ v.w = \begin{bmatrix}x_1 & x_2 & … & x_n \end{bmatrix} \begin{bmatrix}y_1 \\y_2 \\y_3 \end{bmatrix} = v^Tw $

Orthogonal / Orthonormal 벡터

Orthogonal 조건은 아래와 같다.
즉, 본인을 내적했을때는 k가 나오고 서로 다른 벡터의 내적은 0이다.
개념으로 정의하자면 두 벡터가 직교하지만 각 벡터는 단위벡터(길이가 1인 벡터)는 아니다.

$ x_i^Tx_j = \begin{cases} k \ if \ i = j \\0 \ if \ i \ne j \end{cases}$

Orthonormal 조건은 아래와 같다.
즉, 본인을 내적했을때는 1이 나오고 서로 다른 벡터의 내적은 0이다.
개념으로 정의하자면 두 벡터가 직교하하고 각 벡터는 단위벡터(길이가 1인 벡터)이다.

$ x_i^Tx_j = \begin{cases} 1 \ if \ i = j \\0 \ if \ i \ne j \end{cases}$

예를 들자면 (2, 0), (0, 2)은 본인 내적시에는 4가 나오고 서로 다른 두 벡터의 내적은 0이다.
이때는 Orthogonal이지만 Orthonormal이 아니다.

또하나 예를 들어 (1,0), (0, 1)의 경우 본인 내적시에 1이고 서로 다른 두 벡터 내적시에는 0이 나온다.
이때는 Orthogonal이면서 Orthonormal이라고 할 수 있다.

선형결합(Linear Combination)

벡터 $ v $가 $c_1, …, c_k$ 상수로 구성된 아래의 수식으로 구성된다면 선형 결합이라고 한다.
$ v = c_1v_1 + c_2v_2 + … + c_kv_k $

예를 들자면 $R^3$ 에서 벡터는 $i, j, k$벡터의 조합의 선형결합으로 표현 될 수 있다.

$ i = (1,0,0) $
$ j = (0,1,0) $
$ k = (0,0,1) $

$ v = (a,b,c) = a(1,0,0) + b(0,1,0) + c(0,0,1) $이다.

Space Spanning

$S=(v_1,v_2,…,v_k)$라면 $S$의 벡터들을 이용하여 아래와 같이 선형결합한 $W$를 나타낼수 있다면 이를 공간은 span한다고 표현한다.
$W = c_1v_1 + c_2v_2 + … + c_kv_k$

선형 독립(Linear Independent)

$ c_1v_1 + c_2v_2 + … + c_kv_k = 0 $ 일때
이를만족하는 해가 $c_1 = c_2 = … = c_k = 0$ 일때 선형독립이라고 한다.

예를 들자면 아래와 같은 두 벡터가 있다고 가정해보자.
$ v_1 = \begin{bmatrix} -1 \\ 1 \\ -1 \end{bmatrix}, v_2 = \begin{bmatrix} 1 \\ 1 \\ -1 \end{bmatrix} $

내적이 0이어야 하니 $c_1v_1 + c_2v_2 = 0$ 이어야 하고 이는 아래와 같이 수식을 나타낼 수 있다.

$ c_1\begin{bmatrix} -1 \\ 1 \\ -1 \end{bmatrix} + c_2\begin{bmatrix} 1 \\ 1 \\ -1 \end{bmatrix} = 0 $

행렬 덧셈을 수행하여 식을 정리하면 아래와 같이 된다.

$ \begin{bmatrix} -c_1 + c_2 \\ c_1 + c_2 \\ -c_1 + (-c_2) \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix}$

이를 만족하는 유일한 해는 $c_1 = c_2 = 0$이다. 따라서 두 벡터는 선형 독립이다.

벡터기저(basis)

아래의 2가지 조건을 만족하면 벡터 기저라고 볼 수 있다.

  • $ (v_1, …, v_k)$가 선형 독립이다.
  • $ (v_1, …, v_k)$가 W를 span한다.

표준 기저는 아래와 같다.

$R^2$
$i = (1, 0), j = (0, 1)$

$R^3$
$i = (1, 0, 0), j = (0, 1,0), k = (0,0,1)$

Symmetric Matrix

$ A = A^T, (a_{ij}=a_{ji})$

예제는 아래와 같은 행렬이다.

$ \begin{bmatrix} 4 & 5 & -3 \\ 5 & 7 & 2 \\ -3 & 2 & 10 \end{bmatrix} $

Determinants

det는 곱셈법칙만 적용된다.

$det(AB)=det(A)det(B)$
$det(A+B)\ne det(A)+det(B)$

역행렬(Matrix Inverse)

  • 역행렬은 $det(A)\ne0$일때만 존재한다.
  • 역행렬이 존재하면 non-singular, 역행렬이 존재하지 않으면 singular라고 표현.
  • 역행렬은 아래와 같은 성질을 가진다.
    $ det(A^{-1}) = \frac{1}{det(A)} $
    $ (AB)^-1 = B^{-1}A^{-1}$
    $ (A^T)^{-1} = (A^{-1})^{T} $

Matrix Trace

행렬 Trace의 정의는 아래와 같다.

$ tr(A) = a_{11} + a_{22} + … + a_{nn} $

행렬 Trace의 성질은 아래와 같다.
$ tr(A^T) = tr(A) $
$ tr(A \pm B) = tr(A) \pm tr(B) $
$ tr(AB) = tr(BA) $
(일반적으로, $tr(AB) \ne tr(A)tr(B)) $

Rank of Matrix

정방행렬의 부분 행렬로써 $det$가 0이 아닌 가장 큰 dimension의 크기를 rank라고 말한다.

예를 들어 아래의 행렬은 rank 3이다.

$ \begin{bmatrix} 4 & 5 & 2 & 14 \\ 3 & 9 & 6 & 21 \\ 8 & 10 & 7 & 28 \\ 1 & 2 & 9 & 5 \end{bmatrix} $

rank가 3인 이유는 아래의 부분행렬이 $ det \ne 0 $을 만족하기 떄문이다.

$ \begin{bmatrix} 4 & 5 & 2 \\ 3 & 9 & 6 \\ 8 & 10 & 7 \end{bmatrix} $

다른 정의로는 열(행) 벡터 기준으로 선형 독립인 벡터의 갯수를 rank로 정의 할 수 있다.

정방행렬에서 rank의 성질은 아래와 같다.
만약 역행렬이 존재하면 행렬이 $ rank(A) = n $
$ det(A) \ne 0 $이면 $ rank(A) = n $
A가 singular 이면 $ rank(A) < n $

왜냐하면 아래가 참이고 rank는 $det \ne 0 $을 찾는것이기 때문이다.

헷갈리니 역행렬 관련 용어 및 성질을 다시 정리하면 아래와 같다.

$ \begin{cases} det(A) \ne 0 = \end{cases} $ 역행렬 O $=$ non-singular $= rank(A)$가 $ n = $ 선형독립인 벡터수가 n
$ \begin{cases} det(A) = 0 = \end{cases} $ 역행렬 X $=$ singular $= rank(A)$가 $< n = $선형독립인 벡터수가 < n

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

기하학적인 의미는 v라는 벡터가 A에 의해 선형 변환 되었을때 방향은 변하지 않은 채 maginitude만 변하는 상태를 의미한다.

$ Av = \lambda v, (v \ne 0)$

$\lambda$와 $v$를 계산하는 방법은 아래와 같다.

$ det(A – \lambda I) = 0 $

예를 들어보자.

$ A = \begin{bmatrix} 5 & -2 \\ 6 & -2 \end{bmatrix} $
$ det(\begin{bmatrix} 5-\lambda & -2 \\ 6 & -2 – \lambda \end{bmatrix}) = 0 $
$ \lambda^2 – 3 \lambda + 2 = 0$

따라서 해는 $\lambda_1 = 1 \ or \ \lambda_2 = 2 $이다.

이 $ \lambda $해를 대입해서 $ Av = \lambda v$ 를 전개해보자.

Case1. $\lambda_1 = 1$일때

$ \begin{bmatrix} 5 & -2 \\ 6 & -2 \end{bmatrix} \begin{bmatrix} a \\ b \end{bmatrix} = 1 * \begin{bmatrix} a \\ b \end{bmatrix} $
$ 5a -2b = a $
$ 6a – 2b = b $

즉 $a = \frac{1}{2}b$이다.
이를 통해 구해지는 첫번째 벡터 $v_1$은

$ v_1 = \begin{bmatrix} 1/2 \\ 1 \end{bmatrix}$ 이다.

Case2. $\lambda_2 = 2$일때

$ \begin{bmatrix} 5 & -2 \\ 6 & -2 \end{bmatrix} \begin{bmatrix} a \\ b \end{bmatrix} = 2 * \begin{bmatrix} a \\ b \end{bmatrix} $
$ 5a -2b = 2a $
$ 6a – 2b = 2b $

즉 $a = \frac{2}{3}b$이다.
이를 통해 구해지는 두번째 벡터 $v_2$는

$v_2 = \begin{bmatrix} 2/3 \\ 1 \end{bmatrix} $ 이다.

Eigenvalue, Eigenvector(고유값, 고유벡터)의 성질

  • Eigenvalue, Eigenvector(고유값, 고유벡터)는 정방행렬(square matrix)일때만 정의된다.
  • 아이겐 벡터들은 unique 하지 않다.(위의 예제에서도 a와 b는 비율이지 정해진 값이 아니니까)
  • $ \Pi_i \lambda_i = det(A) $, 즉 $ \lambda $값이 0이면 역행렬이 존재하지 않는다.

행렬 대각화(Matrix diagonalization)

$P = [v_1 v_2 … v_n]$이고 v가 모두 eigenvector라면
$ P^{-1}AP = \Lambda $

위수식을 만족하는 경우 행렬 대각화가 가능하다고 말할 수 있다.

만약 행렬 A가 대각화가 가능하면 상응하는 eigenvector들은 $R^n$의 기저(basis)가 된다.

$ A = \begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix} $
$ \lambda_1 = 0, \lambda_2 = 2, v_1 = \begin{bmatrix} 1 \\ -1 \end{bmatrix} , v2 = \begin{bmatrix} 1 \\ 1 \end{bmatrix} $
$ P = \begin{bmatrix} 1 & 1 \\ -1 & 1 \end{bmatrix}, p^{-1} = \begin{bmatrix} 1/2 & -1/2 \\ 1/2 & 1/2 \end{bmatrix} $
$ P^{-1}AP = \begin{bmatrix} 0 & 0 \\ 0 & 2 \end{bmatrix} $

행렬 대각화 성립조건

행렬 A의 eigen vector가 모두 선형 독립이면 대각화가 가능하다.
왜냐하면 모든 벡터가 선형 독립이어야 역행렬이 존재하기 때문이다.
선형독립을 확인하는 방법은 각각의 eigen value가 각각 고유하면 선형 독립이다.

하지만 eigen value가 distinct하지 않으면 행렬 대각화는 될수도 있고 안될수도 있다.

아래의 예제를 보면 일부 $\lambda$값이 겹쳤을때 대각화가 가능할 수도 있지만 불가능할수도 있다.

$ \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 2 & -5 & 4 \end{bmatrix} $
$ \lambda_1=\lambda_2=1 \ and \ \lambda_3=2$, 대각화 불가능

$ \begin{bmatrix} -1 & 0 & 1 \\ 3 & 0 & -3 \\ 1 & 0 & -1 \end{bmatrix} $
$ \lambda_1=\lambda_2=0 \ and \ \lambda_3=2$, 대각화 가능

행렬 분해(Matrix decomposition)

행렬 A가 대각화가 가능하면 A는 행렬 분해가 아래와 같이 가능하다.
$ P^{-1}AP = \begin{bmatrix} \lambda_1 & 0 & 0 \\ 0 & \lambda_2 & 0 \\ . & . & . \\ . & . & . \\ 0 & 0 & \lambda_n \end{bmatrix} $
$ A = P \begin{bmatrix} \lambda_1 & 0 & 0 \\ 0 & \lambda_2 & 0 \\ . & . & . \\ . & . & . \\ 0 & 0 & \lambda_n \end{bmatrix} P^{-1} $

단순히 표현하자면 $ A= P \Lambda P^{-1} $로 표현할 수 있을듯 하다.

Symmetric Matrix

끝으로 특수한 케이스로 고유값이 Symmetric Matrix의 경우 고유값은 real이고 고유 벡터는 서로 orthogonal하다.