當前位置:
首頁 > 知識 > 從聚合-轉移框架淺談卷積神經網路的架構設計

從聚合-轉移框架淺談卷積神經網路的架構設計

本次Paper Reading我們並沒有關注某些特定的paper,而是用一個視角對現有的代表性的卷積神經網路設計進行總結。


聚合-轉移框架

卷積神經網路通常都是由許多不同的層級結構組成的。上圖的籃框部分是被定義的L層網路單元,它總體包含聚合(Aggregation)和轉移(Transformer)兩個部分。具體來說,聚合可用圖示的函數表示,聚合函數A代表通過選擇L以前層的X的一個子集作為輸入,得到聚合特徵S;轉移的部分比較簡單,將聚合特徵S通過轉移函數T得到L層的X。

這便是聚合-轉移框架的視角,從這個視角出發,可對現有的卷積神經網路的架構進行解讀。

為了更加形象的理解,我們舉一個具體的且耳熟能詳的例子——DenseNet。DenseNet是CVPR 2017的最佳論文。從聚合-轉移框架的視角(以上兩個表達式)來看,subset子集收斂到所有的L層之前的X上;聚合函數A具體化為channel維度的拼接(concatenation),拼接可用兩條豎線的符號標記;這是聚合部分的情況。

對於轉移部分,一般在DenseNet中,轉移函數T通常具象化為順序2次的BN+ReLU+Conv。


聚合的子集

接下來,從子集的構成和聚合函數A入手,分別討論他們目前已有的主流的形式。

對於聚合函數A而言,第一種情況是子集(subset)只是選取L-1層的X。這個模式普遍出現於早期的feed-forward的神經網路中,主要代表有LeNet、AlexNet、VGG、GoogLeNet、InceptionV2 V3、MobileNetV1。

第二種情況是子集(subset)選擇L層之前所有層的X,這是較為常見的。主要代表作有ResNet系列、DenseNet系列以及基於ResNet或者DenseNet提出改進的一些網路結構。

DenseNet是選擇之前所有層進行密集的鏈接,但是ResNet是怎麼回事?難道ResNet不是skip connection嗎?下面將為大家推導解答ResNet和DenseNet在拓撲結構上的等價性。

首先分析圖中(a)的拓撲結構,這個拓撲結構基本上是DenseNet的結構,符號和聚合-轉移框架是保持一致的,於是可以寫出它數學上的表達式,具體化為channel維度的拼接,進行一步的轉移後得到DenseNet標準的表達式,也是其論文中的原始定義。

再看圖中(b)ResNet的結構,是一個標準的skipconnection結構。根據ResNet的定義可寫出表達式(1),從表達式中也體現了skip connection;同時表達式(2)即是中間featureX的表達。在得到表達式(1)和表達式(2)後,可將表達式(1)不斷地循環地帶入表達式(2)中,最後可以得到一個非常有意思的表達式。

最後,將(a)和(b)兩個網路的表達式平行地寫在一起,發現兩者唯一的區別就在於聚合函數A,(a)DenseNet結構表現為channel維度的拼接,(b)ResNet結構表現為逐元素的相加。二者遵循的都是一個相同的Dense的拓撲連接結構。這部分的具體細節可以查看Mixed LinkNetwork的論文。

提到這裡,不得不回顧一個小往事。眾所周知,ResNet前後其實提了兩個版本。第一個版本是圖(a),也是CVPR的最佳論文《Deep Residual Learning for ImageRecognition》,第二個版本是圖(b),是第一篇論文發表後的第二年發表的論文,名為《Identity Mappings in Deep Residual Networks》。這兩個版本的最大區別就是skip connection之後是否接relu。第一個版本接了relu,如果按照第一個版本,我們之前的推導是無法完成的。從實驗上來講,第一個版本的確也是存在一些問題的,圖中是當時的實驗結果,第一個版本的ResNet隨著網路層數從一百層上升到一千多層,性能反而在下降。等到第二個版本,就完全符合了Dense的拓撲結構,隨著網路變得很深,性能也能夠穩定下降。這也充分地告訴我們,Dense的拓撲結構的確是具有一些非常優秀的性質,使得RenseNet和DenseNet在現有網路基礎上都有著重要的影響力。

以上是在解釋為什麼ResNet其實是選擇了之前所有層的X進行了聚合。

近期Google的一些network architecture search的工作(NASNet和ENASNet)採用了通過RNN去sample出2個L層之前的X進行聚合。他們的核心思想就是把Reinforcement Learning的思想引入到自動的架構設計中。具體來說,他們會使用一個RNN去sample出一些基礎的連接結構,形成基元模塊,使得網路性能更好。

RNN的輸出基本分為兩大類,一個是layer id,也就是選擇之前的哪一層;另一個類是基礎運算操作。圖中紅色框部分就是每次sample出的兩個層的X。具體細節可以參考論文原文。

