人工智能近幾年實現了爆炸式發展,深度學習可以說是其主要的推動力。
在計算機視覺領域,大部分的問題都已經開始使用深度神經網絡進行解決,也確實取得了廣泛的成功。在很多視覺任務中,如圖像識別、語義分割、目標檢測與跟蹤、圖像檢索等,作為提取特征的CNN網絡模型往往起到了關鍵的作用。我們經常見到最新的方法將基礎網絡換一下,性能就會得到很大的提升。因此,研究并設計一個更好的網絡模型變得至關重要。
基礎網絡模型的結構樣例
最新研究進展
經典的神經網絡模型主要在“寬度”與“深度”方面進行不同程度的擴增。借助于大規模數據的訓練,AlexNet、VGG-16、VGG-19等經典網絡通過寬度或深度增加的參數可以有效地提升其模型的表達能力。但當網絡變得越來越深,其訓練難度也隨之相應增加,反而會導致性能的下降。最近的ResNet和Highway Networks等方法通過引入Skip跳躍結構來試圖解決極深網絡在優化上帶來的問題。
ResNet和Highway Networks結構的簡單示意圖
最新的一些研究嘗試從其他角度來解釋Highway、ResNet和GoogLeNet等網絡結構表現優異的原因。其中我在微軟實習的導師王井東研究員、實習生魏禎和張婷以及曾文君研究員提出Deep Fusion (Jingdong Wang, Zhen Wei, Ting Zhang, Wenjun Zeng: Deeply-Fused Nets. CoRR abs/1605.07716 (2016))深度融合的概念,認為不同分支的網絡在中間層進行融合(加和或拼接等方式)能夠(1)產生很多潛在的共享參數的基礎網絡,(2)同時優化信息的流動,(3)從而幫助深層網絡的訓練過程。
Deep Fusion深度融合最簡單形式的概念示意圖
我們可以發現很多有代表性的網絡結構基本都可以按照深度融合的概念進行理解。除去LeNet、AlexNet、VGGNet等單分支網絡,近兩年提出的ResNet、Highway Networks、GoogLeNet系列等網絡均可以看作是不同程度上的深度融合網絡。在這個概念下,我們發現今年新的Inception-v4、FractalNet、DenseNet、ResNeXt以及我們新提出的Merge-and-Run等網絡結構在融合方式上進行了更多的設計和探索,使得中間的融合次數和分支數目更多,從而得到更多的基礎網絡和更優的信息流動,最終取得更好的性能表現。
近期一些深度神經網絡模型的基本結構示意圖
康奈爾大學的Serge Belongie團隊也有類似的觀察與發現,他們解釋ResNet其實是眾多相對較淺的潛在網絡的一個集成。在模型的測試階段發現將網絡中的一些模塊去掉,剩下的網絡模型依然具有不錯的表現。
將ResNet中的某些模塊移除的實驗示意圖
最近提出的一些新的深度神經網絡方法也從側面印證了這方面的研究,如ResNet with Stochastic Depth、FractalNet和Swapout等使用Drop-path的方法與上述移除Residual模塊的研究有著異曲同工之妙。ResNet of ResNet、ResNeXt、Multi-Residual Networks和DenseNet等增加分支或路徑數目的方法均得到了性能上的提升,從某種程度上驗證了增加基礎網絡數目對整體網絡模型的影響。
我們的工作
我們沿著deep fusion的思路更進一步地研究了類似ResNet、Highway、Inception等結構的深度融合網絡,探索了“深度”在神經網絡當中究竟帶來了什么。基于研究觀察與分析,我們又提出了一個新的網絡模型,在不同數據集上均取得了不錯的表現。
一、深度融合網絡剖析
首先我們從網絡結構和實驗分析上展示這種多分支融合的網絡跟多個潛在網絡集成的關系。
多分支融合的網絡與集成網絡的結構類似
通過上圖可以發現多分支融合的網絡形式可以近似很多潛在網絡的集成過程,區別是沒有中間的信息交互,只是他們共享對應層的網絡參數。通過10組不同深度的網絡結構實驗發現,這樣一個共享參數的集成網絡與帶信息交互的深度融合網絡性能表現很相似。
深度融合網絡與集成網絡的表現類似
二、深度帶來更多組成網絡
下一步就可以利用集成學習中的一些思路來指導我們對該類型的深度融合網絡進行剖析。首先是研究其潛在的基礎網絡數目,很明顯上面圖中融合3次的網絡能夠組合8個基礎網絡,即2^3個。那么我們可以發現增加融合次數可以提升基礎網絡的組合數目。那么像ResNet、Highway、Inception等形式的網絡,增加“深度”帶來的一個影響就是增加了其潛在基礎網絡的組合數目(Ensemble Size)。
不同融合次數會得到不同數目的組合網絡(路徑)
我們也通過實驗在不同深度的網絡結構上驗證了:增加組合數目能像傳統Ensemble理論中增加Ensemble Size一樣提升整體性能。
較多的組合網絡數目能夠取得更好的結果
我們也通過實驗在不同深度的網絡結構上驗證了增加組合網絡數目能夠提升整體性能,這也與傳統Ensemble理論中增加Ensemble Size能提升性能的結論相吻合。我們可以看到ResNet在增加深度的同時,極大地增加了組合數目,這也是其性能優異的原因之一。
三、深度影響整體性能
我們繼續研究每一個基礎組合網絡,并且探索在深度融合的過程中其相互之間會產生怎樣的影響。對比每個網絡單獨分開訓練得到的模型,我們發現,深度融合網絡里較深的組合網絡性能得到了提升,但較淺的組合網絡性能反而下降了。我們猜想在訓練過程中,由于淺層的網絡容易收斂,它們能夠幫助深層的網絡進行優化。但深度融合網絡的各個潛在的組成網絡是共享參數的,極深的網絡可能會影響較淺網絡的求解空間與難度,從而產生相互影響性能往中間靠攏的現象。
每一個單獨的組成網絡行為分析
既然我們認為最終的表現是一種集成的近似,那么我們是否可以著手尋找更優的組合網絡以達到整體性能的提升?通過上述組合網絡之間相互影響的啟發,我們認為極深的網絡會產生“拖后腿”的效果,反而較深但又不是特別深的“中間”網絡會對結果影響比較大。上圖的實驗結果也驗證了我們的這個想法:(a)顯示了每個組成網絡由于共享參數導致的性能變化;(b)顯示了每個組成網絡對整體網絡(ensemble)的相對貢獻程度。
我們依然需要淺層網絡來幫助訓練較深網絡,而且實際設計神經網絡的時候很難做到只保留中間深度的網絡結構。那么一個折中的方案是把這里面最深的組成網絡去掉,這樣看看對結果會產生什么影響。
去除最深的組成網絡(重新訓練或只是測試時候去除)
上圖三個方法的實驗結果表明,去除極深的組成網絡不會對整體性能產生太大影響,有時候反而會提高最終結果。
去除極深的組成網絡不會影響太大,大部分情況下反而會提升性能
四,提出新的方法
基于上述觀察,我們認為一個好的網絡結構應該包含如下兩個特性:足夠多的潛在網絡數目,以及足夠好的組成網絡。最簡單的策略是去掉“拖后腿”的極深網絡,將其變成“中間”深的組成網絡。下面是我們提出的方法:
基于ResNet的形式,我們提出新的網絡結構(b)和(c)
基于ResNet的形式,我們提出的Inception-Like結構與Merge-and-Run結構都去除了極深的那一條線路,但是Inception-Like的組合數目比相同參數下的ResNet要少,因此我們認為Merge-and-Run形式比較符合我們的分析與觀察。最終的實驗結果也確實驗證了這一想法,而且跟上面的實驗觀察相吻合:Inception-Like沒有極深網絡的影響,更加容易訓練或收斂,比ResNet會稍好一點,與上述的Ensemble-7與Ensemble-8的實驗結果相似。Merge-and-Run結構比Inception-Like的潛在網絡數目多,最終結果也是比Inception-Like的表現要好。
ResNet, Inception-Like和Merge-and-Run在不同數據集上的對比
在ImageNet結果上也驗證了我們前面的論述 (我們的方法用DFN-MR表示):
我們提出的DFN-MR與ResNet在ImageNet數據集上的對比
五、總結
目前一個研究熱點是在深度神經網絡中引入一個新的維度:潛在的組成網絡數目(Ensemble Size)。可以發現像ResNet、Highway、Inception等網絡增加“深度”的同時,實際增加了這個網絡數目。此外,我們的工作發現極深網絡除了能增加潛在網絡數目外,對整體性能的貢獻并不是最大的。反而會影響其它的組成網絡,導致最終的結果受到影響。我們按照“不減少組成網絡數目”和“避免極深組成網絡”這兩個原則,設計出新的網絡結構,發現在不同數據集上總是表現優異。后續工作可以圍繞當前分析的內容,最優化提出的設計指標與原則,得到更容易訓練性能更好的網絡模型。
評論
查看更多