使用更小卷積核的作用——參數量和計算量的分析


使用更小卷積核的作用

使用更小的卷積核是當前在保證網絡精度的情況下,減少參數的趨勢之一,在VGG16中,使用了3個3*3卷積核來代替7*7卷積核,使用了2個3*3卷積核來代替5*5卷積核,這樣做的主要目的是在保證具有相同感知野的條件下,提升了網絡的深度,在一定程度上提升了神經網絡的效果。

以下簡單地說明一下小卷積(3*3)對於5×5網絡感知野相同的替代性。

這里寫圖片描述

關於3個3×3卷積核對於7× 7 卷積的替代性思考方式同上。

接下來說明以下減少參數的作用。

對於兩個3*3卷積核,所用的參數總量為2*(3*3)*channels, 對於5*5卷積核為5*5*channels, 因此可以顯著地減少參數的數量。

下面是7*7的用三個3*3卷積核替代的情況 
這里寫圖片描述


問題:7*7的卷積核,不是只需要一次加權求和就成了1*1的輸出了么。3*3的卷積核,先過濾成5*5,再用3*3卷積核就成了3*3,再一次,就成了1*1。
3*3的卷積核只有9個參數,卷積3次,也就27個參數。而7*7的卷積核是49個參數,我承認參數變少了。但在加權求和的過程中,顯然后者運算步驟更多。
參數少了,運算步驟卻多了,我的疑問就在這。

 

假設輸入的圖片大小為100*100*3,卷積操作不改變大小(padding=same)。先看用128個7*7*3的核進行卷積操作,需要100*100*7*7*3*128次乘法操作然后我們用3層3*3卷積代替上面的7*7卷積,每層仍取128個核,需要100*100*3*3*3*128*3次乘法操作,約掉相同部分,分別剩下7*7=49和3*3*3=27.顯然,用三層3*3代替一層7*7可以減少近一半的計算量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM