【深度学习】——梯度下降优化算法(批量梯度下降、随机梯度下降、小批量梯度下降、Momentum、Adam)
目錄
梯度
梯度下降
常用的梯度下降算法(BGD,SGD,MBGD)
梯度下降的詳細(xì)算法
算法過(guò)程
批量梯度下降法(Batch Gradient Descent)
隨機(jī)梯度下降法(Stochastic Gradient Descent)
小批量梯度下降法(Mini-batch Gradient Descent)
?梯度下降的優(yōu)化算法
存在的問題
梯度下降優(yōu)化的方法
?機(jī)器學(xué)習(xí)中具體梯度下降的優(yōu)化算法
基于陷入局部最優(yōu)的問題的優(yōu)化
Momentum算法
基于學(xué)習(xí)率方面進(jìn)行的梯度優(yōu)化
Adam算法(Adaptive Moment Estimation)
參考:梯度下降(Gradient Descent)小結(jié)
梯度
概念:在微積分里面,對(duì)多元函數(shù)的參數(shù)求?偏導(dǎo)數(shù),把求得的各個(gè)參數(shù)的偏導(dǎo)數(shù)以向量的形式寫出來(lái),就是梯度。
?意義:梯度是函數(shù)在當(dāng)前位置變化最快的方向,因此可以使得損失函數(shù)很快地找到極值,損失一般是找極小值,進(jìn)而用于指導(dǎo)訓(xùn)練模型中參數(shù)的更新。?
梯度下降
????????首先來(lái)看看梯度下降的一個(gè)直觀的解釋。比如我們?cè)谝蛔笊缴系哪程幬恢?#xff0c;由于我們不知道怎么下山,于是決定走一步算一步,也就是在每走到一個(gè)位置的時(shí)候,求解當(dāng)前位置的梯度,沿著梯度的負(fù)方向,也就是當(dāng)前最陡峭的位置向下走一步,然后繼續(xù)求解當(dāng)前位置梯度,向這一步所在位置沿著最陡峭最易下山的位置走一步。這樣一步步的走下去,一直走到覺得我們已經(jīng)到了山腳。當(dāng)然這樣走下去,有可能我們不能走到山腳,而是到了某一個(gè)局部的山峰低處。
具體實(shí)施:從整體來(lái)看,當(dāng)點(diǎn)下降最快的方向不是由某一個(gè)維度的偏導(dǎo)決定的1,而是由所有維度的偏導(dǎo)共同決定的,這也符合“梯度是變化最快的方向”和“梯度是函數(shù)對(duì)所有參數(shù)求偏導(dǎo)后的值的向量”這兩個(gè)說(shuō)法。在實(shí)際實(shí)施中,我們一般是通過(guò)偏導(dǎo)來(lái)指導(dǎo)不同參數(shù)的更新,以此來(lái)做到函數(shù)值下降得最快(梯度方向)。這就是梯度下降的本質(zhì)。
????????從上面的解釋可以看出,梯度下降不一定能夠找到全局的最優(yōu)解,有可能是一個(gè)局部最優(yōu)解。當(dāng)然,如果損失函數(shù)是凸函數(shù),梯度下降法得到的解就一定是全局最優(yōu)解。
常用的梯度下降算法(BGD,SGD,MBGD)
梯度下降的詳細(xì)算法
算法過(guò)程
一般有兩種方法,一種迭代,一種矩陣運(yùn)算,具體見:梯度下降(Gradient Descent)小結(jié)
批量梯度下降法(Batch Gradient Descent)
?優(yōu)點(diǎn):對(duì)于準(zhǔn)確率來(lái)說(shuō),因?yàn)槭褂昧巳繕颖镜奶荻?#xff0c;所以準(zhǔn)確率會(huì)更高
缺點(diǎn):但是使用了全部樣本,導(dǎo)致在訓(xùn)練速度和收斂速度上都比較慢
隨機(jī)梯度下降法(Stochastic Gradient Descent)
?優(yōu)點(diǎn):隨機(jī)梯度下降就是BGD的極端,只是隨機(jī)選擇一個(gè)樣本的梯度來(lái)指導(dǎo)梯度的下降,因?yàn)槭褂昧艘粋€(gè)樣本,因此其訓(xùn)練速度會(huì)很快
缺點(diǎn):但是非常依賴于初始值和步長(zhǎng)的影響,有可能會(huì)陷入局部最優(yōu)中,導(dǎo)致收斂速度慢
小批量梯度下降法(Mini-batch Gradient Descent)
在深度學(xué)習(xí)中,SGD和MBGD統(tǒng)稱為SGD
這個(gè)梯度下降算法其實(shí)就是結(jié)合了BGD和SGD兩者,采用了小批次的梯度來(lái)進(jìn)行計(jì)算。
優(yōu)點(diǎn):分擔(dān)了訓(xùn)練壓力(小批量)、加快收斂
缺點(diǎn):初始學(xué)習(xí)率難以確定、容易陷入局部最優(yōu)
?梯度下降的優(yōu)化算法
存在的問題
BGD、SGD以及MBGD都是比較常見的梯度算法,但是都存在以下問題:
1)學(xué)習(xí)步長(zhǎng)(學(xué)習(xí)率)難以確定,是超參數(shù),太大導(dǎo)致跳過(guò)最優(yōu)解,太小收斂速度慢,可能會(huì)導(dǎo)致陷入局部最優(yōu);
2)參數(shù)初始值的確定,不同初始值有可能會(huì)產(chǎn)生不同的最優(yōu)解,比如初始值分別在兩座山的山頂,那得到的山腳位置自然是可能不一樣的;
3)樣本特征值的差異性大,變化范圍大
梯度下降優(yōu)化的方法
?機(jī)器學(xué)習(xí)中具體梯度下降的優(yōu)化算法
基于陷入局部最優(yōu)的問題的優(yōu)化
Momentum算法
Momentum算法是在MBGD的基礎(chǔ)上進(jìn)行了修改,即在梯度方向上增加動(dòng)量(Momentum),意思指在更新梯度時(shí),會(huì)保留之前更新的梯度方向,然后利用當(dāng)前批次的梯度進(jìn)行微調(diào)
優(yōu)點(diǎn):
1)能夠抑制梯度的震蕩,在梯度與上次相同的時(shí)候梯度下降多一點(diǎn),反之少一點(diǎn)
2)有可能跳出局部極值
基于學(xué)習(xí)率方面進(jìn)行的梯度優(yōu)化
Adam算法(Adaptive Moment Estimation)
優(yōu)點(diǎn):
1)每一次迭代的學(xué)習(xí)率都在依次確定的范圍內(nèi) ,使得參數(shù)更新更加地穩(wěn)定
2)使模型更加地收斂,適用于深層網(wǎng)絡(luò)和較為復(fù)雜的場(chǎng)景
參考文獻(xiàn)
https://blog.csdn.net/liuy9803/article/details/81780543
https://www.cnblogs.com/pinard/p/5970503.html
物體檢測(cè)書籍
總結(jié)
以上是生活随笔為你收集整理的【深度学习】——梯度下降优化算法(批量梯度下降、随机梯度下降、小批量梯度下降、Momentum、Adam)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用开发环境搭建配置教程(OneStal
- 下一篇: 【深度学习】——物体检测细节处理(NMS