判斷兩個向量是否正交技巧 兩個向量正交怎么算

線性代數作為一門被廣泛應用在計算機領域的學科, 重要性不言而喻. 但很多人學完線代還是停留在解題的范疇內, 并未能將其應用到實際中. 本文講解了線代中的Schmidt正交化及其簡化正規方程的方法. 通過了解正交矩陣的概念及其應用來進一步理解線性代數的應用.
本篇目錄

  1. 什么是標準正交矩陣
  2. 標準正交矩陣有什么用
  3. 如何利用Gram-Schmidt法則得到一個正交矩陣
在正式開始前我想先補充一點基本知識, 以便于接下來的展開.
什么是正交?
正交其實就是垂直這一概念的拓展, 可以直接將其認為是垂直. 舉個例子, 在二維空間中, 兩個向量a,b正交就代表這兩個向量之間的夾角為90, 也就是互相垂直. 在線性代數中, 若兩向量點乘為0, 則這兩個向量正交 (這個可以通過畢達哥拉斯定理證明).
為什么向量點積為0, 向量相互垂直?
判斷兩個向量是否正交技巧 兩個向量正交怎么算

文章插圖
判斷兩個向量是否正交技巧 兩個向量正交怎么算

文章插圖

構建一個向量直角三角形, 三邊關系為|A|^2 + |B|^2 = |C|^2 , C = A + B
利用模的平方等于向量與自己的點積這一特性, 帶入發現唯有A^TB = 0 時直角三角形才成立, 由此可得向量點積為0時, 兩向量垂直
什么是標準正交矩陣
如果一個矩陣的基(basis)由標準正交向量(orthonormal vector)構成, 我們則稱該矩陣為標準正交矩陣.
判斷兩個向量是否正交技巧 兩個向量正交怎么算

文章插圖
判斷兩個向量是否正交技巧 兩個向量正交怎么算

文章插圖

q表示標準正交向量, Q表示標準正交矩陣. 矩陣中每一列與其他列的點積為0, 與自己的點積為1(向量與自己轉置的點積是該向量模的平方)
根據上面的性質, 我們可以得知正交矩陣的轉置和正交矩陣相乘會得到單位矩陣(注: 正交矩陣不一定是方陣)
判斷兩個向量是否正交技巧 兩個向量正交怎么算

文章插圖
判斷兩個向量是否正交技巧 兩個向量正交怎么算

文章插圖

正交矩陣的這個性質可以簡化某些公式, 這也是為什么正交矩陣很重要的原因
標準正交矩陣有什么用
最常見的矩陣應用莫過于機器學習算法了. 比如線性回歸算法, 以微積分為理論發展而出的梯度下降算法可以找到一組數據的最優解. 但是梯度下降算法有兩個明顯的缺點 1) 需要經歷多輪迭代 2) 需要選擇一個合適的學習率α. 而在線性代數中, 我們可以通過正規方程來一步到位的找到最優解.
正規方程:
判斷兩個向量是否正交技巧 兩個向量正交怎么算

文章插圖
判斷兩個向量是否正交技巧 兩個向量正交怎么算

文章插圖

θ是參數向量, X是設計矩陣, 由數據集構成. y則是結果集向量
其原理是將目標值y投影到設計矩陣X上, 得到最接近y的參數向量θ. 盡管正規方程在參數數量n較小的時候極為高效, 當n大于大約10^4數量級的時候, 正規方程的效率就不盡人意了. 原因是計算(X^TX)^-1的時間復雜度高達O(n^3), 當參數數量增大時, 時間成本呈三次遞增. 而標準正交矩陣恰好解決了正規方程耗時的缺點, 簡化了正規方程.

推薦閱讀