iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 7
5
AI & Data

英雄集結:深度學習的魔法使們系列 第 7

[精進魔法] Optimization:優化深度學習模型的技巧(上)

上篇提到怎麼避免 Overfitting 的技巧,本文要帶給大家的是如何優化深度學習,提高模型的效能。

Batch & Mini batch

深度學習每一次參數的更新所需要損失函數並不是由一個資料點而來的,而是由一組數據加權得到的,稱為 batch。 batch 的選擇決定了梯度下降的方向,而 batch 的數量就是 batch size。:

  1. Full Batch:batch size 為樣本總數。如果數據集較小,可以使用 Full batch learning 的形式,

    • 優點:它具有朝向最小值的直線軌跡,並且如果損失函數是凸的(convex)則保證在理論上收斂到全局最小值,並且如果損失函數不是凸的則保證局部最小值。
    • 缺點:如果數據集很龐大,速度可能會很慢。
  2. Mini batch:解決上述方法的缺點,提高學習效率,將訓練集分成很多批(batch),對每一批計算誤差並更新參數,是深度學習中很常見的學習方式。

    下圖左邊是 full batch 的梯度下降效果,右邊是 mini batch 的梯度下降效果,可以看到它是上下波動,但整體還是呈現下降的趨勢。
    https://ithelp.ithome.com.tw/upload/images/20181022/20112540dqiTKnHoZq.png

圖片來源:https://towardsdatascience.com/gradient-descent-algorithm-and-its-variants-10f652806a3

Stochastic Gradient Descent (SGD)

隨機梯度下降(SGD)在每個樣本上執行參數更新。因此,每個樣本都有學習。與 mini-batch 相比,它為學習過程增加了更多的噪音,有助於改善泛化錯誤,但會增加運行時間。

https://ithelp.ithome.com.tw/upload/images/20181022/201125407UREeWaPss.png

圖片來源:https://towardsdatascience.com/gradient-descent-algorithm-and-its-variants-10f652806a3

Momentum (動量)

與物理慣性有關,想像球在碗內來回滾動的物理定律為基準來移動的畫面。momentum 基本思路是為了尋找最佳解而加入了「慣性」的影響,好處是振盪的幅度變小且縮短了到達一定地點的時間,另外有可能透過慣性來讓梯度下降跳出局部最小值(local minimum)。
https://ithelp.ithome.com.tw/upload/images/20181022/20112540PTzAmDZjqg.jpg

圖片來源:https://zhuanlan.zhihu.com/p/34240246

今天的內容先到這裡,下篇將繼續介紹深度學習中 Optimization 的更多技巧,例如如何動態調整學習率 (learning rate)等,大家繼續加油!

https://ithelp.ithome.com.tw/upload/images/20181022/20112540967huGxg7Q.jpg

拖台錢好趴特呢:魯夫


上一篇
[精進魔法] Regularization:減少 Overfitting ,提高模型泛化能力
下一篇
[精進魔法] Optimization:優化深度學習模型的技巧(中)- Adaptive Learning Rates
系列文
英雄集結:深度學習的魔法使們31

尚未有邦友留言

立即登入留言