这部分我们有两个目标。一是了解正交性是怎么让 (hat x) 、(p) 、(P) 的计算变得简单的,这种情况下,(A^TA) 将会是一个对角矩阵。二是学会怎么从原始向量中构建出正交向量。
1. 标准正交基
向量 (q_1, cdots, q_n) 是标准正交的,如果它们满足如下条件:
如果一个矩阵的列是标准正交的,我们称之为 (Q)。很容易,我们可以得到 (Q^TQ=I)。
当 (Q) 是方阵的时候,我们可以得到 (Q^T=Q^{-1}),也即转置等于逆。
- 旋转(Rotation)
旋转矩阵 (Q) 就是将任意向量逆时针旋转 ( heta),其逆矩阵 (Q^{-1}) 就是将任意向量顺时针旋转 ( heta)。
- 置换(Permutation)
置换矩阵的作用就是交换矩阵的行,在消元的时候有很大的作用。
- 镜像(Reflection)
如果 (u) 是任意单位向量,那么 (Q = I-2uu^T) 是一个正交矩阵。
绕对称轴镜像两次还是它本身。
取 (u_1=(1, 0)),(u_2=(1/sqrt2, -1/sqrt2)),然后,我们可以得到两个正交矩阵。
(Q_1) 将任意向量 ((x, y)) 变为 ((-x, y)),(y) 轴是镜像轴。(Q_2) 将任意向量 ((x, y)) 变为 ((y, x)),(45°) 轴是镜像轴。
可以看到,旋转、置换和镜像都不会改变一个向量的长度。实际上,乘以任意正交矩阵都不会改变向量的长度。
而且,正交矩阵也会保留两个向量的点积。
2. 正交矩阵的投影
当矩阵 (A) 变成了正交矩阵 (Q),那么投影就会变得非常简单,我们不需要求任何逆矩阵。
当 (Q) 为方阵的时候,子空间为整个空间,有 (Q^T=Q^{-1})。(hat x = Q^Tb) 就等同于 (x=Q^{-1}b),也就是有唯一解,(b) 的投影即为它本身。
这就是傅里叶变化和所有应用数学中各种变化的基础,它们将向量或者函数分解成正交的小片,将这些小片加起来之后就回到了原函数。
3. Gram-Schmidt 正交化和 (A) 的 (QR) 分解
从上面我们可以看到正交对我们是非常有利的,现在我们就要找到一个方法来创造出标准正交的向量。假设我们有三个不相关的向量 (a, b, c),如果我们能构造出正交的三个向量 (A,B,C),那么再除以它们的长度就得到了标准正交向量。
首先,我们选取 (A=a),那么 (B) 必须垂直于 (A) 。我们用 (b) 减去其在 (A) 的投影,就得到了垂直于 (A) 的部分,这也就是我们要找的 (B)。
接着,我们再用 (c) 减去其在 (A) 和 (B) 的投影,就得到我们要找的 (C)。
如果我们有更多的向量,那我们就用新的向量减去它在已经设定好的所有向量上的投影即可,最后,我们再除以它们各自的长度就得到了标准正交向量。
可以看到,(q_1=a/||a||),没有涉及到其它向量,(a)、(q_1)、(A) 都位于一条线上。第二步中 (b) 也只是 (A) 和 (B) 的线性组合,不涉及到后面的向量,(a,b)、(q_1,q_2)、(A,B) 都位于一个平面内。在每一个步骤中,(a_1, a_2, cdots, a_k) 只是 (q_1, q_2, cdots, q_k) 的线性组合,后面的 (q) 没有涉及到。
联系 (A) 和 (Q) 的矩阵 (R) 是上三角形矩阵,有 (A=QR)。
任意 (m×n) 的矩阵 (A),如果其列是不相关的,那么就可以分解成 (QR),(Q) 的列是标准正交的,而 (R) 是上三角矩阵并且对角线元素为正,为向量 (cdots B,Ccdots) 的长度。
然后,最小二乘就变成了
获取更多精彩,请关注「seniusen」!