2.7 Inception 网络-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
| 2.6 谷歌 Inception 網絡簡介 | 回到目錄 | 2.8 使用開源的實現方案 |
Inception 網絡 (Inception Network)
在上節視頻中,你已經見到了所有的Inception網絡基礎模塊。在本視頻中,我們將學習如何將這些模塊組合起來,構筑你自己的Inception網絡。
Inception模塊會將之前層的激活或者輸出作為它的輸入,作為前提,這是一個28×28×192的輸入,和我們之前視頻中的一樣。我們詳細分析過的例子是,先通過一個1×1的層,再通過一個5×5的層,1×1的層可能有16個通道,而5×5的層輸出為28×28×32,共32個通道,這就是上個視頻最后講到的我們處理的例子。
為了在這個3×3的卷積層中節省運算量,你也可以做相同的操作,這樣的話3×3的層將會輸出28×28×128。
或許你還想將其直接通過一個1×1的卷積層,這時就不必在后面再跟一個1×1的層了,這樣的話過程就只有一步,假設這個層的輸出是28×28×64。
最后是池化層。
這里我們要做些有趣的事情,為了能在最后將這些輸出都連接起來,我們會使用same類型的padding來池化,使得輸出的高和寬依然是28×28,這樣才能將它與其他輸出連接起來。但注意,如果你進行了最大池化,即便用了same padding,3×3的過濾器,stride為1,其輸出將會是28×28×192,其通道數或者說深度與這里的輸入(通道數)相同。所以看起來它會有很多通道,我們實際要做的就是再加上一個1×1的卷積層,去進行我們在1×1卷積層的視頻里所介紹的操作,將通道的數量縮小,縮小到28×28×32。也就是使用32個維度為1×1×192的過濾器,所以輸出的維度其通道數縮小為32。這樣就避免了最后輸出時,池化層占據所有的通道。
最后,將這些方塊全都連接起來。在這過程中,把得到的各個層的通道都加起來,最后得到一個28×28×256的輸出。通道連接實際就是之前視頻中看到過的,把所有方塊連接在一起的操作。這就是一個Inception模塊,而Inception網絡所做的就是將這些模塊都組合到一起。
這是一張取自Szegety et al的論文中關于Inception網絡的圖片,你會發現圖中有許多重復的模塊,可能整張圖看上去很復雜,但如果你只截取其中一個環節(編號1),就會發現這是在前一頁ppt中所見的Inception模塊。
我們深入看看里邊的一些細節,這是另一個Inception模塊(編號2),這也是一個Inception模塊(編號3)。這里有一些額外的最大池化層(編號6)來修改高和寬的維度。這是另外一個Inception模塊(編號4),這是另外一個最大池化層(編號7),它改變了高和寬。而這里又是另一個Inception模塊(編號5)。
所以Inception網絡只是很多這些你學過的模塊在不同的位置重復組成的網絡,所以如果你理解了之前所學的Inception模塊,你就也能理解Inception網絡。
事實上,如果你讀過論文的原文,你就會發現,這里其實還有一些分支,我現在把它們加上去。所以這些分支有什么用呢?在網絡的最后幾層,通常稱為全連接層,在它之后是一個softmax層(編號1)來做出預測,這些分支(編號2)所做的就是通過隱藏層(編號3)來做出預測,所以這其實是一個softmax輸出(編號2),這(編號1)也是。這是另一條分支(編號4),它也包含了一個隱藏層,通過一些全連接層,然后有一個softmax來預測,輸出結果的標簽。
你應該把它看做Inception網絡的一個細節,它確保了即便是隱藏單元和中間層(編號5)也參與了特征計算,它們也能預測圖片的分類。它在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。我想一般研究論文,通常不會引用網絡流行模因(梗),但這里顯然很合適。
最后總結一下,如果你理解了Inception模塊,你就能理解Inception網絡,無非是很多個Inception模塊一環接一環,最后組成了網絡。自從Inception模塊誕生以來,經過研究者們的不斷發展,衍生了許多新的版本。所以在你們看一些比較新的Inception算法的論文時,會發現人們使用這些新版本的算法效果也一樣很好,比如Inception V2、V3以及V4,還有一個版本引入了跳躍連接的方法,有時也會有特別好的效果。但所有的這些變體都建立在同一種基礎的思想上,在之前的視頻中你就已經學到過,就是把許多Inception模塊通過某種方式連接到一起。通過這個視頻,我想你應該能去閱讀和理解這些Inception的論文,甚至是一些新版本的論文。
直到現在,你已經了解了許多專用的神經網絡結構。在下節視頻中,我將會告訴你們如何真正去使用這些算法來構建自己的計算機視覺系統,我們下節視頻再見。
課程板書
| 2.6 谷歌 Inception 網絡簡介 | 回到目錄 | 2.8 使用開源的實現方案 |
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的2.7 Inception 网络-深度学习第四课《卷积神经网络》-Stanford吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.6 谷歌 Inception 网络简
- 下一篇: 2.8 使用开源的实现方案-深度学习第四