從聚合轉移的統一視角淺談卷積神經網路架構設計 | Paper Reading 第二季第三期
#看Paper Reading直播,拿Momenta 頂級offer#Momenta全球招聘頂尖人才,同時開放校招及實習崗位,春季招聘期間,Momenta將舉辦多期線上Paper Reading分享會,請來頂級大牛,深挖某一問題的來龍去脈,帶你走進Momenta的學術世界。————線下宣講會在全國範圍相繼開啟,下一站將抵達上海:#同濟大學專場宣講會# 4月18日(周三)下午18:00-20:00 同濟大學嘉定校區 濟人樓405熱招崗位:深度學習研發工程師、SLAM/VIO/SFM研發工程師、決策規劃演算法研發工程師、軟體開發工程師、機器人系統開發工程師...人工智慧大咖面對面交流,學術乾貨和精美禮品現場放送!
視頻回放鏈接:從聚合轉移框架視角淺談卷積神經網路拓撲結構設計_騰訊視頻
PPT下載鏈接:https://pan.baidu.com/s/138YIiZjxBjVGlIQsVCd_2w 密碼: nc75
深度學習中卷積神經網路的拓撲結構設計有著極其重要的地位。一個高效的結構可以把速度和性能的平衡拉到一個更高的平衡點上,這在所有應用卷積網路的深度學習系統中都是非常關鍵的。
新架構的設計必須對已有的優秀的結構有一些較為深刻的認識並且在實踐中積累大量的經驗,4月10日晚,Momenta 高級視覺演算法研究員李翔做客AI 慕課學院,用聚合-轉移框架的視角對現有的代表性的卷積神經網路設計進行了總結。
主講人
李翔
Momenta 高級視覺演算法研究員
南京理工大學 PCALab 博士在讀
李翔曾獲阿里巴巴天池首屆大數據競賽冠軍,滴滴 Di-Tech 首屆大數據競賽冠軍。知乎專欄 DeepInsight 作者。早期負責 Momenta 車道線檢測相關模塊,現專註於神經網路基礎演算法研發。
聚合-轉移框架
卷積神經網路通常都是由許多不同的層級結構組成的。上圖的籃框部分是被定義的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的結構,是一個標準的skip connection結構。根據ResNet的定義可寫出表達式(1),從表達式中也體現了skip connection;同時表達式(2)即是中間feature X的表達。在得到表達式(1)和表達式(2)後,可將表達式(1)不斷地循環地帶入表達式(2)中,最後可以得到一個非常有意思的表達式。
最後,將(a)和(b)兩個網路的表達式平行地寫在一起,發現兩者唯一的區別就在於聚合函數A,(a)DenseNet結構表現為channel維度的拼接,(b)ResNet結構表現為逐元素的相加。二者遵循的都是一個相同的Dense的拓撲連接結構。這部分的具體細節可以查看Mixed Link Network的論文。
提到這裡,不得不回顧一個小往事。眾所周知,ResNet前後其實提了兩個版本。第一個版本是圖(a),也是CVPR的最佳論文《Deep Residual Learning for Image Recognition》,第二個版本是圖(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和Multiple Path)。通過順序的卷積、組卷積等基元操作完成特徵轉移的網路都可被歸納為單路的轉移(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上的global attention。其實,轉移部分還可以從更多更深入的角度在做分類和整理,我們今天僅從單路和多路的角度做了一些梳理,希望能給大家帶來啟發。
上圖是本次分享的回顧,梳理了目前主流的架構。從子集選取的角度出發,可分為三種設計;從聚合函數的角度出發,可分為四種設計;從轉移函數的角度出發,可簡單分為兩種設計。
希望這個表格能在子集選擇、設計聚合函數和轉移函數時給予大家啟發。例如,現在藉助網路架構搜索是一個很好的方向,比如NASNet和ENASNet,但其本身具有一定的局限性。首先搜索空間是被定義好的。當基礎單元的研究沒有到位時,搜索空間可能不會被定義得非常好,甚至有些很多結構在搜索空間里搜不到的,比如說Google的Inception結構,比如說DPN和MixNet這類混合的結構。它們在性能上的提升甚至可能往往並不如人工設計的結構。所以,接下來的網路設計應該是基礎單元結合架構搜索同時前進,相互補充相互啟發,從而達到共同的提高。
------------------------------------------------
知乎機構號:Momenta,打造自動駕駛大腦。
基於深度學習的環境感知、高精度地圖、駕駛決策技術,讓無人駕駛成為可能。
Momenta知乎專欄:Paper Reading,集聚自動駕駛知名大咖的前沿知識分享平台,歡迎申請加入或直接投稿。
Paper Reading推薦閱讀:
TAG:人工智慧 | 深度學習DeepLearning | 機器學習 |