深度學習資料整理(深度神經網路理解)
https://blog.csdn.net/tiandijun/article/details/25192155
近這兩年裡deep learning技術在影象識別和跟蹤等方面有很大的突破,是一大研究熱點,裡面涉及的數學理論和應用技術很值得深入研究,這系列部落格總結了深度學習的部落格,原理等資料,供大家學習討論。
二、深度學習資料整理(文章類)
深度就是隱層多,多層的好處是可以用較少的引數表示複雜的函式。
在監督學習中,以前的多層神經網路的問題是容易陷入區域性極值點。如果訓練樣本足夠充分覆蓋未來的樣本,那麼學到的多層權重可以很好的用來預測新的測試樣本。
實際情況下面對多工難以得到足夠多的標記樣本,此時,簡單的模型如線性迴歸或者決策樹往往能得到比多層神經網路更好的結果(更好的泛化性,更差的訓練誤差)。
非監督學習中,以往沒有有效的方法構造多層網路。多層神經網路的頂層是底層特徵的高階表示,比如底層是畫素點,上一層的結點可能表示橫線、三角;而頂層可能有一個結點表示人臉。一個成功的演算法應該能讓生成的頂層特徵最大化的代表底層的樣例。如果對所有的層同時訓練,時間複雜度會太高;如果每次訓練一層,偏差就會逐層傳遞。這會面臨跟上面監督學習中相反的問題,會嚴重欠擬合。
2006年,Hinton提出了在非監督資料上建立多層神經網路的一個有效方法,分為兩步:
1) 逐層構建單層神經元,每次訓練一層網路。將除最頂層的其它層間的權重變為雙向的,這樣最頂層仍然是一個單層神經網路,而其它層則變為了圖模型。
2) 當所有的層訓練完後,用wake-sleep演算法進行調優,使原始表示x向上生成的高階表示r和該高階表示r向下生成的x'儘可能一致,也就是保證生成的最頂層表示能夠儘可能正確的復原底層的結點。比如頂層的一個結點表示人臉,那麼所有人臉的影象應該啟用這個結點,並且這個結果向下生成的影象應該能夠表現為一個大概的人臉影象(向上的權重用於“認知”,向下的權重用於“生成”)。
Wake-Sleep演算法分為兩個部分:
a.wake階段,認知過程。通過外界的特徵和向上的權重(認知權重)產生每一層的抽象表示(結點狀態),並且使用梯度下降修改 層間的下行權重(生成權重)。也就是:“如果現實跟我想象的不一樣,改變我的權重使得我想象的東西就是這樣的”。
b.sleep階段,生成過程。通過頂層表示(醒時學得的概念)和向下權重,生成底層的狀態,同時修改 層間向上的權重。也就是:“如果夢中的景象不是我腦中的相應概念,改變我的認知權重使得這種景象在我看來就是這個概念”。
自動編碼器(auto-encoder)即上面說的神經網路,廣義上的自動編碼器 指所有的從低階表示得到高階表示,並能從高階表示生成低階表示的近似的結構;狹義上指其中的一種(谷歌的貓臉識別用的),有聯想功能,也就是缺失部分輸入也能得到正確的編碼。
所以以上演算法也可以用於有監督學習,訓練時y作為頂層網路輸入的補充,應用時頂層網路生成y'。
Deeplearning in Wiki:http://en.wikipedia.org/wiki/Deep_learning