1. 程式人生 > 其它 >2.4 Orthogonal Matrices and Gram-Schmidt 閱讀筆記

2.4 Orthogonal Matrices and Gram-Schmidt 閱讀筆記

標準正交矩陣和標準正交化

reference的內容為唯一教程,接下來的內容僅為本人的課後感悟,對他人或無法起到任何指導作用。

Reference

  1. Course website: Orthogonal Matrices and Gram-Schmidt | Unit II: Least Squares, Determinants and Eigenvalues | Linear Algebra | Mathematics | MIT OpenCourseWare
  2. Course video: 【完整版-麻省理工-線性代數】全34講 配套教材_嗶哩嗶哩_bilibili
  3. Course summary:
    Lecture 17: Orthogonal matrices and Gram-Schmidt (mit.edu)
  4. Extra Reading: Section 4.4 in Introduction to Linear Algebra, Fifth Edition by Gilbert Strang.

本節開始說明怎麼求出一個列空間的標準正交基,採用標準正交基會對投影和最小二乘公式的簡化有很大的幫助。注意 A 的列向量是獨立的

標準正交向量:

\[\boldsymbol{q}_i^{\mathrm{T}}\boldsymbol{q}_j=\begin{cases} 0 & \text{ if } i\ne j \\ 1 & \text{ if } i=j \end{cases} \]

如果 i=j 時不恆為 1 且非零,那麼僅僅是正交向量。

Orthonormal Matrices

設 Q 為一組標準正交向量組成的矩陣 \(\boldsymbol{Q}=\begin{bmatrix} \boldsymbol{q}_1 &\cdots &\boldsymbol{q}_n \end{bmatrix}\),則有:

\[\boldsymbol{Q}^{\mathrm{T}}\boldsymbol{Q}=\begin{bmatrix} \boldsymbol{q}_1^{\mathrm{T}}\\ \vdots\\ \boldsymbol{q}_n^{\mathrm{T}} \end{bmatrix}\begin{bmatrix} \boldsymbol{q}_1 &\cdots &\boldsymbol{q}_n \end{bmatrix}=\begin{bmatrix} \boldsymbol{q}_1^{\mathrm{T}}\boldsymbol{q}_1 & \cdots & \boldsymbol{q}_1^{\mathrm{T}}\boldsymbol{q}_n\\ \vdots & \ddots & \vdots\\ \boldsymbol{q}_n^{\mathrm{T}}\boldsymbol{q}_1 & \cdots & \boldsymbol{q}_n^{\mathrm{T}}\boldsymbol{q}_n \end{bmatrix}=\boldsymbol{I} \]

我們管這種矩陣叫“標準正交矩陣

”。

如果 Q 為方陣,則 \(\boldsymbol{Q}^{\mathrm{T}}=\boldsymbol{Q}^{-1}\)。此時的 Q 又被叫做正交矩陣 (Orthogonal Matrix)。

1.6 節有提到 \(\boldsymbol{P}^{-1}=\boldsymbol{P}^\mathrm{T}\),其實置換矩陣也是正交矩陣的一種,當時推導這個關係還並沒有用這個方法呢。但是還有很多不同型別的正交矩陣。比如 \(\begin{bmatrix} \cos\theta &-\sin\theta \\ \sin\theta &\cos\theta \end{bmatrix}\)\(\frac{\sqrt{2}}{2}\begin{bmatrix} 1 &-1 \\1 &1 \end{bmatrix}\)

Why Orthonormal Matrices?

為什麼一定要用標準正交矩陣呢?

仔細想想便知,對 XTX 求逆很麻煩,代入 X=Q 會發現 XTX=I,逆也是 I,直接沒了。這就大大簡化了投影的公式!

設我們要投影到 \(\boldsymbol{Q}\) 的列空間,則投影方程為:

\[\boldsymbol{Q}^{\mathrm{T}}\boldsymbol{Q}\hat{\boldsymbol{x}}=\hat{\boldsymbol{x}}=\boldsymbol{Q}^{\mathrm{T}}\boldsymbol{b} \]

所以投影分量 \(\hat{x_i}=\boldsymbol{q}_i^{\mathrm{T}}\boldsymbol{b}\)

投影矩陣為:

\[\boldsymbol{P}=\boldsymbol{Q}(\boldsymbol{Q}^{\mathrm{T}}\boldsymbol{Q})^{-1}\boldsymbol{Q}^\mathrm{T}=\boldsymbol{QQ}^{\mathrm{T}} \]
  • 如果 Q 為方陣,則相當於投影到整個列空間,顯然投影為自己,P=I,代數也可以推出來。
  • 如果 Q 不是方陣,那 P ≠ I

但無論怎麼說,有了標準正交矩陣,XTX 永遠消失了,太好了!那麼怎麼標準正交化呢?就要提出 Gram-Schmidt 正交化方法了。

Gram-Schmidt

Gram-Schmidt 正交化方法是對線性無關向量進行變換,求出其張成空間的標準正交基,其過程為:

