역행렬은 행렬이 정방행렬(Square Matrix)일때만 정의된다. 그런데 때때로 정방행렬이 아닌 행렬에 대해 역행렬과 비슷한 성질을 갖는 놈이 종종 필요하다. 다행이도 유사역행렬(Pseudo Inverse)이 있고 역행렬과 성질이 비슷하다. 이번 글에서는 유사역행렬이 무엇인지 알아보고 유사역행렬을 구하는 방법을 알아보자.
유사역행렬(Pseudo Inverse)란?
행렬 $A$의 유사역행렬 $A^+$는 다음의 성질을 만족하는 행렬이다.
- $AA^+A = A$
- $A^+AA^+ = A+$
- $(AA^+)^* = AA^+$
- $(A^+A)^* = A^+A$
역행렬이 갖고 있는 몇가지 성질을 만족하는 행렬이다.
유사역행렬 구하는 방법?
유사역행렬을 구하기 특이점 분해를 사용한다. 먼저 다음과 같이 $A$를 SVD 한다.
$$A = U \Sigma V^T$$
그리고 $\Sigma$에 다음과 같은 과정을 적용하여 $\Sigma^+$를 만든다.
- 1. $\Sigma$의 원소중 정해논 임계값($\epsilon$)보다 작은 수는 0 으로 바꿈
- 2. 0이 아닌 모든 값을 역수로 치환
그런후 SVD 에서 얻었던 $U$,$V$를 이용하면 아래와 같이 $A$의 pseudoinverse 를 구할 수 있다.
$$A^+ = V\Sigma^+ U^T$$
유사역행렬 왜 좋나?
모든 행렬이 역행렬이 존재 안할 수 있지만 pseudo inverse는 항상 존재하기 때문이다. 그리고 역행렬을 그냥 계산 하는 것보다 유사역행렬을 계산하는 것이 계산 복잡도가 덜하기 때문이다.
출처
위키백과