http://www.36dsj.com/archives/19932算法
一、局部最優問題。服務器
深度學習算法的目標函數,幾乎全都是非凸的。而目前尋找最優解的方法,都是基於梯度降低的。稍微有點背景知識的人都知道,梯度降低方法是解決不了非凸問題的。所以,若是找到最優解,將是深度學習領域,很是值得研究的課題。網絡
andrew在google的工做,也就是那隻貓,其實訓練過程是讓人很費解的。爲了縮短訓練時間,項目組採用了分佈式訓練的方式。採用了1000臺計算機,在不一樣的計算機上存儲不一樣的訓練數據,不一樣的訓練服務器經過參數服務器進行參數的交換。訓練過程開始後,全部的訓練計算機從參數服務器更新當前參數,而後利用當前參數以及本機器上的訓練數據,計算獲得當前的梯度,經過貪婪式方法,訓練到不能再訓練爲止,而後將參數的更新量提交給服務器,再獲取新的參數進行更新。框架
在這個過程當中,出現了不一樣機器在同步時間上的一個大問題。具體闡述以下:梯度降低這種方法,在計算梯度的時候,必定要知道當前參數的具體值,梯度是針對某一個具體的參數值纔有意義的。可是,因爲在這個系統中,計算機很是多,當計算機A從服務器上得到參數值後,完成梯度的計算獲得步進量的時候,可能在它提交結果以前,計算機B已經修改了參數服務器上的參數了。也就是說,A所獲得的步進量,並非針對當前的參數值的。分佈式
論文中,做者注意到了這個問題,可是故意不去理會,結果訓練結果竟然不錯。做者的解釋是:這是一種歪打正着的現象。函數
爲何可以歪打正着呢?有多是這樣的:非凸問題,原本就不是梯度降低法可以解決的。若是不存在同步難題,那麼隨着訓練的深刻,結果確定會收斂到某一個局部最優解上面去。而如今這種同步問題,剛好可以有助於跳出局部最優解。所以最終的訓練結果還算不錯。學習
做者並無證實,這種方式,對於尋找全局最優必定是有幫助的。對於最終的結果是否必定是經驗最優的,也沒有證實。所以我感受,深度學習裏面,這種超高維參數的最優結果的尋優,是一個很值得深刻研究的問題。它對於最終的效果也確實影響很大。google
二、內存消耗巨大,計算複雜。人工智能
內存消耗巨大和計算複雜體如今兩個方面。(1)訓練過程。(2)檢測過程。spa
這兩個過程的計算複雜,根本緣由都是龐大的參數規模形成的。好比google的這個項目,每個位置都用到了8個模版,每個像素,這8個模版都是不一樣的,所以致使最後的模版總數很大,因此訓練和檢測都很慢。固然,這種模版的設計法,讓人很差理解,爲何不一樣的像素位置,模版徹底不一樣。我仍是支持之前的卷積神經網絡裏面的思想,不一樣位置的模版都是同樣的,但沒一個位置,模版數量就遠不止8個了。這樣的好處是,內存空間中,總的模板數降低了;但缺點是,計算更復雜了。
所以,若是可以找到一個好的方法,可以有效的較低計算複雜度,將是頗有意義的。(好比某個鄰域內若是方差極小,其實根本就不必計算了,直接賦0.)
三、人腦機理還有不少沒用上。
深度學習模擬的是人腦的其中一個很小的方面,就是:深度結構,以及稀疏性。
但事實上,人腦是至關複雜滴。關於視覺注意機制、多分辨率特性、聯想、心理暗示等功能,目前根本就沒有太多的模擬。因此神經解剖學對於人工智能的影響應該是蠻大的。未來要想掀起機器智能的另外一個研究高潮,估計還得繼續借鑑神經解剖學。
四、人爲設計模版的可行性。
一直在想,爲何第一層用於檢測角點和邊緣這種簡單特徵的模版,必定須要經過無監督訓練獲得,若是人爲實現模擬的話,可否也獲得較爲理想的結果呢?
從神經解剖學的成果上來看,人腦的v1區和v2區,神經細胞確實是按照規律排列的。並且都是能夠人爲設計的。並且,一個讓人懷疑的地方就是,v1區和v2區的神經細胞,是先天發育好的,仍是後天訓練出來的?若是是先天的,那就是說,這種模版是能夠人爲設計的。
五、代價函數的設計方法。
代價函數的設計,在初學者看來,是很奇怪的。代價函數的設計,直接影響到最終的模版訓練結果,能夠說是深度學習中最核心的模塊。
從目前已經發表的論文來看,一是考慮重構偏差,二是加入某種懲罰項。懲罰項的設計有多種模式,有考慮一階範式的,有考慮二階範式的,各類設計可謂千奇百怪。有博文上講到,懲罰項的做用是爲了防止過擬合,但也有博文的觀點是,懲罰項是爲了保證稀疏性。(感受過擬合與稀疏性是否存在某種內在聯繫。)
固然,代價函數的設計方法,目前還在不斷探索,感受這是一個能夠發論文的點。
六、整個神經網絡系統的設計。
神經網絡的設計方法,包含了研究人員對人腦的理解方式。CNN、RBM,以及andrew項目組設計的變態網絡,都各有各的特點。要把整個網絡框架設計好,仍是比較須要經驗的,也是至關費腦力的。固然,這是整個領域最有研究價值的模塊。
做者:denghp83
End.