所引第一個網址(圖)的演算式寫得很糟, 甚至應說是錯的!
A, x, b 是矩陣, (Ax-b) 是矩陣或向量, 除非 Ax-b 是方陣, 否則根本不能算
(Ax-b)^2, 遑論極小化?
2014-12-28 17:17:03 補充:
最小平方法是要 fit data points (X_i,y_i), i=1,...,n 到一個線性方程式, 其中
X_i 是一個向量. 明確的表示, 就是要用線性函數 y = α+β_1 x_1+...+β_p x_p
去 approximate 那些資料點 (x_{1i},...,x_{pi},y_i). 而最佳化準則是要求
minimize Σ_i [y_i - (α+β_1 x_{1i}+...+β_p x_{pi})]^2.
2014-12-28 17:17:27 補充:
用矩陣表示, 是要 minimize (y-Xb)'(y-Xb), 其中 (y-Xb)' 是 (y-Xb) 的轉置,
而 b = (α,β_1,...,β_p)', y = (y_1,...,y_n)', A 是常數 1 及諸 x_{ji} 構成的
n×(p+1) 矩陣.
用微分法, 以矩陣表示, 是找 (∂/∂b)(y-Xb)'(y-Xb) = 0 的 b 值. 事實上用
微積分課程中頓用的符號, 以 b 為自變數, 是找 ▽ (y-Xb)'(y-Xb) = 0
所對應的 b 值.
2014-12-28 17:17:39 補充:
想用 chain rule, 須知 y-Xb 是 b 的向量值函數, 因此, 要正確應用這公式,
必須適當指定向量值函數對向量值自變數的微分符號, 而且 chain rule 中
相乘的兩項順序是要注意的.
令 z = y-Xb, 則 ∂z/∂b = -X'.
又 (∂/∂z)(z'z) = 2z
所以
(∂/∂b)(y-Xb)'(y-Xb) = (∂z/∂b) (∂/∂z)(z'z) = -X'(2z) = -2X'(y-Xb).
2014-12-28 17:24:21 補充:
為什麼 z = y-Xb, 則 ∂z/∂b = -X' ?
考慮 z 之第 i 個成員, 一般寫成 z_i = y_i - (X_i)'b,
z_i 對 b 之微分, 即是 z_i 的梯度向量, 以行向量表示, 是 - X_i.
(∂/∂b)(z_i) 是 ∂z/∂b 的 i'th column.
2014-12-29 14:50:59 補充:
用原來的符號, 是
(∂/∂x)(Ax-b)'(Ax-b) = (∂/∂x)(Ax-b).2(Ax-b) = A'.2(Ax-b) = 2A'(Ax-b).
注意在 y = f(G(x)) = f(u) 關係 (假設 y 是實數值, u = G(x) 是向量值)
之中, 連鎖律是:
∂y/∂x = (∂u/∂x)(∂y/∂u)
而且 ∂u/∂x 是一個矩陣, 其 i'th column 即 u 之 i'th component 對
x 之梯度(行向量).
2014-12-29 14:57:55 補充:
設 y = f(G(x)) = f(u) (u = G(x) 是向量值)
若 x in R^n, u in R^m, y in R, 則
∂y/∂x 是 n-dimensional,
∂u/∂x 是 n×m matrix (m 個 columns 對應 u 的 m 個 components),
∂y/∂u 是 m-dimensional.
所以連鎖律是:
∂y/∂x = (∂u/∂x)(∂y/∂u)
這樣 dimension 才符合.