自然語(yǔ)言處理開發(fā)與應(yīng)用-基于深度學(xué)習(xí)的NLP模型-CNN 課件_第1頁(yè)
自然語(yǔ)言處理開發(fā)與應(yīng)用-基于深度學(xué)習(xí)的NLP模型-CNN 課件_第2頁(yè)
自然語(yǔ)言處理開發(fā)與應(yīng)用-基于深度學(xué)習(xí)的NLP模型-CNN 課件_第3頁(yè)
自然語(yǔ)言處理開發(fā)與應(yīng)用-基于深度學(xué)習(xí)的NLP模型-CNN 課件_第4頁(yè)
自然語(yǔ)言處理開發(fā)與應(yīng)用-基于深度學(xué)習(xí)的NLP模型-CNN 課件_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

CNN01卷積神經(jīng)網(wǎng)絡(luò)目錄contents02基于CNN的文本分類實(shí)戰(zhàn)CNN第一部分CNN概覽CNN結(jié)構(gòu)CNN各層介紹CNN總結(jié)CNN在NLP中的應(yīng)用CNN概覽卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetwork,CNN)是一種前饋神經(jīng)網(wǎng)絡(luò),它的人工神經(jīng)元可以響應(yīng)一部分覆蓋范圍內(nèi)的周圍單元,對(duì)于大型圖像處理有出色表現(xiàn)。卷積神經(jīng)網(wǎng)絡(luò)與普通神經(jīng)網(wǎng)絡(luò)非常相似,它們都由具有可學(xué)習(xí)的權(quán)重和偏置常量(biases)的神經(jīng)元組成。每個(gè)神經(jīng)元都接收一些輸入,并做一些點(diǎn)積計(jì)算,輸出是每個(gè)分類的分?jǐn)?shù),普通神經(jīng)網(wǎng)絡(luò)里的一些計(jì)算技巧到這里依舊適用。所以哪里不同呢?卷積神經(jīng)網(wǎng)絡(luò)默認(rèn)輸入是圖像,可以讓我們把特定的性質(zhì)編碼入網(wǎng)絡(luò)結(jié)構(gòu),使是我們的前饋函數(shù)更加有效率,并減少了大量參數(shù)。CNN概覽卷積神經(jīng)網(wǎng)絡(luò)利用輸入是圖片的特點(diǎn),把神經(jīng)元設(shè)計(jì)成三個(gè)維度:width,height,depth(注意這個(gè)depth不是神經(jīng)網(wǎng)絡(luò)的深度,而是用來(lái)描述神經(jīng)元的)。比如輸入的圖片大小是32×32×3(rgb),那么輸入神經(jīng)元就也具有32×32×3的維度。下面是圖解:CNN概覽卷積神經(jīng)網(wǎng)絡(luò)通常包含以下幾種層:卷積層(Convolutionallayer),卷積神經(jīng)網(wǎng)路中每層卷積層由若干卷積單元組成,每個(gè)卷積單元的參數(shù)都是通過(guò)反向傳播算法優(yōu)化得到的。卷積運(yùn)算的目的是提取輸入的不同特征,第一層卷積層可能只能提取一些低級(jí)的特征如邊緣、線條和角等層級(jí),更多層的網(wǎng)絡(luò)能從低級(jí)特征中迭代提取更復(fù)雜的特征。線性整流層(RectifiedLinearUnitslayer,ReLUlayer),這一層神經(jīng)的活性化函數(shù)(Activationfunction)使用線性整流(RectifiedLinearUnits,ReLU)。池化層(Poolinglayer),通常在卷積層之后會(huì)得到維度很大的特征,將特征切成幾個(gè)區(qū)域,取其最大值或平均值,得到新的、維度較小的特征。全連接層(Fully-Connectedlayer),把所有局部特征結(jié)合變成全局特征,用來(lái)計(jì)算最后每一類的得分。CNN概覽CNN結(jié)構(gòu)-卷積層普通神經(jīng)網(wǎng)絡(luò)把輸入層和隱含層進(jìn)行“全連接(FullConnected)“的設(shè)計(jì)。從計(jì)算的角度來(lái)講,相對(duì)較小的圖像從整幅圖像中計(jì)算特征是可行的。但是,如果是更大的圖像(如96x96的圖像),要通過(guò)這種全聯(lián)通網(wǎng)絡(luò)的這種方法來(lái)學(xué)習(xí)整幅圖像上的特征,從計(jì)算角度而言,將變得非常耗時(shí)。你需要設(shè)計(jì)10的4次方(=10000)個(gè)輸入單元,假設(shè)你要學(xué)習(xí)100個(gè)特征,那么就有10的6次方個(gè)參數(shù)需要去學(xué)習(xí)。與28x28的小塊圖像相比較,96x96的圖像使用前向輸送或者后向傳導(dǎo)的計(jì)算方式,計(jì)算過(guò)程也會(huì)慢10的2次方(=100)倍。CNN結(jié)構(gòu)-卷積層卷積層解決這類問題的一種簡(jiǎn)單方法是對(duì)隱含單元和輸入單元間的連接加以限制:每個(gè)隱含單元僅僅只能連接輸入單元的一部分。例如,每個(gè)隱含單元僅僅連接輸入圖像的一小片相鄰區(qū)域。(對(duì)于不同于圖像輸入的輸入形式,也會(huì)有一些特別的連接到單隱含層的輸入信號(hào)“連接區(qū)域”選擇方式。如音頻作為一種信號(hào)輸入方式,一個(gè)隱含單元所需要連接的輸入單元的子集,可能僅僅是一段音頻輸入所對(duì)應(yīng)的某個(gè)時(shí)間段上的信號(hào)。)CNN結(jié)構(gòu)-卷積層每個(gè)隱含單元連接的輸入?yún)^(qū)域大小叫神經(jīng)元的感受野(receptivefield)。由于卷積層的神經(jīng)元也是三維的,所以也具有深度。卷積層的參數(shù)包含一系列過(guò)濾器(filter),每個(gè)過(guò)濾器訓(xùn)練一個(gè)深度,有幾個(gè)過(guò)濾器輸出單元就具有多少深度。具體如下圖所示,樣例輸入單元大小是32×32×3,輸出單元的深度是5,對(duì)于輸出單元不同深度的同一位置,與輸入圖片連接的區(qū)域是相同的,但是參數(shù)(過(guò)濾器)不同。CNN結(jié)構(gòu)-卷積層計(jì)算過(guò)程雖然每個(gè)輸出單元只是連接輸入的一部分,但是值的計(jì)算方法是沒有變的,都是權(quán)重和輸入的點(diǎn)積,然后加上偏置,這點(diǎn)與普通神經(jīng)網(wǎng)絡(luò)是一樣的,如下圖所示:CNN結(jié)構(gòu)-卷積層計(jì)算過(guò)程別看它叫做卷積,但是和嚴(yán)格意義上的數(shù)學(xué)卷積是不同的。深度學(xué)習(xí)所謂的卷積運(yùn)算是互相關(guān)(cross-correlation)運(yùn)算。我們以二維數(shù)據(jù)為例(高x寬),不考慮圖像的通道個(gè)數(shù),假設(shè)輸入的高度為3、寬度為3的二維張量,卷積核的高度和寬度都是2,而卷積核窗口的形狀由內(nèi)核的高度和寬度決定:陰影部分是第一個(gè)輸出元素,以及用于計(jì)算這個(gè)輸出的輸入和核張量元素:0x0+1x1+3x2+4x3=19。由此可見互相關(guān)運(yùn)算就是一個(gè)乘積求和的過(guò)程。在二維互相關(guān)運(yùn)算中,卷積窗口從輸入張量的左上角開始,從左到右、從上到下滑動(dòng)。這里我們?cè)O(shè)置步長(zhǎng)為1,即每次跨越一個(gè)距離。當(dāng)卷積窗口滑到新一個(gè)位置時(shí),包含在該窗口中的部分張量與卷積核張量進(jìn)行按元素相乘,得到的張量再求和得到一個(gè)單一的標(biāo)量值,由此我們得到了這一位置的輸出張量值。CNN結(jié)構(gòu)-卷積層計(jì)算過(guò)程如果這個(gè)輸入矩陣是4x4,卷積核是3x3,步長(zhǎng)為2的時(shí)候,在向右移動(dòng)時(shí),我們發(fā)現(xiàn)如果要和卷積核進(jìn)行卷積操作,左邊的輸入矩陣還缺少了一列;在行的方向也是如此。如果我們忽略邊緣的像素,我們可能就丟失了邊緣的細(xì)節(jié)。那么這種情況下我們?nèi)绾翁幚砟??這時(shí)我們可以進(jìn)行填充操作(padding)實(shí)際上當(dāng)處理比較大的圖片,且任務(wù)是分類任務(wù)時(shí),我們可以不用進(jìn)行padding。因?yàn)閷?duì)于大部分的圖像分類任務(wù),邊緣的細(xì)節(jié)是是無(wú)關(guān)緊要的,且邊緣的像素點(diǎn)相比于總的像素來(lái)講,占比是很小的,對(duì)于整個(gè)圖像分類的任務(wù)結(jié)果影響不大。CNN結(jié)構(gòu)-卷積層計(jì)算過(guò)程卷積層輸出維度有以下三個(gè)量控制:depth,stride和zero-padding。