線性無關向量 \(\boldsymbol{a},\boldsymbol{b},\boldsymbol{c},\cdots\) -> 正交向量 \(\boldsymbol{A},\boldsymbol{B},\boldsymbol{C},\cdots\) -> 標準正交向量 \(\boldsymbol{q}_1,\boldsymbol{q}_2,\boldsymbol{q_3},\cdots\)

Orthogonal -> Orthonormal

這一步很簡單:

\[\boldsymbol{q}_1=\frac{\boldsymbol{A}}{\left \| \boldsymbol{A} \right \|},\boldsymbol{q}_2=\frac{\boldsymbol{B}}{\left \| \boldsymbol{B} \right \|},\boldsymbol{q}_3=\frac{\boldsymbol{C}}{\left \| \boldsymbol{C} \right \|},\cdots \]

Independent -> Orthogonal

  1. 假設只有一個向量。

    則它自己構成正交向量組。

    \[\boldsymbol{A}=\boldsymbol{a} \]
  2. 假設有兩個向量,怎麼找出一個和第一個向量正交的向量呢?讓 b 在 A=a 上投影得到的誤差向量!

    則有:

    \[\boldsymbol{B}=\boldsymbol{e}=\boldsymbol{b}-\boldsymbol{Pb}=\boldsymbol{b}-\boldsymbol{A}\frac{\boldsymbol{A}^{\mathrm{T}}\boldsymbol{b}}{\boldsymbol{A}^{\mathrm{T}}\boldsymbol{A}} \]
  3. 現在又來了第三個向量,怎麼找出一個和前兩個都正交的向量呢?

    先讓 c 在 A=a 上投影得到投影向量,然後得到和 A 正交的誤差向量 e1,再讓 e1 在 B=e 上投影得到和 B 正交的誤差向量 e2,這樣獲得的第三個向量和第一個與第二個都正交!

    實際上 e1 在 B=e 上投影等價於 c 在 B 上投影!於是有:

    \[\boldsymbol{C}=\boldsymbol{e}_2=\boldsymbol{e}_1-\boldsymbol{P}_2\boldsymbol{c}=\boldsymbol{c}-\boldsymbol{P}_1\boldsymbol{c}-\boldsymbol{P}_2\boldsymbol{c}=\boldsymbol{c}-\boldsymbol{A}\frac{\boldsymbol{A}^{\mathrm{T}}\boldsymbol{c}}{\boldsymbol{A}^{\mathrm{T}}\boldsymbol{A}}-\boldsymbol{B}\frac{\boldsymbol{B}^{\mathrm{T}}\boldsymbol{c}}{\boldsymbol{B}^{\mathrm{T}}\boldsymbol{B}} \]
  4. 再來第四個向量就只需要讓其和前三個向量正交,求其在前三個向量投影,剪掉這三個分量的投影向量,剩下的向量就和前三個向量正交了!以此類推後面的。

A=QR

用矩陣形式表示正交化,由於右乘矩陣代表列變換(矩陣右乘向量代表線性組合,因此右乘矩陣代表列變換,之前只提過左乘矩陣代表行變換),因此原矩陣 A 和正交矩陣 Q 之間可以用一箇中間矩陣 R 來連線。

\[\boldsymbol{A}=\boldsymbol{Q}\boldsymbol{R} \]

為什麼用這樣的順序呢?因為可以知道 R 是什麼:

\[\boldsymbol{R}=\boldsymbol{Q}^{\boldsymbol{\mathrm{T}}}\boldsymbol{A}=\begin{bmatrix} \boldsymbol{q}_1^{\mathrm{T}}\\ \vdots\\ \boldsymbol{q}_n^{\mathrm{T}} \end{bmatrix}\begin{bmatrix} \boldsymbol{a}_1 & \cdots & \boldsymbol{a}_n \end{bmatrix}=\begin{bmatrix} \boldsymbol{q}_1^{\mathrm{T}}\boldsymbol{a}_1 & \cdots & \boldsymbol{q}_1^{\mathrm{T}}\boldsymbol{a}_n\\ \vdots & \ddots & \vdots\\ \boldsymbol{q}_n^{\mathrm{T}}\boldsymbol{a}_1 & \cdots & \boldsymbol{q}_n^{\mathrm{T}}\boldsymbol{a}_n \end{bmatrix} \]

更奇妙的是,由於 Gram-Schmidt 中,

  • q2 和 a(或者a1)=q1 正交。
  • q3 和 a(或者a1)=q1,b(或者a2)=Linear_Combination(A,B也就是q1,q2) 正交。
  • q4 和 a(或者a1),b(或者a2),c(或者a3) 正交
  • ......

所以 R 為上三角矩陣,左下角全為0.


這一章真正整理的時候感覺很亂,發現很多概念都理解錯了。比如沒搞明白為什麼 R 是個上三角陣,正交化方法是讓原向量減去其在前面各個向量的投影(我理解成一種迭代的過程,用減掉第一個向量投影之後的誤差向量繼續往第二個向量投影,這樣是可以的但是沒法計算了,誤差向量往第二個向量投影正等價於直接用原向量在第二個向量投影),以及標準正交化的大前提是對線性無關的向量操作,如果線性相關的話最小二乘法會有多解等等。所以感覺整理起來相當糟糕,今後也不知道回看還能不能看懂。