梅科尔工作室-深度学习第五讲 CNN-卷积神经网络
目錄
前言
1.計(jì)算機(jī)視覺(jué)
?1.1. 計(jì)算機(jī)視覺(jué)分類(lèi)
2.?CNN
3. 卷積層
3.1. 什么是卷積
3.2. 動(dòng)態(tài)卷積操作
4. 池化層
5.激活函數(shù)的作用
前言
本文記錄梅科爾工作室深度學(xué)習(xí)培訓(xùn)的第五講CNN算法的學(xué)習(xí)筆記,感謝泓利哥的講解!
參考文章鏈接:CNN筆記:通俗理解卷積神經(jīng)網(wǎng)絡(luò)_v_JULY_v的博客-CSDN博客_cnn卷積神經(jīng)網(wǎng)絡(luò)
1.計(jì)算機(jī)視覺(jué)
計(jì)算機(jī)視覺(jué)的應(yīng)用領(lǐng)域如下圖所示
?1.1. 計(jì)算機(jī)視覺(jué)分類(lèi)
?(a) lmage Classification:
圖像分類(lèi),用于識(shí)別圖像中物體的類(lèi)別(如: bottle、cup、cube)
(b) Object Localization:
 目標(biāo)檢測(cè),用于檢測(cè)圖像中每個(gè)物體的類(lèi)別,并準(zhǔn)確標(biāo)出它們的位置
(c) Semantic Segmentation:
 圖像語(yǔ)義分割,用于標(biāo)出圖像中每個(gè)像素點(diǎn)所屬的類(lèi)別,屬于同一類(lèi)別的像素點(diǎn)用一個(gè)顏色標(biāo)識(shí)
(d) Instance Segmentation:
 實(shí)例分割,值得注意的是。(b)中的目標(biāo)檢測(cè)任務(wù)只需要標(biāo)注出物體位置,而(d)中的實(shí)例分割任務(wù)不僅要標(biāo)注出物體位置,還需要標(biāo)注出物體的外形輪廓
2.?CNN
CNN的兩大特點(diǎn):
?CNN解決的兩大問(wèn)題:
?CNN層級(jí)結(jié)構(gòu)如圖所示
最左邊是數(shù)據(jù)輸入層,對(duì)數(shù)據(jù)做一些處理,比如去均值(把輸入數(shù)據(jù)各個(gè)維度都中心化為0,避免數(shù)據(jù)過(guò)多偏差,影響訓(xùn)練效果)、歸一化(把所有的數(shù)據(jù)都?xì)w一到同樣的范圍)、PCA/白化等等。CNN只對(duì)訓(xùn)練集做“去均值”這一步。
CONV:卷積計(jì)算層,線性乘積 求和。
 RELU:激勵(lì)層,ReLU是激活函數(shù)的一種。
 POOL:池化層,簡(jiǎn)言之,即取區(qū)域平均或最大。
FC:全連接層
3. 卷積層
3.1. 什么是卷積
對(duì)圖像(不同的數(shù)據(jù)窗口數(shù)據(jù))和濾波矩陣(一組固定的權(quán)重:因?yàn)槊總€(gè)神經(jīng)元的多個(gè)權(quán)重固定,所以又可以看做一個(gè)恒定的濾波器filter)做內(nèi)積(逐個(gè)元素相乘再求和)的操作就是所謂的『卷積』操作,也是卷積神經(jīng)網(wǎng)絡(luò)的名字來(lái)源。
? ? 非嚴(yán)格意義上來(lái)講,下圖中紅框框起來(lái)的部分便可以理解為一個(gè)濾波器,即帶著一組固定權(quán)重的神經(jīng)元。多個(gè)濾波器疊加便成了卷積層。
比如下圖中,圖中左邊部分是原始輸入數(shù)據(jù),圖中中間部分是濾波器filter,圖中右邊是輸出的新的二維數(shù)據(jù)。(對(duì)應(yīng)相乘再相加)
?
中間濾波器filter與數(shù)據(jù)窗口做內(nèi)積,其具體計(jì)算過(guò)程則是:4*0 + 0*0 + 0*0 + 0*0 + 0*1 + 0*1 + 0*0 + 0*1 + -4*2 = -8
3.2. 動(dòng)態(tài)卷積操作
?在CNN中,濾波器filter(帶著一組固定權(quán)重的神經(jīng)元)對(duì)局部輸入數(shù)據(jù)進(jìn)行卷積計(jì)算。每計(jì)算完一個(gè)數(shù)據(jù)窗口內(nèi)的局部數(shù)據(jù)后,數(shù)據(jù)窗口不斷平移滑動(dòng),直到計(jì)算完所有數(shù)據(jù)。這個(gè)過(guò)程中,有這么幾個(gè)參數(shù):?
   a. 深度depth:神經(jīng)元個(gè)數(shù),決定輸出的depth厚度。同時(shí)代表濾波器個(gè)數(shù)。
   b. 步長(zhǎng)stride:決定滑動(dòng)多少步可以到邊緣。?
