梯度下降法

2021-07-28 11:13:31 字數 564 閱讀 6647

梯度下降法(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 次 前言 這個系列主要想能夠用數學去描述機器學習,想要學好機器學習,首先得去理解其中的數學意義,不一定要到能夠輕鬆自如的推導中間的公式,不過至少得認識這些 式子吧,不然看一些相關...