Inception (深度學習架構)

Inception是一系列用於計算機視覺的卷積神經網路(CNN),由Google研究人員於2014年以GoogLeNet之名提出(後更名為Inception v1)。該系列在歷史上具有重要意義,作為早期CNN之一,它將「莖部」(資料輸入)、「軀幹」(資料處理)與「頭部」(預測)分開,這種架構設計至今仍存在於所有現代CNN中。

版本歷史
Inception v1
2014年,Google的一支團隊開發了GoogLeNet架構,其中一個實作版本贏得2014年ImageNet大規模視覺識別挑戰賽(ILSVRC14)。

這個名稱源自1998年的,因為LeNet和GoogLeNet都是CNN。他們也根據出自電影《全面啟動;}-》(2010年)的網路迷因「我們需要更深入」,將其命名為「Inception」。

Inception v1架構是一個由22個層組成的深度CNN。其中大部分層都是「Inception模組」。原始論文指出,Inception模組是「Network in Network」與(Arora et al, 2014)的「邏輯結晶」。

由於Inception v1結構較深,因此面臨梯度消失問題。研究團隊透過使用兩個「輔助分類器」來解決此問題,這些分類器是線性softmax分類器,分別插入在網路深度的1/3處與2/3處,而損失函數則是這三者的加權總和:

  • L = 0.3 L_{aux, 1} + 0.3 L_{aux, 2} + L_{real}

這些在訓練完成後被移除。此問題後來透過殘差神經網路(ResNet)架構獲得解決。

該架構由三部分疊加而成:。該模型擁有 1,360 萬個參數。

它透過加入批次正規化,並移除dropout和局部響應正規化,從而改進了Inception v1。研究人員發現,在使用批次正規化後,後兩者已變得不再必要。

Inception v3
Inception v3於2016年發布。它透過採用因子化卷積,對Inception v2進行了改進。

舉例來說,一個5×5的卷積可以分解為一個3×3卷積疊加在另一個3×3卷積之上。兩者的感受野大小皆為5×5。5×5卷積核有25個參數,而分解後的版本僅有18個。因此,5×5卷積在理論上確實比分解後的版本更強大。然而,這種強大性未必是必要的。根據實證研究,研究團隊發現分解後的卷積確實有所助益。

它還透過將與的輸出進行拼接,來實現某種形式的維度縮減。舉例來說,一個大小為 35\times 35 \times 320 的張量,可透過步長為2的卷積降採樣至 17 \times 17 \times 320,並透過池化大小為 2 \times 2 的最大值池化降採樣至 17 \times 17 \times 320。接著將這些結果進行拼接,得到 17 \times 17 \times 640 的張量。

除此之外,該方法還在訓練過程中移除了最低階的輔助分類器。研究人員發現,該輔助頭起到了某種正則化的作用。

他們還提出了分類中的標籤平滑正則化。對於一幅標籤為 c 的圖像,與其讓模型預測概率分佈 \delta_c = (0, 0, \dots, 0, \underbrace{1}_{c\text{-th entry}}, 0, \dots, 0),而是讓模型預測平滑後的分布 (1- \epsilon)\delta_c + \epsilon/K,其中 K 為類別總數。

Inception v4
2017年,該團隊發布了Inception v4、Inception ResNet v1以及Inception ResNet v2。

Inception v4是一項增量更新,包含更多因子化卷積,以及其他經實證可提升基準測試表現的改進。

Inception ResNet v1和v2均為Inception v4的修改版本,其靈感源自ResNet架構,在每個Inception模組中加入了殘差連接。

Xception
Xception(「Extreme Inception」)發表於2017年。它是由具有殘差連接的深度可分離卷積層所構成的線性堆疊。該設計的提出基於以下假設:在CNN中,特徵圖中的跨通道相關性與空間相關性可以完全解耦。

在60張K80 GPU上訓練每個網路需時3天,相當於約50兆浮點運算次/天。

參考資料
外部連結

  • A list of all Inception models released by Google:

评论 (0)

  • 还没有评论,来抢沙发吧。