[Python] 머신러닝 완벽가이드 - 06. 차원축소[선형대수]

Updated:

1. 선형대수

머신러닝에 있어서 중요한 개념 중 하나인 선형대수에 대해서 일부만 아주 간략하게 정리해 본다.

교재에 있는 내용은 아니나 차원축소 챕터에 자주 나오는 개념 위주로 간략하게 적어두었다.

1.1 고유값/고유벡터

n x n 정방행렬 $A$와 스칼라 $\lambda$에 대해 아래와 같은 식이 성립할 때,

\[Ax = \lambda x \tag{1}\]

$x$와 $\lambda$는 다음과 같이 정의할 수 있다.

  • $x$: 고유벡터라고 하며 $A$라는 선형변환을 할 때 크기만 바뀌고 방향이 바뀌지 않는 벡터(최대 n개 존재)

  • $\lambda$: 고유값이라고 하며, 고유벡터에 대응하는 크기

(1)식은 다음과 같이 표현할 수 있다.

\[(A-\lambda I)x = 0_{n \ \text{x} \ n} \tag{2}\]

고유벡터는 0이 아닌 벡터여야하므로 (2)식에서 $(A-\lambda I)$의 역행렬이 존재해선 안된다.

즉, $\det(A-\lambda I) = 0$이 성립하여야 한다.

이는 행렬 $\det(A-\lambda I)$가 Singular Matrix 여야한다는 뜻이다.

1.2 고유값 분해

고유벡터 $e_{1}$, … ,$e_{n}$들의 행렬 $E$를 다음과 같이 정의하자.

\[E = \begin{bmatrix} e_{1} & \cdots & e_{n} \end{bmatrix}\]

대각행렬인 고유값 행렬 $\Lambda$를 다음과 같이 정의하자.

\[\Lambda = \begin{bmatrix} \lambda_{1} & \cdots & 0 \\ \vdots & \cdots & \cdots \\ 0 & \cdots & \lambda_{n} \\ \end{bmatrix}\]

고유벡터 행렬 $E$의 역행렬이 존재할때, 위 정의와 (1)식을 이용하면 다음과 같은 관계가 성립한다.

\[AE = E\Lambda\] \[A = E\Lambda E^{-1} \tag{3}\]

만약 행렬 $A$가 대칭행렬이면 고유벡터 행렬 $E$는 직교행렬이 되어 $E^{T} = E^{-1}$이 성립한다.

따라서 식 (3)은 다음과 같이 표현 가능하다.

\[A = E\Lambda E^{T} \tag{4}\]
  • PCA에선 행렬 $A$로 공분산 행렬을 사용하고 공분산 행렬을 대칭행렬이므로 식 (4)가 적용 가능하다.

Leave a comment