隨機梯度下降

2021-07-25 05:00:58 字數 2430 閱讀 2923

簡單的介紹一下什麼是隨機梯度下降,為什麼要用隨機梯度下降這個方法。

在我們進行深度學習的時候,對於神經網路的輸出結果,我們需要知道結果對不對,以及每個神經元的閾值和權重對不對,對於以及我調整一下權重和閾值,神經網路的輸出結果和我們預期的輸出結果會更接近還是誤差更大。如果更接近,那麼我們可以繼續調整權重和閾值,讓神經網路的輸出結果等於預期。那麼我們如何進行定量的分析呢?不能只依靠感覺,這個時候,我們引入函式 c(

w,b)

≡12n

∑x∥y

(x)−

a∥2.

(1) 其中y

(x) 代表我們預期的輸出結果,比如說,乙個識別手寫阿拉伯數字的神經網路,我們網路的輸出就是乙個10維的向量,比如(1

,0,0

,0,0

,0,0

,0,0

,0) 代表0,(0

,1,0

,0,0

,0,0

,0,0

,0)代

表1,而a代表乙個神經網路實際輸出的結果,w 和

b就分別代表了權重和閾值。也就是說,我們如果想要讓乙個神經網路的結果更準確,就需要找到合適的w ,

b,讓c更小。即求函式c的最小值。

也就是說,我們現在是要求乙個函式的最小值,讓我們僅僅從數學方面思考,如何求解乙個函式的最小值。假設有乙個函式c(

v),而這個函式有兩個變數v1

,v2 ,首先想到的就是微積分,假如只有2個變數,我們就要求出函式的二階偏導,然後再令二階偏導等於0,算出幾個點,再判斷這幾個點哪個是最大值,哪個是最小值,哪個是鞍點。可是問題是,我們處理的資料大部分都是多維的,甚至達到百萬級別,所以用微積分的話,那就很難算出來了。因此我們就需要梯度下降的方法

我們先假設在求乙個二元函式的最小值,它的影象如圖所示:

假設我們在這個影象曲面上放置乙個小球,它受到重力影響,肯定會往下滑落,而最終停止的地方,就是整個函式的最小值,這個就是梯度下降的大致思想。為了更清楚的說明這個問題, 我們把v1

在v1 方向移動δv

1 ,在v2

在v2 方向移動δv

2 ,根據微積分,我們可以得到: δc

≈∂c∂

v1δv

1+∂c

∂v2δ

v2.(2) v

1 和v2

,可以讓δc

小於0,這樣我們才能讓小球一直往最低點前進。因為函式c的梯度為: ∇c

≡(∂c

∂v1,

∂c∂v

2)t.

(3)

因此(3)可以改寫成 δc

≈∇c⋅

δv.(4) δ

v 令∇c

為負數呢?我們可以選擇令: δv

=−η∇

c(5)

原式可變為 δc

≈−η∇

c⋅∇c

=−η∥

∇c∥2

∥∇c∥2≥0

, 這就保證了 δc

≤0。 那麼−η

怎麼求呢?因為δv

=−η∇

c ,因此−η

=∥δv

∥∥∇c

|∥,我們可以事先規定∥δ

v∥的大小,然後求出 ∥∇

c∥。那麼−η

的值就求出來了。

根據前面的介紹,我們已經可以算出最小點在**了(理論上),但是隨機梯度下降還有一些問題,我在這裡說兩個: (1)容易陷入區域性極小值,在前面的圖中,我們只畫出了乙個全域性極小值點,所以梯度下降可以直接找到最小點,但是在實際中,函式會有很多區域性極小值,因此梯度下降可能會停止在區域性極小值中,而不是全域性極小值。 (2)計算量太大,注意到式(1),我們計算所有輸入影象的cost function,然後取平均,這樣計算量太大了。 因此,我們可以通過計算乙個小樣本裡的∇c

x 來估計 ∇c

的值。 我們隨機選取輸入 x1

,x2,

…,xm

, 把它們看做是乙個迷你批(mini-batch). 樣本數

m 要足夠大以致於我們可以估計出∇c

xj如下式所示:∑m

j=1∇

cxjm

≈∑x∇

cxn=

∇c,(6) ∇

c≈1m

∑j=1

m∇cx

j,(7) wk

bl→→

w′k=

wk−η

m∑j∂

cxj∂

wkb′

l=bl

−ηm∑

j∂cx

j∂bl

,(8)

(9) 其中w

和b分別代表權值和閾值。當我們遍歷完所有迷你批以後,接著在剩下的樣本中選取第二個迷你批,直到窮盡所有樣本,此時稱為完成一次epoch。然後繼續上述過程。

梯度下降 隨機梯度下降 批梯度下降

下面的h x 是要擬合的函式,j 損失函式,theta是引數,要迭代求解的值,theta求解出來了那最終要擬合的函式h 就出來了。其中m是訓練集的記錄條數,j是引數的個數。梯度下降法流程 1 先對 隨機賦值,可以是乙個全零的向量。2 改變 的值,使j 按梯度下降的方向減少。以上式為例 1 對於我們的...

stanford 梯度 梯度下降,隨機梯度下降

一 梯度gradient 在標量場f中的一點處存在乙個向量g,該向量方向為f在該點處變化率最大的方向,其模也等於這個最大變化率的數值,則向量g稱為標量場f的梯度。在向量微積分中,標量場的梯度是乙個向量場。標量場中某一點上的梯度指向標量場增長最快的方向,梯度的長度是這個最大的變化率。更嚴格的說,從歐氏...

梯度下降 隨機梯度下降和批量梯度下降

對比梯度下降和隨機梯度下降和批量梯度下降 之前看的知識比較零散,沒有乙個系統的解釋說明,看了一些網上的博主的分析,總結了一下自己的理解。例子這裡我參照其他博主的例子做了一些修改,首先是梯度下降 coding utf 8 import random this is a sample to simula...