深度(depth):顧名思義,它控制輸出單元的深度,也就是filter的個(gè)數(shù),連接同一塊區(qū)域的神經(jīng)元個(gè)數(shù)。又名:depthcolumn

步幅(stride):它控制在同一深度的相鄰兩個(gè)隱含單元,與他們相連接的輸入?yún)^(qū)域的距離。如果步幅很?。ū热鐂tride=1)的話,相鄰隱含單元的輸入?yún)^(qū)域的重疊部分會(huì)很多;步幅很大則重疊區(qū)域變少。

補(bǔ)零(zero-padding):我們可以通過(guò)在輸入單元周圍補(bǔ)零來(lái)改變輸入單元整體大小,從而控制輸出單元的空間大小。假設(shè)圖像的尺寸是inputxinput,卷積核的大小是kernel,填充值為padding,步長(zhǎng)為stride,卷積后輸出的尺寸為outputxoutput,則卷積后,尺寸的計(jì)算公式為:一CNN結(jié)構(gòu)-卷積層計(jì)算過(guò)程stride意義stride,實(shí)質(zhì)上就是filter在原圖上掃描時(shí),需要跳躍的格數(shù),默認(rèn)跳一格;stride,通過(guò)跳格,減少filter與原圖做的掃描時(shí)的重復(fù)計(jì)算,提升效率;stride,太小,重復(fù)計(jì)算較多,計(jì)算量大,訓(xùn)練效率降低;stride,太大,會(huì)造成信息遺漏,無(wú)法有效提煉數(shù)據(jù)背后的特征;還有一個(gè)問題,但stride無(wú)法整除時(shí),怎么處理呢?

