我们知道, 对于一个超定( overdetermined ) 方程 Ax==b (A 的行数大于列数), 其符合最小平方误差的解可以写成 x==(ATA)-1ATb 。其中(ATA)-1AT 被称为伪逆( pseudoinverse )。伪逆是怎么来的, 通过一顿推导, 应用了向量求导方法, 等等, 最终得到的结果。但是其中包含了怎样的几何意义呢?我试着想了一下。为了方便描述,还是以司空见惯的 3D 空间为例。假设有一个超定方程 Ax==b , 其中 A为3行2列( 且列满秩),b为3 个元素的列向量, x 为两个元素的列向量。这样一个方程代表了怎样的一个几何问题呢?如果将 A 的两个列向量视为 3D 空间中的两个列向量,则 Ax 代表了对 A 的两个列向量进行线性组合,得到一个新的 3D 空间中的向量,而线性组合时两个列向量的系数,就是 x 的两个元素。方程 Ax== b 则要求,对 A 的两个列向量进行线性组合得到的新向量 Ax ,应该等于向量 b 。这里问题就来了, A 的每个列向量都是 3D 向量,而 A 有两个这样的方向不同(列满秩)的 3D 向量, 两个这样的 3D 向量的任意组合最终构成 3D 空间中的一个平面,我们称这个平面为α,也就是说 Ax 必然在平面α内, 但是 b 却不一定在α内。如果 b 不在α内,? x: Ax≠b。这就是超定方程可能无解的原因, 当然, 如果 b 在平面α内, 则此时方程也是有严格的解的。既然方程可能跟不无解,那么用伪逆求出来的解到底是什么呢?我们首先对矩阵 A 做奇异值分解( singular value position ): [UA, SA, VA] = svd(A); 即 A==UASAVAT 。根据奇异值分解的性质, UA 是正交矩阵, 即有 UAUAT==UATUA==E (E 为单位阵)。再根据奇异值分解的性质, 如果矩阵 A 的秩为 r,则 UA 的前 r 个列向量构成 A 的列向量张成的子空间的正交基, UA 的后面剩下的列向量构成 null(AT) ( AT 零空间)的正交基。此时 A为3行2列, 且列满秩, 所以 rank(A)==2 , UA 的前 2 个列向量构成平面α的正交基, UA 的最后一个列向量为平面α的法向量,如果用 Ao 表示 UA 的前 2 个列向量拼成的矩阵, An 表示 UA 的最后一个列向量,则 UA 可以写成分块矩阵的形式: UA==[Ao, An] ∵ UAUAT==E; ∴[Ao, An][Ao, An]T==E; ∴ AoAoT + AnAnT == E; ∴b == Eb == AoAoTb + AnAnTb; 实际上上式的意义很明显, 就是将向量b 分解为A 的列向量张成的子空间中的分量( AoAoTb ) 以及 null(AT) 中的分量( AnAnTb )两个部分。对于我们 3D 空间中的例子,就是将 b 分解为平面α上的分量以及α法向量上的分量。将这两个分量相加,就得到了 b。回过头来看方程 Ax==b 。当我们用伪逆对其进行求解时,得到的解为: x == (ATA)-1ATb; 实际上就是将原来的方程 Ax==b; 转化成了 ATAx==ATb; 这样的转化意味着什么呢?看方程等号右边的部分: ATb; 将 b==AoAoTb + AnAn
超定方程和伪逆(很好) 来自淘豆网m.daumloan.com转载请标明出处.