1. 程式人生 > >吳恩達機器學習課程第一週

吳恩達機器學習課程第一週

關於線性迴歸的記錄:
使用的損失函式是平方誤差損失函式J(θ),也就是最簡單的假設函式和真實值差的平方和(對於所有樣本求和),然後最小化J(θ),也就是使用梯度下降演算法;平方誤差代價函式是解決迴歸問題最常見的手段;

對於單變數線性迴歸問題:
這裡寫圖片描述

如果是對於單變數線性迴歸,代價函式(引數為θ)關於假設函式中引數的圖形為:
這裡寫圖片描述

因為只有一個變數所以只有兩個引數,總可以找到一組引數使得該代價函式最小,當然我們需要一種優化演算法可以自動的求解使得代價損失函式最小的模型的引數值;

梯度下降演算法:
梯度下降演算法是用來求解函式最小值的演算法,我們使用該演算法來求解使得代價函式取最小值的模型的引數,梯度下降背後的思想是首先找一組引數(初始化的值)計算代價函式,接下來我們取另一組可以使代價函式下降最多的引數組合,重複這樣的步驟知道最後找到一個區域性最小值。

批量梯度下降(batch gradient descent):
這裡寫圖片描述

批量梯度下降演算法用於求解使得代價函式J(θ)最小的模型引數θ的值,更新的公式為:
這裡寫圖片描述

我們需要注意的是在更新模型的引數時需要做到同時更新,也就是下面correct的方法,上面那個並沒有保證同時更新(我的理解是首先更新了θ0 然後用這個更新了的θ0去更新原來的θ1,這樣並沒有保證同時更新~)

梯度下降演算法的描述為:
對引數θ進行賦值,使得J(θ)能夠按照梯度下降最快的方向進行,一直按照這樣的方式進行更新引數θ,直到找到J(θ)的區域性最小值;

這裡寫圖片描述

接下來將梯度下降演算法和線性迴歸演算法進行結合:
這裡寫圖片描述

把上面的導數計算出來之後(對於單變量回歸問題)的模型引數θ的更新方式為:
這裡寫圖片描述

我們可以發現對於梯度下降演算法每一步更新我們都使用了全部的樣本量,所以這種梯度下降也稱為批量梯度下降(batch gradient descent),相應的也有其他的梯度下降演算法更新引數(比如隨機梯度下降演算法)
其實我們之前也有學過線性代數,計算函式的最小值,直接就是求導,也就是不採用梯度下降這樣的迭代演算法進行更新,直接計算函式的最小值(採用解析方式)被稱為正規方程(normal equation),實際上在資料量比較大的情況下,梯度下降演算法使用的比較多~

好了,今天就先到這裡啦~