梯度下降法推導總結

2021-08-07 14:53:42 字數 1406 閱讀 7748

在傳統人工神經網路ann的訓練過程中,每次迭代的目的就是不斷地調整權值w1,w2,w3,...,wn,使訓練樣本經過神經網路的實際輸出值與目標輸出盡可能地接近。

實際輸出和目標輸出之間的誤差度量通常採用如下平方誤差準則:

(注:word的向量表示式佔多了乙個空格的空間,如對排版不滿,請多多包涵)

其中,d是訓練樣本集合(dataset),s是訓練樣本,t

s是s的目標輸出(即s的類別),o

s是s經過神經網路的實際輸出。常數因子是為了與推導過程中產生的因子1/2抵消。

現在我們**如何使訓練誤差e最小化。

觀察式1-1,對於特定問題,訓練集合d是固定的,即ts是固定的,而os只依賴於權值向量w,故訓練誤差e是權值向量w的函式。

在網路訓練過程中,為得到使訓練誤差e最小化的權值向量w,從任意的權向量w

0開始,以很小步長反覆修改這個權向量,每一步修改都使誤差e減小,直到找到使e合理最小化的權向量w

*。假設輸入點數目為n,則可以將最小化誤差e的操作,視為等同於在(n+1)維空間(w0~wn構成n維,e構成最後一維)中找到使誤差超拋物面e在第n+1軸上值最小的點。那麼,訓練過程就相當於尋找誤差超拋物面e的最低點或可以接受的合理低值點(因超拋物面可能有多個極小值點)。

為使誤差e減小的速度盡可能快,乙個合理的選擇就是找到超拋物面當前最陡峭的方向。而曲面下降最快的方向,也就是方向導數——梯度最大的方向。

誤差超拋物面的梯度是乙個向量,可表示為:

梯度向量中的每乙個值是e對w(向量,符號打不出來)中每個權值的偏導數。

由於梯度是上公升最快的方向,而我們尋找的是下降最快的方向,故對於權值的更新規則:

其中η是乙個正的常數,稱為學習速率,決定了下降步長。是w(向量,符號打不出來)當前的權值向量,▽w(向量,符號打不出來)代表向當前下降最快方向下降的一小段位移。

權值的更新規則可以表示成權值分量的形式:

在上式中,對於既定的訓練樣本s∈d,ts、os和xis在一次迭代裡面的值都是固定的,而η則是人為預先設定的常數值,按照該式計算權值更新是非常方便的,也是非常便於程式設計實現的。由於難度較低,具體的實現**在此就不予給出了。

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

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

梯度下降法

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

梯度下降法

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