2015年1月11日 星期日

[機器學習](七)正規方程法(Normal Equation)

正規方程法(Normal Equation)

對於某些線性回歸問題,可以用正規方程法求解參數$\theta$的最優解。

相對於梯度下降一步一步慢慢求解$\theta$的最優值,正規方程式可以一次性求解$\theta$的最優值,也就是一步就可以得到最優值。

以微積分來說,對這個二次函數求其偏導數為0時的$\theta$值即可得出最優解,也就是能夠最小化成本函數$J(\theta)$的$\theta$。

假設我有四個training example,為了實現正規方程式,我要做的就是在training set中加上一個額外特徵${ x }_{ 0 }$,也就是值永遠為1的那個,接下來就是建立一個包含這些樣本特徵的矩陣:


m = 樣本數量
n = 特徵數量
X = 一個m乘(n+1)的矩陣
y = 一個m維向量

最後計算$\theta ={ ({ X }^{ T }X) }^{ -1 }{ X }^{ T }y$,這就是能讓成本函數最小化的$\theta$值了。


X我們叫他設計矩陣,當中每一列是特徵向量的轉制。

如果你使用正規方程法求$\theta$,就不用做特徵縮放了,但如果使用梯度下降法,特徵縮放還是很重要。

何時該使用梯度下降法或是正規方程法?


下圖給出了比較:


${ X }^{ T }X$的維度為nxn(特徵數目x特徵數目),如果n開始大於10000以上,可能就會考慮採用梯度下降法。

總結:
如果特徵數量並不大,用正規方程法很好,但當特徵數量愈來愈大時,或者是之後的學習演算法愈來愈複雜,例如分類演算法中的邏輯回歸演算法,正規方程法是無法應用在上面的,還是必須得使用梯度下降法。

沒有留言:

張貼留言