[인공지능 수학 - 자료의 정리]8강 : SVD, PCA
SVD, PCA
행렬분해(matrix decomposition)의 의미
주어진 행렬을 행렬분해된 상태로 가지고 있으면 여러모로 계산이 편한 경우가 많다. 다음은 대표적인 행렬분해이다.
- LU 분해(LU decomposition)
- QR 분해(QR decomposition)
- 특이값 분해(SVD, Singular Value Decomposition)
LU분해와 QR분해는 $n * n$ 정방행렬(square matrix)에 대한 행렬분해인 반면, 특이값 분해는 일반적인 $m * n$ 행렬에 관한 행렬 분해이다.
특이값 분해는 직교분할, 확대축소, 차원변환 등과 관련이 있다.
특이값 분해(Singular Value Decomposition, SVD)
특이값 분해는 주어진 행렬을 아래의 형태를 가지는 세 행렬의 곱으로 나누는 행렬분해이다.
- U : m차원 회전행렬 (정규직교행렬), 3차원 공간에서 회전시킴
- D : n차원 확대축소 (확대축소 크기에 따른 정렬 형태), 회전된 상태에서 축을 확대/축소 시킴
- V : n차원 회전행렬 (정규직교행렬), 2차원 공간에서 회전시킴
SVD 분해의 의미는 다음 그림과 같다. $V^T$를 적용하고, $D$를 적용하고, $U$를 적용했을때 다음과 같이 된다.
특이값 분해(SVD)의 의미
특이값 분해는 행렬을 회전과 확대축소로 분해하는 방법이다. 간단히 말하자면,
- U : 입력 차원인 $R^m$ 공간에서의 회전
- D : 입력 차원인 $R^n$ 공간에 대해 축방향으로의 확대축소한 후, $R^n$->$R^m$으로 차원 변환
- V : 입력 차원인 $R^n$공간에서의 회전
특이값 분해(SVD)의 활용
A의 특이값 분해 U, D, V는 각각 열벡터의 순서대로 행렬 A의 열벡터가 어떤 방향으로 강한 응집성을 보이고 있는지를 분석한 것이다.
U, D, V의 열벡터를 순서대로 p개 취한다면, 강한 응집성을 가지는 p개의 방향으로 수선의 발을 내린 A의 근사치 A’를 재구성할 수 있다.
근사치의 행렬은 원래의 행렬과 같은 차원 (여기서는 3*2차원)을 갖지만, 응집성이 높은 정보만 골라서 축소시켜준 형태로 바뀐다. (여기서는 응집성이 낮은 -1/2, 1/2 부분이 0으로 축소되었다)
다음 그림은 위 SVD 분해를 통해 구한 근사치 A’의 기학적 의미이다.
영상처리에서 응용성이 높다.
주성분분석(Principal Component Analysis, PCA)
주성분분석(PCA)은 다수의 n차원 데이터에 대해, 데이터의 중심으로부터 데이터의 응집력이 좋은 n개의 직교 방향을 분석하는 방법이다.
주성분분석(PCA)는 데이터의 공분산행렬(covariance matrix)에 대한 고유값 분해에 기반을 둔 직교분해이다. K개의 n차원 데이터 ${x_i}^K_i=1$가 있을 때, 데이터의 중심 m과 공분산행렬 C는 다음과 같이 구한다.
$m = {1 \above 1pt K}\sum_{i=1}^{K}x_i, C = {1 \above 1pt K}\sum_{i=1}^{K}(x_i - m)(x_i - m)^T$
데이터의 평균을 m(중심)이라고 한다.
임의의 데이터 $x_i$가 있을 때 중심과의 거리를 외적을 해서 차원을 올린다.
그러면 모든 데이터들이 행렬을 하나씩 정의하게 되는데, 행렬들을 다 더한 다음에 평균을 내게 되면, 그렇게 만들어진 행렬이 공분산행렬의 의미를 갖게 된다.
공분산행렬에 대해 주성분분석(PCA)은 아래와 같다.
- W : n차원 회전행렬(정규직교행렬), 열 단위로 묶인 원소는 축의 방향을 의미한다.
- D : n차원 확대축소(확대축소 크기에 따른 정렬 형태), 원소는 축의 증폭값을 의미한다.