標籤:

深度學習乃至機器學習和凸論有什麼本質聯繫?

為何這兩年研究深度學習的人最後都回歸到研究凸論上來?


基本上一切convexity理論相關的著作一上來都會這麼告訴你:因為幾乎一切learning的問題最後都可以劃歸為某種約束條件下的優化問題。很多優化問題都具有(或者可以通過某些轉化而具有)一些很優良的性質,這些很優良的性質使得我們可以高效地求解優化問題(比如使用梯度方法),而convexity是其中最重要的性質之一。


機器學習的問題,可以轉化成優化問題,即求解最小值J(x)的問題。

對於優化問題來說,凸函數存在一個很棒的性質:局部最優點即是全局最優點。

二維的凸函數和非凸函數的圖像如下圖所示:

三維的凸函數的非凸函數的圖像如下圖所示:

那麼,為什麼凸函數(局部最優值即為全局最優值)有利於求解機器學習(優化問題)呢?

  1. 如果我們可以遍歷所有點(二維線上的點和三維面上的點),那麼肯定可以找到最優值,但是遍歷所有點計算量十分巨大,尤其當特徵比較多的時候會遇到維度災難。
  2. 所以,一般採用梯度下降法,即尋找下降的方向。如果不是凸函數的話,那麼可能收斂到局部最優值,便達不到我們想要的結果了。

下面,舉一個例子:

logistic 回歸的Cost函數

1.正常下的Cost是這樣的

Cost(h_	heta,y)=frac{1}{m}sum^{m}frac{1}{2}(h-y)^2=frac{1}{2}(frac{1}{1+e^{-	heta^T x}}  -y  )^2

但是這樣Cost-theta是非凸函數,也就是存在很多局部最優值,這樣以來我們利用梯度下降的方法便得不到全局最優值。

2.最終的Cost是這樣的

Cost(h_	heta,y)= -log(h_	heta(x)) qquad if quad y=1

Cost(h_	heta,y)= -log(1-h_	heta(x)) qquad if quad y=0

通過Log函數將其轉化為凸函數,這樣就能夠使用梯度下降等方法,快速得到全局最優值了。


個人見解:

因為 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:機器學習 |