1、反向傳播思想:
計算出輸出與標簽間的損失函數(shù)值,然后計算其相對于每個神經(jīng)元的梯度,根據(jù)梯度方向更新權值。
(1)將訓練集數(shù)據(jù)輸入到ANN的輸入層,經(jīng)過隱藏層,最后達到輸出層并輸出結果,這是ANN的前向傳播過程;
(2)由于ANN的輸出結果與實際結果有誤差,則計算估計值與實際值之間的誤差,并將該誤差從輸出層向隱藏層反向傳播,直至傳播到輸入層;
(3)在反向傳播的過程中,根據(jù)誤差調(diào)整各種參數(shù)的值;不斷迭代上述過程,直至收斂。
2、無監(jiān)督逐層訓練:預訓練:每次訓練一層隱結點。訓練時將上一層隱結點的輸出作為輸入,而本層隱結點的輸出作為 下一層隱結點的輸入。在預訓練結束后,再對整個網(wǎng)絡進行微調(diào)訓練。
3、DNN:指深度神經(jīng)網(wǎng)絡,與RNN循環(huán)神經(jīng)網(wǎng)絡、CNN卷積神經(jīng)網(wǎng)絡的區(qū)別就是,DNN特指全連接的神經(jīng)元結構,并不包含卷積單元 或時間上的關聯(lián)。
一、DBN:(預訓練 微調(diào))
思想:整個網(wǎng)絡看成是多個RBM的堆疊,在使用無監(jiān)督逐層訓練時,首先訓練第一層,然后將第一層預訓練好的隱結點視為第二層的輸入節(jié)點,對第二層進行預訓練,各層預訓練完成后,再用BP算法對整個網(wǎng)絡進行訓練。
整體解釋:預訓練 微調(diào) 的做法可視為將大量參數(shù)分組,對每組先找到局部看起來比較好的位置,然后再基于這些局部較優(yōu)的結果聯(lián)合起來進行全局尋優(yōu)。好處:利用了模型大量參數(shù)所提供的自由度,有效的節(jié)省了訓練開銷。
(補充:是一個概率生成模型,與傳統(tǒng)的判別神經(jīng)網(wǎng)絡不同的是,生成模型建立了觀察數(shù)據(jù)和標簽之間的聯(lián)合分布,而判別模型只評估了條件概率。
DBN遇到的問題:需要為訓練提供一個有標簽的樣本集;學習過程較慢;不適當?shù)膮?shù)選擇導致學習收斂于局部最優(yōu)解。)
二、CNN:(局部感知 權共享機制:讓一組神經(jīng)元使用相同的連接權)
提出:全連接的結構下會引起參數(shù)數(shù)量的膨脹,容易過擬合且局部最優(yōu)。圖像中有固有的局部模式可以利用,所以,提出了CNN,并不是所有上下層神經(jīng)元都能直接相連,而是通過“卷積核”作為中介。同一個卷積核在所有圖像內(nèi)都是共享的,圖像通過卷積操作后仍然保留原來的位置關系。
復合多個“卷積層”和“采樣層”對輸入信號進行加工,然后再連接層實現(xiàn)與輸出目標之間的映射。多層的目的:一層卷積學到的特征往往是局部的,層數(shù)越高,學到的特征就越全局化。
CNN兩大神器:
1、局部感知:一般認為圖像的空間聯(lián)系是局部的像素聯(lián)系比較密切,而距離較遠的像素相關性較弱,因此,每個神經(jīng)元沒必要對全局圖像進行感知,只要對局部進行感知,然后在更高層將局部的信息綜合起來得到全局信息。利用卷積層實現(xiàn):(特征映射,每個特征映射是一個神經(jīng)元陣列):從上一層通過局部卷積濾波器提取局部特征。卷積層緊跟著一個用來求局部平均與二次提取的計算層,這種二次特征提取結構減少了特征分辨率。
2、參數(shù)共享:在局部連接中,每個神經(jīng)元的參數(shù)都是一樣的,即:同一個卷積核在圖像中都是共享的。(理解:卷積操作實際是在提取一個個局部信息,而局部信息的一些統(tǒng)計特性和其他部分是一樣的,也就意味著這部分學到的特征也可以用到另一部分上。所以對圖像上的所有位置,都能使用同樣的學習特征。)卷積核共享有個問題:提取特征不充分,可以通過增加多個卷積核來彌補,可以學習多種特征。
3、采樣(池化)層:在通過卷積得到特征后,希望利用這些特征進行分類?;诰植肯嚓P性原理進行亞采樣,在減少數(shù)據(jù)量的同時保留有用信息。(壓縮數(shù)據(jù)和參數(shù)的量,減少過擬合)(max-polling 和average-polling)
可用BP算法訓練,訓練中,無論是卷積層還是采樣層,每一組神經(jīng)元都是用相同的連接權。
優(yōu)點:限制了參數(shù)的個數(shù)并挖掘了局部結構的這個特點,減少了復雜度。
(CNN主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形。由于CNN的特征檢測層通過訓練數(shù)據(jù)進行學習,所以在使用CNN時,避免了顯示的特征抽取,而隱式地從訓練數(shù)據(jù)中進行學習;再者由于同一特征映射面上的神經(jīng)元權值相同,所以網(wǎng)絡可以并行學習,這也是卷積網(wǎng)絡相對于神經(jīng)元彼此相連網(wǎng)絡的一大優(yōu)勢。卷積神經(jīng)網(wǎng)絡以其局部權值共享的特殊結構在語音識別和圖像處理方面有著獨特的優(yōu)越性,其布局更接近于實際的生物神經(jīng)網(wǎng)絡,權值共享降低了網(wǎng)絡的復雜性,特別是多維輸入向量的圖像可以直接輸入網(wǎng)絡這一特點避免了特征提取和分類過程中數(shù)據(jù)重建的復雜度)
三、DBN與CNN兩者異同:
異:DBN:全連接,有pre-train過程;CNN:局部連接,沒有預訓練過程,但加了卷積。
同:無論是DBN還是CNN,這種多隱層堆疊,每層對上一層的輸出進行處理的機制,可看作是在對輸入信號進行逐層加工,從而把初始的、與輸出目標之間聯(lián)系不大的輸入表示,轉(zhuǎn)化成與輸出目標聯(lián)系密切的表示。即:通過多層處理,逐漸將初始的低層特征表示轉(zhuǎn)化成高層的特征表示后,用“簡單模型”就可以完成復雜的分類等學習任務。
四、RNN:
提出:DNN存在一個缺陷:無法對時間序列上的變化進行建模,然而,樣本出現(xiàn)的時間順序?qū)τ谧匀徽Z言處理、語音識別等應用很重要;RNN解決了樣本的處理在各個時刻獨立的問題,可以對時間序列上的變化進行建模,深度是時間上的長度。神經(jīng)元的輸出可以在下一個時間戳直接作用到自身。即,某一層某一時刻神經(jīng)元的輸入,除了上一層神經(jīng)元在該時刻的輸出外,還有本身在上一時刻的輸出。
缺點:時間軸上的“梯度消失”,為解決這個問題——>長短時記憶單元LSTM:通過門的開關實現(xiàn)時間上記憶功能,防止梯度消失。
五、LSTM:
核心:模仿一種細胞狀態(tài),類似傳送帶思想,直接在整個鏈上運行,只有一些少量的線性交互,信息在上面保持不變。利用一種“門”的結構來去除或增加信息到細胞狀態(tài)的能力,有三個門。門:讓信息選擇通過的方法,包括sigmoid神經(jīng)網(wǎng)絡層和一個點乘操作。
第一步:忘記門層:決定從細胞狀態(tài)中丟棄什么信息。讀取本層的輸入和上一層的輸出,輸出一個0到1之間的數(shù)值給每個細胞狀態(tài)。
第二步:確定什么樣的信息被存放在細胞狀態(tài)中,包含兩個部分:1)sigmoid“輸入門層”,決定什么值將要更新。2)tanh層,創(chuàng)建一個新的候選值向量。會被加到狀態(tài)中。
第三步:更新細胞狀態(tài)?;诩毎麪顟B(tài)確定輸出什么值
面試篇:
深度學習整體解釋:
1)自下而上的非監(jiān)督學習
2)自頂向下的監(jiān)督學習
理解它們各自的參數(shù)代表什么,比較好的初始參數(shù),BP的計算,以及常見超參數(shù)的調(diào)整策略。
如何優(yōu)化模型 : 加速收斂, 避免overfit, 提升精度 ..
– batch size effect;- learning rate effect;- weight initialization effect;- batch normalization
– drop-out;- model average;- fine-tuning;- data augmentation
CNN最成功的應用是在CV,那為什么NLP和Speech的很多問題也可以用CNN解出來?為什么AlphaGo里也用了CNN?這幾個不相關的問題的相似性在哪里?CNN通過什么手段抓住了這個共性?
幾個不相關的問題的相關性在于,都存在局部與整體的關系,由低層次的特征經(jīng)過組合,組成高層次的特征,并且得到不同特征之間的空間相關性。
CNN通過:局部感知、權值共享、池化操作、多層次結構抓住了這個共性。局部感知使網(wǎng)絡可以提取數(shù)據(jù)的局部特征;權值共享大大降低了網(wǎng)絡的訓練難度;池化操作和多層次結構一起,實現(xiàn)了數(shù)據(jù)的降維,將低層次的特征組合成高層次的特征。
什么時候用local-conv?什么時候用全卷積(每一個點用同一個filter)?
當數(shù)據(jù)集具有全局的局部特征分布時,也就是說局部特征之間有較強的相關性,適合用全卷積。在不同的區(qū)域有不同的特征分布時,適合用local-Conv。
什么樣的資料不適合用深度學習?
1)數(shù)據(jù)集太小,因為神經(jīng)網(wǎng)絡有效的關鍵就是大量的數(shù)據(jù),有大量的參數(shù)需要訓練,少量的數(shù)據(jù)不能充分訓練參數(shù)。2)數(shù)據(jù)集沒有局部相關性。目前深度學習應用的領域主要是圖像、語音、自然語言處理,這些領域的共性就是局部相關性。例如:圖像中的像素組成物體,語音中的音位組成單詞,文本數(shù)據(jù)中的單詞組成句子,而深度學習的本質(zhì)就是學習局部低層次的特征,然后組合低層次的特征成高層次的特征,得到不同特征之間的空間相關性。
何為共線性, 跟過擬合有啥關聯(lián)?
共線性:多變量線性回歸中,變量之間由于存在高度相關關系而使回歸估計不準確。
共線性會造成冗余,導致過擬合。
解決方法:排除變量的相關性/加入權重正則。
為什么引入非線性激勵函數(shù)?
因為如果不用非線性激勵函數(shù),每一層都是上一層的線性函數(shù),無論神經(jīng)網(wǎng)絡多少層,輸出都是輸入的線性組合,與只有一個隱藏層效果一樣。相當于多層感知機了。所以引入非線性激勵函數(shù),深層網(wǎng)絡就變得有意義了,可以逼近任意函數(shù)。
什么造成梯度消失?推導?
許多激活函數(shù)將輸出值擠壓在很小的區(qū)間內(nèi),在激活函數(shù)兩端較大范圍的定義域內(nèi)梯度為0,導致權重更新的緩慢訓練難度增加,造成學習停止。(前面層上的梯度是來自后面的層上項的乘積,當層數(shù)過多時,隨著乘積的累積,將越來越小。)
CNN常見的問題
1、梯度消失問題:過多的層數(shù)會導致梯度消失,解決手段:減少層數(shù);增大學習率;用Relu代替sigmoid。
2、權重衰減:CNN的權重共享相當于自帶某種正則項,所以代價函數(shù)里可不加正則
3、隨機梯度下降的參數(shù)選擇:
參考:
http://blog.csdn.net/fuwenyan/article/details/53914371
1)batch的選擇決定了下降的方向:
如果數(shù)據(jù)集比較小,可以采用全數(shù)據(jù)集的形式,好處:全數(shù)據(jù)集確定的方向能夠更好的代表樣本總體;不同權重的梯度值差別巨大,因此選一個全局的學習率很困難,使用全數(shù)據(jù)集可以只基于梯度符號并且針對性單獨更新各權值。
如果數(shù)據(jù)集比較大,全數(shù)據(jù)集不可行,內(nèi)存限制;由于各個batch采樣的差異性,各次梯度修正值相互抵消,無法修正。另一個極端每次只訓練一個樣本,batch=1,每次修正方向以各自樣本的梯度方向修正,難以達到收斂。
選擇適中的batch? 批梯度下降法,
常用的激勵函數(shù):
http://blog.csdn.net/u013146742/article/details/51986575
1)sigmoid:將輸出實值壓縮到0-1之間。 缺點:(輸入非常大或非常小的時候)容易梯度消失;sigmoid函數(shù)是非0均值的,下一層的神經(jīng)元將從上一層神經(jīng)元得到的非0 均值的信號作為輸入,再結合w計算梯度,始終都是正的。(可根據(jù)batch調(diào)節(jié))
2)Tanh:是0均值的。
3)Relu(修正線性單元):好處:收斂快,求梯度簡單。具有稀疏特性。
(相比于sigmoid:sigmoid反向傳播求誤差梯度時,求導計算量很大,而relu求導簡單;對于深層網(wǎng)絡,sigmoid反向傳播時,在sigmoid接近飽和區(qū)時,變換太緩慢,導數(shù)趨0,從而無法完成深層網(wǎng)絡的訓練;Relu會使一部分神經(jīng)元的輸出為0,造成了網(wǎng)絡的稀疏性,并且減少了參數(shù)的相互依存關系,緩解了過擬合問題。)
缺點:訓練的時候很脆弱,一個非常大的梯度流過一個Relu神經(jīng)元后,不會對其他數(shù)據(jù)有激活現(xiàn)象了,設置較小的學習率,這種情況會不那么頻繁。
卷積計算層:
參數(shù)共享機制、一組固定的權重和不同窗口內(nèi)數(shù)據(jù)做內(nèi)積:卷積
CNN優(yōu)缺點:
優(yōu)點:共享卷積核、減少了網(wǎng)絡自由參數(shù)的個數(shù),對高維數(shù)據(jù)處理無壓力;無需手動選取特征,訓練好權重,即得特征。降低神經(jīng)網(wǎng)絡的復雜性。這種網(wǎng)絡結構在有監(jiān)督的方式下學習到了一些良好的性能:對平移、比例縮放、傾斜或其他形式的變形具有高度不變性。
缺點:需要調(diào)參,需要大量樣本;
神經(jīng)網(wǎng)絡優(yōu)勢:
可以利用神經(jīng)網(wǎng)絡中某一層的輸出當做是數(shù)據(jù)的另一種表達,從而可以將其認為是經(jīng)過神經(jīng)網(wǎng)絡學習到的特征,基于這一特征,可以進行進一步的相似度比較等操作。
有效的關鍵是大規(guī)模的數(shù)據(jù),每個DL都有眾多的參數(shù),少量數(shù)據(jù)無法將參數(shù)訓練充分。
發(fā)展缺陷:
隨著網(wǎng)絡層數(shù)的加深,優(yōu)化函數(shù)越來越容易陷入局部最優(yōu)解,并且這個“陷阱”越來越偏離真正的全局最優(yōu),利用有限數(shù)據(jù)訓練的深層網(wǎng)絡,性能還不如淺層網(wǎng)絡。
隨著網(wǎng)絡層數(shù)增加,梯度消失現(xiàn)象越來越嚴重,(一般指sigmoid函數(shù),反向傳播時,每傳遞一層,梯度衰減為原來的1/4。層數(shù)一多,梯度指數(shù)衰減后,底層基本接收不到有效的訓練信號。
來自:公眾號: datadw
下一篇:權威解讀!2018年的人工智能趨勢(必看)
機器人小妹自媒體平臺,專注人工智能、機器人、無人車、物聯(lián)網(wǎng)等領域,傳播行業(yè)資訊、技術等知識,為產(chǎn)業(yè)生態(tài)發(fā)展而努力,歡迎找資源對接(投資、渠道、推廣)的朋友進入本平臺社群;
可加微信:qingxiangjs