(1)感知機模型(雙層神經網絡模型:輸入層和計算單元,瓶頸:XOR問題——線性不可分)html
(2)多層神經網絡(解決線性不可分問題——在感知機的神經網絡上多加一層,並利用「後向傳播」(Back-propagation)學習方法,能夠解決XOR問題)(1974年,哈佛博士論文)算法
(3)BP算法訓練的神經網絡:信號正向傳播和偏差反向傳播(修正權值)網絡
缺點:數據結構
l 梯度愈來愈稀疏:從頂層向下,偏差校訂信號愈來愈小函數
l 收斂到局部最小值:隨機值初始化會致使這種狀況的發生(從遠離最優區域開始的時候)學習
l 只能用有標籤的數據來訓練編碼
(4)生物學實驗htm
(4)深度學習:首先利用無監督學習對每層進行逐層預訓練(Layers Pre-Training)去學習特徵(學到數據自己的結構),每次單獨訓練一層,並將訓練結果做爲更高一層的輸入;而後到最上層改用監督學習從上到下進行微調(Fine-tune)去學習模型。blog
Ps:因爲深度學習的第一步不是隨機初始化,而是經過學習輸入的數據結構獲得的,所以這個值更接近全局最優。ci
步驟:模仿大腦的學習(編碼)和重構(解碼)——不是訓練數據到標記的「映射」,而是去學習數據自己內在結構和特徵[隱含層也叫作特徵探測器(Feature detector)]。(一般隱含層中的神經元數比輸入/輸出層的少,這是爲了使神經網絡只學習最重要的特徵並實現特徵的降維)
1)無監督訓練
2)有監督微調:第一種——只調整分類器;第二種——經過有標籤樣本,微調整個系統。
Deep Learning和 neural network異同
兩者的相同在於deep learning採用了神經網絡類似的分層結構,系統由包括輸入層、隱層(多層)、輸出層組成的多層網絡,只有相鄰層節點之間有鏈接,同一層以及跨層節點之間相互無鏈接,每一層能夠看做是一個logistic regression模型;這種分層結構,是比較接近人類大腦的結構的。
而爲了克服神經網絡訓練中的問題,DL採用了與神經網絡很不一樣的訓練機制。傳統神經網絡中,採用的是back propagation的方式進行,簡單來說就是採用迭代的算法來訓練整個網絡,隨機設定初值,計算當前網絡的輸出,而後根據當前輸出和label之間的差去改變前面各層的參數,直到收斂(總體是一個梯度降低法)。而deep learning總體上是一個layer-wise的訓練機制。這樣作的緣由是由於,若是採用back propagation的機制,對於一個deep network(7層以上),殘差傳播到最前面的層已經變得過小,出現所謂的gradient diffusion(梯度彌散)。
BP算法做爲傳統訓練多層網絡的典型算法,實際上對僅含幾層網絡,該訓練方法就已經很不理想。深度結構(涉及多個非線性處理單元層)非凸目標代價函數中廣泛存在的局部最小是訓練困難的主要來源。
BP算法存在的問題:
(1)梯度愈來愈稀疏:從頂層越往下,偏差校訂信號愈來愈小;
(2)收斂到局部最小值:尤爲是從遠離最優區域開始的時候(隨機值初始化會致使這種狀況的發生);
(3)通常,咱們只能用有標籤的數據來訓練:但大部分的數據是沒標籤的,而大腦能夠從沒有標籤的的數據中學習;
deep learning訓練過程具體以下:
1)使用自下上升非監督學習(就是從底層開始,一層一層的往頂層訓練):
採用無標定數據(有標定數據也可)分層訓練各層參數,這一步能夠看做是一個無監督訓練過程,是和傳統神經網絡區別最大的部分(這個過程能夠看做是feature learning過程):
具體的,先用無標定數據訓練第一層,訓練時先學習第一層的參數(這一層能夠看做是獲得一個使得輸出和輸入差異最小的三層神經網絡的隱層),因爲模型capacity的限制以及稀疏性約束,使得獲得的模型可以學習到數據自己的結構,從而獲得比輸入更具備表示能力的特徵;在學習獲得第n-1層後,將n-1層的輸出做爲第n層的輸入,訓練第n層,由此分別獲得各層的參數;
2)自頂向下的監督學習(就是經過帶標籤的數據去訓練,偏差自頂向下傳輸,對網絡進行微調):
基於第一步獲得的各層參數進一步fine-tune(微調)整個多層模型的參數,這一步是一個有監督訓練過程;第一步相似神經網絡的隨機初始化初值過程,因爲DL的第一步不是隨機初始化,而是經過學習輸入數據的結構獲得的,於是這個初值更接近全局最優,從而可以取得更好的效果;因此deep learning效果好很大程度上歸功於第一步的feature learning過程。
參考:http://www.cnblogs.com/caocan702/p/5662789.html