能夠減小計算量,能夠增長非線性判別能力網絡
舉例函數 |
假設有1個高爲30、寬爲40,深度爲200的三維張量與55個高爲五、寬爲五、深度爲200的卷積核same卷積,步長=1,則結果是高爲30、寬爲40、深度爲55的三維張量,如圖所示:性能
該卷積過程的乘法計算量大約爲5*5*200*30*40*55=330000000,這個計算量很大。學習
接着,咱們能夠考慮第二種卷積過程,先利用1*1的卷積核在深度上降維,而後升維:google
上述卷積過程的計算量大約爲:spa
第一步:1*1*200*30*40*20=4800000blog
第二步:5*5*20*30*40*55=33000000深度學習
總的乘法計算量大約爲:37800000it
顯然,獲得一樣的最終的結果,採用第二種方式,即首先在深度方向上降維,第二種的計算量是第一種的37800000/330000000=0.11。io
第二步中的中間層也能夠叫作瓶頸層,由於他是整個網絡中最小的,你可能會問:你這樣大幅地縮小模型的規模會不會影響到網絡的性能?事實證實只要合理構建瓶頸層,你既能夠顯著縮小瓶頸層規模,又不會下降網絡性能,從而大量減小了計算。
另外,由於又引入了一層結構,激活函數能夠引入額外的非線性能力.
在Inception module上的應用 |
在googlenet中的inception module中就使用了這種1*1的卷積核作降維,以減小計算量和增長非線性判別能力
參考資料 |
《圖解深度學習與神經網絡:從張量到TensorFlow實現》_張平
inceptionV1-Going Deeper with Convolutions
《深-度-學-習-核-心-技-術-與-實-踐》
吳恩達深度學習