梯度下降法

2021-07-25 05:17:56 字數 1920 閱讀 6782

梯度下降法

是乙個一階迭代

優化演算法

,通常也稱為

最速下降法

。我之前也沒有關注過這類演算法。

近,聽史丹福大學的

機器學習

課程時,碰到了用梯度下降演算法求解線性回歸問題,於是看了看這類演算法的思想。今天只寫了一些入門級的知識。

我們知道,函式的曲線如下:

程式設計實現:c++ code

[cpp]view plain

copy

/** @author:鄭海波

* blog.csdn.net/nuptboyzhb/

* 2012-12-11

*/#include 

#include 

using

namespace

std;  

intmain()  

y0=y1;//更新迭代的結果

}  cout<

<

cout<

<

return

0;  

}  //執行結果

//min(f(x))=-0.25

//minx=1.5

//press any key to continue

問題:

迭代步長alpha為什麼要選擇0.5??選擇其他的值可以嗎?它的取值與迭代的次數、收斂性及結果的準確性有何關係?如何選擇alpha的值?

*******************

除了作者所說的alpha的取值,初值x0的取值應該怎麼取?對於有多個峰值的優化函式,取得不好的話,會陷入區域性極小值的。還有什麼牛頓法,lm法又是什麼意思??

*******************

wiki給出的解釋:

從wiki

的解釋可以看出:

1 對於單峰(或者說是凸函式)來說,梯度下降法是全域性最優解,其他情況下是區域性最優;

2 步長的選擇可以通過線性搜尋的方法獲得

ps:下面的變數 t就是f在x處的更新公式中的步長,函式 f  就是我們優化的目標函式 ,即f。

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

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

梯度下降法

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

梯度下降法

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