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