傳統的神經網絡中采用的是BP算法,存在的主要問題:
數據獲取問題
我們需要依賴於有標簽的數據才能進行訓練。然而有標簽的數據通常是稀缺的,因此對於許多問題,我們很難獲得足夠多的樣本來擬合一個復雜模型的參數。例如,考慮到深度網絡具有強大的表達能力,在不充足的數據上進行訓練將會導致過擬合。
局部極值問題
使用監督學習方法來對淺層網絡(只有一個隱藏層)進行訓練通常能夠使參數收斂到合理的范圍內。但是當用這種方法來訓練深度網絡的時候,並不能取得很好的效果。特別的,使用監督學習方法訓練神經網絡時,通常會涉及到求解一個高度非凸的優化問題(例如最小化訓練誤差 ,其中參數
是要優化的參數。對深度網絡而言,這種非凸優化問題的搜索區域中充斥着大量“壞”的局部極值,因而使用梯度下降法(或者像共軛梯度下降法,L-BFGS等方法)效果並不好。
梯度彌散問題
梯度下降法(以及相關的L-BFGS算法等)在使用隨機初始化權重的深度網絡上效果不好的技術原因是:梯度會變得非常小。具體而言,當使用反向傳播方法計算導數的時候,隨着網絡的深度的增加,反向傳播的梯度(從輸出層到網絡的最初幾層)的幅度值會急劇地減小。結果就造成了整體的損失函數相對於最初幾層的權重的導數非常小。這樣,當使用梯度下降法的時候,最初幾層的權重變化非常緩慢,以至於它們不能夠從樣本中進行有效的學習。這種問題通常被稱為“梯度的彌散”.
與梯度彌散問題緊密相關的問題是:當神經網絡中的最后幾層含有足夠數量神經元的時候,可能單獨這幾層就足以對有標簽數據進行建模,而不用最初幾層的幫助。因此,對所有層都使用隨機初始化的方法訓練得到的整個網絡的性能將會與訓練得到的淺層網絡(僅由深度網絡的最后幾層組成的淺層網絡)的性能相似。
未完待續......