不同的平臺(tái)處理不一樣:

如果是caffe,在實(shí)際的處理中,會(huì)刪除邊緣的數(shù)據(jù);

如果時(shí)tensorflow,會(huì)在邊緣padding加0。CNN結(jié)構(gòu)-卷積層計(jì)算過(guò)程CNN結(jié)構(gòu)-卷積層感受野從直觀上講,感受野就是視覺感受區(qū)域的大小。在卷積神經(jīng)網(wǎng)絡(luò)中,感受野的定義是卷積神經(jīng)網(wǎng)絡(luò)每一層輸出的特征圖(featuremap)上的像素點(diǎn)在原始圖像上映射的區(qū)域大小。任何CNN架構(gòu)的一個(gè)基本的設(shè)計(jì)選擇是輸入的大小從開始到網(wǎng)絡(luò)的末端變得越來(lái)越小,而通道的數(shù)量越來(lái)越深。局部感受野決定了輸出層看到的前一層的輸入。感受野決定了從輸出的角度看到的整個(gè)網(wǎng)絡(luò)的原始輸入?yún)^(qū)域。感受野的概念是模仿人的注意力機(jī)制,能夠使模型更多的將特征抽取的重點(diǎn)集中在局部區(qū)域,提高模型的特征抽取能力。CNN結(jié)構(gòu)-卷積層權(quán)重共享CNN網(wǎng)絡(luò)的一個(gè)特性是權(quán)重共享(shareweights)。一般的神經(jīng)網(wǎng)絡(luò)層與層之間的連接是每個(gè)神經(jīng)元與上一層的全部神經(jīng)元連接,這些連接線的權(quán)重獨(dú)立于其他的神經(jīng)元,所以假設(shè)上一層是m個(gè)神經(jīng)元,當(dāng)前層是n個(gè)神經(jīng)元,那么共有mxn個(gè)連接,也就有mxn個(gè)權(quán)重。權(quán)重矩陣是mxn的形式。那么CNN是如何呢?權(quán)重共享是什么意思?卷積層權(quán)重共享當(dāng)輸入一張大小為8x8x3的彩色圖時(shí),我們已經(jīng)提前設(shè)計(jì)好了卷積核后的輸出通道為5,即卷積核的個(gè)數(shù)為5【即五個(gè)偏置,一個(gè)卷積核一個(gè)偏置】(通道數(shù)的設(shè)計(jì)一般是實(shí)驗(yàn)后得到的較優(yōu)結(jié)果)。每個(gè)卷積核去和輸入圖像在通道上一一對(duì)應(yīng)進(jìn)行卷積操作(即互相關(guān)操作,除非刻意強(qiáng)調(diào),這里所說(shuō)的卷積都是互相關(guān),步長(zhǎng)為1,填充為0),得到了3個(gè)6x6的featuremap。然后再將三個(gè)6x6的Featuremap按照Eletwise相加進(jìn)行通道融合得到最終的featuremap,大小為6x6(也就是將得到的三個(gè)矩陣逐元素相加,之后所有元素再加上該矩陣的偏置值,得到新的6x6矩陣)。權(quán)重共享也是體現(xiàn)在這個(gè)過(guò)程中。我們單獨(dú)提取出第一個(gè)卷積核,當(dāng)它的第一個(gè)通道(3x3)與輸入圖像的第一個(gè)通道(8x8)進(jìn)行卷積操作時(shí),按照普通的神經(jīng)網(wǎng)絡(luò)連接方式其權(quán)重矩陣是9x64。但是這里我們要注意,我們?cè)诖翱诨瑒?dòng)進(jìn)行卷積的操作權(quán)重是確定的,都是以輸入圖像的第一個(gè)通道為模板,卷積核的第一個(gè)通道3x3矩陣為權(quán)重值,然后得到卷積結(jié)果。這個(gè)過(guò)程中權(quán)重矩陣就是3x3,且多次應(yīng)用于每次計(jì)算中。權(quán)重的個(gè)數(shù)由9x64減少到3x3,極大的減少了參數(shù)的數(shù)量。綜合起來(lái),對(duì)于第一個(gè)卷積核來(lái)講,它的權(quán)重矩陣就是3x3x3+1,整個(gè)卷積過(guò)程的權(quán)重大小為3x3x3x5+5,而不是8x8x3x3x3x3x5。