c. 填充值z(mì)ero-padding:在外圍邊緣補(bǔ)充若干圈0,避免邊緣值浪費(fèi)
?動(dòng)態(tài)演示如下:
?如上圖所示,可以分析出這個(gè)卷積操作中有
- 兩個(gè)神經(jīng)元,即depth=2,意味著有兩個(gè)濾波器。
 - 數(shù)據(jù)窗口每次移動(dòng)兩個(gè)步長(zhǎng)取3*3的局部數(shù)據(jù),即stride=2。
 - zero-padding=1。
 
4. 池化層
池化(Pooling),有的地方也稱(chēng)匯聚,實(shí)際是一個(gè)下采樣(Down-sample)過(guò)程,用來(lái)縮小高、長(zhǎng)方向的尺寸,減小模型規(guī)模,提高運(yùn)算速度,同時(shí)提高所提取特征的魯棒性。簡(jiǎn)單來(lái)說(shuō),就是為了提取一定區(qū)域的主要特征,并減少參數(shù)數(shù)量,防止模型過(guò)擬合。
池化層通常出現(xiàn)在卷積層之后,二者相互交替出現(xiàn),并且每個(gè)卷積層都與一個(gè)池化層一一對(duì)應(yīng)。
常用的池化函數(shù)有:平均池化(Average Pooling / Mean Pooling)、最大池化(Max Pooling)、最小池化(Min Pooling)和隨機(jī)池化(Stochastic Pooling)等,其中3種池化方式展示如下。
實(shí)例解析:?
?上圖所展示的是取區(qū)域最大,即上圖左邊部分中 左上角2x2的矩陣中6最大,右上角2x2的矩陣中8最大,左下角2x2的矩陣中3最大,右下角2x2的矩陣中4最大,所以得到上圖右邊部分的結(jié)果:6 8 3 4。
5.激活函數(shù)的作用
常用的非線性激活函數(shù)有sigmoid、tanh、relu等等,前兩者sigmoid/tanh比較常見(jiàn)于全連接層,后者relu常見(jiàn)于卷積層。這里先簡(jiǎn)要介紹下最基礎(chǔ)的sigmoid函數(shù)。
?sigmoid的函數(shù)表達(dá)式如下
?其中z是一個(gè)線性組合,比如z可以等于:b?+?*?+?*。通過(guò)代入很大的正數(shù)或很小的負(fù)數(shù)到g(z)函數(shù)中可知,其結(jié)果趨近于0或1。
? ? 因此,sigmoid函數(shù)g(z)的圖形表示如下( 橫軸表示定義域z,縱軸表示值域g(z) ):
也就是說(shuō),sigmoid函數(shù)的功能是相當(dāng)于把一個(gè)實(shí)數(shù)壓縮至0到1之間。當(dāng)z是非常大的正數(shù)時(shí),g(z)會(huì)趨近于1,而z是非常小的負(fù)數(shù)時(shí),則g(z)會(huì)趨近于0。
? ? 壓縮至0到1有何用處呢?用處是這樣一來(lái)便可以把激活函數(shù)看作一種“分類(lèi)的概率”,比如激活函數(shù)的輸出為0.9的話便可以解釋為90%的概率為正樣本。
? ? 舉個(gè)例子,如下圖(圖引自Stanford機(jī)器學(xué)習(xí)公開(kāi)課)
但是實(shí)際梯度下降中,sigmoid容易飽和、造成終止梯度傳遞,且沒(méi)有0中心化,可以嘗試ReLU激活函數(shù)。?
ReLU激活函數(shù)?
?ReLU的優(yōu)點(diǎn)是收斂快,求梯度簡(jiǎn)單
總結(jié)
這次學(xué)習(xí)筆記到此結(jié)束,多是參考大佬的文章講解,此文章屬于入門(mén)級(jí),這也是對(duì)于CNN的初步學(xué)習(xí)與理解,還需要更加深入的學(xué)習(xí)才能夠收獲更多。
總結(jié)
以上是生活随笔為你收集整理的梅科尔工作室-深度学习第五讲 CNN-卷积神经网络的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
                            
                        - 上一篇: 超详细的水果FL Studio21最新版
 - 下一篇: 【AD学习记录】为什么原理图和PCB都在