梯度下降法

2022-05-11 18:40:48 字數 1460 閱讀 9984

原理:初始化引數,然後拿到全部樣本,根據全部樣本算出代價函式對引數的偏導數,然後同時更新這些引數。接著還是全部樣本,計算。。。。。

注意:要做同步更新引數,而不是先更新乙個再更新另乙個。

注意:如果如果學習率很大,則每一步都會邁得很大,最後可能不會收斂了,若學習率很小,則步子很小,收斂太慢。

若學習率很大:(下圖是y=j(θ)曲線,縱座標為y)

若學習率較小:

當採用均方誤差形式的代價函式且為多元線性回歸問題時,梯度下降演算法表現為:

等價對應的矩陣表示:

注意:若多元線性回歸當中的不同特徵值(或不同屬性)的所處範圍相差很大時,可以讓對應屬性上的每個元素 - 所有樣本在該屬性上的均值 / 這個屬性的範圍或者標準差 ,這樣就將所有的特徵值(屬性值)對映到相同區間了,結果這批新資料的均值就為0,標準差為1,這樣會加速梯度下降演算法的收斂速度(feature scaling)。例如:

執行時,隨著迭代次數的不斷增加,引數也在不斷地變化,(每迭代一次,引數變化一次),因而代價函式也在不斷地變化。

注意:當出現下面這些情況時,應該把學習率調低點:

一般這樣嘗試學習率:

定義:

步驟(注意偏導數有變化,外層也可以迴圈上1到10次):

小技巧:為了更好地實現演算法的收斂,可以使得學習率動態變化:

演算法 評價方法:每1000次迭代算一下cost值(更新θ之前),該cost值是前1000個樣本的cost的平均值,隨後把圖畫出來看看。比如下圖,紅色代表學習率更小的那一條,波動表示存在雜訊。當然,若每5000次算一下,那麼曲線會更平滑一點。

它是前2者的折中,第一次選b個樣本進行訓練,第二次選新的b個樣本進行訓練。。。。

梯度下降法和隨機梯度下降法

批量梯度下降法 batch gradient descent 在更新引數時使用所有的樣本來進行更新 隨機梯度下降法 stochastic gradient descent 求梯度時沒有用所有的m個樣本的資料,而是僅僅選取乙個樣本j來求梯度。小批量梯度下降法 mini batch gradient d...

梯度下降法

梯度下降法 是乙個一階 最優化演算法 通常也稱為 最速下降法 我之前也沒有關注過這類演算法。最近,聽史丹福大學的機器學習課程時,碰到了用梯度下降演算法求解線性回歸問題,於是看了看這類演算法的思想。今天只寫了一些入門級的知識。我們知道,函式的曲線如下 程式設計實現 c code cpp view pl...

梯度下降法

回歸 regression 梯度下降 gradient descent 發表於332 天前 技術,科研 被圍觀 1152 次 前言 這個系列主要想能夠用數學去描述機器學習,想要學好機器學習,首先得去理解其中的數學意義,不一定要到能夠輕鬆自如的推導中間的公式,不過至少得認識這些 式子吧,不然看一些相關...