梯度下降法入門

2021-06-22 03:29:19 字數 1401 閱讀 3513

梯度下降法

是乙個一階

最優化演算法

,通常也稱為

最速下降法

。我之前也沒有關注過這類演算法。最近,聽史丹福大學的機器學習課程時,碰到了用梯度下降演算法求解線性回歸問題,於是看了看這類演算法的思想。今天只寫了一些入門級的知識。

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

程式設計實現:c++ code

[cpp]view plain

copy

print?

/** @author:鄭海波

* blog.csdn.net/nuptboyzhb/

* 2012-12-11

*/#include

#include

using

namespace std; 

int main() 

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

}  cout<

}  //執行結果

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

//minx=1.5

//press any key to continue

/*
* @author:鄭海波

* blog.csdn.net/nuptboyzhb/

* 2012-12-11

*/#include #include using namespace std;

int main()

{ double e=0.00001;//定義迭代精度

double alpha=0.5;//定義迭代步長

double x=0;//初始化x

double y0=x*x-3*x+2;//與初始化x對應的y值

double y1=0;//定義變數,用於儲存當前值

while (true)

{ x=x-alpha*(2.0*x-3.0);

y1=x*x-3*x+2;

if (abs(y1-y0)問題:

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

梯度下降法(一)入門

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

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

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

梯度下降法

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