本文提供了訓練神經網絡過程中優化算法和理論的概覽,主要包括:
1.梯度消失和梯度爆炸問題,以及相對應的初始化和規范化的算法
2.總結了在訓練神經網絡過程中的常用的優化算法,如SGD,adaptive gradient methods 和distributed methods 和這些方法的結果。
3.總結了現有的研究關于全局問題,如陷入局部極小值,mode connectivity, lottery ticket hypothesis and infinite- width analysis.
1. 介紹
神經網絡有效的三個原則
1.合適的網絡。包括網絡結構和激活函數。
2.訓練算法。 如SGD,Adam , momentum算法等。
3.訓練技巧。合適的初始化,normalization layers 和skip connections.
可以粗暴的把優化的優勢分成三部分:controlling Lipschitz constants, faster convergence and better landscape.
本文主要討論監督學習的NN結構,不包括GAN,RNN,attention和Capsule.
本文主要是寫給對神經網絡的優化理論有興趣的讀者。
1.1分解理論
表達,優化和泛化:監督學習的目標是第一步找到一個非常豐富的函數(rich family of functions)。第二步通過最小化損失函數的方式找到函數的參數。第三步用學習到的函數來對未知的數據進程預測。預測結果的誤差成為test error。 測試誤差可以被分為三部分。表達誤差(representation error),優化誤差(optimization error),泛化誤差(generalization error)。分別對應前面的三步。
在機器學習中,通常表達,優化,和泛化三部分是分別來研究的/
最優問題分解: 深度學習的優化問題非常復雜,需要更近一步的分別。最優問題的發展可以分為三部分。第一步是讓算法運行并收斂到穩定點。第二步是讓算法瘦了盡可能快。第三部是讓算法收斂到全局最優點(非局部)。即 convergence issue:gradient explosion/vanishing, convergence speed issue, bad local minima,plaeaus.
2.問題定義
在一個標準的全連接神經網絡中:
我們想要通過選取神經網絡合適的參數來使得預測的和真實
接近。因此我們想要最小化他們之間的距離。對于一個距離函數L ,最優化的問題可以定義為
對于回歸問題,通常我們定義損失函數為mse.對于分類問題,通常使用logloss。
2.1 least squares
對于線性回歸的最小二乘問題。如果神經網絡只有一個線性神經元,那么神經網絡將退化成最小二乘問題。最小二乘問題是最簡單的神經網絡,研究者可以通過研究最小二乘問題獲得一些發現
2.2 Relation with matrix factorization
神經網絡的優化問題非常接近數值計算中的一個問題,即矩陣分解matrix factorization. 如果只有2層線性網絡。問題變為:
矩陣分解在工程中經常應用,并且有很多擴展,如non-negative matrix factorzation 和low rank matrix completion.