該文章參考:https://mp.weixin.qq.com/s/Ox8IeC_K-3teYlmq4I6TCA
瓶頸模塊
作用:減少卷積的參數(shù)
實現(xiàn):使用成本較低的1x1卷積以特定速率r來降低通道數(shù)量,從而使后續(xù)的3x3卷積的參數(shù)更少。最后,再使用另一個1x1卷積來拓寬網(wǎng)絡(luò)。
code:

Inception模塊
作用:網(wǎng)絡(luò)可以學(xué)習(xí)不同類型的過濾器
實現(xiàn):并行地使用不同操作然后融合結(jié)果
code:

這段代碼使用一個最大池化融合了卷積核大小為1、3、5的卷積層。在實踐中,還會將其與上述的瓶頸思想結(jié)合起來。

code:

殘差模塊
作用:ResNet(殘差網(wǎng)絡(luò))是微軟的研究者提出的一種架構(gòu),能讓神經(jīng)網(wǎng)絡(luò)擁有他們想要的任何層數(shù),同時還能提升模型的準確度。
實現(xiàn):在卷積模塊的輸出上添加初始激活。

code:

與Inception不同:Inception模塊是連接輸出,而殘差模塊是添加它們。
ResNeXt模塊
作用:研究者為卷積模塊引入了基數(shù)(cardinality)項,以作為類似于寬度(通道數(shù)量)和深度(層數(shù))的又一維度
。
基數(shù)是指現(xiàn)在模塊中的并行路徑的數(shù)量。不同于Inception模塊的并行操作,當基數(shù)為4時,其并行使用的4個操作是相同的。
code:

其思想是將所有輸入通道劃分為不同的組別。卷積僅在它們指定的通道組內(nèi)操作,不能跨組進行。研究發(fā)現(xiàn),每個組都會學(xué)習(xí)到不同類型的特征,同時也能提升權(quán)重的效率。
假設(shè)有一個瓶頸模塊,首先使用4的壓縮率將256的輸入通道降低到64,然后再將它們返回到256個通道作為輸出。如果我們想引入一個32的基數(shù)和2的壓縮率,那么我們就會有并行的32個1x1的卷積層,其中每個卷積層有4個輸出通道(256/(32*2))。之后,我們會使用32個帶有4個輸出通道的3x3卷積層,后面跟著32個帶有256個輸出通道的1x1層。最后一步涉及到疊加這32個并行路徑,這能在添加初始輸入構(gòu)建殘差連接之前提供一個輸出。

Dense模塊
密集(dense)模塊是殘差模塊的一個極端版本,其中每個卷積層都會獲得該模塊所有之前的卷積層的輸出。
實現(xiàn): 首先,我們將輸入激活添加到一個列表中,之后進入一個在模塊的深度上迭代的循環(huán)。每個卷積輸出也都連接到該列表,這樣后續(xù)的迭代會得到越來越多的輸入特征圖。

code:

Squeeze-and-Excitation模塊
SENet曾短暫地也在ImageNet上達到過最佳表現(xiàn)。它基于ResNeXt,并且重在建模網(wǎng)絡(luò)通道方面的信息。

SENet引入了一種非常簡單的模塊,可以添加到任何已有的架構(gòu)中。它會創(chuàng)建一個小型神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)能學(xué)習(xí)如何根據(jù)輸入情況為每個過濾器加權(quán)
。
code:

每個通道都被壓縮成單個值,并被饋送給一個兩層神經(jīng)網(wǎng)絡(luò)。根據(jù)通道的分布情況,該網(wǎng)絡(luò)學(xué)習(xí)基于它們的重要性為這些通道加權(quán)。最后這些權(quán)重會與卷積激活相乘。
NASNet Normal Cell
NASNet 的提出者通過人工方式定義了一個包含不同類型的卷積和池化層的搜索空間,其中包含不同的可能設(shè)置。他們還定義了這些層可以并行或順序排布的方式以及添加或連接的方式。定義完成后,他們基于一個循環(huán)神經(jīng)網(wǎng)絡(luò)構(gòu)建了一個強化學(xué)習(xí)算法,其獎勵是提出了在CIFAR-10數(shù)據(jù)集上表現(xiàn)優(yōu)良的特定設(shè)計。

NASNet 由 Normal Cell 和 Reduction Cell 構(gòu)成,它們在彼此之后重復(fù)。
code:

倒置殘差模型

研究者想出了一個做法,做瓶頸殘差模塊相反的事。他們增多了使用低成本 1×1 卷積的通道的數(shù)量,因為后續(xù)的可分離卷積層能夠極大降低參數(shù)數(shù)量。它會在關(guān)閉這些通道之后再添加到初始激活。
code:

最后還有一點:這個可分離卷積之后沒有激活函數(shù)。相反,它是直接被加到了輸入上。研究表明,在納入某個架構(gòu)之后,這一模塊是非常有效的。
AmoebaNet Normal Cell

AmoebaNet 是當前在 ImageNet 上表現(xiàn)最好的,甚至在廣義的圖像識別任務(wù)上可能也最好。類似于 NASNet,它是由一個算法使用前述的同樣的搜索空間設(shè)計的。唯一的區(qū)別是他們沒使用強化學(xué)習(xí)算法,而是采用了一種常被稱為「進化(Evolution)」的通用算法。該算法工作方式的細節(jié)超出了本文范圍。最終,相比于 NASNet,研究者通過進化算法用更少的計算成本找到了一種更好的方案。