學習筆記 隨機梯度下降法

2021-10-07 08:04:29 字數 879 閱讀 7637

《神經網路和深度學習》:

梯度下降法中,目標函式是整個訓練集上的風險函式,這種方式稱為批量梯度下降法(batch gradient descent,bgd)。批量梯度下降法在 每次迭代時需要計算每個樣本上損失函式的梯度並求和.當訓練集中的樣本數量n很大時,空間複雜度比較高,每次迭代的計算開銷也很大。

真正的優化目標是期望風險最小,批量梯度下降法相當於是從真實資料分布中採集n個樣本,並由它們計算出來的經驗風險的梯度來近似期 望風險的梯度。為了減少每次迭代的計算複雜度,我們也可以在每次迭代時只 採集乙個樣本,計算這個樣本損失函式的梯度並更新引數,即隨機梯度下(stochastic gradient descent,sgd)。當經過足夠次數的迭代時,隨機梯度下降也可以收斂到區域性最優解。

批量梯度下降和隨機梯度下降之間的區別在於,每次迭代的優化目標是對所有樣本的平均損失函式還是對單個樣本的損失函式。

隨機梯度下降的缺點是無法利用計算機的平行計算能力,所以有了小批量梯度下降法,它是兩種方法的折中,隨機選取一小部分訓練樣本來計算梯度並更新引數。

在實際應用中,小批量隨機梯度下降法有收斂快、計算開銷小的優點,因此 逐漸成為大規模的機器學習中的主要優化演算法。

#使用隨機梯度下降的優化器

optimizer = optim.sgd(model.parameters(

),lr =

0.01

, momentum =

0.9)

optimizer = optim.adam(

[var1,var2]

,lr =

0.0001

)

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

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

隨機梯度下降法

剛剛看完史丹福大學機器學習第四講 牛頓法 也對學習過程做一次總結吧。一 誤差準則函式與隨機梯度下降 數學一點將就是,對於給定的乙個點集 x,y 找到一條曲線或者曲面,對其進行擬合之。同時稱x中的變數為特徵 feature y值為 值。如圖 乙個典型的機器學習的過程,首先給出一組輸入資料x,我們的演算...

隨機梯度下降法

自定義虛擬資料集 import numpy as np import matplotlib.pyplot as plt m 100000 m個樣本 x np.random.normal size m x x.reshape 1 1 y 4.x 3 np.random.normal 0,3,size ...