CNN基础知识(2)
這里不再重復(fù)什么是CNN,參考了兩篇博文,總結(jié)記錄了在學(xué)習(xí)CNN過(guò)程中的幾點(diǎn)疑惑。
CNN做的就是下面3件事:
1. 讀取圖片:
把由一個(gè)個(gè)像素點(diǎn)組成的圖片轉(zhuǎn)換為計(jì)算機(jī)能讀懂的0~255數(shù)字組成矩陣圖。
2. 提取特征:
這是最關(guān)鍵的一步:此過(guò)程是由幾個(gè)卷積核組成的卷積過(guò)程。這里需要解釋下,在卷積的過(guò)程中,會(huì)不止一個(gè)過(guò)濾器(也叫卷積核),因?yàn)槊總€(gè)過(guò)濾器的參數(shù)不同,提取的特征也不同(而大小和個(gè)數(shù)由人為指定)。但是有以下幾點(diǎn)需要注意:
(1)提取的過(guò)程可以簡(jiǎn)單看成如下的動(dòng)態(tài)圖:
綠色矩形框是圖片矩陣;橘色矩形框是過(guò)濾器;右邊的粉色矩形框就是得到的特征圖。
這里要注意的是:在“卷積”過(guò)程中,這種對(duì)應(yīng)數(shù)值相乘、再相加的計(jì)算,僅僅是“線性”計(jì)算;而在現(xiàn)實(shí)世界中,很多很多的數(shù)據(jù),都是“非線性”的。所以,在“卷積”處理的后面,我們常常引入一個(gè)“非線性”的計(jì)算,來(lái)使得數(shù)據(jù)更加接近真實(shí)世界。具體到圖片計(jì)算,ReLU相當(dāng)于將“特征圖片”中,像素值小于0的部分,全部變?yōu)?,因?yàn)閳D片的像素值是不存在負(fù)值的。如下:
所以在“卷積”的后面,再加上一步“ReLU計(jì)算”,但是如果得到的特征圖的數(shù)值絕大多數(shù)均為正數(shù),所以,經(jīng)由ReLU處理后的圖片可能并沒有太大的改變。
(2)在人的眼睛中看到的提取特征后的圖像應(yīng)該是:
圖像變小(從矩形圖的大小可以看出矩形由原來(lái)的5x5,變?yōu)榱?x3),并且圖像變得模糊(但主要特征都被提取出來(lái)了)。
(3)同時(shí)要注意的是不同的過(guò)濾器提取得到的特征圖是不同的:
比如提取得到的圖:輪廓圖、銳化圖、浮雕圖等
(4)過(guò)濾器中的值是怎么確定的?
這里就是算法要學(xué)習(xí)的其中一部分,不需要人為設(shè)定。而需要設(shè)定的參數(shù)有:
① 過(guò)濾器的大小(用字母“F”表示),需要注意的是:過(guò)濾器的尺寸越大,得到的圖像細(xì)節(jié)就越少,最終得到的特征圖的尺寸也更小。
②過(guò)濾器滑動(dòng)的步幅數(shù)(用字母“S”表示)
③過(guò)濾器的個(gè)數(shù)(用字母“K”表示)。如下:
從上面的例子我們能夠看到,“卷積”輸出的結(jié)果,是包含“寬、高、深”3個(gè)維度的,而這個(gè)“深度”,等于過(guò)濾器的個(gè)數(shù),也就是得到幾種特征圖。上面我們采用了4種過(guò)濾器,所以這里的深度是4。
④設(shè)置是否補(bǔ)零(用字母“P”表示),來(lái)看看“補(bǔ)零”后的效果:
這樣得到的特征圖大小就和原圖一樣大了。
如何確定“補(bǔ)零”的圈數(shù),才能保證圖片大小一致?這里有一個(gè)關(guān)系式:
假設(shè)原始圖片的大小為W,當(dāng)我們?cè)O(shè)置了過(guò)濾器的大小(F)、滑動(dòng)的步幅數(shù)(S)、以及補(bǔ)零的圈數(shù)(P)。實(shí)際上,得到的特征圖片大小為:
(5)如果得到的特征圖片的尺寸很大的話,你還可以進(jìn)一步添加“池化”的操作。所謂“池化”,就是在保留圖片主要信息的前提下,將圖片的尺寸縮小。
但是池化的操作是在ReLU處理后加入的。
池化的操作與“卷積”類似,需要我們?cè)O(shè)置2個(gè)超參數(shù):過(guò)濾器大小(F)和 滑動(dòng)的步幅數(shù)(S) 。
整個(gè)的特征提取過(guò)程如下:輸入圖片 → 卷積 → ReLU → 池化(可選)
但大部分的時(shí)候,我們會(huì)進(jìn)行多次卷積和池化。
關(guān)于池化層和卷積層的幾點(diǎn)區(qū)別:
① “池化”層使用的過(guò)濾器,與“卷積”層使用的過(guò)濾器有所不同:
“池化”層的過(guò)濾器,其內(nèi)部沒有數(shù)值,因?yàn)椤俺鼗睂拥倪^(guò)濾器,其功能只是將圖片縮小,故其內(nèi)部沒有參數(shù)。
在“池化”層中,僅有1個(gè)過(guò)濾器;而在“卷積”層中,可以設(shè)置多個(gè)過(guò)濾器:
因?yàn)椤熬矸e”層的過(guò)濾器,其功能是提取圖片的特征,因而,我們使用不同的過(guò)濾器,可以提取不同的圖片細(xì)節(jié)。而“池化”層的過(guò)濾器,僅僅是為了縮小圖片的尺寸,因而,使用一種過(guò)濾器,就可以達(dá)到這一目標(biāo),無(wú)需設(shè)置多個(gè)。
② 經(jīng)過(guò)“卷積”處理后,得到的圖片張數(shù)(即“圖片深度”),應(yīng)該等于該卷積層的過(guò)濾器個(gè)數(shù);而經(jīng)過(guò)“池化”處理后,得到的圖片張數(shù)(即“圖片深度”),仍等于上一層的圖片張數(shù)。
當(dāng)要處理的圖片是彩色圖片時(shí):
和黑白圖像的區(qū)別是灰度圖的深度僅為1,而彩色圖的深度為3(彩色圖片包含紅R、綠G、藍(lán)B,三種通道)。
所以,彩色圖片在進(jìn)行第一層“卷積”時(shí),需要同時(shí)處理3張圖片(即“紅、綠、藍(lán)”)。
前面我們?cè)谔幚砘野讏D片時(shí),因?yàn)檩斎氲膱D片其深度為1,所以我們采用的是大小為3*3,但是,深度為1的過(guò)濾器。而在處理彩色圖片時(shí),我們的過(guò)濾器,其深度增加為3。如下:
所以如果我們?cè)O(shè)置過(guò)濾器的個(gè)數(shù)為2個(gè),也就是說(shuō)提取原圖的兩種不同特征。此時(shí)的兩個(gè)過(guò)濾器的形式為:
也就是說(shuō)每個(gè)過(guò)濾器的有三種不同的取值矩形框,分別過(guò)濾原圖每個(gè)通道上的特征:
當(dāng)過(guò)濾器在圖片上滑動(dòng)時(shí),
過(guò)濾器的“紅色”層,負(fù)責(zé)提取原始圖片“紅色”通道的特征;
過(guò)濾器的“綠色”層,負(fù)責(zé)提取原始圖片“綠色”通道的特征;
過(guò)濾器的“藍(lán)色”層,負(fù)責(zé)提取原始圖片“藍(lán)色”通道的特征。
之后,將“紅、綠、藍(lán)”3層提取出的特征值相加,得到的最終值,就是“卷積”層輸出的圖片像素。
例如:假設(shè)我們有一張寬、高、深為4*4*3的彩色圖片。并且,我們?cè)凇熬矸e層”,設(shè)置了2個(gè)過(guò)濾器,如下圖:
提取過(guò)程:
注意此時(shí)最后得到的特征圖仍然是兩張,既是和過(guò)濾器的個(gè)數(shù)是一樣的。這里的彩色圖只是增加了過(guò)濾器和計(jì)算的復(fù)雜度,而得到的特征圖個(gè)數(shù)不會(huì)改變。
這里要注意的是:
① 經(jīng)過(guò)“卷積”后,輸出的特征圖片,其深度等于使用的過(guò)濾器個(gè)數(shù)。
② 推廣到更一般的情況,無(wú)論是灰度圖片,還是彩色圖片,當(dāng)我們構(gòu)建的模型中,有多個(gè)“卷積”層時(shí),都要遵循“彩色案例”中的步驟,即“在做‘卷積’處理時(shí),如果上一層圖片是多層,那么,本層過(guò)濾器在遍歷完多層圖片后,需要將結(jié)果值相加“。
3. 圖片分類:
經(jīng)過(guò)上面一系列的處理,此時(shí)得到的圖片,已經(jīng)可以被視為一串串簡(jiǎn)單的數(shù)字(即像素值)。然后將這一個(gè)個(gè)的像素值,帶入模型:
就可以得到分類了。
這里要注意的是:
(1)首先需要將特征提取后得到的圖片像素值展開
(2)在模型的最后,我們需要讓計(jì)算機(jī)努力找到x-y之間的關(guān)系。而尋找的辦法,就需要依靠“全連接神經(jīng)網(wǎng)絡(luò)”。
這里需要注意:
① “全連接神經(jīng)網(wǎng)絡(luò)”可以幫助我們學(xué)習(xí)到參數(shù)θ。
② 模型得到的最終結(jié)果,表示“圖片為某種類別的概率”。注意:這里的概率之和,永遠(yuǎn)為1。
總結(jié):
在構(gòu)建模型時(shí),需要我們?cè)O(shè)置的超參數(shù)有:
(1)卷積層: 過(guò)濾器的大小(F)、滑動(dòng)的步幅數(shù)(S),以及過(guò)濾器的個(gè)數(shù)(K)
(2)池化層:過(guò)濾器的大小(F)
在算法運(yùn)行時(shí),計(jì)算機(jī)會(huì)自己學(xué)習(xí)的參數(shù)有:
(1)卷積層: 過(guò)濾器中的具體數(shù)值。
(2)全連接層: 神經(jīng)元的參數(shù) θ
參考:
http://mp.weixin.qq.com/s/fdBpynmAdcnjUW9DF2DQRg
https://mp.weixin.qq.com/s?__biz=MzI1NjczMjEwNw==&mid=2247483921&idx=1&sn=90250512a4b8d369955672c7b720eca0&scene=21#wechat_redirect
總結(jié)
以上是生活随笔為你收集整理的CNN基础知识(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Tensorflow 改进的MNIST手
- 下一篇: LeNet-5 经典卷积网络模型浅析