역행렬은 full rank인 \( n \times n \) 정방 행렬(square matrix)에서만 정의된다. 정방 행렬이 아닌 다른 모양의 행렬에서는 역행렬 대신에 유사 역행렬(pseudo inverse matrix)을 정의할 수 있다.
어떤 \( m \times n \) 실수 행렬 \( A \)에 대해서 다음과 같이 4가지 조건을 만족하는 행렬 \( A^+ \)를 무어-펜로즈(Moore-Penrose) 유사 역행렬이라고 한다.
1. \( A A^+ A = A \)
2. \( A^+ A A^+ = A^+ \)
3. \( (A A^+)^T = A A^+ \)
4. \( (A^+ A)^T = A^+ A \)
특이값 분해(svd)를 이용하면 무어-펜로즈 유사 역행렬을 쉽게 계산할 수 있다.
특이값 분해란 어떤 \( m \times n \) 실수 행렬 \( A \)를 다음과 같이 3개의 행렬의 곱으로 분해한 것이다.
\[ A = U \Sigma V^T \]
여기서 \( U \)는 \( m \times m \) 직각 행렬(orthogonal matrix)이고 \( V \)는 \( n \times n \) 직각 행렬이다. \( U \)와 \( V \)가 각각 직각 행렬이므로 다음 식을 만족한다.
\[ U^{-1} = U^T, \ \ \ \ V^{-1}=V^T \]
\( m \times n \) 행렬 \( \Sigma \)는 다음과 같이 표현된다.
\[ \Sigma = \begin{bmatrix} \Sigma_r & 0_{r \times (n-r) } \\ 0_{(m-r) \times r} & 0_{(m-r) \times (n-r)} \end{bmatrix} \]
여기서 영(zero)행렬의 아래 첨자는 행과 열의 개수를 나타내며, \( \Sigma _r \)은 \( r \times r \) 대각 행렬으로서 대각 성분은 양의 실수이며 큰 수에서 작은 수의 순서로 정렬되어 있다.
\[ \sigma_1 \ge \sigma_2 \ge \cdots \ge \sigma_r > 0 \]
여기서 \( \sigma \)는 특이값이며 아래 첨자 \( r \)은 행렬 \( A \)의 랭크(rank)다.
특이값 분해를 이용하면 어떤 \( m \times n \) 실수 행렬 \( A \)의 무어-펜로즈 유사 역행렬 \( A^+ \)는 다음과 같다.
\[ A^+ = V \Sigma ^+ U^T \]
여기서 \( \Sigma ^+ \)는 \( n \times m \) 행렬이며, 다음과 같다.
\[ \Sigma ^+ = \begin{bmatrix} \Sigma_r ^{-1} & 0_{r \times (m-r) } \\ 0_{(n-r) \times r} & 0_{(n-r) \times (m-r)} \end{bmatrix} \]
유사 역행렬 \( A^+ \)이 무어-펜로즈의 4가지 조건을 만족하는지 다음과 같이 확인할 수 있다.
1. \( A A^+ A = U \Sigma \Sigma^+ \Sigma V^T = U\Sigma V^T = A \)
2. \( A^+ A A^+ = V \Sigma ^+ \Sigma \Sigma ^+ U^T = V \Sigma ^+ U^T = A^+ \)
3. \( (A A^+)^T = (U \Sigma \Sigma^+ U^T )^T = ( U \begin{bmatrix} I_r & 0 \\ 0 & 0 \end{bmatrix} U^T)^T = A A^+ \)
4. \( (A^+ A)^T = (V \Sigma^+ \Sigma V^T )^T = ( V \begin{bmatrix} I_r & 0 \\ 0 & 0 \end{bmatrix} V^T )^T = A^+ A \)
만약 \( m \times n \) 실수 행렬 \( A \)에서 \( m < n \)이고 랭크가 \( r=m \)이라면(즉 full row rank) 행렬 \(A \)는 다음과 같이 우측 역행렬(right inverse matrix)을 갖는다.
\[ A A_R ^+ = I_r , \ \ \ \ \ A_R ^+ = A^T (AA^T )^{-1} \]
이 경우 행렬 \( A \)의 특이값 분해는 다음과 같으므로
\[ A = U \begin{bmatrix} \Sigma _r & 0 \end{bmatrix} V^T \]
유사 역행렬은 우측 역행렬과 일치한다.
\[ \begin{align} A_R ^+ &= A^T (AA^T )^{-1} = V \begin{bmatrix} \Sigma _r \\ 0 \end{bmatrix} U^T (U \Sigma_r ^{-2} U^T ) \\ \\ &= V \begin{bmatrix} \Sigma _r ^{-1} \\ 0 \end{bmatrix} U^T \\ \\ &= A^+ \end{align} \]
만약 \( m \times n \) 실수 행렬 \( A \)에서 \( m > n \)이고 랭크가 \( r=n \)이라면(즉 full column rank) 행렬 \(A \)는 다음과 같이 좌측 역행렬(leftinverse matrix)을 갖는다.
\[ A_L ^+ A = I_r , \ \ \ \ \ A_L ^+ = (A^T A)^{-1} A^T \]
이 경우 행렬 \( A \)의 특이값 분해는 다음과 같으므로
\[ A = U \begin{bmatrix} \Sigma _r \\ 0 \end{bmatrix} V^T \]
유사 역행렬은 좌측 역행렬과 일치한다.
\[ \begin{align} A_L ^+ &= (A^T A)^{-1} A^T = (V \Sigma _r ^{-2} V^T \begin{bmatrix} \Sigma _r & 0 \end{bmatrix} U^T \\ \\ &= V \begin{bmatrix} \Sigma _r ^{-1} & 0 \end{bmatrix} U^T \\ \\ &= A^+ \end{align} \]
만약 \( n \times n \) 정방 행렬 \( A \)에서 랭크가 \( r=n \)이라면(즉 full rank) 행렬 \(A \)는 다음과 같으므로
\[ A = U \Sigma_n V^T \]
유사 역행렬은 역행렬 \( A^{-1} \)과 일치한다.
\[ \begin{align} A^{-1} &= (U \Sigma _n V^T )^{-1} = V \Sigma_n ^{-1} U^T \\ \\ &= A^+ \end{align} \]
정리하면,
1. 행렬 \( A \)가 full rank 인 정방 행렬이면 역행렬을 갖고 그 행렬은 유사 역행렬과 같다.
2. 행렬 \( A \)가 full row rank인 납작한 행렬이면 우측 역행렬을 갖고 그 행렬은 유사 역행렬과 같다.
3. 행렬 \(A \)가 full column rank인 길쭉한 행렬이면 좌측 역행렬을 갖고 그 행렬은 유사 역행렬과 같다.
그러면 예를 들어 보자.
행렬 \( A \)가 다음과 같을 때,
\[ A = \begin{bmatrix} 1 & 1 \\ 0 & 0 \\ 0 & 0 \end{bmatrix} \]
행렬 \( A \)의 특이값 분해는 다음과 같고,
\[ A = U\Sigma V^T = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} \sqrt{2} & 0 \\ 0 & 0 \\ 0 & 0 \end{bmatrix} \begin{bmatrix} \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \end{bmatrix} ^T \]
유사 역행렬은 다음과 같이 계산된다.
\[ \begin{align} A^+ &= U\Sigma V^T \\ \\ &= \begin{bmatrix} \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \end{bmatrix} \begin{bmatrix} \frac{1}{\sqrt{2}} & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \\ \\ &= \begin{bmatrix} \frac{1}{2} & 0 & 0 \\ \frac{1}{2} & 0 & 0 \end{bmatrix} \end{align} \]
행렬 \( A \)가 다음과 같이 full row rank 행렬일 때,
\[ A = \begin{bmatrix} 1 & 2 & 0 \\ 0 & 0 & 1 \end{bmatrix} \]
우측 역행렬은 다음과 같다.
\[ A_R ^+ = A^T (AA^T) ^{-1} = \begin{bmatrix} 0.2 & 0 \\ 0.4 & 0 \\ 0 & 1 \end{bmatrix} \]
유사 역행렬은 다음과 같이 우측 역행렬과 동일하게 계산된다.
\[ \begin{align} A^+ &= U\Sigma V^T \\ \\ &= \begin{bmatrix} -0.4472 & 0 & 0.8944 \\ -0.8955 & 0 & -0.4472 \\ 0 & -1 & 1 \end{bmatrix} \begin{bmatrix} 0.4472 & 0 \\ 0 & 1 \\ 0 & 0 \end{bmatrix} \begin{bmatrix} -1 & 0 \\ 0 & -1 \end{bmatrix} \\ \\ &= \begin{bmatrix} 0.2 & 0 \\ 0.4 & 0 \\ 0 & 1 \end{bmatrix} \end{align} \]
'AI 수학 > 선형대수' 카테고리의 다른 글
놈 (norm) (0) | 2020.10.24 |
---|---|
내적 (Inner Product) (0) | 2020.10.21 |
특이값 분해(SVD)의 응용: 이미지 압축 (0) | 2020.07.25 |
특이값 분해(SVD)의 증명 (0) | 2020.07.23 |
특이값 분해(singular value decomposition) (0) | 2020.07.23 |
댓글