深度學(xué)習(xí)模型——CNN | 卷積神經(jīng)網(wǎng)絡(luò)
CNN,即一種專門用于處理具有類似網(wǎng)格結(jié)構(gòu)數(shù)據(jù)的深度學(xué)習(xí)模型。怎么理解CNN的全流程?這篇文章里,作者對(duì)CNN的模型結(jié)構(gòu)和每一層的具體步驟等內(nèi)容做了詳細(xì)解讀,一起來看。
一、定義
Convolutional Neural Networks /?k?nv??lu???n(?)l/ /?nj??r?l/
是一種專門用于處理具有類似網(wǎng)格結(jié)構(gòu)數(shù)據(jù)的深度學(xué)習(xí)模型 。
二、CNN模型結(jié)構(gòu)
接下來我們通過一個(gè)情境來理解CNN的全流程:
假設(shè)我們現(xiàn)在有一款智能鑒定APP,主要進(jìn)行藝術(shù)品鑒定。我們要通過APP判斷其中一張圖片是不是古董,現(xiàn)在我們來了解下APP是怎么工作的吧。
輸入層:
用戶上傳了一張古董瓷瓶照片,這張照片就是進(jìn)入CNN系統(tǒng)的”原材料”,輸入層的作用就是接收這張圖片數(shù)據(jù),并將其轉(zhuǎn)換為CNN神經(jīng)網(wǎng)絡(luò)可以理解的數(shù)字形式(通常是一個(gè)三維數(shù)組,即寬度、高度、顏色通道數(shù))。
卷積層:
鑒定師們開始工作了,他們每人手持一把放大鏡(卷積核),在瓷瓶照片上移動(dòng)并聚焦(卷積運(yùn)算),這些放大鏡專門用來搜尋特定的紋飾、釉色或工藝特征(特征提取),每位鑒定師記錄下各自發(fā)現(xiàn)的特征(注:在這里一位鑒定師只會(huì)去找一個(gè)特征),并且每人會(huì)生成一份詳細(xì)的特征報(bào)告(卷積后特征圖)。
激活函數(shù):
每份特征報(bào)告完成后,都交由魔法學(xué)徒(激活函數(shù))進(jìn)行神秘加工。他們使用魔法藥水(ReLU、Sigmoid等),對(duì)報(bào)告內(nèi)容進(jìn)行強(qiáng)化(正值保持或增大)或弱化(負(fù)值轉(zhuǎn)為0或壓縮到一定范圍內(nèi)),確保突出關(guān)鍵特征,隱藏?zé)o關(guān)或干擾信息。
池化層:
接下來,公司經(jīng)理(池化層)審查這些經(jīng)過魔法加工的特征報(bào)告。他們不需要關(guān)注每個(gè)細(xì)節(jié),而是提取每個(gè)報(bào)告的核心摘要(如最大特征或平均特征值),這樣既能減少冗余信息,又能確保關(guān)鍵特征得以保留,便于后續(xù)的全局分析。
全連接層:
到了決策階段,所有精煉的特征摘要被送到公司高層(全連接層),高層領(lǐng)導(dǎo)們圍坐一桌,每人面前都有一份長(zhǎng)長(zhǎng)的清單,上面列著所有可能影響鑒定結(jié)果的因素及其權(quán)重(神經(jīng)元及其連接權(quán)重)。他們根據(jù)清單討論、打分(加權(quán)求和),共同得出初步的鑒定結(jié)論(分類概率或回歸值)。
比喻解釋:
全連接層就像公司的高層領(lǐng)導(dǎo)團(tuán)隊(duì),他們依據(jù)精煉的特征摘要,參考各自的判斷清單,集體討論并給出初步的鑒定意見。
激活函數(shù)(再次):
初步鑒定結(jié)論出爐后,還需要最后一道魔法加持(激活函數(shù))。這次魔法學(xué)徒用另一種魔法藥水(如Softmax或Sigmoid等),確保鑒定結(jié)論符合預(yù)期格式(如概率分布),并具有良好的區(qū)分度。
比喻解釋:
再次使用的激活函數(shù)如同魔法學(xué)徒為鑒定結(jié)論施加的最后的魔法,確保結(jié)論既符合規(guī)范(概率分布),又具有明確的傾向性(區(qū)分度),便于用戶理解。
輸出層:
經(jīng)過多重鑒定與魔法加工,最終的鑒定結(jié)果出爐。APP將結(jié)果顯示給用戶,告訴他們這張瓷瓶照片是真品的概率為90%,贗品的概率為10%,用戶據(jù)此做出是否購買的決定
這個(gè)過程形象地展示了CNN如何通過層層處理,將原始圖像轉(zhuǎn)化為可供決策的分類或回歸結(jié)果。
其中上面括號(hào)加粗內(nèi)容,大家可以先有個(gè)印象,下文會(huì)對(duì)部分內(nèi)容做出講解。
其中我們發(fā)現(xiàn)激活函數(shù)會(huì)出現(xiàn)在多個(gè)位置,那到底正常應(yīng)該放置在什么位置?怎么選擇呢?
激活函數(shù)嚴(yán)格來說可以放在任何地方,但我們一般是將其放到卷積層和全連接層后,因?yàn)榉诺狡渌鼘右话阋饬x不到;
如果放到池化層之后可以嗎?為什么不建議?
可以放到池化層之后,不建議是因?yàn)楦鶕?jù)上圖結(jié)構(gòu)我們看到池化層本身的功能就是降維和特征提取了,所以再增加非線性變換已經(jīng)意義不大了。
暫時(shí)來說激活函數(shù)放置位置選擇沒有什么技巧,主要參考大神們發(fā)表的一些論文,跟著論文上做選擇即可。
三、每一層具體步驟
1. 卷積層
1)準(zhǔn)備輸入數(shù)據(jù):一張彩色圖片
最終將彩色圖片轉(zhuǎn)換為CNN可以理解的數(shù)字形式,一般是三維數(shù)組(維度:長(zhǎng)、寬、顏色)。
下圖是一個(gè)三維數(shù)組展開的平面圖, 5*5*3:5*5代表長(zhǎng)寬;3代表R、G、B三個(gè)通道。
2)定義卷積核(濾波器)
設(shè)置濾波器大?。杭礊V波器的長(zhǎng)寬,常見的大小有3*3、5*5。
設(shè)置步長(zhǎng):即濾波器在輸入數(shù)據(jù)上滑動(dòng)的間隔。
設(shè)置填充(Padding):即在輸入數(shù)據(jù)的邊界添加額外的零值像素的過程;目的:解決邊界卷積造成的圖像信息丟失情況。
設(shè)置選擇卷積類型:類型包括標(biāo)準(zhǔn)卷積、轉(zhuǎn)置卷積(用于上采樣)、空洞卷積(用于擴(kuò)大感受野)。
選擇初始化方法:目的設(shè)置權(quán)重和偏置項(xiàng) ;包括零初始化、隨機(jī)初始化、Xavler初始化和He初始化。
考慮使用的卷積函數(shù):一般用在卷積操作之后。
3)卷積操作
詳細(xì)解釋一下通過濾波器W0,和偏置項(xiàng)h0, 怎么卷積出最終結(jié)果1的。
R(0*1+0*1+0*-1)+ (0*-1+0*0+1*1)+ (0*-1+0*-1+1*0) = 1
G(0*-1+0*0+0*-1)+ (0*0+1*0+1*-1)+ (0*1+0*-1+2*0) = -1
B (0*0+0*1+0*0)+ (0*1+2*0+0*1)+ (0*0+0*-1+0*1) = 0
最終結(jié)果R(紅色通道)+G(綠色通道)+B(藍(lán)色通道)+b0(偏置項(xiàng)) 即 1 + (-1) + 0 + 1 = 1
4)滑動(dòng)卷積核(濾波器)
根據(jù)步長(zhǎng)為2,滑動(dòng)卷積核,計(jì)算出其它值,計(jì)算方式同步驟3。
5)生成卷積特征圖
生成特征圖:通常指的是卷積操作完成后得到的最終結(jié)果矩陣。
6)應(yīng)用激活函數(shù)
目的:在神經(jīng)網(wǎng)絡(luò)的層與層之間引入非線性,以便網(wǎng)絡(luò)能夠?qū)W習(xí)和表示復(fù)雜的函數(shù)。
常見的激活函數(shù):ReLU、Sigmold、Tanh。
使用激活函數(shù),對(duì)每個(gè)神經(jīng)元(即每個(gè)輸入矩陣中的值)應(yīng)用非線性變換。
激活函數(shù)一般的位置:卷積層后、全連接層后。
2. 池化層
1)定義池化窗口
池化窗口 也稱池化核,是一個(gè)小的矩形區(qū)域,用于從輸入特征圖中提取信息,一般是2*2 或 3*3。
2)選擇池化操作
可選的池化操作有:最大池化和平均池化。
3)應(yīng)用池化操作
輸入特征圖:指的是上一層卷積層生成的卷積特征圖。
4)滑動(dòng)池化窗口
池化窗口按照指定的步長(zhǎng)在輸入特征圖上移動(dòng)。
5)生成池化特征圖
下圖中給出了2種池化方法后的示意圖;圖b為最大池化,圖c為平均池化。
6)將池化特征圖傳入下一層
下一層可能是卷積層,也可能是全連接層;可以看最開始 原理結(jié)構(gòu)圖。
下一層的輸入矩陣:是池化后的特征圖。
如果下一層是卷積層,它與第一次卷積的區(qū)別是什么?
- 輸入數(shù)據(jù)不一致:第二次輸入矩陣是第一次池化后的特征圖矩陣。
- 卷積核不一致:主要是指卷積核權(quán)重不一致。
然后在依次按照卷積層、池化層的步驟進(jìn)行卷積/池化操作。
2. 全連接層 | FC
1)接收特征圖
輸入矩陣:是所有池化后/或經(jīng)過激活函數(shù)處理后的特征圖,是一個(gè)多維向量。
維度有:
- batch_size:批次大小
- heigh:特征圖的高度
- width:特征圖的寬度
- channels:特征通道數(shù)量
2)展平特征圖
目的:將多維特征圖展平為一維特征圖。
實(shí)現(xiàn)方式:將特征圖中的每個(gè)通道”展開成一個(gè)長(zhǎng)向量”,并將所有通道的向量連接在一起形成一個(gè)大的一維向量。
展平后的向量長(zhǎng)度是 batch_size * height * width * channels
3)權(quán)重分配
全連接層中的每一個(gè)神經(jīng)元(即一維向量中的每一個(gè)值),都與輸入矩陣中的每個(gè)元素相連,并且每個(gè)連接都有一個(gè)對(duì)應(yīng)的權(quán)重,這些權(quán)重構(gòu)成了權(quán)重矩陣,反應(yīng)了神經(jīng)元對(duì)輸入特征的重視程度。此外,每個(gè)神經(jīng)元還有一個(gè)偏置項(xiàng)(Bias),用于調(diào)整器整體響應(yīng)水平。
4)線性變換
對(duì)輸入向量進(jìn)行線性變換。
公式如下:
W:權(quán)重矩陣;x:輸入向量;b:偏置向量
通過這個(gè)公式,我們對(duì)輸入向量做線性變換,得到每個(gè)神經(jīng)元的凈輸入(即得到全連接層的最終輸出結(jié)果)。
5)激活函數(shù)應(yīng)用(再次)
通過在次使用激活函數(shù),進(jìn)行最終的處理,可能結(jié)果保持不變(如ReLU的正區(qū)間),或?qū)⒔Y(jié)果壓縮到某個(gè)范圍內(nèi)(如Sigmoid、Tanh),確保輸出符合規(guī)范,又具有明確的傾向性。
6)輸出結(jié)果
是對(duì)輸入數(shù)據(jù)的最終響應(yīng)。在回歸任務(wù)中,輸出是一個(gè)連續(xù)值,表示預(yù)測(cè)的目標(biāo)值。
四、相關(guān)概念
持續(xù)補(bǔ)充中……………
Padding
根據(jù)上面卷積過程,我們發(fā)現(xiàn),卷積操作時(shí)會(huì)遇到在圖像邊界卷積造成圖像信息丟失的問題,Padding操作的目的是為了解決此問題而提出的。
圖像信息丟失? 比如我們?cè)诰矸e計(jì)算時(shí)會(huì) 對(duì)應(yīng)像素值*權(quán)重 ,此時(shí)如果權(quán)重為0就會(huì)造成實(shí)際像素值信息丟失情況。
實(shí)現(xiàn)Padding方法:
Same Padding:根據(jù)卷積核的大小,對(duì)輸入圖像矩陣進(jìn)行邊界補(bǔ)充(一般填充零值),使得卷積后得到的特征矩陣與輸入矩陣大小一致。
Valid Padding:不需要進(jìn)行padding操作。
自定義padding:使用公式計(jì)算得出,如下。
其中inputh 指 輸入矩陣長(zhǎng)度;kernelh 指卷積核長(zhǎng)度;stride:卷積操作步長(zhǎng);outputh : 指卷積后矩陣的長(zhǎng)度。
五、其它
1. 使用場(chǎng)景
圖像識(shí)別(人臉識(shí)別、物體識(shí)別)、計(jì)算機(jī)視覺(包括自動(dòng)駕駛、醫(yī)療影像分析)、自然語言處理(用于文本分類、情感分析等)、視頻分析(如行為識(shí)別、視頻內(nèi)容理解等)、圖像生成(如風(fēng)格遷移、圖像超分辨率等)。
一般主要用于圖像處理?
通過以下三點(diǎn)可以確認(rèn)更適合用于圖片處理:
- 局部特征提取,降低了識(shí)別難度。
- 可應(yīng)用于不同的圖像識(shí)別任務(wù),權(quán)重公用;比如 經(jīng)過訓(xùn)練已經(jīng)可識(shí)別出小狗,那這些神經(jīng)元也可以應(yīng)用于識(shí)別其它任何圖像中的相似物體。
- 雖特征維度降低,但是保留了主要特征,這樣做不僅不影響圖像識(shí)別,反而減少了其它像素影響和處理的數(shù)據(jù)量。
2. 優(yōu)點(diǎn)
- 特征提取能力強(qiáng)。
- 有效降維(將大數(shù)據(jù)量的圖像降維成小數(shù)據(jù)量,同時(shí)保留關(guān)鍵特征)。
- 減少參數(shù)數(shù)量(通過共享權(quán)重,減少了模型的參數(shù)數(shù)量,提供了訓(xùn)練效率)。
3. 缺點(diǎn)
- 只能識(shí)別獨(dú)立事件。
- 過擬合分險(xiǎn)(如果沒有足夠的數(shù)據(jù)或者正則化措施,CNN可能會(huì)過擬合訓(xùn)練數(shù)據(jù))。
- 解釋性差。
- 計(jì)算量大,尤其在高分辨率圖像上。
- 參數(shù)多(盡管通過共享權(quán)重減少了參數(shù)量,但是CNN仍需要大量的參數(shù)來學(xué)習(xí)復(fù)雜的特征)。
本文由 @Luna 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
- 目前還沒評(píng)論,等你發(fā)揮!