선형대수 note 33: Left and Right Inverses; Pseudoinverse.

양면-역행렬 (Two sided inverse)

A 가 정방 full rank 일때 (m = n = r)
dim(N(A)) = dim(N(A^T)) = 0
A 의 양면 역행렬은 A^{-1}

    \[A^{-1}A = I = AA^{-1}\]

좌-역행렬 (Left inverse)

A 가 세로로 긴 full column rank 일때 (m \ge n = r)
dim(N(A)) = 0,\ dim(N(A^T) = m - r
A\mathbf{x} = \mathbf{b} 의 해는 (\mathbf{b}A 의 column space 에 존재하지 않을 수 있으므로) 1 개 이거나 해가 없다.
A 가 full column rank 이기 때문에 A^T A 은 가역 대칭 행렬이다. 그러므로 A 의 좌역행렬은

    \[\underbrace{(A^T A)^{-1} A^T}_{A_{\text{left}}^{-1}}A = I\]

A\mathbf{x}\mathbf{x} 를 row space 에서 column space 로 변환하고, A_{\text{left}}^{-1} A \mathbf{x} 는 원래의 \mathbf{x} 로 돌려놓는다.

우-역행렬 (Right inverse)

A 가 가로로 긴 full row rank 일때 (n \ge m = r)
dim(N(A)) = n - r,\ dim(N(A^T)) = 0
A\mathbf{x} = \mathbf{b} 의 해는 (\mathbf{b}A 의 column space 에 반드시 존재한다) \infty or 적어도 1 개가 존재한다.
A 가 full row rank 이기 때문에 A A^T 는 가역 대칭 행렬이다. 그러므로 A 의 우역행렬은

    \[A \underbrace{A^T (A A^T)^{-1}}_{A_{\text{right}}^{-1}} = I\]

\mathbf{x}^T A\mathbf{x} 를 column space 에서 row space 로 변환하고, \mathbf{x}^T A A_{\text{right}}^{-1} 는 원래의 \mathbf{x} 로 돌려놓는다.

Pseudo-역행렬

양면-역행렬, 좌-역행렬, 우-역행렬은 모두 full rank 일 때만 존재한다. 그 외에 경우 (r < n,\ r < m) 까지 포함하는 일반적인 행렬의 역행렬에는 Pseudo-역행렬을 적용할 수 있다. Pseudo-역행렬은 모든 벡터를 역으로 돌려 놓지는 못한다. nullspace 에 있는 벡터는 \mathbf{0} 벡터로 매핑되기 때문에 Pseudo-역행렬을 곱해도 \mathbf{0} 벡터가 된다. 하지만 row space 벡터는 항상 column space 벡터로 1 대 1 로 변환된다. 즉, \mathbf{x} 가 row space 의 벡터라면 A\mathbf{x} 는 column space 의 벡터고, A^{+}A\mathbf{x} = \mathbf{x} 가 된다. \mathbf{x} 가 row space 에 존재하지 않는다고 해도 A^{+}A\mathbf{x} 는 최대한 \mathbf{x} 에 가까운 벡터가 되도록 한다.

pseudo 역행렬은 SVD 를 이용해서 구할 수 있다.

    \[\begin{aligned} A^{+}  &= (U\Sigma V^T)^{+}\\ &= V\Sigma^{+} U^T\\ &=  \underbrace{\begin{bmatrix}  \\ \mathbf{v}_1 & \dots & \mathbf{v}_r & \dots & \mathbf{v}_n\\ \\ \end{bmatrix}}_{n\times n}  \underbrace{\begin{bmatrix} \frac{1}{\sigma_1} \\ & \frac{1}{\sigma_2} \\ & & \ddots \\ & & & \frac{1}{\sigma_r} \\ & & & & \\ \end{bmatrix}}_{n\times m} \underbrace{\begin{bmatrix} \\ \mathbf{u}_1 & \dots & \mathbf{u}_r & \dots & \mathbf{u}_m\\ \\ \end{bmatrix}^T}_{m\times m} \end{aligned}\]

\Sigma^{+}\Sigma0 이 아닌 대각 성분을 역수로 바꾸고 transpose 한 것이다.

A 가 정방 full rank 일때 A 는 가역행렬이므로 \Sigma 의 대각 성분들은 모두 0 보다 크고, A^{+} 는 양면-역행렬과 같다.
A 가 세로로 긴 full column rank 일때 A^TA 는 가역행렬이므로 \Sigma 의 대각 성분들은 모두 0 보다 크고, A^{+} 는 좌-역행렬과 같다.
A 가 가로로 긴 full row rank 일때 AA^T 는 가역행렬이므로 \Sigma 의 대각 성분들은 모두 0 보다 크고, A^{+} 는 우-역행렬과 같다.

pseudo-inverse-map

AA^{+} 는 벡터를 column space 로 투영한다.
A^{+}A 는 벡터를 row space 로 투영한다.

Least Square

Least square 문제는 A 가 full column rank 행렬일때 A\mathbf{x} = \mathbf{b} 라는 해가 없는 식에서 \mathbf{b}A 의 column space 에 투영하여 A\mathbf{\hat{x}} = \mathbf{p} 로 바꿔서 풀었었다. Pseudo 역행렬을 적용하면 A 가 full rank 가 아니더라도 해는 \mathbf{x}^{+} = A^{+}\mathbf{b} 가 된다. A 의 nullspace 벡터를 \mathbf{x}^{+} 에 더해도 A\mathbf{x}^{+} = \mathbf{p} 의 해가 되지만 가장 짧은 해는 \mathbf{x}^{+} 가 된다.


선형대수 note 목록

Leave a Reply

Your email address will not be published. Required fields are marked *