版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
DEEPLEARNING深度學(xué)習(xí)第九章深度學(xué)習(xí)主流模型9.1
9.2卷積神經(jīng)網(wǎng)絡(luò)9.3循環(huán)神經(jīng)網(wǎng)絡(luò)習(xí)題緒論9.1神經(jīng)網(wǎng)絡(luò)技術(shù)的歷史與發(fā)展第九章深度學(xué)習(xí)模型早期的神經(jīng)網(wǎng)絡(luò)是一個(gè)淺層的學(xué)習(xí)模型(包含一個(gè)輸入層、一個(gè)隱層及一個(gè)輸出層),它有大量的參數(shù),在訓(xùn)練集上有較好的表現(xiàn),但實(shí)際應(yīng)用時(shí)其識(shí)別率并沒(méi)有比其他模型(如支持向量機(jī)、Boosting等)體現(xiàn)出明顯的優(yōu)勢(shì)神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí)采用誤差反向傳播算法(BackPropagation,簡(jiǎn)稱(chēng)BP算法),使用梯度下降方法在訓(xùn)練過(guò)程中修正權(quán)重減少網(wǎng)絡(luò)誤差。在層次深的情況下性能變得很不理想,傳播時(shí)容易出現(xiàn)所謂的梯度彌散GradientDiffusion或稱(chēng)之為梯度消失(VanishingGradientProblem),根源在于非凸目標(biāo)代價(jià)函數(shù)導(dǎo)致求解陷入局部最優(yōu),且這種情況隨著網(wǎng)絡(luò)層數(shù)的增加而更加嚴(yán)重,即隨著梯度的逐層不斷消散導(dǎo)致其對(duì)網(wǎng)絡(luò)權(quán)重調(diào)整的作用越來(lái)越小。所以只能轉(zhuǎn)而處理淺層結(jié)構(gòu)(通常小于等于3),從而限制了神經(jīng)網(wǎng)絡(luò)的大范圍應(yīng)用。9.1概述--淺層神經(jīng)網(wǎng)絡(luò)9.1神經(jīng)網(wǎng)絡(luò)技術(shù)的歷史與發(fā)展2006年Hinton提出深度學(xué)習(xí)后才被打破,深度神經(jīng)網(wǎng)絡(luò)的復(fù)興存在多方面的原因其一,大規(guī)模的訓(xùn)練樣本可以緩解過(guò)擬合問(wèn)題;其二,網(wǎng)絡(luò)模型的訓(xùn)練方法也有了顯著的進(jìn)步;其三,計(jì)算機(jī)硬件的飛速發(fā)展(如英偉達(dá)顯卡的出現(xiàn))使得訓(xùn)練效率能夠以幾倍、十幾倍的幅度提升。此外,深度神經(jīng)網(wǎng)絡(luò)具有強(qiáng)大的特征學(xué)習(xí)能力,
過(guò)去幾十年中,手工設(shè)計(jì)特征一直占據(jù)著主導(dǎo)地位,特征的好壞直接影響到系統(tǒng)的性能。of4749.1概述--深度學(xué)習(xí)模型第九章深度學(xué)習(xí)模型9.1神經(jīng)網(wǎng)絡(luò)技術(shù)的歷史與發(fā)展面對(duì)一個(gè)新的任務(wù),如果采用手工設(shè)計(jì)的方式,往往需要很長(zhǎng)時(shí)間,而深度學(xué)習(xí)能很快提取到具有代表性的特征。另一方面,隨著分類(lèi)任務(wù)復(fù)雜性的增加,需要用到越來(lái)越多的參數(shù)及樣本,雖然淺層神經(jīng)網(wǎng)絡(luò)也能模擬出與深度學(xué)習(xí)相同的分類(lèi)函數(shù),但其所需的參數(shù)要多出幾個(gè)數(shù)量級(jí),以至于很難實(shí)現(xiàn)。of4759.1概述--深度學(xué)習(xí)模型第九章深度學(xué)習(xí)模型9.1神經(jīng)網(wǎng)絡(luò)技術(shù)的歷史與發(fā)展第九章深度學(xué)習(xí)模型學(xué)術(shù)界已經(jīng)提出了多種深度學(xué)習(xí)模型,其中影響力較大的有以下幾種(1)卷積神經(jīng)網(wǎng)絡(luò):該網(wǎng)絡(luò)一般包含三種類(lèi)型的層,分別是卷積層、池化層層及全連接層。通過(guò)卷積核與上一層輸出進(jìn)行卷積作為卷積層的輸出,這樣可以達(dá)到權(quán)值共享的目的;池化層是在卷積層的基礎(chǔ)上,執(zhí)行池化操作,使得整個(gè)網(wǎng)絡(luò)具有一定的縮放、平移及形變不變性。(2)循環(huán)神經(jīng)網(wǎng)絡(luò):該網(wǎng)絡(luò)與傳統(tǒng)前饋網(wǎng)絡(luò)的區(qū)別在于,隱層的輸入不僅包括輸入層的數(shù)據(jù),還包括前一時(shí)刻的隱層數(shù)據(jù)。這種結(jié)構(gòu)的網(wǎng)絡(luò)能有效處理序列數(shù)據(jù),如自然語(yǔ)言處理。(3)深度置信網(wǎng)絡(luò):該網(wǎng)絡(luò)由若干層受限玻爾茲曼機(jī)及一個(gè)反向傳播網(wǎng)絡(luò)組成。of4769.1概述--深度學(xué)習(xí)模型第九章深度學(xué)習(xí)主流模型9.1
9.2卷積神經(jīng)網(wǎng)絡(luò)9.3循環(huán)神經(jīng)網(wǎng)絡(luò)習(xí)題緒論of4779.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型卷積神經(jīng)網(wǎng)絡(luò)(Convolutionalneuralnetworks,CNN)已在圖像理解領(lǐng)域得到了廣泛的應(yīng)用,特別是隨著大規(guī)模圖像數(shù)據(jù)的產(chǎn)生以及計(jì)算機(jī)硬件(特別是GPU)的飛速發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)以及其改進(jìn)方法在圖像理解中取得了突破性的成果,引發(fā)了研究的熱潮。
基于深度學(xué)習(xí)的方法幾乎都以CNN為基礎(chǔ)。of4789.2卷積神經(jīng)網(wǎng)絡(luò)9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型CNN和之前介紹的神經(jīng)網(wǎng)絡(luò)一樣,可以像樂(lè)高積木一樣通過(guò)組裝層來(lái)構(gòu)建。CNN中新出現(xiàn)了卷積層(Convolution層)和池化層(Pooling層)。神經(jīng)網(wǎng)絡(luò)中,相鄰層的所有神經(jīng)元之間都有連接,這稱(chēng)為全連接(fully-connected),用Affine層可以實(shí)現(xiàn)全連接層。5層的全連接的神經(jīng)網(wǎng)絡(luò):Affine層后面激活函數(shù)ReLU層(或者Sigmoid層)。4層“Affine-ReLU”組合,第5層是Affine層,最后由Softmax層輸出最終結(jié)果(概率)。of4799.2.1
CNN整體結(jié)構(gòu)9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47109.2.1
CNN整體結(jié)構(gòu)基于CNN的網(wǎng)絡(luò),新增了Convolution層和Pooling層CNN的層的連接順序是“Convolution-ReLU-Pooling”(Pooling層有時(shí)會(huì)被省略)。之前的“Affine-ReLU”連接被替換成了“Convolution-ReLU-(Pooling)”連接??拷敵龅膶又惺褂昧酥暗摹癆ffine-ReLU”組合。最后的輸出層中使用了之前的“Affine-Softmax”組合。這些9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47119.2.2卷積層全連接層存在的問(wèn)題全連接的神經(jīng)網(wǎng)絡(luò)中使用了全連接層(Affine層)。在全連接層中,相鄰層的神經(jīng)元全部連接在一起,輸出的數(shù)量可以任意決定。全連接存在的問(wèn)題:數(shù)據(jù)的形狀被“忽視”了。輸入數(shù)據(jù)是圖像時(shí),圖像通常是高、長(zhǎng)、通道方向上的3維形狀。但是,向全連接層輸入時(shí),需要將3維數(shù)據(jù)拉平為1維數(shù)據(jù)。
MNIST數(shù)據(jù)集的例子中,輸入圖像就是1通道、高28像素、長(zhǎng)28像素的(1,28,28)形狀,但卻被排成1列,以784個(gè)數(shù)據(jù)的形式輸入到最開(kāi)始的Affine層。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47129.2.2卷積層全連接層存在的問(wèn)題如果圖像是3維形狀,這個(gè)形狀中應(yīng)該含有重要的空間信息。比如,空間上鄰近的像素為相似的值、RBG的各個(gè)通道之間分別有密切的關(guān)聯(lián)性、相距較遠(yuǎn)的像素之間沒(méi)有什么關(guān)聯(lián)等,3維形狀中可能隱藏有值得提取的本質(zhì)模式。但是,因?yàn)槿B接層會(huì)忽視形狀,將全部的輸入數(shù)據(jù)作為相同的神經(jīng)元(同一維度的神經(jīng)元)處理,所以無(wú)法利用與形狀相關(guān)的信息。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47139.2.2卷積層全連接層存在的問(wèn)題卷積層可以保持形狀不變。當(dāng)輸入數(shù)據(jù)是圖像時(shí),卷積層會(huì)以3維數(shù)據(jù)的形式接收輸入數(shù)據(jù),并同樣以3維數(shù)據(jù)的形式輸出至下一層。因此,在CNN中,可以正確理解圖像等具有形狀的數(shù)據(jù)。CNN中,將卷積層的輸入輸出數(shù)據(jù)稱(chēng)為特征圖(featuremap)。卷積層的輸入數(shù)據(jù)稱(chēng)為輸入特征圖(inputfeaturemap),輸出數(shù)據(jù)稱(chēng)為輸出特征圖(outputfeaturemap)?!拜斎胼敵鰯?shù)據(jù)”和“特征圖”可以認(rèn)為是同義詞。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47149.2.2卷積層卷積運(yùn)算卷積層進(jìn)行的處理就是卷積運(yùn)算。卷積運(yùn)算相當(dāng)于圖像處理中的“濾波器運(yùn)算”。卷積運(yùn)算對(duì)輸入數(shù)據(jù)應(yīng)用濾波器。輸入數(shù)據(jù)是有高長(zhǎng)方向的形狀的數(shù)據(jù),濾波器也一樣,有高長(zhǎng)方向上的維度。用(height,width)表示數(shù)據(jù)和濾波器的形狀,輸入大小是(4,4),濾波器大小是(3,3),輸出大小是(2,2)。用符號(hào)表示卷積運(yùn)算9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47159.2.2卷積層卷積運(yùn)算對(duì)于輸入數(shù)據(jù),卷積運(yùn)算以一定間隔滑動(dòng)濾波器的窗口并應(yīng)用。將各個(gè)位置上濾波器的元素和輸入的對(duì)應(yīng)元素相乘,然后再求和(乘積累加運(yùn)算)。然后,將這個(gè)結(jié)果保存到輸出的對(duì)應(yīng)位置。將這個(gè)過(guò)程在所有位置都進(jìn)行一遍,就可以得到卷積運(yùn)算的輸出。在全連接的神經(jīng)網(wǎng)絡(luò)中,除了權(quán)重參數(shù),還存在偏置。CNN中,濾波器的參數(shù)就對(duì)應(yīng)之前的權(quán)重。并且,CNN中也存在偏置。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47169.2.2卷積層卷積運(yùn)算卷積運(yùn)算的計(jì)算順序9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47179.2.2卷積層卷積運(yùn)算卷積運(yùn)算的計(jì)算順序9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47189.2.2卷積層卷積運(yùn)算向應(yīng)用了濾波器的數(shù)據(jù)加上了偏置。偏置通常只有1個(gè)(1×1)(本例中,相對(duì)于應(yīng)用了濾波器的4個(gè)數(shù)據(jù),偏置只有1個(gè)),這個(gè)值會(huì)被加到應(yīng)用了濾波器的所有元素上。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47199.2.2卷積層填充在進(jìn)行卷積層的處理之前,有時(shí)要向輸入數(shù)據(jù)的周?chē)钊牍潭ǖ臄?shù)據(jù)(比如0等),這稱(chēng)為填充(padding),是卷積運(yùn)算中經(jīng)常會(huì)用到的處理。大小為(4,4)的輸入數(shù)據(jù)應(yīng)用了幅度為1的填充。“幅度為1的填充”是指用幅度為1像素的0填充周?chē)?。卷積運(yùn)算的填充處理:向輸入數(shù)據(jù)的周?chē)钊?(圖中用虛線表示填充,并省略了填充的內(nèi)容“0”)9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47209.2.2卷積層填充通過(guò)填充,大小為(4,4)的輸入數(shù)據(jù)變成了(6,6)的形狀。然后,應(yīng)用大小為(3,3)的濾波器,生成了大小為(4,4)的輸出數(shù)據(jù)。這個(gè)例子中將填充設(shè)成了1,不過(guò)填充的值也可以設(shè)置成2、3等任意的整數(shù)。如果將填充設(shè)為2,則輸入數(shù)據(jù)的大小變?yōu)?8,8);如果將填充設(shè)為3,則大小變?yōu)?10,10)。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47219.2.2卷積層填充使用填充主要是為了調(diào)整輸出的大小。比如,對(duì)大小為(4,4)的輸入數(shù)據(jù)應(yīng)用(3,3)的濾波器時(shí),輸出大小變?yōu)?2,2),相當(dāng)于輸出大小比輸入大小縮小了2個(gè)元素。這在反復(fù)進(jìn)行多次卷積運(yùn)算的深度網(wǎng)絡(luò)中會(huì)成為問(wèn)題。為什么呢?因?yàn)槿绻看芜M(jìn)行卷積運(yùn)算都會(huì)縮小空間,那么在某個(gè)時(shí)刻輸出大小就有可能變?yōu)?,導(dǎo)致無(wú)法再應(yīng)用卷積運(yùn)算。為了避免出現(xiàn)這樣的情況,就要使用填充。在剛才的例子中,將填充的幅度設(shè)為1,那么相對(duì)于輸入大小(4,4),輸出大小也保持為原來(lái)的(4,4)。因此,卷積運(yùn)算就可以在保持空間大小不變的情況下將數(shù)據(jù)傳給下一層。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47229.2.2卷積層步幅應(yīng)用濾波器的位置間隔稱(chēng)為步幅(stride)。之前的例子中步幅都是1,如果將步幅設(shè)為2,應(yīng)用濾波器的窗口的間隔變?yōu)?個(gè)元素。步驟19.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47239.2.2卷積層步幅步驟29.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47249.2.2卷積層步幅對(duì)輸入大小為(7,7)的數(shù)據(jù),以步幅2應(yīng)用了濾波器。通過(guò)將步幅設(shè)為2,輸出大小變?yōu)?3,3)。像這樣,步幅可以指定應(yīng)用濾波器的間隔。綜上,增大步幅后,輸出大小會(huì)變小。而增大填充后,輸出大小會(huì)變大。假設(shè)輸入大小為(H,
W),濾波器大小為(FH,
FW),輸出大小為(OH,
OW),填充為
P,步幅為
S。此時(shí),輸出大小可通過(guò)下式進(jìn)行計(jì)算。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47259.2.2卷積層步幅示例1:輸入大?。?4,4);填充:1;步幅:1;濾波器大?。?3,3)示例2:輸入大?。?7,7);填充:0;步幅:2;濾波器大?。?3,3)9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47269.2.2卷積層步幅示例3:輸入大小:(28,31);填充:2;步幅:3;濾波器大小:(5,5)這些示例中,通過(guò)式中代入值,就可以計(jì)算輸出大小。需要注意的是,雖然只要代入值就可以計(jì)算輸出大小,但是所設(shè)定的值必須可以除盡。當(dāng)輸出大小無(wú)法除盡時(shí)(結(jié)果是小數(shù)時(shí)),需要采取報(bào)錯(cuò)等對(duì)策。根據(jù)深度學(xué)習(xí)的框架的不同,當(dāng)值無(wú)法除盡時(shí),有時(shí)會(huì)向最接近的整數(shù)四舍五入,不進(jìn)行報(bào)錯(cuò)而繼續(xù)運(yùn)行。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47279.2.2卷積層3維數(shù)據(jù)的卷積運(yùn)算之前的卷積運(yùn)算的例子都是以有高、長(zhǎng)方向的2維形狀為對(duì)象的。但是,圖像是3維數(shù)據(jù),除了高、長(zhǎng)方向之外,還需要處理通道方向。這里,我們按照與之前相同的順序,看一下對(duì)加上了通道方向的3維數(shù)據(jù)進(jìn)行卷積運(yùn)算的例子。和2維數(shù)據(jù)時(shí)相比,可以發(fā)現(xiàn)縱深方向(通道方向)上特征圖增加了。通道方向上有多個(gè)特征圖時(shí),會(huì)按通道進(jìn)行輸入數(shù)據(jù)和濾波器的卷積運(yùn)算,并將結(jié)果相加,從而得到輸出。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47289.2.2卷積層3維數(shù)據(jù)的卷積運(yùn)算9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47299.2.2卷積層3維數(shù)據(jù)的卷積運(yùn)算9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47309.2.2卷積層結(jié)合方塊思考將數(shù)據(jù)和濾波器結(jié)合長(zhǎng)方體的方塊來(lái)考慮,3維數(shù)據(jù)的卷積運(yùn)算會(huì)很容易理解。方塊是3維長(zhǎng)方體,把3維數(shù)據(jù)表示為多維數(shù)組時(shí),寫(xiě)順序?yàn)椋╟hannel,height,width)。通道數(shù)為
C、高度為
H、長(zhǎng)度為
W
的數(shù)據(jù)的形狀可以寫(xiě)成(C,
H,
W)。濾波器也一樣,要按(channel,height,width)的順序?qū)憽Mǖ罃?shù)為
C、濾波器高度為
FH(FilterHeight)、長(zhǎng)度為
FW(FilterWidth)時(shí),可以寫(xiě)成(C,
FH,
FW)。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47319.2.2卷積層結(jié)合方塊思考數(shù)據(jù)輸出是1張?zhí)卣鲌D。所謂1張?zhí)卣鲌D,就是通道數(shù)為1的特征圖。如果通道方向上擁有多個(gè)卷積運(yùn)算的輸出,就需要用到多個(gè)濾波器(權(quán)重)。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47329.2.2卷積層結(jié)合方塊思考通過(guò)應(yīng)用
FN
個(gè)濾波器,輸出特征圖也生成了
FN
個(gè)。如果將這
FN
個(gè)特征圖匯集在一起,就得到了形狀為(FN,
OH,
OW)的方塊。將這個(gè)方塊傳給下一層,就是CNN的處理流。關(guān)于卷積運(yùn)算的濾波器,也必須考慮濾波器的數(shù)量。因此,作為4維數(shù)據(jù),濾波器的權(quán)重?cái)?shù)據(jù)要按(output_channel,input_channel,height,width)的順序?qū)?。比如,通道?shù)為3、大小為5×5的濾波器有20個(gè)時(shí),可以寫(xiě)成(20,3,5,5)。卷積運(yùn)算中(和全連接層一樣)存在偏置,需追加偏置的加法運(yùn)算處理。比如,偏置的形狀是(FN,1,1),濾波器的輸出結(jié)果的形狀是(FN,
OH,
OW)。這兩個(gè)方塊相加時(shí),要對(duì)濾波器的輸出結(jié)果(FN,
OH,
OW)按通道加上相同的偏置值。另外,不同形狀的方塊相加時(shí),可以基于NumPy的廣播功能輕松實(shí)現(xiàn)。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47339.2.2卷積層結(jié)合方塊思考9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47349.2.2卷積層批處理神經(jīng)網(wǎng)絡(luò)的處理中進(jìn)行了將輸入數(shù)據(jù)打包的批處理。之前的全連接神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)也對(duì)應(yīng)了批處理,通過(guò)批處理,能夠?qū)崿F(xiàn)處理的高效化和學(xué)習(xí)時(shí)對(duì)mini-batch的對(duì)應(yīng)。我們希望卷積運(yùn)算也同樣對(duì)應(yīng)批處理。為此,需要將在各層間傳遞的數(shù)據(jù)保存為4維數(shù)據(jù)。具體地講,就是按(batch_num,channel,height,width)的順序保存數(shù)據(jù)。批處理版的數(shù)據(jù)流中,在各個(gè)數(shù)據(jù)的開(kāi)頭添加了批用的維度。像這樣,數(shù)據(jù)作為4維的形狀在各層間傳遞。這里需要注意的是,網(wǎng)絡(luò)間傳遞的是4維數(shù)據(jù),對(duì)這
N
個(gè)數(shù)據(jù)進(jìn)行了卷積運(yùn)算。也就是說(shuō),批處理將
N
次的處理匯總成了1次進(jìn)行。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47359.2.2卷積層批處理9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47369.2.3池化層池化是縮小高、長(zhǎng)方向上的空間的運(yùn)算。如下圖,進(jìn)行將2×2的區(qū)域集約成1個(gè)元素的處理,縮小空間大小。Max池化的處理順序9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47379.2.3池化層例子是按步幅2進(jìn)行2×2的Max池化時(shí)的處理順序。“Max池化”是獲取最大值的運(yùn)算,“2×2”表示目標(biāo)區(qū)域的大小。從2×2的區(qū)域中取出最大的元素。此外,這個(gè)例子中將步幅設(shè)為了2,所以2×2的窗口的移動(dòng)間隔為2個(gè)元素。另外,一般來(lái)說(shuō),池化的窗口大小會(huì)和步幅設(shè)定成相同的值。比如,3×3的窗口的步幅會(huì)設(shè)為3,4×4的窗口的步幅會(huì)設(shè)為4等。除了Max池化之外,還有Average池化等。相對(duì)于Max池化是從目標(biāo)區(qū)域中取出最大值,Average池化則是計(jì)算目標(biāo)區(qū)域的平均值。在圖像識(shí)別領(lǐng)域,主要使用Max池化。因此,說(shuō)到“池化層”時(shí),指的是Max池化。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47389.2.3池化層池化層的特征沒(méi)有要學(xué)習(xí)的參數(shù)池化層和卷積層不同,沒(méi)有要學(xué)習(xí)的參數(shù)。池化只是從目標(biāo)區(qū)域中取最大值(或者平均值),所以不存在要學(xué)習(xí)的參數(shù)。通道數(shù)不發(fā)生變化經(jīng)過(guò)池化運(yùn)算,輸入數(shù)據(jù)和輸出數(shù)據(jù)的通道數(shù)不會(huì)發(fā)生變化,計(jì)算是按通道獨(dú)立進(jìn)行的。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47399.2.3池化層池化層的特征對(duì)微小的位置變化具有魯棒性輸入數(shù)據(jù)發(fā)生微小偏差時(shí),池化仍會(huì)返回相同的結(jié)果。因此,池化對(duì)輸入數(shù)據(jù)的微小偏差具有魯棒性。比如,3×3的池化的情況下,池化會(huì)吸收輸入數(shù)據(jù)的偏差(根據(jù)數(shù)據(jù)的不同,結(jié)果有可能不一致)。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47409.2.4
CNN的可視化CNN中用到的卷積層在“觀察”什么呢?本節(jié)將通過(guò)卷積層的可視化,探索CNN中到底進(jìn)行了什么處理。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47419.2.4
CNN的可視化第1層權(quán)重的可視化MNIST數(shù)據(jù)集進(jìn)行學(xué)習(xí)后,假設(shè),第1層的卷積層的權(quán)重的形狀是(30,1,5,5),即30個(gè)大小為5×5、通道為1的濾波器。濾波器大小是5×5、通道數(shù)是1,意味著濾波器可以可視化為1通道的灰度圖像?,F(xiàn)在,我們將卷積層(第1層)的濾波器顯示為圖像。我們來(lái)比較一下學(xué)習(xí)前和學(xué)習(xí)后的權(quán)重。學(xué)習(xí)前的濾波器是隨機(jī)進(jìn)行初始化的,所以在黑白的濃淡上沒(méi)有規(guī)律可循,但學(xué)習(xí)后的濾波器變成了有規(guī)律的圖像。我們發(fā)現(xiàn),通過(guò)學(xué)習(xí),濾波器被更新成了有規(guī)律的濾波器,比如從白到黑漸變的濾波器、含有塊狀區(qū)域(稱(chēng)為blob)的濾波器等。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47429.2.4
CNN的可視化第1層權(quán)重的可視化上圖右邊的有規(guī)律的濾波器在“觀察”什么,答案就是它在觀察邊緣(顏色變化的分界線)和斑塊(局部的塊狀區(qū)域)等。比如,左半部分為白色、右半部分為黑色的濾波器的情況下,會(huì)對(duì)垂直方向上的邊緣有響應(yīng)。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47439.2.4
CNN的可視化第1層權(quán)重的可視化上圖對(duì)水平方向上和垂直方向上的邊緣有響應(yīng)的濾波器:輸出圖像1中,垂直方向的邊緣上出現(xiàn)白色像素,輸出圖像2中,水平方向的邊緣上出現(xiàn)很多白色像素圖中顯示了選擇兩個(gè)學(xué)習(xí)完的濾波器對(duì)輸入圖像進(jìn)行卷積處理時(shí)的結(jié)果。我們發(fā)現(xiàn)“濾波器1”對(duì)垂直方向上的邊緣有響應(yīng),“濾波器2”對(duì)水平方向上的邊緣有響應(yīng)。由此可知,卷積層的濾波器會(huì)提取邊緣或斑塊等原始信息。CNN會(huì)將這些原始信息傳遞給后面的層。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47449.2.4
CNN的可視化基于分層結(jié)構(gòu)的信息提取第1層的卷積層中提取了邊緣或斑塊等“低級(jí)”信息,那么在堆疊了多層的CNN中,各層中又會(huì)提取什么樣的信息呢?根據(jù)深度學(xué)習(xí)的可視化相關(guān)的研究,隨著層次加深,提取的信息(正確地講,是反映強(qiáng)烈的神經(jīng)元)也越來(lái)越抽象。下圖展示了進(jìn)行一般物體識(shí)別(車(chē)或狗等)的8層CNN。這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)的名稱(chēng)是AlexNet。AlexNet網(wǎng)絡(luò)結(jié)構(gòu)堆疊了多層卷積層和池化層,最后經(jīng)過(guò)全連接層輸出結(jié)果。圖中方塊表示的是中間數(shù)據(jù),對(duì)于這些中間數(shù)據(jù),會(huì)連續(xù)應(yīng)用卷積運(yùn)算。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47459.2.4
CNN的可視化基于分層結(jié)構(gòu)的信息提取9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47469.2.4
CNN的可視化基于分層結(jié)構(gòu)的信息提取CNN的卷積層中提取的信息。第1層的神經(jīng)元對(duì)邊緣或斑塊有響應(yīng),第3層對(duì)紋理有響應(yīng),第5層對(duì)物體部件有響應(yīng),最后的全連接層對(duì)物體的類(lèi)別(狗或車(chē))有響應(yīng)。圖中,如果堆疊了多層卷積層,則隨著層次加深,提取的信息也愈加復(fù)雜、抽象,這是深度學(xué)習(xí)中很有意思的一個(gè)地方。最開(kāi)始的層對(duì)簡(jiǎn)單的邊緣有響應(yīng),接下來(lái)的層對(duì)紋理有響應(yīng),再后面的層對(duì)更加復(fù)雜的物體部件有響應(yīng)。也就是說(shuō),隨著層次加深,神經(jīng)元從簡(jiǎn)單的形狀向“高級(jí)”信息變化。換句話說(shuō),就像我們理解東西的“含義”一樣,響應(yīng)的對(duì)象在逐漸變化。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47479.2.4
CNN的可視化具有代表性的CNN關(guān)于CNN,迄今為止已經(jīng)提出了各種網(wǎng)絡(luò)結(jié)構(gòu)。這里,介紹其中特別重要的兩個(gè)網(wǎng)絡(luò),一個(gè)是在1998年首次被提出的CNN元祖LeNet,另一個(gè)是在深度學(xué)習(xí)受到關(guān)注的2012年被提出的AlexNet。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47489.2.4
CNN的可視化具有代表性的CNNLeNetLeNet在1998年被提出,是進(jìn)行手寫(xiě)數(shù)字識(shí)別的網(wǎng)絡(luò)。它有連續(xù)的卷積層和池化層最后經(jīng)全連接層輸出結(jié)果。和“現(xiàn)在的CNN”相比,LeNet有幾個(gè)不同點(diǎn)。第一個(gè)不同點(diǎn)在于激活函數(shù)。LeNet中使用sigmoid函數(shù),而現(xiàn)在的CNN中主要使用ReLU函數(shù)。此外,原始的LeNet中使用子采樣(subsampling)縮小中間數(shù)據(jù)的大小,而現(xiàn)在的CNN中Max池化是主流。LeNet與現(xiàn)在的CNN雖然有些許不同,但差別并不是那么大。并且LeNet是20多年前提出的最早的CNN,還是非常了不起的。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47499.2.4
CNN的可視化具有代表性的CNNLeNet9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47509.2.4
CNN的可視化具有代表性的CNNAlexNet在LeNet問(wèn)世20多年后,AlexNet被發(fā)布出來(lái)。AlexNet是引發(fā)深度學(xué)習(xí)熱潮的導(dǎo)火線,不過(guò)它的網(wǎng)絡(luò)結(jié)構(gòu)和LeNet基本上沒(méi)有什么不同AlexNet疊有多個(gè)卷積層和池化層,最后經(jīng)由全連接層輸出結(jié)果。雖然結(jié)構(gòu)上AlexNet和LeNet沒(méi)有大的不同,但有以下幾點(diǎn)差異。激活函數(shù)使用ReLU。使用進(jìn)行局部正規(guī)化的LRN(LocalResponseNormalization)層。使用Dropout。如上所述,關(guān)于網(wǎng)絡(luò)結(jié)構(gòu),LeNet和AlexNet沒(méi)有太大的不同。但是,圍繞它們的環(huán)境和計(jì)算機(jī)技術(shù)有了很大的進(jìn)步。具體地說(shuō),現(xiàn)在任何人都可以獲得大量的數(shù)據(jù)。而且,擅長(zhǎng)大規(guī)模并行計(jì)算的GPU得到普及,高速進(jìn)行大量的運(yùn)算已經(jīng)成為可能。大數(shù)據(jù)和GPU已成為深度學(xué)習(xí)發(fā)展的巨大的原動(dòng)力。9.2卷積神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of47519.2.4
CNN的可視化具有代表性的CNNAlexNet第九章深度學(xué)習(xí)主流模型9.1
9.2卷積神經(jīng)網(wǎng)絡(luò)9.3循環(huán)神經(jīng)網(wǎng)絡(luò)習(xí)題緒論of47529.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of4753循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrentneuralnetworks,RNN)是用來(lái)處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)擊球手擊出壘球,你會(huì)開(kāi)始預(yù)測(cè)球的軌跡并立即開(kāi)始奔跑。你追蹤著它,不斷調(diào)整你的移動(dòng)步伐,最終在觀眾的掌聲中抓到它。無(wú)論是在聽(tīng)完朋友的話語(yǔ)還是早餐時(shí)預(yù)測(cè)咖啡的味道,你時(shí)刻在做的事就是在預(yù)測(cè)未來(lái)。一類(lèi)預(yù)測(cè)未來(lái)的網(wǎng)絡(luò)。RNN可以分析時(shí)間序列數(shù)據(jù),諸如股票價(jià)格,并告訴你什么時(shí)候買(mǎi)入和賣(mài)出。在自動(dòng)駕駛系統(tǒng)中,他們可以預(yù)測(cè)行車(chē)軌跡,避免發(fā)生交通意外。RNN可在任意長(zhǎng)度的序列上工作,而不是截止目前我們討論的只能在固定長(zhǎng)度的輸入上工作的網(wǎng)絡(luò)。RNN可以把語(yǔ)句,文件,以及語(yǔ)音范本作為輸入,使得它們?cè)谥T如自動(dòng)翻譯,語(yǔ)音到文本或者情感分析(例如,讀取電影評(píng)論并提取評(píng)論者關(guān)于該電影的感覺(jué))的自然語(yǔ)言處理系統(tǒng)中極為有用。9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of4754循環(huán)神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)能力使得它們具備令人驚訝的創(chuàng)造力。RNN可以預(yù)測(cè)一段旋律的下幾個(gè)音符,然后隨機(jī)選取這些音符的其中之一并演奏它。然后RNN給出接下來(lái)最可能的音符,演奏它,如此周而復(fù)始。RNN可以生成語(yǔ)句,圖像標(biāo)注以及更多,未來(lái)可能生成莎士比亞或者莫扎特水平的作品。9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型of4755之前,我們關(guān)注的是前饋神經(jīng)網(wǎng)絡(luò),其中激活僅從輸入層到輸出層的一個(gè)方向流動(dòng)。循環(huán)神經(jīng)網(wǎng)絡(luò)看起來(lái)非常像一個(gè)前饋神經(jīng)網(wǎng)絡(luò),除了它也有連接指向后方。讓我們看一下最簡(jiǎn)單的RNN,它由一個(gè)神經(jīng)元接收輸入,產(chǎn)生一個(gè)輸出,并將輸出發(fā)送回自己。如圖,在每個(gè)時(shí)間步t(也稱(chēng)為一個(gè)幀),這個(gè)循環(huán)神經(jīng)元接收輸入x(t)以及它自己的前一時(shí)間步長(zhǎng)y(t-1)的輸出。我們可以用時(shí)間軸來(lái)表示這個(gè)微小的網(wǎng)絡(luò)。如圖右邊,這被稱(chēng)為隨時(shí)間展開(kāi)網(wǎng)絡(luò)。9.3.1循環(huán)神經(jīng)元
循環(huán)神經(jīng)網(wǎng)絡(luò)(左),隨時(shí)間展開(kāi)網(wǎng)絡(luò)(右)9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型可以輕松創(chuàng)建一個(gè)循環(huán)神經(jīng)元層。在每個(gè)時(shí)間步t,每個(gè)神經(jīng)元都接收輸入向量x(t)和前一個(gè)時(shí)間步y(tǒng)(t-1)的輸出向量,如圖,輸入和輸出都是向量(當(dāng)只有一個(gè)神經(jīng)元時(shí),輸出是一個(gè)標(biāo)量)。9.3.1循環(huán)神經(jīng)元一層循環(huán)神經(jīng)元(左),及其隨時(shí)間展開(kāi)(右)9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型每個(gè)循環(huán)神經(jīng)元有兩組權(quán)重:一組用于輸入x(t),另一組用于前一時(shí)間步長(zhǎng)y(t-1)的輸出。我們稱(chēng)這些權(quán)重向量為wx和wy。如公式所示(b是偏差項(xiàng),φ(·)是激活函數(shù),例如ReLU),可以計(jì)算單個(gè)循環(huán)神經(jīng)元的輸出。9.3.1循環(huán)神經(jīng)元單個(gè)循環(huán)神經(jīng)元的輸出9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型由于時(shí)間t的循環(huán)神經(jīng)元的輸出,是由所有先前時(shí)間步驟計(jì)算出來(lái)的的函數(shù),你可以說(shuō)它有一種記憶形式。一個(gè)神經(jīng)網(wǎng)絡(luò)的一部分,跨越時(shí)間步長(zhǎng)保留一些狀態(tài),稱(chēng)為存儲(chǔ)單元(或簡(jiǎn)稱(chēng)為單元)。單個(gè)循環(huán)神經(jīng)元或循環(huán)神經(jīng)元層是非?;镜膯卧?,后面我們將介紹一些更為復(fù)雜和強(qiáng)大的單元類(lèi)型。一般情況下,時(shí)間步t的單元狀態(tài),記為h(t)(h代表“隱藏”),是該時(shí)間步的某些輸入和前一時(shí)間步的狀態(tài)的函數(shù):h(t)=f(h(t–1),x(t))。其在時(shí)間步t處的輸出,表示為y(t),也和前一狀態(tài)和當(dāng)前輸入的函數(shù)有關(guān)。在我們已經(jīng)討論過(guò)的基本單元的情況下,輸出等于單元狀態(tài),但是在更復(fù)雜的單元中并不總是如此,如圖所示。9.3.2記憶單元單元的隱藏狀態(tài)和輸出可能不同9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型RNN可以同時(shí)進(jìn)行一系列輸入并產(chǎn)生一系列輸出。例如,這種類(lèi)型的網(wǎng)絡(luò)對(duì)于預(yù)測(cè)時(shí)間序列(如股票價(jià)格)非常有用:過(guò)去的N天內(nèi)給出價(jià)格,并且它必須輸出向未來(lái)一天移動(dòng)的價(jià)格(即從N-1天前到明天)。9.3.2記憶單元9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型RNN可以向網(wǎng)絡(luò)輸入一系列輸入,并忽略除最后一個(gè)之外的所有輸出。換句話說(shuō),這是一個(gè)向量網(wǎng)絡(luò)的序列。例如,可以向網(wǎng)絡(luò)提供與電影評(píng)論相對(duì)應(yīng)的單詞序列,并且網(wǎng)絡(luò)將輸出情感評(píng)分(例如,從-1[恨]到+1[愛(ài)])。9.3.2記憶單元9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型RNN可以在第一個(gè)時(shí)間步中為網(wǎng)絡(luò)提供一個(gè)輸入(而在其他所有時(shí)間步中為零),然后讓它輸出一個(gè)序列。這是一個(gè)向量到序列的網(wǎng)絡(luò)。例如,輸入可以是圖像,輸出可以是該圖像的標(biāo)題。9.3.2記憶單元9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型RNN可以有一個(gè)序列到向量網(wǎng)絡(luò),稱(chēng)為編碼器,后面跟著一個(gè)稱(chēng)為解碼器的向量到序列網(wǎng)絡(luò)。例如,可以用于將句子從一種語(yǔ)言翻譯成另一種語(yǔ)言。你會(huì)用一種語(yǔ)言給網(wǎng)絡(luò)喂一個(gè)句子,編碼器會(huì)把這個(gè)句子轉(zhuǎn)換成單一的向量表示,然后解碼器將這個(gè)向量解碼成另一種語(yǔ)言的句子。這種稱(chēng)為編碼器-解碼器的兩步模型,比用單個(gè)序列到序列的RNN快速地進(jìn)行翻譯要好得多,因?yàn)榫渥拥淖詈笠粋€(gè)單詞可以影響翻譯的第一句話,所以你需要等到聽(tīng)完整個(gè)句子才能翻譯。9.3.2記憶單元9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型來(lái)實(shí)現(xiàn)一個(gè)非常簡(jiǎn)單的RNN模型,使用tanh激活函數(shù)創(chuàng)建由5個(gè)循環(huán)神經(jīng)元的循環(huán)層組成的RNN。我們將假設(shè)RNN只運(yùn)行兩個(gè)時(shí)間步,每個(gè)時(shí)間步輸入大小為3的向量。網(wǎng)絡(luò)看起來(lái)很像一個(gè)雙層前饋神經(jīng)網(wǎng)絡(luò),有一些改動(dòng):首先,兩個(gè)層共享相同的權(quán)重和偏差項(xiàng),其次,我們?cè)诿恳粚佣加休斎?,并從每個(gè)層獲得輸出。為了運(yùn)行模型,我們需要在兩個(gè)時(shí)間步中都有輸入。9.3.3構(gòu)建簡(jiǎn)單RNN9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型訓(xùn)練一個(gè)RNN,訣竅是在時(shí)間上展開(kāi),然后簡(jiǎn)單地使用常規(guī)反向傳播。這個(gè)策略被稱(chēng)為時(shí)間上的反向傳播(BPTT)。9.3.4訓(xùn)練RNN9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型像在正常的反向傳播中一樣,展開(kāi)的網(wǎng)絡(luò)(用虛線箭頭表示)有第一個(gè)正向傳遞。然后使用損失函數(shù)評(píng)估輸出序列(其中tmin和tmax是第一個(gè)和最后一個(gè)輸出時(shí)間步長(zhǎng),不計(jì)算忽略的輸出),并且該損失函數(shù)的梯度通過(guò)展開(kāi)的網(wǎng)絡(luò)向后傳播(實(shí)線箭頭);最后使用在BPTT期間計(jì)算的梯度來(lái)更新模型參數(shù)。梯度在損失函數(shù)所使用的所有輸出中反向流動(dòng),而不僅僅通過(guò)最終輸出(在圖中,損失函數(shù)使用網(wǎng)絡(luò)的最后三個(gè)輸出Y(2),Y(3)和Y(4),所以梯度流經(jīng)這三個(gè)輸出,但不通過(guò)Y(0)和Y(1)。而且,由于在每個(gè)時(shí)間步驟使用相同的參數(shù)W和b,所以反向傳播將做正確的事情并且總結(jié)所有時(shí)間步驟。9.3.4訓(xùn)練RNN9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型訓(xùn)練一個(gè)RNN來(lái)分類(lèi)MNIST圖像,把每個(gè)圖像視為28行28像素的序列(因?yàn)槊總€(gè)MNIST圖像是28×28像素)。我們將使用150個(gè)循環(huán)神經(jīng)元,再加上一個(gè)全連接層,其中包含連接到上一個(gè)時(shí)間步的輸出的10個(gè)神經(jīng)元(每個(gè)類(lèi)一個(gè)),然后是一個(gè)softmax層。建模階段非常簡(jiǎn)單,和CNN中建立的MNIST分類(lèi)器幾乎是一樣的,只是展開(kāi)的RNN替換了隱層。注意,全連接層連接到狀態(tài)張量,其僅包含RNN的最終狀態(tài)。9.3.4訓(xùn)練序列分類(lèi)器序列分類(lèi)器9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型如何處理時(shí)間序列,如股價(jià),氣溫,腦電波模式等等。我們將訓(xùn)練一個(gè)RNN來(lái)預(yù)測(cè)生成的時(shí)間序列中的下一個(gè)值。每個(gè)訓(xùn)練實(shí)例是從時(shí)間序列中隨機(jī)選取的20個(gè)連續(xù)值的序列。9.3.5為預(yù)測(cè)時(shí)間序列而訓(xùn)練時(shí)間序列(左)和用該序列訓(xùn)練的實(shí)例(右)9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型創(chuàng)建一個(gè)RNN。它將包含100個(gè)循環(huán)神經(jīng)元,并且我們將在20個(gè)時(shí)間步驟上展開(kāi)它,因?yàn)槊總€(gè)訓(xùn)練實(shí)例將是20個(gè)輸入那么長(zhǎng)。每個(gè)輸入將僅包含一個(gè)特征(在該時(shí)間的值)。目標(biāo)也是20個(gè)輸入的序列,每個(gè)輸入包含一個(gè)值。在每個(gè)時(shí)間步,我們現(xiàn)在有一個(gè)大小為100的輸出向量。但是我們實(shí)際需要的是每個(gè)時(shí)間步的單個(gè)輸出值。最簡(jiǎn)單的解決方法是將單元包裝在OutputProjectionWrapper中。單元包裝器就像一個(gè)普通的單元,代理每個(gè)方法調(diào)用一個(gè)底層單元,但是它也增加了一些功能。OutputProjectionWrapper在每個(gè)輸出之上添加一個(gè)完全連接的線性神經(jīng)元層(即沒(méi)有任何激活函數(shù))(但不影響單元狀態(tài))。所有這些完全連接的層共享相同(可訓(xùn)練)的權(quán)重和偏差項(xiàng)。如下圖。9.3.5為預(yù)測(cè)時(shí)間序列而訓(xùn)練9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型9.3.5為預(yù)測(cè)時(shí)間序列而訓(xùn)練9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型在經(jīng)過(guò)了1000次訓(xùn)練迭代后的預(yù)測(cè)序列9.3.5為預(yù)測(cè)時(shí)間序列而訓(xùn)練時(shí)間序列(左)和用該序列訓(xùn)練的實(shí)例(右)9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型一個(gè)樸素的想法就是把一層層神經(jīng)元堆疊起來(lái),就可呈現(xiàn)深度RNN。9.3.6深度RNN深度RNN(左),時(shí)間展開(kāi)(右)9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型在訓(xùn)練長(zhǎng)序列的RNN模型時(shí),那么就需要把RNN在時(shí)間維度上展開(kāi)成很深的神經(jīng)網(wǎng)絡(luò)。正如任何深度神經(jīng)網(wǎng)絡(luò)一樣,其面臨著梯度消失/爆炸的問(wèn)題,使訓(xùn)練無(wú)法終止或收斂。很多之前討論過(guò)的緩解這種問(wèn)題的技巧都可以應(yīng)用在深度展開(kāi)的RNN網(wǎng)絡(luò):好的參數(shù)初始化方式,非飽和的激活函數(shù)(如ReLU),批量規(guī)范化(BatchNormalization),梯度截?cái)啵℅radientClipping),更快的優(yōu)化器。即便如此,RNN在處理適中的長(zhǎng)序列(如100輸入序列)也在訓(xùn)練時(shí)表現(xiàn)的很慢。最簡(jiǎn)單和常見(jiàn)的方法解決訓(xùn)練時(shí)長(zhǎng)問(wèn)題就是在訓(xùn)練階段僅僅展開(kāi)限定時(shí)間步長(zhǎng)的RNN網(wǎng)絡(luò),一種稱(chēng)為截?cái)鄷r(shí)間反向傳播的算法。可通過(guò)截?cái)噍斎胄蛄衼?lái)簡(jiǎn)單實(shí)現(xiàn)這種功能。例如在時(shí)間序列預(yù)測(cè)問(wèn)題上可以在訓(xùn)練時(shí)減小步驟來(lái)實(shí)現(xiàn)截?cái)唷@硭?dāng)然這種方法會(huì)限制模型在長(zhǎng)期模式的學(xué)習(xí)能力。一種變通方案確保縮短的序列中包含舊數(shù)據(jù)和新數(shù)據(jù),從而使模型獲得兩者信息(如序列同時(shí)包含最近五個(gè)月的數(shù)據(jù),最近五周的和最近五天的數(shù)據(jù))。9.3.7長(zhǎng)時(shí)訓(xùn)練的困難9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型問(wèn)題是如何確保從去年的細(xì)分類(lèi)中獲取的數(shù)據(jù)有效性呢?這期間短暫但重要的事件對(duì)后世的影響,甚至是數(shù)年后這種影響是否一定要考慮在內(nèi)呢(如選舉結(jié)果)?這種方案有其先天的不足之處。在長(zhǎng)的時(shí)間訓(xùn)練過(guò)程中,第二個(gè)要面臨的問(wèn)題時(shí)第一個(gè)輸入的記憶會(huì)在長(zhǎng)時(shí)間運(yùn)行的RNN網(wǎng)絡(luò)中逐漸淡去。確實(shí),通過(guò)變換的方式,數(shù)據(jù)穿流在RNN網(wǎng)絡(luò)之中,每個(gè)時(shí)間步長(zhǎng)后都有一些信息被拋棄掉了。那么在一定時(shí)間后,第一個(gè)輸入實(shí)際上會(huì)在RNN的狀態(tài)中消失于無(wú)形。比如說(shuō),你想要分析長(zhǎng)篇幅的影評(píng)的情感類(lèi)別,影評(píng)以“Ilovethismovie”開(kāi)篇,并輔以各種改善影片的一些建議。試想一下,如果RNN網(wǎng)絡(luò)逐漸忘記了開(kāi)頭的幾個(gè)詞,RNN網(wǎng)絡(luò)的判斷完全有可能會(huì)對(duì)影評(píng)斷章取義。為了解決其中的問(wèn)題,各種能夠攜帶長(zhǎng)時(shí)記憶的神經(jīng)單元的變體被提出。這些變體是有效的,往往基本形式的神經(jīng)單元就不怎么被使用了。首先了解一下最流行的一種長(zhǎng)時(shí)記憶神經(jīng)單元:長(zhǎng)短時(shí)記憶神經(jīng)單元LSTM。9.3.7長(zhǎng)時(shí)訓(xùn)練的困難9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型長(zhǎng)短時(shí)記憶單元在1997年由S.H.和J.S.首次提出,并在接下來(lái)的幾年內(nèi)經(jīng)過(guò)A.G,H.S,W.Z等數(shù)位研究人員的改進(jìn)逐漸形成。如果把LSTM單元看作一個(gè)黑盒,從外圍看它和基本形式的記憶單元很相似,但LSTM單元會(huì)比基本單元性能更好,收斂更快,能夠感知數(shù)據(jù)的長(zhǎng)時(shí)依賴(lài)。9.3.8LSTM單元基本LSTM單元的結(jié)構(gòu)9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型不觀察LSTM單元內(nèi)部,除了一些不同外跟常規(guī)RNN單元極其相似。這些不同包括LSTM單元狀態(tài)分為兩個(gè)向量:h(t)和c(t)(c代表cell)。可以簡(jiǎn)單認(rèn)為h(t)是短期記憶狀態(tài),c(t)是長(zhǎng)期記憶狀態(tài)。打開(kāi)盒子,LSTM單元的核心思想是其能夠?qū)W習(xí)從長(zhǎng)期狀態(tài)中存儲(chǔ)什么,忘記什么,讀取什么。長(zhǎng)期狀態(tài)c(t-1)從左向右在網(wǎng)絡(luò)中傳播,依次經(jīng)過(guò)遺忘門(mén)(forgetgate)時(shí)丟棄一些記憶,之后加法操作增加一些記憶(從輸入門(mén)中選擇一些記憶)。輸出c(t)不經(jīng)任何轉(zhuǎn)換直接輸出。每個(gè)單位時(shí)間步長(zhǎng)后,都有一些記憶被拋棄,新的記憶被添加進(jìn)來(lái)。另一方面,長(zhǎng)時(shí)狀態(tài)經(jīng)過(guò)tanh激活函數(shù)通過(guò)輸出門(mén)得到短時(shí)記憶h(t),同時(shí)它也是這一時(shí)刻的單元輸出結(jié)果y(t)。接下來(lái)討論一下新的記憶時(shí)如何產(chǎn)生的,門(mén)的功能是如何實(shí)現(xiàn)的。9.3.8LSTM單元9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型首先,當(dāng)前的輸入向量x(t)和前一時(shí)刻的短時(shí)狀態(tài)h(t-1)作為輸入傳給四個(gè)全連接層,這四個(gè)全連接層有不同的目的:其中主要的全連接層輸出g(t),它的常規(guī)任務(wù)就是解析當(dāng)前的輸入x(t)和前一時(shí)刻的短時(shí)狀態(tài)h(t-1)。在基本形式的RNN單元中,就與這種形式一樣,直接輸出了h(t)和y(t)。與之不同的是LSTM單元會(huì)將一部分g(t)存儲(chǔ)在長(zhǎng)時(shí)狀態(tài)中。其它三個(gè)全連接層被稱(chēng)為門(mén)控制器(gatecontroller)。其采用Logistic作為激活函數(shù),輸出范圍在0到1之間。正如在結(jié)構(gòu)圖中所示,這三個(gè)層的輸出提供給了逐元素乘法操作,當(dāng)輸入為0時(shí)門(mén)關(guān)閉,輸出為1時(shí)門(mén)打開(kāi)。分別為:遺忘門(mén)(forgetgate)由f(t)控制,來(lái)決定哪些長(zhǎng)期記憶需要被擦除;輸入門(mén)(inputgate)由i(t)控制,它的作用是處理哪部分g(t)應(yīng)該被添加到長(zhǎng)時(shí)狀態(tài)中,也就是為什么被稱(chēng)為部分存儲(chǔ)。輸出門(mén)(outputgate)由o(t)控制,在這一時(shí)刻的輸出h(t)和y(t)就是由輸出門(mén)控制的,從長(zhǎng)時(shí)狀態(tài)中讀取的記憶。9.3.8LSTM單元9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型簡(jiǎn)要來(lái)說(shuō),LSTM單元能夠?qū)W習(xí)到識(shí)別重要輸入(輸入門(mén)作用),存儲(chǔ)進(jìn)長(zhǎng)時(shí)狀態(tài),并保存必要的時(shí)間(遺忘門(mén)功能),并學(xué)會(huì)提取當(dāng)前輸出所需要的記憶。這也解釋了LSTM單元能夠在提取長(zhǎng)時(shí)序列,長(zhǎng)文本,錄音等數(shù)據(jù)中的長(zhǎng)期模式的驚人成功的原因。9.3.8LSTM單元9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型基本形式的LSTM單元中,門(mén)的控制僅有當(dāng)前的輸入x(t)和前一時(shí)刻的短時(shí)狀態(tài)h(t-1)。不妨讓各個(gè)控制門(mén)窺視一下長(zhǎng)時(shí)狀態(tài),獲取一些上下文信息不失為一種嘗試。該想法由F.G.heJ.S.在2000年提出。他們提出的LSTM的變體擁有叫做窺孔連接的額外連接:把前一時(shí)刻的長(zhǎng)時(shí)狀態(tài)c(t-1)加入遺忘門(mén)和輸入門(mén)控制的輸入,當(dāng)前時(shí)刻的長(zhǎng)時(shí)狀態(tài)加入輸出門(mén)的控制輸入。在眾多LSTM變體中,一個(gè)特別流行的變體就是GRU單元。9.3.8LSTM單元9.3.8.1窺孔連接9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型9.3.9GRU單元9.3循環(huán)神經(jīng)網(wǎng)絡(luò)第九章深度學(xué)習(xí)模型9.3.9GRU單元門(mén)控循環(huán)單元在2014年的K.Choetal.的論文中提出,并且此文也引入了前文所述的編解碼網(wǎng)絡(luò)。門(mén)控循環(huán)單元是LSTM單元的簡(jiǎn)化版本,能實(shí)現(xiàn)同樣的性能,這也說(shuō)明了為什么它能越來(lái)越流行。簡(jiǎn)化主要在一下幾個(gè)方面:長(zhǎng)時(shí)狀態(tài)和短時(shí)狀態(tài)合并為一個(gè)向量h(t)。用同一個(gè)門(mén)控制遺忘
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度股權(quán)并購(gòu)終止協(xié)議
- 2025年度電商平臺(tái)內(nèi)容創(chuàng)作者孵化合作合同
- 二零二五年度海洋生態(tài)保護(hù)區(qū)海域租賃合同
- 二零二五年度新能源儲(chǔ)能設(shè)備融資租賃合同主體權(quán)益與能源安全
- 2025年度遺產(chǎn)繼承財(cái)產(chǎn)分配與公司股權(quán)激勵(lì)及員工持股協(xié)議
- 2025版互聯(lián)網(wǎng)保險(xiǎn)產(chǎn)品退款協(xié)議合同3篇
- 2025年度創(chuàng)業(yè)孵化器股權(quán)變更合作協(xié)議
- 2025年度租賃房產(chǎn)租賃合同終止條件合同圖片分析
- 2025年度輔導(dǎo)中心學(xué)生安全協(xié)議及教育輔導(dǎo)責(zé)任書(shū)
- 2025年度金融科技公司控股權(quán)協(xié)議全面轉(zhuǎn)讓合同
- 2025年度公務(wù)車(chē)輛私人使用管理與責(zé)任協(xié)議書(shū)3篇
- 售后工程師述職報(bào)告
- 綠化養(yǎng)護(hù)難點(diǎn)要點(diǎn)分析及技術(shù)措施
- 2024年河北省高考?xì)v史試卷(含答案解析)
- 車(chē)位款抵扣工程款合同
- 小學(xué)六年級(jí)數(shù)學(xué)奧數(shù)題100題附答案(完整版)
- 高中綜評(píng)項(xiàng)目活動(dòng)設(shè)計(jì)范文
- 英漢互譯單詞練習(xí)打印紙
- 2023湖北武漢華中科技大學(xué)招聘實(shí)驗(yàn)技術(shù)人員24人筆試參考題庫(kù)(共500題)答案詳解版
- 一氯二氟甲烷安全技術(shù)說(shuō)明書(shū)MSDS
- 物流簽收回執(zhí)單
評(píng)論
0/150
提交評(píng)論