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