最小平方法與資料擬合

豪斯霍爾德轉換(Householder reflection)

/ HOWSS-holder /

豪斯霍爾德轉換是一面巧妙的鏡子。選一個通過原點的平面;這個反射把每個向量送到它對這平面的鏡像。像任何鏡子一樣,它保持長度與角度——只是翻轉。訣竅在於選對鏡子,使它恰好把某個選定向量翻到某條座標軸上,一舉把該向量除一項以外的所有分量都壓成零。串接幾個這樣的反射,正是最可靠地建立矩陣 QR 分解的方法。

具體來說,豪斯霍爾德反射子是 H = I - 2 v v^T / (v^T v),由單一向量 v(鏡面的法向量)建構的矩陣。把它作用在一個行上時,你選 v 使 H 把第一項以下的一切都歸零:H x = (alpha, 0, 0, ..., 0)^T。要把 A 三角化,你先反射第一行以在對角線下方放零,再在剩餘的下方區塊內反射以清掉第二行,依此類推;經 n 步後 A 變成上三角 R,而各反射的乘積就是 Q。你絕不把 H 存成完整矩陣——你以 x -> x - 2 (v^T x / v^T v) v 來作用它,這不過是一個內積加一次向量更新,既便宜又穩定。

豪斯霍爾德轉換是稠密 QR(以及為特徵值與 SVD 演算法做的 Hessenberg 與雙對角化約簡)背後的主力。它最大的優點是向後穩定:算出的分解正是某個非常接近 A 的矩陣的精確 QR,所以捨入誤差絕不爆增。一個細節:為避免在建構 v 時發生災難性抵消,你要把 alpha 的正負號選成指向遠離原向量的方向——這個微小細節對穩健性很重要。

要把 x = (3, 4)^T(長度 5)第一項以下的分量歸零,把它反射到軸上:H x = (-5, 0)^T 或 (5, 0)^T。選 alpha = -5(與首項 +3 異號)使 v = x - alpha e_1 = (8, 4)^T 夠大且尺度良好,避免抵消。一次反射,清掉一行。

一面鏡子把向量翻到某軸上,一次把整行對角線下方的分量歸零。

把豪斯霍爾德反射子當作秩一更新來作用,絕不要展成顯式稠密矩陣——這能保持低成本與演算法的向後穩定。並留意 v 的正負號選擇,否則抵消會悄悄侵蝕準確度。

又称
Householder transformationelementary reflector豪斯霍爾德反射