神經網絡有什么理論支持?
雷鋒網按:本文原作者袁洋,本文原載于作者的知乎專欄—— 理論與機器學習 。雷鋒網 (公眾號:雷鋒網) 已獲得轉載授權。
三秒鐘理解本文主旨:
問:神經網絡有什么理論支持?
答:目前為止(2017 年)沒有什么特別靠譜的。
2012年之后,隨著深度學習的浪潮卷來,大家逐漸認可了神經網絡/深度學習這個東西,都知道它在很多應用場景下面表現得很好。但是,它常常被人詬病的一點就是,就算它表現很好,卻沒有一個很好的理論解釋。
相比之下,很多算法雖然實際表現一般,但是在理論解釋這一方面就遠勝神經網絡了。典型的例子么,自然就是我們耳熟能詳的線性回歸算法啦。所謂的線性回歸,簡單地說,就是嘗試用一條直線來擬合世間萬物。雖然聽起來不太靠譜,實際上效果也一般,但是這并不妨礙研究人員在過去的幾十年間,懷著滿腔熱情,發了大量的理論論文研究這個基本問題(不好意思,我也發了兩篇)。這就像一個PhD笑話里面說的那樣,Theory is when one knows everything but nothing works. Practice is when everything works but nobody knows why.
真說起來嘛,倒也不是大家覺得線性回歸多么有用,我覺得主要還是直線比較好分析,而神經網絡比較難,所以理論工作就少一些。這個現象叫做Streetlight effect,如下圖。
不過,隨著深度學習不斷發展,越來越多的理論工作者也開始嘗試研究神經網絡了。今天我就介紹一下我對(2017年為止)各種相關理論工作的 粗淺理解 (各位大大輕拍)。假如因此能夠幫助同學們對目前現狀有更好的理解,甚至得到更好的理論結果,那自然是再好不過了。不過,大家不要對本文抱有太大的期望,因為目前已有的理論工作還遠遠談不上對神經網絡有什么深刻認識,更不用說能夠指導實踐;它們不過是分析了各種相對簡單的情況罷了。
首先我們看一下神經網絡的定義。想必大家聽說過現在非常流行的DenseNet, ResNet之類的卷積網絡,不僅結構特別,還加了BatchNorm層調整信號大小,有時候還有Dropout減弱過擬合。這些東西好固然是好,但是對于理論工作者來說,就有點太復雜了。所以我們今天談的網絡,大多長這個樣子:
比如我們有一個輸入(1,2,-4),這是一個向量。我們把它輸入到一個全連接層。這層有一個參數矩陣是W= [I?; (1,1,1)]。不過一般來說,參數矩陣是通過SGD算法(見之前的
博文
)學習得到的,所以不會長得這么簡單看,千萬不要誤會了。全連接層的輸出呢,就是做矩陣乘法:?
?。大家可以口算驗證一下。
假如只是做矩陣乘法,那么本質只是在做線性變換,哪怕做了很多次其實和做一次的效果是一樣的。因此,神經網絡在每次線性變換之后都會做一個非線性層。我們今天考慮的是最簡單也是應用也最廣泛的ReLU(Rectified Linear Unit),本質就是把輸入讀進來,然后把輸入中的負數變成0,非負數不變輸出。所以(1,2,-4,-1)就變成了(1,2,0,0)。
那么這就是一個合格的簡單的一層神經網絡了。我們當然可以重復這樣的操作搞很多次,比如像下面:
就是把(1,2,0,0)當做下一個全連接層的輸入輸進去,然后再過一個ReLU層,再過一個全連接層,再過一個ReLU層……最后你就得到了一個深度神經網絡了。——是的,深度學習,就是這么簡單!
當然,我之前提到了,這個模型和現實使用的還有一定的區別。現實中大家使用卷積層而不是全連接層,而且還有別的各種小東西:BatchNorm, Dropout。那些就太復雜啦。目前的理論都是基于我說的這個簡化版本的。雖說是簡化版本,對于我們人類來說,似乎也已經足夠復雜了。
那么,基于這么個模型,今天我就從優化的角度介紹一下已有的理論結果。我們可以從三個方面分析神經網絡,分別是表達能力(representation/expressiveness),優化難度(optimization),和歸納推廣能力(generalization)
表達能力:
表達能力是指,神經網絡是否能夠用來表達一切函數。舉個(不恰當的)例子,中文/英文的表達能力很強,我們可以用它們(近似)表達(幾乎)一切東西。又或者說,線性回歸的表達能力就非常有限,畢竟只有一根直線你能表達個什么東西。。
對于神經網絡而言,90年代初的時候,大家就已經證明了所謂的universal approximator theorem,就是說對于兩層的神經網絡+Sigmoid非線性層(而不是ReLU),并且網絡足夠大,那么就可以通過合理設定參數矩陣來近似所有的連續函數或者各種其他函數 [Hornik et al., 1989, Cybenko, 1992,Barron, 1993]。
據說這也就是為什么深度學習過了20多年才火起來,因為那些搞神經網絡的人聲稱他們相信了這些理論結果,誤以為真的只需要兩層就可以表達一切函數了,所以從來沒有試過更深的網絡,因此被耽擱了很多年。[我個人認為,這純屬借口,無稽之談,是赤裸裸地朝理論工作者潑臟水!!這就好像我告訴你倒立著走可以在有限時間內走遍世界任意角落,所以你就誤以為我們不需要坐飛機了么?]
最近幾年,大家也開始研究更深的網絡的表達能力 [Eldan and Shamir, 2015, Safran and Shamir, 2016, Lee et al., 2017]。大概是說如果網絡更深一些,表達能力會更強一些,需要的網絡大小也會更小一些。
總的來說,我個人覺得,表達能力這一塊,大家的理解還是比較透徹的。就是說,對于一個足夠大的神經網絡,總是 存在一種參數取值 ,使得最后得到的神經網絡可以近似任何我們想要近似的函數。
優化難度:
值得注意的是,總是存在一種參數取值,并不代表我們就能夠找到這樣的取值。
這就好像我們做數學作業,既然是作業嘛,我們知道肯定是存在答案的,但是好做么?顯然并不是。我們往往要花很長時間才能夠做出來;做出來還算是好的,有的時候還做不出來,這個時候就需要去抄別人的答案。
數學作業做不出來可能是個小事,如果找不到好的神經網絡的取值,那么這個算法就沒什么用了。但神奇的是,現實生活中,人們用簡單的SGD算法,總是能找到一個很好的取值方案。——如果你沒有覺得這個事情很神奇,那么你還是應該回過頭去想想數學作業的例子。當你絞盡腦汁、茶飯不思、夜不能寐地做數學作業的時候,你發現你的大神同學總是三下五除二就把作業搞定了,而且感覺他也沒怎么學習,上課也不認真聽講,你覺得是不是很神奇?
找神經網絡的取值方案,或者說“學習”數據的這個過程,就叫做優化。從理論的角度來看,一般來說,假如數據或者問題沒有特殊的假設,優化這件事情就是非常困難的,一般就是NP-hard什么的,也就是所謂的很難很難的事情啦 [S??ma, 2002, Livni et al., 2014, Shamir, 2016]。那既然現實生活中這個問題其實并沒有那么難,這就說明,現實的問題是滿足一些較為特殊的條件,大大降低了優化的難度。
那么,現實中的問題到底是滿足了什么樣的條件,以及優化的難度是如何被降低了?在什么情況下我們能夠很容易找到合適的取值,什么情況下可能會比較難?SGD為什么能干得這么好?大家對這些問題的理解還比較欠缺。
目前來說,人們會從幾個不同的方向簡化問題,做一些理論分析:
(個人能力有限,落下了某些重要論文還請各位大大輕拍)
-
能不能假如一些較強的假設得到一些理論結果?這個想法是早期工作中比較常見的,人們會使用一些較強的假設,例如參數是復數,或者需要學習的函數是多項式,或者目標參數服從獨立同分布等等,和實際差距較大。[Andoni et al., 2014, Arora et al., 2014]
-
能不能用特殊的算法來做優化?直接分析SGD在神經網絡上的表現相對比較困難,因此人們會嘗試分析別的特殊算法的表現。例如Tensor decomposition, half space intersection, kernel methods等等 [Janzamin et al., 2015, Zhang et al., 2015, Sedghi and Anandkumar, 2015, Goel et al., 2016]。這些算法雖然往往能夠在多項式時間內學習出兩層的神經網絡,但是在現實生活中表現一般,沒有人真的在用。值得一提的是,[Goel and Klivans, 2017]的kernel methods在某些假設下可以在多項式時間內學習很多層的神經網絡,是這個方向的佼佼者。
-
能不能暫時忽略非線性層(即ReLU層),只考慮線性變換?這個方向叫做deep linear network,即深度線性網絡。人們可以證明這樣的網絡有很好的性質,但是這樣的網絡表達能力有所欠缺,只能夠表達線性函數,而且優化起來可能不如線性函數收斂速度快。[Saxe et al., 2013, Kawaguchi, 2016, Hardt and Ma, 2016]
-
就算考慮非線性層,能不能加入一些假設,將其弱化?這個方向叫做independent activation assumption,就是假設網絡的輸入和網絡的輸出的獨立的,以及/或者ReLU的輸出的每個維度都是獨立的。這些假設在現實中并不成立,主要還是為了理論分析方便。[Choromanska et al., 2015, Kawaguchi, 2016, Brutzkus and Globerson, 2017]
-
能不能不加別的假設,只考慮較淺的(兩層)網絡?嗯,不知不覺終于要介紹我們的論文了。這個方向的問題就是網絡層數比較少,和現實不符,而且往往只存在一個global minimum。[Zhong et al., 2017]使用的算法是Tensor decomposition找到一個離Global minimum很近的點,然后用Gradient descent來逼近Global minimum。[Tian 2017] 證明了普通的兩層神經網絡的優化對SGD而言可能是比較困難的。我們的論文則是考慮了帶了Residual link的兩層神經網絡,證明了只要用SGD最后能夠收斂到Global minimum [Li and Yuan, 2017] (之后有機會會詳細介紹)。
我知道的優化工作大概就是這樣了。大家可以看到,目前來看,為了得到理論結果,需要做各種各樣的假設。想要單純證明SGD在深度神經網絡(大于2層)上的收斂性,似乎還有很遠的路要走。
歸納推廣能力:
除了現實生活中優化難度比較小,神經網絡還有一個非常受機器學習工作者推崇的優點就是它有很強的歸納推廣能力。用機器學習的語言來說,假如我們優化神經網絡使用的數據集是訓練集,得到的網絡在訓練集上面表現非常好(因為優化簡單),然后測試的時候使用神經網絡從來沒有見過的測試集進行測試,結果網絡表現仍然非常好!這個就叫做歸納推廣能力強。
假如你覺得這個比較難理解,可以考慮數學考試的例子。我想,你一定見過有些同學,平時做數學作業兢兢業業一絲不茍,與老師溝通,與同學討論,翻書查資料,經常能夠拿滿分。這種同學,我們就說他訓練得不錯,死用功,作業題都會做。那么,這樣的同學數學考試一定能夠考高分么?根據我個人的經驗,答案是不一定。因為考試題目在平時作業里面不一定都出現過,這樣的死用功的同學遇到沒見過的題目就懵了,可能就掛了。
可神經網絡呢?他不僅平時輕輕松松寫作業,到了考試仍然非常生猛,哪怕題目沒見過,只要和平時作業一個類型,他都順手拈來,是不是很神奇?學霸有沒有?
關于為什么神經網絡有比較強的歸納推廣能力,目前大家還不是非常清楚。目前的理論分析比較少,而且結果也不能完全解釋這個現象 [Hardt et al. 2016, Mou et al. 2017]。我覺得這是很重要的方向,也是目前的研究熱點。
不過在實踐過程中,很多人有這么個猜想,就是所謂的Flat minima假說。據說,在使用SGD算法優化神經網絡的時候,SGD最后總是會停留在參數空間中的一個比較平整的區域(目前沒有證明),而且如果最后選的參數是在這么個區域,那么它的歸納推廣能力就比較強(目前沒有證明)[Shirish Keskar et al., 2016, Hochreiter and Schmidhuber, 1995, Chaudhari et al., 2016, Zhang et al., 2016]。
參考文獻
Hornik, K., Stinchcombe, M. B., and White, H. (1989). Multilayer feedforward networks are universal approximators.
Cybenko, G. (1992). Approximation by superpositions of a sigmoidal function. MCSS, 5(4):455.
Barron, A. R. (1993). Universal approximation bounds for superpositions of a sigmoidal function. IEEE Trans. Information Theory, 39(3):930–945.
Eldan, R. and Shamir, O. (2015). The Power of Depth for Feedforward Neural Networks.
Safran, I. and Shamir, O. (2016). Depth-Width Tradeoffs in Approximating Natural Functions with Neural Networks
Lee, H., Ge, R., Risteski, A., Ma, T., and Arora, S. (2017). On the ability of neural nets to express distributions.
S??ma, J. (2002). Training a single sigmoidal neuron is hard. Neural Computation, 14(11):2709–2728.
Livni, R., Shalev-Shwartz, S., and Shamir, O. (2014). On the computational efficiency of training neural networks.
Shamir, O. (2016). Distribution-specific hardness of learning neural networks.
Janzamin, M., Sedghi, H., and Anandkumar, A. (2015). Beating the perils of non-convexity: Guaranteed training of neural networks using tensor methods.
Zhang, Y., Lee, J. D., Wainwright, M. J., and Jordan, M. I. (2015). Learning halfspaces and neural networks with random initialization.
Sedghi, H. and Anandkumar, A. (2015). Provable methods for training neural networks with sparse connectivity.
Goel, S., Kanade, V., Klivans, A. R., and Thaler, J. (2016). Reliably learning the relu in polynomial time.
Goel, S. and Klivans, A. (2017). Eigenvalue decay implies polynomial-time learnability for neural networks. In NIPS 2017.
Andoni, A., Panigrahy, R., Valiant, G., and Zhang, L. (2014). Learning polynomials with neural networks. In ICML, pages 1908–1916.
Arora, S., Bhaskara, A., Ge, R., and Ma, T. (2014). Provable bounds for learning some deep representations. In Proceedings of the 31th International Conference on Machine Learning, ICML 2014, Beijing, China, 21-26 June 2014, pages 584–592.
Saxe, A. M., McClelland, J. L., and Ganguli, S. (2013). Exact solutions to the nonlinear dynamics of learning in deep linear neural networks.
Kawaguchi, K. (2016). Deep learning without poor local minima. In NIPS, pages 586–594.
Hardt, M. and Ma, T. (2016). Identity matters in deep learning.
Choromanska, A., Henaff, M., Mathieu, M., Arous, G. B., and LeCun, Y. (2015). The loss surfaces of multilayer networks. In AISTATS.
Brutzkus, A. and Globerson, A. (2017). Globally optimal gradient descent for a convnet with gaussian inputs. In ICML 2017.
Li, Y. and Yuan, Y. (2017). Convergence analysis of two-layer neural networks with relu activation. In NIPS 2017.
Zhong, K., Song, Z., Jain, P., Bartlett, P. L., and Dhillon, I. S. (2017). Recovery guarantees for one-hidden-layer neural networks. In ICML 2017.
Hardt, M and Recht, B and Singer, Y. (2015). Train faster, generalize better: Stability of stochastic gradient descent. In ICML 2016.
Wenlong Mou, Liwei Wang, Xiyu Zhai, Kai Zheng (2017). Generalization Bounds of SGLD for Non-convex Learning: Two Theoretical Viewpoints.
Shirish Keskar, N., Mudigere, D., Nocedal, J., Smelyanskiy, M., and Tang, P. T. P. (2016). On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima.
Hochreiter, S. and Schmidhuber, J. (1995). Simplifying neural nets by discovering flat minima. In Advances in Neural Information Processing Systems 7, pages 529–536. MIT Press.
Chaudhari, P., Choromanska, A., Soatto, S., LeCun, Y., Baldassi, C., Borgs, C., Chayes, J., Sagun, L., and Zecchina, R. (2016). Entropy-SGD: Biasing Gradient Descent Into Wide Valleys. ArXiv e-prints.
Zhang, C., Bengio, S., Hardt, M., Recht, B., and Vinyals, O. (2016).Understanding deep learning requires rethinking generalization. ArXiv e-prints.
Yuandong Tian. (2017). An Analytical Formula of Population Gradient for two-layered ReLU network and its Applications in Convergence and Critical Point Analysis. ICML 2017.
不靈叔@雷鋒網
雷鋒網版權文章,未經授權禁止轉載。詳情見。