CNN中的卷積的理解

1、什麼是卷積:圖像中不同數據窗口的數據和卷積核(一個濾波矩陣)作內積的操作叫做卷積。其計算過程又稱爲濾波(filter),本質是提取圖像不同頻段的特徵。

2、什麼是卷積核:也稱爲濾波器filter,帶着一組固定權重的神經元,通常是n*m二維的矩陣,n和m也是神經元的感受野(相當於對圖像取的窗口大小,比如一次從128*128的輸入圖像中只取3*3的一個小窗口進行分析)。n*m 矩陣中存的是對感受野中數據處理的係數(W權重)。filter_size是指filter的大小,例如3*3; filter_num是指每種filter_size的filter個數,通常是通道個數

feature map(特徵映射):原始圖像數據通過卷積核處理可以用來提取特定的特徵(例如可以提取物體輪廓、顏色深淺等表現物體信息的特徵)。通過卷積層從原始數據中提取出特徵的過程又成爲feature map(特徵映射)。即每個卷積核只能提取一種相應的特徵,每個卷積覈對應一個特徵映射,也就是feature map。

3、什麼是卷積層:多個濾波器疊加便成了卷積層。

4、一個卷基層有多少個參數:一個卷積核使用一套權值以便”掃視’數據每一處時以同樣的方式抽取特徵,最終得到的是一種特徵。 在tensorflow定義conv2d時需要指定卷積核的尺寸,本人現在的理解是一個卷積層的多個卷積核使用相同的m*n, 只是權重不同。 則一個卷積層的參數總共m*n*filter_num個,比全連接少了很多。

5、通道(chennel)怎麼理解:一般爲RGB三通道

6、幾個參數:

a. 深度depth:卷積核個數,決定輸出的depth厚度,卷積核尺寸決定輸出長寬。

output(輸出像素)= (input輸入像素 - F卷積核長寬尺寸 + 2*P填充值)/stride卷積核每次移動的步長 +1

比如(7-3)/2 +1=3 ,所以下文中輸出爲3*3矩陣

b. 步長stride:決定移動多少步可以到邊緣。

c. 填充值zero-padding:在外圍邊緣補充若干圈0,方便從初始位置以步長爲單位可以剛好滑倒末尾位置,通俗地講就是爲了總長能被步長整除。 

 

 

7、計算例子:

解析:圖中input 7*7*3中,7*7代表圖像的像素/長寬,3代表R、G、B 三個顏色通道,可以看到周邊有填充0; 有兩個3*3*3的卷積核Filter w0、Filter w1(3*3代表取的窗口長度*寬度,後面一個*3代表通道個數,RGB三個通道),每個filter對應每個通道有一組3*3的w權重;一個filter滑動到一個位置後計算三個通道的卷積,求和,加bias,得到這個filter在該位置的最終結果;每個卷積核的輸出是各個通道的彙總;輸出的個數與filter矩陣維數相同。兩個卷積核,最後的output爲3*3*2,其depth=2。窗口每次移動兩個步長取3*3的局部數據,即stride=2。外圍填0部分爲一位,所以zero-padding=1。

1的計算過程:

第一個通道和對應權重的結果:0*1+0*1+0*(-1)+0*(-1)+0*0+1*1+0*(-1)+0*(-1)+1*0 = 1

第二個通道和對應權重的結果:0*(-1)+0*0+0*(-1)+0*0+1*0+1*(-1)+0*1+0*(-1)+2*0 = -1

第三個通道和對應權重的結果:0*0+0*1+0*0+0*1+2*0+0*1+0*0+0*(-1)+0*0 = 0

偏置:1  所以1+(-1)+ 0 + 1 = 1


轉載自https://blog.csdn.net/cheneykl/article/details/79740810

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章