首页 » 机器学习实战 » 机器学习实战全文在线阅读

《机器学习实战》B.2 矩阵求逆

关灯直达底部

当处理矩阵代数方程时,经常会碰到矩阵的逆矩阵。如果XY=I,其中I是单位阵(单位阵I的对角线元素均为1,而其他元素都是0。任意矩阵乘以单位阵仍为原始矩阵),则称XY的逆矩阵。逆矩阵的一个实际缺陷是当矩阵不止几个元素时计算很麻烦且基本不可能通过手工计算。了解矩阵什么时候才有逆很有帮助,这样就可以避免程序的错误。矩阵B的逆矩阵通常表示为B-1

矩阵要可逆必须要是方阵。这里所谓方阵,是指矩阵的行数等于列数。即使矩阵是方阵,它也可能不可逆。如果某个矩阵不可逆,则称它为奇异(singular)或退化(degenerate)矩阵。如果某个矩阵的一列可以表示为其他列的线性组合,则该矩阵是奇异矩阵。如果能够这样表示,则可以把一列全部归约为0。图B-9给出了这样的一个矩阵样例。将计算矩阵的逆时,出现这种矩阵就非常麻烦,因为出现了除零运算。后面会介绍这一点。

图B-9 一个奇异矩阵的例子。该矩阵有一列为0,意味着该矩阵不能求逆

有很多矩阵求逆的方法,一种方法是对矩阵进行重排然后每个元素除以行列式。所谓行列式是与方阵关联的一个特殊值,通过它能反映矩阵的一些信息。图B-10给出了一个2×2矩阵的手工矩阵求逆过程。注意一下行列式det的计算方法。这里每个元素都要除以行列式。如果矩阵的某列全是0,则行列式也为0。这就会导致除零运算,由于此时无法运算,因此该矩阵无法求逆。这就是要求逆的矩阵必须满秩的原因。

图B-10 方阵B的逆矩阵求解。由于每个矩阵元素都要乘上1/det(B),因此det(B)不能为0。如果B为奇异矩阵,则det(B)为0,此时无法对B求逆。

上面已经看到一个2×2矩阵的求逆过程。接下来看看3×3的矩阵如何求逆,你会发现这次要复杂得多。图B-11给出了一个3×3矩阵的求逆计算过程。

图B-11 一个3x3的矩阵C的逆矩阵求解过程。矩阵更大,手工求解的难度也加大。一个大小为n的方阵的行列式包含n!个元素

一个值得吸取的教训就是由于行列式有n!个元素,多元素的矩阵求逆十分复杂。通常情况下不会只处理上面那么小的矩阵,因此矩阵求逆通常使用计算机完成。