優化器:SGD > Momentum > AdaGrad > RMSProp > Adam
SGD 隨機梯度下降
在這裡SGD和min-batch是同一個意思,抽取m個小批量(獨立同分布)樣本,通過計算他們平梯度均值。後面幾個改進演算法,均是採用min-batch的方式。
momentum
1.動量方法主要是為了解決Hessian矩陣病態條件問題(直觀上講就是梯度高度敏感於引數空間的某些方向)的。
2.加速學習
3.一般將引數設為0.5,0.9,或者0.99,分別表示最大速度2倍,10倍,100倍於SGD的演算法。
4.通過速度v,來積累了之間梯度指數級衰減的平均,並且繼續延該方向移動:
要是當前時刻的梯度與歷史時刻梯度方向相似,這種趨勢在當前時刻則會加強;要是不同,則當前時刻的梯度方向減弱。
假設每個時刻的梯度g總是類似,那麼由
我們可以直觀的看到每次的步長為:
即當動量引數設為0.5,0.9,或者0.99,分別表示最大速度2倍,10倍,100倍於SGD的演算法。
AdaGrad
1.簡單來講,設定全域性學習率之後,每次通過,全域性學習率逐引數的除以歷史梯度平方和的平方根,使得每個引數的學習率不同
2.效果是:在引數空間更為平緩的方向,會取得更大的進步(因為平緩,所以歷史梯度平方和較小,對應學習下降的幅度較小)
3.缺點是,使得學習率過早,過量的減少,驗證集上效果好,測試集上效果差
RMSProp
1.AdaGrad演算法的改進。鑑於神經網路都是非凸條件下的,RMSProp在非凸條件下結果更好,改變梯度累積為指數衰減的移動平均以丟棄遙遠的過去歷史。
2.經驗上,RMSProp被證明有效且實用的深度學習網路優化演算法。
相比於AdaGrad的歷史梯度:
RMSProp增加了一個衰減係數來控制歷史資訊的獲取多少:
## Adam
1.Adam演算法可以看做是修正後的Momentum+RMSProp演算法
2.動量直接併入梯度一階矩估計中(指數加權)
3.Adam通常被認為對超引數的選擇相當魯棒
4.學習率建議為0.001
其實就是Momentum+RMSProp的結合,然後再修正其偏差。
相關文章
- Optimizer: SGD, SGD with Momentum, Adagrad, RMSProp, Adam, AdamW
- 研究一下不同梯度下降的最佳化器和自己的最佳化器的比較(SGD,Momentum,AdaGrad,Adam)梯度
- 速度媲美Adam,效能堪比SGD:北大、浙大學霸本科生提出全新優化演算法AdaBound優化演算法
- 走入五彩斑斕神經網路世界:關於梯度下降、RMSprop優化器的研究神經網路梯度優化
- Adam作者大革新, 聯合Hinton等人推出全新優化方法Lookahead優化
- 【論文考古】量化SGD QSGD: Communication-Efficient SGD via Gradient Quantization and EncodingEncoding
- 打靶記錄16——Momentum
- Adam Monroe Music Wurlitzer Mac(虛擬樂器外掛)Mac
- vulnhub靶場之MOMENTUM: 1
- vulnhub靶場之MOMENTUM: 2
- Adam真的是最好最佳化器嗎?有人認為不過是神經網路進化的結果神經網路
- Momentum Contrast (MoCo) for Unsupervised Visual Representation LearningAST
- [原始碼解析] PyTorch分散式優化器(2)----資料並行優化器原始碼PyTorch分散式優化並行
- 前端效能優化 —— 移動端瀏覽器優化策略前端優化瀏覽器
- TiDB 查詢優化及調優系列(一)TiDB 優化器簡介TiDB優化
- 分散式機器學習:非同步SGD和Hogwild!演算法(Pytorch)分散式機器學習非同步HOG演算法PyTorch
- CSS 選擇器效能優化CSS優化
- SQL優化器探討(zt)SQL優化
- pytorch optim 優化器核心分析PyTorch優化
- 優化器的發展程式優化
- C++編譯器優化C++編譯優化
- MySQL查詢優化之優化器工作流程以及優化的執行計劃生成MySql優化
- 資料庫應用優化(二)伺服器和配置優化資料庫優化伺服器
- Mysql優化系列之——優化器對子查詢的處理MySql優化
- 早餐|第十七期 · 模型優化器對模型做了哪些優化模型優化
- PostgreSQL 優化器程式碼概覽SQL優化
- 編譯器優化:方法內聯編譯優化
- TiDB與MySQL優化器對照TiDBMySql優化
- 深入瞭解 TiDB SQL 優化器TiDBSQL優化
- TensorFlow筆記(5)——優化手寫數字識別模型之優化器筆記優化模型
- win10系統優化驅動器怎麼用_win10如何優化驅動器Win10優化
- HttpRunner 的結果校驗器優化HTTP優化
- 淺談Tomcat伺服器優化方法Tomcat伺服器優化
- 前端效能優化(JS/CSS優化,SEO優化)前端優化JSCSS
- 如何調優 Oracle SQL系列文章:查詢優化器介紹OracleSQL優化
- MySQl 配置InnoDB持久化的優化器統計資訊MySql持久化優化
- 線上Linux伺服器優化經驗Linux伺服器優化
- 前端效能優化 之 瀏覽器快取前端優化瀏覽器快取