深度學習05: 谷歌Inception網絡解讀

構建卷積層時,你要決定卷積核的大小究竟是 1×1,3×3 還 是 5×5,或者要不要添加池化層。而 Inception 網絡的作用就是代替你來決定,雖然網絡架
構因此變得更加複雜,但網絡表現卻非常好.

1.Inception基本思想:

在這裏插入圖片描述

同時添加多個濾波器,將每個濾波器輸出疊加一起,作爲總輸出,讓網絡自己學習它需要什麼樣的參數,採用哪些過濾器組合。

注:多個濾波器輸出的維度應該相同;比如MAX-POOL採取特殊的池化層,保證輸出維度28x28

缺點:顯而易見,Inceptin網絡計算量非常龐大;

以5x5卷積核爲例:
在這裏插入圖片描述
由上圖知,大概有1.2億參數

2.使用 1×1 卷積來構建瓶頸層,從而大大降低計算成本

添加用1x1卷積層,即"瓶頸層";

瓶頸通常是某個對象最小的部分,瓶頸層也是網絡中最小的部分,我們先縮小網絡表示,然後再擴大它。

在這裏插入圖片描述

參數量12.4M, 下降爲原來的十分之一。

事實證明,只要合理構建瓶頸層,既可以顯著縮小表示層規模,又不會降低網絡性能,從而節省了計算。

3.googleLeNet

https://arxiv.org/pdf/1409.4842.pdf

一個典型的Inception module

在這裏插入圖片描述

注意:池化層後加一個1x1卷積改變信道數量;

Inception網絡,就是在不同位置,重複使用Inception模塊組成。
在這裏插入圖片描述

由論文原文可知,還添加了一些分支,在網絡最後基層,通常稱爲全連接層,之後再鏈接一個softmax層做預測;

這些分支,應該看着Inception網絡的一個細節,確保了即便是隱藏單元和中間層也參與了特徵計算,它們也能預測圖片分類,也參與了特徵計算,它們能預測圖片的分類。

在 Inception網絡中,起到一種調整的效果,並且能防止網絡發生過擬合。

還有這個特別的Inception網絡是由Google公司的作者所研發的,它被叫做GoogleLeNet,這個名字是爲了向 LeNet 網絡致敬。在之前的視頻中你應該瞭解了 LeNet 網絡。

最後,有個有趣的事實,Inception 網絡這個名字又是緣何而來呢?Inception 的論文特地提到了這個meme,網絡用語即“梗”,就是“我們需要走的更深”(We need to go deeper),

論文還引用了這個網址(http://knowyourmeme.com/memes/we-need-to-go-deeper),
連接到這幅圖片上,

如果你看過 Inception(盜夢空間)這個電影,你應該能看懂這個由來。

作者其實是通過它來表明了建立更深的神經網絡的決心,他們正是這樣構建了 Inception。

4.GoogLeNet/Inception in Keras

from keras.applications.inception_v3 import InceptionV3
model = InceptionV3(weights='imagenet', include_top=False)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章