卷積層權(quán)重共享權(quán)重共享大大減少了模型的訓(xùn)練參數(shù)。權(quán)重共享意味著當(dāng)前隱藏層中的所有神經(jīng)元都在檢測(cè)圖像不同位置處的同一個(gè)特征,即檢測(cè)特征相同。因此也將輸入層到隱藏層的這種映射稱為特征映射。由上我們可以理解,從某種意義上來(lái)說(shuō),通道就是某種意義上的特征圖。輸出的同一張?zhí)卣鲌D上的所有元素共享一個(gè)卷積核,即共享一個(gè)權(quán)重。通道中某一處(特征圖上某一個(gè)神經(jīng)元)數(shù)值的大小就是當(dāng)前位置對(duì)當(dāng)前特征強(qiáng)弱的反應(yīng)。而為什么在CNN網(wǎng)絡(luò)中我們會(huì)增加通道數(shù)目,其實(shí)就是在增加通道的過(guò)程中區(qū)學(xué)習(xí)圖像的多個(gè)不同特征。

CNN結(jié)構(gòu)-激活層激活層主要是把卷積層輸出結(jié)果做非線性映射。CNN采用的激勵(lì)函數(shù)一般為ReLU(TheRectifiedLinearUnit/修正線性單元),它的特點(diǎn)是收斂快,求梯度簡(jiǎn)單,圖像如下。激勵(lì)層的實(shí)踐經(jīng)驗(yàn):①

