矩阵伪逆
A 是
m
×
n
m×n
m×n矩阵,伪逆
A
+
A^+
A+是
n
×
m
n×m
n×m矩阵
它满足
A
+
A
x
=
x
A^+Ax=x
A+Ax=x
它的意义是当A把x变到它的列空间里面,伪逆再把x变回来
下面是它的计算方式
- A + = V Σ + U T A^+=V\Sigma^+U^T A+=VΣ+UT
A的奇异值分解是
U
Σ
V
T
U\Sigma V^T
UΣVT
这里的
Σ
+
\Sigma^+
Σ+是
Σ
\Sigma
Σ的转置再对非0元素取倒数,
Σ
+
Σ
=
[
1
0
0
0
.
.
.
0
1
0
0
.
.
.
0
0
1
0
.
.
.
.
.
.
0
0
0
0
]
\Sigma^+\Sigma=\begin{bmatrix}1&0&0&0&...\\0&1&0&0&...\\0&0&1&0&...\\...&0&0&0&0\end{bmatrix}
Σ+Σ=
100...010000100000.........0
A + A x = V Σ + U T U Σ V T = V [ 1 0 0 0 . . . 0 1 0 0 . . . 0 0 1 0 . . . . . . 0 0 0 0 ] V T x = x A^+Ax=V\Sigma^+U^TU\Sigma V^T=V\begin{bmatrix}1&0&0&0&...\\0&1&0&0&...\\0&0&1&0&...\\...&0&0&0&0\end{bmatrix}V^Tx=x A+Ax=VΣ+UTUΣVT=V 100...010000100000.........0 VTx=x
我们知道奇异值分解有几何意义,如果中间的 Σ \Sigma Σ对角上存在0,说明有维度在拉伸的时候直接被变成0,相当于降维了,因此Ax本身就是对x的有损压缩,这时的 A + A^+ A+的意义就是把有损压缩的 x x x尽量还原,所以还原后的 x x x实际上不一定与原本的 x x x一样,因此伪逆我们可以认为是有损的逆
另外当A列独立时,伪逆有新的求法,它叫左逆
A
L
A^L
AL列满秩意味着
A
T
A
A^TA
ATA是可逆的,
这时候
A
L
=
(
A
T
A
)
−
1
A
T
A^L=(A^TA)^{-1}A^T
AL=(ATA)−1AT
因为
A
L
A
x
=
(
A
T
A
)
−
1
A
T
A
x
=
x
A^LAx=(A^TA)^{-1}A^TAx=x
ALAx=(ATA)−1ATAx=x,这就是无损变换还原,但是它只能是放左边,因此叫左逆,类似的行独立也有右逆
实际上左逆满足 A L A = E A^LA=E ALA=E
需要注意的是左逆其实奇异值分解版本那个逆的特化,因为如果列独立,那么奇异值分解得到的对角矩阵也是列满秩的,中间 Σ + Σ \Sigma^+\Sigma Σ+Σ项是单位矩阵,所以也是无损的,因此通用的伪逆用奇异值分解求即可,它统合了左逆右逆