卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)
1、基本計(jì)算原理
動(dòng)態(tài)過(guò)程:
濾波器(過(guò)濾器:filter)的權(quán)值是根據(jù)你要檢測(cè)的特征來(lái)決定的,在深度學(xué)習(xí)中,也即是要經(jīng)過(guò)訓(xùn)練得到。檢測(cè)的特征不同,權(quán)值就不一樣。
如上單層的圖像一般表示的是灰白圖,既是沒(méi)有顏色的,有顏色的RGB圖像,會(huì)包含三個(gè)相同大小的圖層,這時(shí)對(duì)應(yīng)的濾波器也要變成三層,濾波器的層數(shù)(通道數(shù))必須時(shí)刻與圖像層數(shù)保持一致。。。
注意輸出的是一個(gè)單層圖
因?yàn)楫?dāng)一個(gè)三通道的過(guò)濾器與圖像進(jìn)行卷積時(shí),是直接對(duì)27個(gè)數(shù)去加權(quán)計(jì)算它們的和得到一個(gè)結(jié)果,而不是分層計(jì)算。
2、卷積輸出的大小計(jì)算
如上兩個(gè)例子,5*5的圖像經(jīng)過(guò)3*3的濾波器得到一個(gè)3*3的結(jié)果,6*6*3d的圖像經(jīng)過(guò)3*3*3d的濾波器得到一個(gè)4*4*1d的結(jié)果,從單層的例子我們大概已經(jīng)知道了是怎么計(jì)算的了,那么接下來(lái)轉(zhuǎn)換成公式來(lái)表示一下。
由計(jì)算可知,每次卷積圖像都會(huì)變小,以上還只是步長(zhǎng)為1的情況(也即是每次只移動(dòng)一個(gè)),有兩個(gè)缺點(diǎn):
1、每次卷積之后圖像都會(huì)縮小,多次卷積之后呢, 可能會(huì)變得很小很小
2、會(huì)丟掉角落邊緣像素的重要信息,看下面圖像
在上面的邊緣,從左到右像素檢測(cè)的次數(shù)分別為1、2、3、2、1,可見(jiàn)角落邊緣只被檢測(cè)了一次,而中間可以被檢測(cè)多次,這就會(huì)導(dǎo)致邊角信息丟失。解決的辦法是加入Padding。
3、加入Padding以及之后的計(jì)算
加入Padding的意思是在卷積之前,在原圖像邊緣上加入一層像素(也可以多層),一般也叫做補(bǔ)零(因?yàn)榇蠖鄶?shù)時(shí)候我們添加的元素都是0)。
由上圖可知,如果卷積之后要得到與原圖像相同大小的圖像,那么加入的Padding層數(shù)應(yīng)該是(f - 1) / 2,也由此可見(jiàn),我們用的過(guò)濾器 f 一般也是奇數(shù)的,這樣才能整除計(jì)算,獲得對(duì)稱填充,還有一個(gè)原因是奇數(shù)的濾波器會(huì)有一個(gè)中心點(diǎn),有時(shí)候在計(jì)算機(jī)視覺(jué)計(jì)算時(shí),有個(gè)中心點(diǎn)會(huì)方便很多。
附:Padding = 0的卷積被稱為Valid Convolution為了得到與原圖像大小相同圖像而加入Padding的卷積稱為Same Convolution
3、加入卷積步長(zhǎng)(Stride)
以上運(yùn)算都是基于步長(zhǎng)為1的情況,下面看看步長(zhǎng)為2的情況:
在卷積運(yùn)算時(shí),如果濾波器超出了圖像框,一般的操作是不進(jìn)行運(yùn)算。
4、三維卷積
(1)原始RGB三維圖
(2)多個(gè)濾波器(卷積核)
以上操作都是基于單個(gè)濾波器的,無(wú)論是單層還是多層,一個(gè)濾波器只能檢測(cè)一種特征,要檢測(cè)多個(gè)特征,我們需要多個(gè)濾波器。
5、匯總
-
濾波器
+關(guān)注
關(guān)注
161文章
7832瀏覽量
178232 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4772瀏覽量
100835 -
cnn
+關(guān)注
關(guān)注
3文章
352瀏覽量
22237
原文標(biāo)題:【多圖】CNN之間的計(jì)算
文章出處:【微信號(hào):Imgtec,微信公眾號(hào):Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論