[可視化]動力系統觀點下的神經網路最優化
05-15
[可視化]動力系統觀點下的神經網路最優化
鑒於我數學比較差,就不扯最優化的收斂性等問題了。因而我主要的概念都是從動力系統或者統計物理借來的。
1. 背景
先從動力系統的角度考慮: 假設目標函數()為神經網路提供了一個梯度。 考慮最小化目標函數
梯度下降可以看成是一個由梯度所確定的動力系統。 令為學習率,可得
(是參數空間上的梯度場)。 考慮目標函數的時變率,
可見目標函數的時變率是負定的,因此是該動力系統的Lyapunov函數。
注意: 以上分析必須基於有良好的連續性。而通常情況下是不連續的。
2. 優化器
將所有優化器寫成的形式。
- 幼稚梯度下降(Naive Gradient Descent, NGD)
- 隨機梯度下降(Stochastic Gradient Desent, SGD)使用隨機梯度替代梯度。 對Bootstrap而言,是次樣本(subsample)上的損失函數,
如果是的線性函數,則可估計一階矩:
但是其二階矩性質不明: - 其他
3. 可視化:
(激動人心的時刻啊哈哈哈哈)
既然,那麼顯然我們可以分別顯示模擬時取
損失函數是以下兩項的和:
- 在雙半月數據上的比特交叉熵(binary crossentropy)
- 一個L2正則項
- 架構:4層全鏈接隱含層,4*6 ReLu Unit。 輸出層一個Logistic Unit。
數據量: 200x2
- 幼稚梯度下降(Naive Gradient Descent, NGD)
- 隨機梯度下降(Stochastic Gradient Desent, SGD)次樣本大小=32
結論
SGD在僅使用次樣本迭代的前期收斂和NGD不相上下,因而有巨大的計算量優勢。但是在收斂後期兩者的動力學出現巨大區別。
NGD在穩態附近做類似極限環的震蕩,並且對L2有更強的限制。
SGD的震蕩好像並不那麼規則,對L2正則的限制也沒那麼強烈。
推薦閱讀: