如何看待指出 神經網路的訓練罪魁禍首是退化一文?
Why is it hard to train deep neural networks? Degeneracy, not vanishing gradients, is the key https://severelytheoretical.wordpress.com/2018/01/01/why-is-it-hard-to-train-deep-neural-networks-degeneracy-not-vanishing-gradients-is-the-key/
我的理解,作者所說的degenerate問題和gradient vanish是兩個層面的問題。
gradient vanish說的是只要層數高了,gradient就會vanish,而不是說隨著迭代數變多會越來越vanish(當然也可能有這個問題,但是本來不是指這個)。所以gradient vanish隨層數增多而變嚴重的,還沒迭代什麼事呢。
而作者說的degenerate問題是隨著迭代而變嚴重的。也就是fix住network層數,越迭代就會越degenerate。
所以說這是兩個層面的問題,當然都會導致Deep network訓練困難。
而其實這個degenerate問題我也不認為是作者發現的新大陸,很多人應該都清楚。直觀的理解就是每層神經元變數聯合表示了數據的manifold,而這個intrinsic manifold的維數必定比變數數少很多。而你在變數所在的ambient space做優化,所算出的Jacobian的rank肯定也就越來越接近數據manifold的實際維度,也就越來越不full rank,也就是越來越degenerate。這樣gradient的方向會越來越不準,會指到manifold外面去。regularization會強行讓Jacobian變full rank,但本質上還是接近degenerate,治標不治本,gradient還是不準。
從這個角度理解也能明白degenerate和gradient vanish是兩個層面的問題,一個是gradient方向不準,一個是gradient大小變沒了。
其實有好的方法能把倆問題一起解決了,方法就是在manifold上優化,也就算natural gradient。natural gradient會貼著manifolds的方向上做優化。只不過要完整計算natural gradient要求Hessian的逆,計算量太大,不實用。而其實batch norm,layer norm都和natural gradient有潛在的關係,可以看作近似natural gradient。我相信這些trick都會緩解degenerate問題。
瀉藥讀Post?!
Bengio在94年就給出了why,而上述觀點以post的方式提出了新的想法,模型退化。
圍繞「to show that convergence to a suboptimal solution here doesn』t have anything to do with the size of the gradient norms per se」,作者通過特殊的權值初始化,也就是權值矩陣的行copy,保證訓練過程 size of grad norm增加,結果loss變大;通過初始化權值矩陣,使之滿足正交,the size of grad norm維持一個很小的值,結果loss變小;
為了理解模型退化,作者給出了一個不嚴格的認識:每個層中只有少量的隱藏單元對不同的輸入改變它們的激活值,而大部分隱藏單元對不同的輸入都是相同的反應。
訓練困難的問題,有人從激活函數分析,有人從Loss Landspace分析,有人從權值矩陣分析,還有人從Jacobian/Hessian分析等。
至於對與不對,尚未定論,這不就是科學嗎?(胡扯一波,跑...)
推薦閱讀:
※在神經網路中weight decay起到的做用是什麼?momentum呢?normalization呢?
※如何通俗的理解spike and slab prior?
※機器AI學習需要什麼數學基礎,學習這些數學需要會哪些基礎數學?
※有誰能講解下《Going deeper with convolutions》這篇論文?
※壓縮感知和矩陣分解的異同?
TAG:機器學習 | 神經網路 | 深度學習DeepLearning |