專欄推薦
正文
GoogLeNet是一種全新的深度學習結構,在這之前的AlexNet、VGG等結構都是通過增大網路的深度來獲得更好的訓練效果,但層數的增加會帶來很多負作用,比如過擬合、梯度消失、梯度爆炸等。
為了簡化計算成本,先通過一個 1×1的卷積層,再通過一個 5×5 的卷積層,1×1 的層可能有 16 個通道,而 5×5 的層輸出為 28×28×32,也就是32 個通道
然後先通過一個 1×1的卷積層,再通過一個 3*3 的卷積層
然後直接通過一個1*1的卷積層,這時就不必在後面再跟一個 1×1 的層了,假設這個層的輸出是 28×28×64。
然後是池化層,我們先使用same填充的3*3,s=1的對其進行池化操作,保證維度還是28*28*192,然後使用1*1的卷積層(也就是使用 32 個維度為1×1×192 的過濾器)對其進行縮小通道處理,縮小到 28×28×32。
最後,將這些方塊全都連線起來。在這過程中,把得到的各個層的通道都加起來,最後得到一個 28×28×256 的輸出。
這就是一個 Inception 模組,而 Inception 網路所做的就是將這些模組都組合到一起。
我們來看一下真實的Inception 網路的圖片,你會發現圖中有許多重複的Inception模組
還有一個細節在網路的最後幾層位置使用了全連線層,它也包含了一個隱藏層,通過一些全連線層,然後有一個 softmax 來預測,輸出結果的標籤。你應該把它看做 Inception 網路的一個細節,它確保了即便是隱藏單元和中間層也參與了特徵計算,它們也能預測圖片的分類。它在 Inception 網路中,起到一種調整的效果,並且能防止網路發生過擬合。
所以 Inception 網路只是很多這些你學過的模組在不同的位置重複組成的網路,所以如果你理解了之前所學的 Inception 模組,你就也能理解 Inception 網路。