梯度下降法(gradient descent):是求解無約束最優化問題的一種常用的方法。是一種迭代演算法。
輸入: 目標函式f(x), 梯度函式g(x) = ▽f(x) , 計算精度 ε;
輸出: f(x) 的極小點x*。
(1) 取初始值x(k) 屬於rn,置k= 0
(2) 計算f(x(k) )
(3) 計算梯度gk=g(x(k) ),當|| gk|| < ε 時,停止迭代,令x* = x(k);否則,令pk= -g(x(k) ),求λk,使f(x(k) +λkpk) = minf(x(k) +λkpk)
(4)置x(k+1)=x(k)+λkpk,計算f(x(k+1)) 當||f(x(k+1)) - f(x(k) )|| < ε 或者 ||x(k+1) - x(k) || < ε時, 停止迭代,令x* = x(k+1)
(5)否則,置k=k+1, 轉(3)
注:▽f(x) 是對未知數求導, λ是梯度下降的步長。梯度下降的越來越小,當小於 ε時停止。否則繼續迭代,新的變數的值為舊的變數的值x(k)加上步長乘以梯度的值λkpk
本文同《統計學習方法》書上內容一樣
梯度下降法和隨機梯度下降法
批量梯度下降法 batch gradient descent 在更新引數時使用所有的樣本來進行更新 隨機梯度下降法 stochastic gradient descent 求梯度時沒有用所有的m個樣本的資料,而是僅僅選取乙個樣本j來求梯度。小批量梯度下降法 mini batch gradient d...
梯度下降法
梯度下降法 是乙個一階 最優化演算法 通常也稱為 最速下降法 我之前也沒有關注過這類演算法。最近,聽史丹福大學的機器學習課程時,碰到了用梯度下降演算法求解線性回歸問題,於是看了看這類演算法的思想。今天只寫了一些入門級的知識。我們知道,函式的曲線如下 程式設計實現 c code cpp view pl...
梯度下降法
回歸 regression 梯度下降 gradient descent 發表於332 天前 技術,科研 被圍觀 1152 次 前言 這個系列主要想能夠用數學去描述機器學習,想要學好機器學習,首先得去理解其中的數學意義,不一定要到能夠輕鬆自如的推導中間的公式,不過至少得認識這些 式子吧,不然看一些相關...