【學習記錄】Inception結構的簡單介紹及Filter Concatenation的理解

【學習記錄】Inception結構的簡單介紹及Filter Concatenation的理解

我們在研讀目標檢測類論文時,常常會看到Inception Structure以及一張輸入爲Previous layers到輸出Filter Concatenation的一張流程圖。這其實是目標檢測類論文的一個常見結構和流程,本文簡單的介紹其概念。

Inception

Inception模型有V1到V4四個版本,這裏只介紹V1,其他版本的介紹後續會更新。
Inception V1主要是介紹如何在有限的計算資源內,提升網絡性能。而提升網絡性能的方法有很多,最直接的方法是增加網絡的深度和寬度(深度:網絡層數;寬度:每層網絡的通道數)。但是直接的方法往往會帶來一些麻煩:
(1)隨着網絡深度和寬度的增加,參數不斷增加,容易發生過擬合
(2)網絡規模不斷擴大,參數增加,計算量增大

因此爲了解決這個問題我們應該引入稀疏特性和將全連接層換成稀疏連接(將擁擠的網絡不失性能的簡化,很像dropout)。但由於目前的計算框架對稀疏數據(不均勻)的計算非常低效。因此大量文獻指出,將稀疏矩陣聚類成相對密集的子矩陣,可以提高性能,於是提出了Inception結構。
在這裏插入圖片描述
上圖是Inception V1結構的兩張圖,得出幾點結論

  • 使用不同大小的卷積核,表明獲得的感受野不同,因此最後融合的特徵尺寸也不同
  • pooling層經衆多文獻表明優化結構,因此結構中也嵌入了
  • 隨着網絡不斷的加深,特徵會逐漸抽象,這時需要更大的感受野,因此隨層數增加,3 * 3和5 * 5的卷積比例要增加
    在Inception結構中引入1*1的卷積核,可以減少參數量,從而減少一定的計算量。
輸入 操作 輸出 參數量
128 * 128 * 128 256個5*5的卷積核卷積 128 *128 * 256 5 * 5 * 128 * 256
128 * 128 * 128 32個1*1的卷積核卷積後再經過256個5 * 5的卷積核卷積 128 *128 * 256 1 * 1 * 128 * 32 + 5 * 5 * 32 * 256

可見加入1*1的卷積核後,在不失性能的條件下,減少了參數量。

Filter Concatenation

在這裏插入圖片描述
上圖是我最近閱讀的一篇論文的一個模塊的流程圖,這裏也用到了Inception structure。在目標檢測中我們在提取目標特徵信息的時候,常常要擴大感受野(特別是小目標),因此這個結構在這裏起到了擴大感受野並且增加語義信息的作用。

Filter Concatenation指的是將輸入按照深度連接起來,比如2 * 2 * 3的輸入和2個2 * 2 * 4的輸入,經過Filter Concatenation後得到的是2 * 2 * 11的輸出,11=3+2*4。

那麼可能大家會有一個疑問,在Inception structure中不是存在不同的卷積核嗎,那麼最後的輸出會是一樣的W和H嗎,那麼我們不就連接的是不一樣尺寸的輸入了嗎?

其實不同的卷積核通過卷積得到的輸出不僅僅取決於卷積核的大小,還有卷積核的步長,卷積核的是否填充,以及如上圖所示不同大小卷積核之間的組合,因此我們最後輸出的是一樣W和H的輸出。因此我們只需要考慮將其深度連接即可。

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