盡量不要用sigmoid!②首先試RELU,因?yàn)榭膦廴绻?失效,可以嘗試用LeakyReLU或者M(jìn)axout④某些情況下tanh倒是有不錯(cuò)的結(jié)果,但是很少其他激活函數(shù),可以參考:/lliuye/p/9486500.htmlCNN結(jié)構(gòu)-全連接層兩層之間所有神經(jīng)元都有權(quán)重連接,通常全連接層在卷積神經(jīng)網(wǎng)絡(luò)尾部。也就是跟傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)神經(jīng)元的連接方式是一樣的:在卷積神經(jīng)網(wǎng)絡(luò)里,也有全連接層,作用是特征尺度變換等。CNN總結(jié)一般CNN結(jié)構(gòu)依次為:1.INPUT2.[[CONV->RELU]*N->POOL?]*M3.[FC->RELU]*K4.FCCNN總結(jié)卷積網(wǎng)絡(luò)在本質(zhì)上是一種輸入到輸出的映射,它能夠?qū)W習(xí)大量的輸入與輸出之間的映射關(guān)系,而不需要任何輸入和輸出之間的精確的數(shù)學(xué)表達(dá)式,只要用已知的模式對(duì)卷積網(wǎng)絡(luò)加以訓(xùn)練,網(wǎng)絡(luò)就具有輸入輸出對(duì)之間的映射能力。CNN一個(gè)非常重要的特點(diǎn)就是頭重腳輕(越往輸入權(quán)值越小,越往輸出權(quán)值越多),呈現(xiàn)出一個(gè)倒三角的形態(tài),這就很好地避免了BP神經(jīng)網(wǎng)絡(luò)中反向傳播的時(shí)候梯度損失得太快。卷積神經(jīng)網(wǎng)絡(luò)CNN主要用來(lái)識(shí)別位移、縮放及其他形式扭曲不變性的二維圖形。由于CNN的特征檢測(cè)層通過(guò)訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí),所以在使用CNN時(shí),避免了顯式的特征抽取,而隱式地從訓(xùn)練數(shù)據(jù)中進(jìn)行學(xué)習(xí);再者由于同一特征映射面上的神經(jīng)元權(quán)值相同,所以網(wǎng)絡(luò)可以并行學(xué)習(xí),這也是卷積網(wǎng)絡(luò)相對(duì)于神經(jīng)元彼此相連網(wǎng)絡(luò)的一大優(yōu)勢(shì)。卷積神經(jīng)網(wǎng)絡(luò)以其局部權(quán)值共享的特殊結(jié)構(gòu)在語(yǔ)音識(shí)別和圖像處理方面有著獨(dú)特的優(yōu)越性,其布局更接近于實(shí)際的生物神經(jīng)網(wǎng)絡(luò),權(quán)值共享降低了網(wǎng)絡(luò)的復(fù)雜性,特別是多維輸入向量的圖像可以直接輸入網(wǎng)絡(luò)這一特點(diǎn)避免了特征提取和分類過(guò)程中數(shù)據(jù)重建的復(fù)雜度。CNN在自然語(yǔ)言處理中的應(yīng)用那么卷積神經(jīng)網(wǎng)絡(luò)在自然語(yǔ)言處理中又是如何應(yīng)用的呢?接下來(lái),同學(xué)們先想想下面幾個(gè)問題:CNN中,如何處理文本類型的序列輸入?如果輸入是詞向量,每一行代表一個(gè)詞,那么如何解決不同的文本長(zhǎng)度不統(tǒng)一的問題?NLP中CNN的常用超參數(shù)設(shè)置都有哪些?CNN在自然語(yǔ)言處理中的應(yīng)用CNN中,如何處理文本類型的序列輸入在圖像中卷積核通常是對(duì)圖像的一小塊區(qū)域進(jìn)行計(jì)算,而在文本中,一句話所構(gòu)成的詞向量作為輸入。每一行代表一個(gè)詞的詞向量,所以在處理文本時(shí),卷積核通常覆蓋上下幾行的詞,所以此時(shí)卷積核的寬度與輸入的寬度相同,通過(guò)這樣的方式,我們就能夠捕捉到多個(gè)連續(xù)詞之間的特征,并且能夠在同一類特征計(jì)算時(shí)中共享權(quán)重。具體參考右圖。ASensitivityAnalysisof(andPractitioners’Guideto)ConvolutionalNeuralNetworksforSentenceClassificationCNN在自然語(yǔ)言處理中的應(yīng)用如何解決不同的文本長(zhǎng)度不統(tǒng)一的問題在第二層的卷積層中,我們可以看到,每次得到的FeatureMap的行數(shù),是和輸入的sentence的長(zhǎng)度相關(guān)的。但是,在池化層,采用了1-maxpooling的技術(shù),從而將每個(gè)FeatureMap的維度全部下降為1,因此,pooling結(jié)束之后,得到的向量的維度,就是卷積層FeatureMap的數(shù)量。這樣也便解決了輸入長(zhǎng)度的問題。但是,接下來(lái)無(wú)法再進(jìn)行conv操作了。ASensitivityAnalysisof(andPractitioners’Guideto)ConvolutionalNeur

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論