深度學習乃至機器學習和凸論有什麼本質聯繫?
為何這兩年研究深度學習的人最後都回歸到研究凸論上來?
基本上一切convexity理論相關的著作一上來都會這麼告訴你:因為幾乎一切learning的問題最後都可以劃歸為某種約束條件下的優化問題。很多優化問題都具有(或者可以通過某些轉化而具有)一些很優良的性質,這些很優良的性質使得我們可以高效地求解優化問題(比如使用梯度方法),而convexity是其中最重要的性質之一。
機器學習的問題,可以轉化成優化問題,即求解最小值J(x)的問題。
那麼,為什麼凸函數(局部最優值即為全局最優值)有利於求解機器學習(優化問題)呢?
- 如果我們可以遍歷所有點(二維線上的點和三維面上的點),那麼肯定可以找到最優值,但是遍歷所有點計算量十分巨大,尤其當特徵比較多的時候會遇到維度災難。
- 所以,一般採用梯度下降法,即尋找下降的方向。如果不是凸函數的話,那麼可能收斂到局部最優值,便達不到我們想要的結果了。
下面,舉一個例子:
logistic 回歸的Cost函數
1.正常下的Cost是這樣的
但是這樣Cost-theta是非凸函數,也就是存在很多局部最優值,這樣以來我們利用梯度下降的方法便得不到全局最優值。
2.最終的Cost是這樣的
個人見解:
因為 large scale deep learning 是目前的研究熱點,也是 deep learning 展現威力的領域。這裡 large scale 體現在 model size 和數據集大小兩個方面。在工業界最受關注的工作,包括 Google 的 distbelief,GoogLeNet 和 Microsoft Project Adam 等都涉及到非常大規模的 distributed model training。
而為了實現 large scale deep learning,快速的(分散式) training 演算法就變得尤為重要。training 的過程本質上講就是做 optimization,所以大家都喜歡在最優化領域裡尋找答案。convex optimization 由於有 convexity 這麼強的條件,因此往往更容易設計出快速演算法(例如:ADMM)。
但是,deep learning 的 objective 實際並不滿足 convexity,所以把 convex optimization 拍到 deep learning 上,等於是用凸優化演算法求解非凸問題。如果你的目標是做 optimization,這樣做可能會得到很差的結果。然而對於 machine learning,演算法是凸或非凸好像真的不那麼敏感,因為 objective 幾乎總是 noisy 的,而各種各樣的 regularization 和 stochasticity 幾乎總是能避開很差的 local optima。說到這裡不得不提一下 Microsoft Research 有位撼地神牛 Leon Bottou 專門研究用 SGD(隨機梯度下降)做大規模機器學習,他發現對於 SGD 這種在 optimization 領域效果極差的演算法,用在 machine learning 上卻出奇的好。所以這也體現了 learning 和 optimization 的區別吧。lecun 和 bengio 的論文發現一個事實,在維度很高的情況下,比如深度學習就比較符合這個條件,local minimum 存在的概率可以忽略不計,但是saddle point 無處不在。
lecun 的文章偏理論
bengio 則是實驗分析用到的理論知識- random matrix
- spin-glass model
可以摺疊。只是想補充。deep learning的核心是非凸優化,整天想著漂亮的vc維基本搞不出來。
懷疑題主的結論。列寫會議和文章。為什麼會得出這樣的結論?
對樓上的直觀補充:ps,僅表示這幾個概念的交集關係,面積不代表交集大小
推薦閱讀:
※怎麼看待現在一些論文提出的新點子就只在mnist或者cifar上跑跑實驗?
※如何評價CVPR best paper simGAN?
※如何解讀論文《Generalization in Deep Learning》?
※如何開發一個特定領域的自動問答機器人(Chat Bot)?
※在人工智慧這麼火的情況下,做程序開發一定要學習機器學習演算法嗎?
TAG:機器學習 |