深度学习各种优化算法(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)

標準梯度下降法:

彙總所有樣本的總誤差,然後根據總誤差更新權值

 

SGD隨機梯度下降:

mini  batch代替全部樣本

曲面的某個方向更加陡峭的時候會被困住

Xt+1=Xt-α Δf(x1)

隨機抽取一個樣本誤差,然後更新權值 (每個樣本都更新一次權值,可能造成的誤差比較大)

 

批量梯度下降法:相當於前兩種的折中方案,抽取一個批次的樣本計算總誤差,比如總樣本有10000個,可以抽取1000個作爲一個批次,然後根據該批次的總誤差來更新權值。(常用)

 

momentum:

當前權值的改變會收到上一次權值的改變的影響,就像小球滾動時候一樣,由於慣性,當前狀態會受到上一個狀態影響,這樣可以加快速度。

 

SGD+momentum:

保持速度,不斷用梯度對其進行更新。利用摩擦係數使得速度慢慢減小,直到停在極小值點。相當於梯度的平滑移動。

Nesterov momantum:

包含當前速度和先前速度的誤差修正,加入權重化的速度差

NAG(Nesterov Accelerated gradient)

與momentum相比,它更爲聰明,因爲momentum是一個路癡,它不知道去哪裏,而NAG則知道我們的目標在哪裏。也就是NAG知道我們下一個位置大概在哪裏,然後提前計算下一個位置的梯度。然後應用於當前位置指導下一步行動。

 

AdaGrad:

核心思想是對於常見的數據給予比較小的學習率去調整參數,對於不常見的數據給予比較大的學習率調整參數。它可以自動調節學習率,但迭代次數多的時候,學習率也會下降。

累加梯度的平方和再除掉

減慢大梯度方向的改變,加大小梯度方向的進步,自動調節學習率

但是時間太長的話,會造成步長太小,困在局部極值點

RMSprob :

採用前t-1次梯度平方的平均值 加上當前梯度的平方 的和再開放作爲分母

梯度平方+衰減,不會最後步長太小   &動量法 梯度+衰減

Adadelta :

不使用學習率

 

Adam :

會把之前衰減的梯度和梯度平方保存起來,使用RMSprob,Adadelta相似的方法更新參數

動量法+ Bias correct(動量的基於時間的無偏估計)+ RMSprob

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值