在隨機梯度法的使用中,loss function的計算,是用乙個樣本進行計算還是用所有樣本進行計算?

時間 2021-05-09 08:24:43

1樓:讓cpu飛一會兒

loss函式的計算都是針對單一樣本的,只是在乙個批次上都會對這一批樣本做聚合,最常見的就是平均,當然也可以是sum或者自定義聚合函式。

2樓:ARYA

隨機梯度下降,一次對乙個樣本前向計算輸出,反向計算梯度,更新引數。

與之相對的是batch 梯度下降,一次計算全部資料,計算平均梯度,更新引數。

當然最常用的是mini batch乙個計算乙個小batch的資料,計算平均梯度,更新引數。

3樓:

乙個樣本。具體去寫吳恩達2-2的作業就會了,看看大叔先生的csdn部落格,附上原始碼,可以看到每次只抽取乙個樣本,計算前向傳播、loss、梯度、更新引數。

4樓:

題主問的應該是Stochastic gradient descent(SGD)的情況吧

梯度下降法分3種:

SGD 隨機梯度下降:每次計算乙個樣本的loss function, 然後根據乙個樣本的梯度萊更新引數;這種做法速度比較快但可能會收斂到區域性最優

Batch gradient descent 批梯度下降(也有地方叫full-batch gradient descent),每次利用整個訓練集的樣本求loss function(需要對所有樣本求平均),再求梯度更新引數;好處在於每次計算的負梯度方向更加接近最值所在方向,因而需要迭代的次數少;缺點是每次訓練的時間較長(尤其是訓練樣本比較多的時候)

minibatch gradient descent,小批次梯度下降,是前兩種方法的折中:每次選取乙個batch(batch size 一般選2的冪次,常用32,64)的資料計算loss function然後求梯度。在速度和效能上折中

5樓:Mr.Z

梯度下降:一次計算所有樣本的誤差再求平均,再求梯度SGD(隨機梯度下降):蒙特卡洛取樣,用乙個樣本的誤差代替所有樣本的平均誤差,再求梯度

mini batch SGD:以上兩種方法的折中,用乙個小batch的平均誤差來近似,再求梯度。

現在一般都用的是mini batch SGD

Java中的類和c 中的類,在使用中要理解?

Lieu 長文慎入,內含 星際 穿越 我覺得這是乙個程式語言設計的問題,也是個空間緯度的問題.很有意思.還沒接受過科班的CS的訓練,程式設計經驗僅限J2EE的前後端,拋磚引玉,談談自己的思考.二維世界 我認為程式語言的基本元素是操作符和變數,而通過操作符操作變數這一行為即乙個語句.比如有變數a,有操...

在Mac的terminal中如何使用命令來啟動應用程式?

1 命令列開啟檔案 open t test.py 會使用.py檔案的預設文字編輯器開啟檔案 其它字尾名檔案同理 2 命令列開啟應用 open a safari 可以開啟乙個safari瀏覽器 重點是這裡的safari是MacOS應用程式的軟連線或alisa open a Sublime Text 可...

在語言研究中,如何看待語料的使用?

王泓硯 句子接受度體現個體的認知水平,認知水平包括兩個方面,一是對事物聯絡的認知,比如事物之間的相似性 能動性,由於生活環境不同個體對事物的認識水平差異很大,有的人可能還有特異功能,對事物有全新的解釋 二是對表達手段的認知,比如某些人的詞彙量很大,懂得承轉啟合 條分縷析,這種手段反應在句子上就是語法...