全國統一學習專線 8:30-21:00
來源: 中公教育IT培訓 編輯:佚名
Python神經網絡中典型的梯度下降法有這些:全量梯度下降法、隨機梯度下降法、小批量梯度下降法、Momentum梯度下降法、NAG梯度下降法、AdaGrad、AdaDelta、RMSProp、Adam。
1、全量梯度下降法(Batch gradient descent):每次學習都使用整個訓練集,所以最終能收斂于極值點,凸函數收斂于全局極值點,非凸函數可能收斂于局部極值點,缺點是由于使用整個訓練集,學習時間過長,消耗資源。
2、隨機梯度下降法(Stochastic Gradient Descent):只使用隨機選擇的數據進行一輪迭代,學習時間快。
如果目標函數有最小區域,會使優化方向從當前的局部極小點跳到另一個更好的局部極小點,對于非凸函數,最終可能收斂于一個較好的局部極值點,甚至是全局極值點。
3、小批量梯度下降法(Mini-Batch Gradient Descent):一輪迭代中隨機選取一些數據進行迭代,兼具收斂速度快和收斂時不浮動的特征。
4、Momentum梯度下降法:在更新模型參數時,在計算過程中有一個超參數Momentum,稱為動量,在當前梯度方向上,用與前一個梯度方向相同的參數進行強化,使這些方向上加快。
同時,對當前的梯度方向與上一個梯度方向不同的參數進行削減,在這些方向上減速。這些振蕩在較陡峭的方向上被削弱,因此可以得到更快的收斂和更少的振蕩。
5、NAG梯度下降法:不僅增加了動量項,并且在計算參數梯度時,還從損失函數中減去了動量項。
6、AdaGrad:一種基于梯度的優化算法,可以適應每個參數的不同學習速率,對于稀疏特征可以得到較大的學習更新,對于非稀疏特征可以得到較小的學習更新,所以這種優化算法適合處理稀疏特征數據。
7、AdaDelta:自適應地為每個參數分配不同的學習率的算法,其學習率隨著其更新的總距離增加而減慢。
8、RMSProp:Adadelta的一種中間形式,它可以改善"Adagrad "中學習率快速衰減的問題。
9、Adam:一種不同參數自適應不同學習速率的方法,與Adadelta和RMSprop的區別在于計算歷史梯度衰減方式不同,此方法不使用歷史平方衰減,其衰減方式類似于動量。