卷積神經網絡(Convolutional Neural Networks,CNN)
1、基本計算原理
動態過程:
濾波器(過濾器:filter)的權值是根據你要檢測的特征來決定的,在深度學習中,也即是要經過訓練得到。檢測的特征不同,權值就不一樣。
如上單層的圖像一般表示的是灰白圖,既是沒有顏色的,有顏色的RGB圖像,會包含三個相同大小的圖層,這時對應的濾波器也要變成三層,濾波器的層數(通道數)必須時刻與圖像層數保持一致。。。
注意輸出的是一個單層圖
因為當一個三通道的過濾器與圖像進行卷積時,是直接對27個數去加權計算它們的和得到一個結果,而不是分層計算。
2、卷積輸出的大小計算
如上兩個例子,5*5的圖像經過3*3的濾波器得到一個3*3的結果,6*6*3d的圖像經過3*3*3d的濾波器得到一個4*4*1d的結果,從單層的例子我們大概已經知道了是怎么計算的了,那么接下來轉換成公式來表示一下。
由計算可知,每次卷積圖像都會變小,以上還只是步長為1的情況(也即是每次只移動一個),有兩個缺點:
1、每次卷積之后圖像都會縮小,多次卷積之后呢, 可能會變得很小很小
2、會丟掉角落邊緣像素的重要信息,看下面圖像
在上面的邊緣,從左到右像素檢測的次數分別為1、2、3、2、1,可見角落邊緣只被檢測了一次,而中間可以被檢測多次,這就會導致邊角信息丟失。解決的辦法是加入Padding。
3、加入Padding以及之后的計算
加入Padding的意思是在卷積之前,在原圖像邊緣上加入一層像素(也可以多層),一般也叫做補零(因為大多數時候我們添加的元素都是0)。
由上圖可知,如果卷積之后要得到與原圖像相同大小的圖像,那么加入的Padding層數應該是(f - 1) / 2,也由此可見,我們用的過濾器 f 一般也是奇數的,這樣才能整除計算,獲得對稱填充,還有一個原因是奇數的濾波器會有一個中心點,有時候在計算機視覺計算時,有個中心點會方便很多。
附:Padding = 0的卷積被稱為Valid Convolution為了得到與原圖像大小相同圖像而加入Padding的卷積稱為Same Convolution
3、加入卷積步長(Stride)
以上運算都是基于步長為1的情況,下面看看步長為2的情況:
在卷積運算時,如果濾波器超出了圖像框,一般的操作是不進行運算。
4、三維卷積
(1)原始RGB三維圖
(2)多個濾波器(卷積核)
以上操作都是基于單個濾波器的,無論是單層還是多層,一個濾波器只能檢測一種特征,要檢測多個特征,我們需要多個濾波器。
5、匯總
-
濾波器
+關注
關注
161文章
7883瀏覽量
179123 -
神經網絡
+關注
關注
42文章
4785瀏覽量
101269 -
cnn
+關注
關注
3文章
353瀏覽量
22364
原文標題:【多圖】CNN之間的計算
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
卷積神經網絡如何使用
卷積神經網絡模型發展及應用
循環神經網絡注意力的模擬實現
卷積神經網絡計算:精確識別納米級有序結構
![<b class='flag-5'>卷積</b><b class='flag-5'>神經網絡</b><b class='flag-5'>計算</b>:精確識別納米級有序結構](https://file.elecfans.com/web1/M00/E0/2C/pIYBAGA0qj6ABJeGAACeZASxj-o230.jpg)
評論