聚合函數A

接下來介紹聚合函數A的幾個代表形式。首先是恆等變換,也就是Identity函數,在通常的feed-forward網路中,聚合的特徵是使用了上一層的feature X,在聚合過程中不會對feature進行任何操作,僅是轉移至下一層。

第二是逐元素(Element-wise)的相加,這類操作普遍出現在有skip connection的網路系列中,例如PreResNet、ResNeXt、MobileNetV2、SENet-ResNeXt。聚合的方式是在拿到子集(subset)的feature後,保證其維度一致,將每個位置的元素累加,隨後進入轉移環節。

第三是通道(channel)上的拼接,代表作是DenseNet。這類形式是將所有feature在通道維度上進行一個擴增。通常,DenseNet的feature X的維度都比較小,保持量級不會過大,控制最終的feature維度在一定範圍內。

最後再介紹下混合了addition和concatenation的兩種操作,混合的意思是在聚合的過程中既包括按位置的逐元素的相加,也包括channel維度的拼接,其主要代表作是DPN、MixNex和ShuffleNet。DPN可被視為擁有兩條通路的網路,左邊的通路為ResNet,右邊的通路為DenseNet,進行feature上的拼接後,在轉移過程中包含了逐元素的相加和channel維度的拼接。MixNet也是相似的原理,但去掉了嚴格意義上的ResNet的通路,把逐元素相加平均分攤到不斷擴增的所有feature上。ShuffleNet則是在降採樣的時候和非降採樣的時候使用不同的兩種操作,從而最終將其混合起來。


轉移

轉移如果更加細緻的劃分可能可以有很多種分類方式,但由於篇幅限制本次只從兩個方向簡單地介紹轉移的部分,分別是單路的轉移和多路的轉移(Single Path和MultiplePath)。通過順序的卷積、組卷積等基元操作完成特徵轉移的網路都可被歸納為單路的轉移(SinglePath)。在擁有聚合的feature之後,可以通過feed-forward(單向流)的方式,將基礎的操作如concatenation、BN、pooling、激活函數等進行單向的組合,經過這一單路的組合,可以得到轉移後的feature。單路的網路包括LeNet、AlexNet、VGG、PreResNet、ResNeXT、DenseNet、DPN、MixNet、ShuffleNet、MobileNetV1 V2等目前主流的網路,目前小型設備上使用的網路ShuffleNet、MobileNetV1 V2都是單路轉移的設計,不涉及多路的轉移。

除了通過順序的卷積、組卷積等基元操作完成特徵轉移的網路之外,其他的網路可被歸納為多路的轉移(MultiplePath)。首要的代表作是GoogLeNet的Inception系列,Inception系列最早就是沿著多路的思路設計的,同一個feature會經過不同的深度、感受野的組織路徑,進而設計出從V1到V4的系列版本。在迭代過程中,內部結構的變化越來越多,比如說把大的卷積替換成小的卷積的組合,然後卷積再進行分解,3乘3的分解成3乘1和1乘3等等。這一系列中唯一不變的便是其多路轉移的設計思路。

值得一提的是,Momenta在ImageNet 2017的奪冠架構SENet便可以看作在特徵轉移的步驟中增加了一個multiple path,一路是identity,另一路是channel上的globalattention。其實,轉移部分還可以從更多更深入的角度在做分類和整理,我們今天僅從單路和多路的角度做了一些梳理,希望能給大家帶來啟發。

上圖是本次分享的回顧,梳理了目前主流的架構。從子集選取的角度出發,可分為三種設計;從聚合函數的角度出發,可分為四種設計;從轉移函數的角度出發,可簡單分為兩種設計。

希望這個表格能在子集選擇、設計聚合函數和轉移函數時給予大家啟發。例如,現在藉助網路架構搜索是一個很好的方向,比如NASNet和ENASNet,但其本身具有一定的局限性。首先搜索空間是被定義好的。當基礎單元的研究沒有到位時,搜索空間可能不會被定義得非常好,甚至有些很多結構在搜索空間里搜不到的,比如說Google的Inception結構,比如說DPN和MixNet這類混合的結構。它們在性能上的提升甚至可能往往並不如人工設計的結構。所以,接下來的網路設計應該是基礎單元結合架構搜索同時前進,相互補充相互啟發,從而達到共同的提高。

4 月 AI 求職季

8 大明星企業

10 場分享盛宴

20 小時獨門秘籍

4.10-4.19,我們準時相約!

新人福利

關注 AI 研習社(okweiwu),回復1領取

【超過 1000G 神經網路 / AI / 大數據資料】

AI 求職季本周回顧:Momenta/圖森/曠視/碼隆邀你搭乘 offer 直通車


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

人工智慧的系統工程與系統工程中的人工智慧應用
用 CNN分100,000 類圖像

TAG:AI研習社 |