CNN中的卷积操作与权值共享
? ? ? ? ? CNN中非常有特點的地方就在于它的局部連接和權值共享,通過卷積操作實現局部連接,這個局部區域的大小就是濾波器filter,避免了全連接中參數過多造成無法計算的情況,再通過參數共享來縮減實際參數的數量,為實現多層網絡提供了可能。
卷積操作
? ? ? ? 在CNN中是利用卷積層進行特征提取的,圖像的三個通道R(red)、G(green)、B(blue),分別用不同的卷積核來進行卷積操作,說起卷積核這讓我想起了我之前對圖像進行的濾波處理,卷積運算本質上就是在濾波器和輸入數據的局部區域間做點積,所以可以用矩陣乘法來實現,其實這是一個道理,卷積核對圖像的操作可以用下圖來表示:
? ? ? ? 為什么會設置不同的filter呢,因為不同的濾波器filter會得到不同的輸出數據,比如顏色深淺、輪廓。相當于如果想提取圖像的不同特征,則用不同的濾波器filter,提取想要的關于圖像的特定信息:顏色深淺或輪廓。如下圖,左邊是圖像輸入,中間部分就是濾波器filter(帶著一組固定權重的神經元):
? ? ? ? 輸入圖像是32*32*3的,32表示的圖像尺寸大小,3表示的它的深度(即RGB三個channel),卷積層是一個5*5*3的濾波器(filter),filter的深度必須和輸入圖像的深度相同,通過一個filter與輸入圖像的卷積可以得到一個28*28*1的特征圖,下圖是用了兩個filter得到了兩個特征圖:
?權值共享
? ? ? ? 在下圖中,如果不使用權值共享,則特征圖由10個32*32*1的特征圖組成,每個特征圖上有1024個神經元,每個神經元對應輸入圖像上的一塊5*5*3的區域,所以一個神經元和輸入圖像的這塊區域有75個連接,即75個權值參數,則共有75*1024*10=768000個權值參數,這對于參數的調整和傳遞非常不利,因此卷積神經網絡引入權值共享原則,一個特征圖上每個神經元對應的75個權值參數被每個神經元共享,這里的共享其實就是指的每個神經元中75個權值參數采用對應相同的權值,權值共享時,只是在每一個filter上的每一個channel中是共享的,這樣便只需75*10=750個權值參數,而每個特征圖的閾值也共享,即需要10個閾值,則總共需要750+10=760個參數。
神經元的偏置部分也是同一種濾波器共享的。?
總結
以上是生活随笔為你收集整理的CNN中的卷积操作与权值共享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytorch查看当前学习率
- 下一篇: Excel制作随机抽取名单