본문 바로가기
딥러닝/선형대수

특잇값 분해와 일반화 역행렬

by be-favorite 2020. 4. 10.

❗️블로그 옮김:  https://www.taemobang.com

 

방태모

안녕하세요, 제 블로그에 오신 것을 환영합니다. 통계학을 전공으로 학부, 석사를 졸업했습니다. 현재는 가천대 길병원 G-ABC에서 Data Science를 하고있습니다. 통계학, 시계열, 통계적학습과 기계

www.taemobang.com

 

1. 특잇값 분해(Singular Value Decomposition)

SVD는 행렬을 분해하는 또다른 방법이며, 행렬을 특이벡터(sigular vectors)와 특잇값(singular values)으로 분해한다. SVD는 고윳값 분해와 같은 정보를 제공해주는데, 좀 더 일반적으로 적용이 가능하다. 모든 실수 행렬에서 고윳값 분해가 가능하지는 않지만, SVD는 가능하다. 예를 들어, 정사각 행렬이 아닌 경우, 고윳값 분해는 정의되지 않기때문에 SVD를 이용해야만 한다. 고윳값 분해를 다시 떠올리면, 다음과 같이 쓸 수 있다. 

$\boldsymbol{A} = \boldsymbol{V}\textrm{diag}\left ( \lambda \right )\boldsymbol{V}^{-1}$

SVD은 위와 비슷하게 다음과 같이 주어진다.

$\boldsymbol{A} = \boldsymbol{U}\boldsymbol{D}\boldsymbol{V}^T$

$\boldsymbol{A}$를 $m \times n$이라고 하면, $\boldsymbol{U}$는 $m \times m$ 행렬이고 $\boldsymbol{D}$는 $m \times n$ 행렬, $\boldsymbol{V}$는 $n \times n$ 행렬이 된다. 이 행렬들은 특별한 구조로 정의된다. $\boldsymbol{U}$와 $\boldsymbol{V}$는 직교행렬, $\boldsymbol{D}$는 대각 행렬이며 꼭 정사각 형태일 필요는 없다. $\boldsymbol{D}$의 대각성분은 $\boldsymbol{A}$의 고윳값들이며, $\boldsymbol{U}$와 $\boldsymbol{V}$의 열들은 각각 좌특이벡터(left-singular vectors), 우특이벡터(right-singular vectors)라고 한다. 사실 행렬 $\boldsymbol{A}$의 SVD는 $\boldsymbol{A}$에 관한 함수의 고윳값 분해 관점으로 해석할 수 있다. $\boldsymbol{A}$의 좌특이벡터들은 $\boldsymbol{AA}^T$의 고유벡터들이며, 우특이벡터들은 $\boldsymbol{A}^T \boldsymbol{A}$의 고유벡터들이다($\because \boldsymbol{AA}^T = \boldsymbol{UD}\boldsymbol{V}^T\boldsymbol{VD}\boldsymbol{U}^T = \boldsymbol{UD}^2\boldsymbol{U}^T$, $\boldsymbol{A}^T \boldsymbol{A}$의 경우도 동일하게 써보면됨). 즉, $\boldsymbol{A}$의 nonzero 특잇값들은 $\boldsymbol{A}^T \boldsymbol{A}$의 고윳값들의 제곱근과 동일하다(이는 $\boldsymbol{AA}^T$에서도 성립). SVD가 가장 유용한 점은 nonsquare 행렬의 일반화 역행렬을 구할때 부분적으로 사용된다는 점이다.

 

2. The Moore-Penrose Pseudoinverse(무어펜로즈 유사역행렬)

정사각 형태가 아닌 행렬은 역행렬이 정의되지않는다. 다음과 같은 선형방정식을 풀기위해 $\boldsymbol{A}$의 left-inverse $\boldsymbol{B}$를 만들길 원한다고 해보자.

$\boldsymbol{Ax} = \boldsymbol{y}$
$\boldsymbol{x} = \boldsymbol{By}$

구조에 따라서, $\boldsymbol{A}$에서 $\boldsymbol{B}$로의 unique한 mapping이 불가능할 수도 있다.

○ $\boldsymbol{A}_{m \times n}$일 때,  $m>n$ : 해가 없을수도 있다.

○ $\boldsymbol{A}_{m \times n}$일 때,  $m<n$ : 많은 해가 존재할 수 있다.

Moore-Penrose pseudoinverse는 이러한 상황에서 필요하며, $\boldsymbol{A}$의 pseudoinverse는 다음과 같이 정의된다.

$\boldsymbol{A}^{+} = \lim_{\alpha \rightarrow 0}\left ( \boldsymbol{A}^T \boldsymbol{A} + \alpha \boldsymbol{I} \right )^{-1}\boldsymbol{A}^T$

하지만 pseudoinverse를 계산하는 실제 알고리즘은 위 정의가 기반이 아닌, 다음과 같은 식을 기반으로 한다.

$\boldsymbol{A}^+ = \boldsymbol{VD}^+\boldsymbol{U}^T$

$\boldsymbol{V}$와 $\boldsymbol{U}$는 $\boldsymbol{A}$의 SVD로 얻을 수 있고, $\boldsymbol{D}^+$는 대각행렬 $\boldsymbol{D}$의 nonzero 값에 역수를 취한뒤에, 전치 연산을 하여 얻을 수 있다.

  • $m<n$ : pseudoinverse는 수많은 해 중에 하나의 해를 제공한다. 구체적으로 말하면, 수많은 해중에서 최소 Euclidean norm $\left \| x \right \|_2$을 가지는 해 $\boldsymbol{x} = \boldsymbol{A}^+\boldsymbol{y}$를 제공한다.
  • $m>n$ : 해가 없을 수 있으며, 이경우 pseudoinverse는 Euclidean norm $\left \| \boldsymbol{Ax} - \boldsymbol{y} \right \|_2$의 관점에서 $\boldsymbol{y}$와 가장 거리를 가깝게해주는 해 $\boldsymbol{x}$를 제공한다.

참고 도서
Goodfellow, Ian, Yoshua Bengio, and Aaron Courville. Deep Learning. The MIT Press, 2016

'딥러닝 > 선형대수' 카테고리의 다른 글

Trace 연산자와 행렬식  (0) 2020.04.10
고윳값 분해  (0) 2020.04.10
특별한 종류의 행렬과 벡터  (0) 2020.04.10
norms  (0) 2020.04.10
선형방정식과 선형종속, span  (0) 2020.04.10

댓글