王井東:深度融合——一種神經網路結構設計模式
AIDL簡介
「人工智慧前沿講習班」(AIDL)由中國人工智慧學會主辦,旨在短時間內集中學習某一領域的基礎理論、最新進展和落地方向,並促進產、學、研相關從業人員的相互交流,對於碩士、博士、青年教師、企事業單位相關從業者、預期轉行AI領域的愛好者均具有重要的意義。2018年AIDL活動正在籌備,敬請關注獲取最新消息。
導讀
在由中國人工智慧學會舉辦的第一期AIDL《人工智慧前沿講習班》上,微軟亞洲研究院王井東研究員進行了題為「深度融合:一種神經網路結構設計模式」的演講。王老師首先回顧了近十年來深度網路結構的發展脈絡,總結了不同網路結構的特點。接著介紹了由他提出的Deeply-fused Net,分析了融合對於網路的作用,反思了網路深度的意義,並提出了一種Merge and Run的結構。最後王老師總結了深度網路結構設計的四條經驗,並分享了自己對深度網路結構發展趨勢的觀點。
關注本公眾號,回復「王井東」,獲取完整版PPT
分享PPT僅供學習交流,請勿外傳
講師簡介
王井東,微軟亞洲研究院視覺計算組高級研究員,中國科學與技術大學博士生導師。研究方向為機器學習、模式識別、計算機視覺,尤其是深度網路結構設計,行人再識別。擔任IEEE TMM/IEEE TCSVT等國際期刊的副主編,CVPR/ICCV/ECCV/ACM/MM/IJCAI/AAAI等國際會議的領域主席。
全文目錄
一、深度網路結構的發展脈絡
1.1 從AlexNet到VGGNet
1.2 Dropout和DisturbLabel
1.3 從GoogleNet到ResNet
二、Deeply-fused Net
2.1 Deeply-fused Net的特點
2.2 Deeply-fused Net和Ensembling
三、網路深度的作用
四、Merge and Run
五、總結與展望
一、深度網路結構的發展脈絡
深度學習,是最近十年來才發展起來的。2006年Hinton發表在Science的文章【1】首次提出了深度學習的概念,但當時沒有很多人認可深度學習。深度學習真正引起關注是在2012年的ILSVRC圖像分類比賽——深度學習方法的性能超過了所有傳統方法。從此,深度學習在圖像分類以外的很多領域得到了應用和發展。
1.1從AlexNet到VGGNet
王老師首先回顧了近年來深度網路結構的發展。發展脈絡如下圖所示。
2012年的AlexNet【2】使深度學習引起了廣泛關注。該網路只有8層,結構設計上沒有特別之處。但該網路參數量很大,所以網路的訓練引起了關注。王老師認為,這主要得益於GPU的發展。
2013年的ZFNet【3】,網路結構方面沒有很大的突破。
2014年的VGGNet【4】結構上也沒有很大改進。但是,VGGNet可以訓練到19層,深度得到很大加深,且結果取得了突破式進步。這啟示大家去加深網路深度。
在從AlexNet到VGGNet這一發展階段里,網路結構都是線性的,區別僅僅是深度的加深。除了深度,期間也提出了Dropout【5】方法。
1.2 Dropout和DisturbLabel
由於Dropout對深度網路的訓練有重要意義,王老師對Dropout和相關的方法進行了重點闡述。當訓練參數量較大的網路時,可能會出現Overfitting,而Dropout可以緩解Overfitting問題。Dropout是指在每次迭代時,用隨機的方法在原網路的基礎選擇一個子網路進行訓練,得到每個子網路的參數,並將這些參數代入原網路結構中用於預測。其本質是使用同樣的樣本訓練多個小網路,集成這些小網路來進行預測,從這個角度看,Dropout與Ensembling是相似的。
對於Overfitting,王老師介紹了他自己的工作——DisturbLabel【6】。DisturbLabel是指在每次迭代時不改變網路的結構,而是改變樣本(包含數據和標籤)——樣本的標籤以一定的概率出錯,而數據保持不變。DisturbLabel的本質是將結構相同且使用不同樣本訓練得到的網路集成用於預測。DisturbLabel和Dropout的區別在於——在每次迭代時,Dropout不改變樣本,而隨機改變網路結構。DisturbLabel是網路結構保持不變,而隨機改變樣本的標籤。
DisturbLabel以一定的概率使標籤出錯。對於概率如何影響網路性能,王老師設計了如下實驗,結果如下圖所示。
在MNIST數據集下,標籤以α的概率出錯。當α=0%時出現了Overfitting。當α=10%時結果最好。這表明DisturbLabel可以緩解Overfitting。CIFAR10數據集下結論是一致的。由此可知,DisturbLabel和Dropout都可以緩解Overfitting。
接下來,王老師進一步分析了DisturbLabel和Dropout的作用是互補的。如下圖所示。
當單獨使用Dropout或DisturbLabel時,錯誤率都有所改善。當同時使用Dropout和DisturbLabel方法時,性能可以得到進一步提高,這說明兩者的效果可以互補。
1.3 從GoogleNet到ResNet
之前提到,在AlexNet到VGGNet的發展階段,網路結構都是線性的。2014年,Google提出了GoogleNet【7】。GoogleNet不再是簡單的線性結構,它提出了Multi-branch的概念,即網路包含多條分支(Branch),並且每個Branch的深度不同。
2015年的Highway【8】,雖然沒有參加ILSVRC比賽,但它提出了Identity Connection的方法。Identity Connection緩解了深度過大帶來的訓練困難,可以使更深的網路得到訓練。
2015年的ResNet【9】借鑒了Highway的Identity Connection,可以將網路訓練得很深。同時,ResNet的特殊貢獻在於它帶來的重要啟示——網路越深性能越好。王老師提出了不同的觀點。
王老師從Deeply-fused Net【10】出發,闡述網路太深會導致不好的結果,最後提出Merge-and-Run【11】的方式增加寬度。
二、Deeply-fused Net
2016年,王老師提出了Deeply-fused Net(DFN)。DFN是基於GoogleNet的Multi-branch方法,同時借鑒了Highway和ResNet的機制。融合(Fusion)的概念是眾所周知的,而Deeply-fused是指在深度網路的中間層也進行Fusion。
2.1 Deeply-fused Net的特點
DFN的網路結構十分簡單,如下圖所示。
圖中是DFN的兩種不同表示法,從右邊的表示法中更容易看出,DFN可以看做由兩個深度不同的基本網路(Base Network)組成,且兩個Base Network在中間某些層進行Fusion,如上圖右所示。兩個融合層之間的網路稱為塊(Block),每個Block包含來自兩個Base Network的兩個部分。可以發現,如果將每個block內的兩個部分互換位置,整體的DFN實質上不變。但互換後的DFN可以看做由兩個不同於原Base Network的新Base Network組成。進一步,這種互換方式是多樣的。於是,同一DFN可以看做由多對新Base Network融合而成。如下圖所示。
上圖左的兩個Base Network進行三次融合,可以得到上圖右所示的四種形態不同的DFN,這四種DFN包含不同的Base Network,但實質上是同一DFN。這表明DFN具有Multi-path和Multi-scale的性質,且網路的深度相對更小。
DFN的Multi-path有利於提高網路性能。網路的訓練需要良好的信息流(Information Flow),如果網路的中間某層離Input/Output很近,則該層具有Information Flow的高速通道(Express Way)。眾所周知,當某層離Output很遠,則會出現梯度消失問題。縮短離Output的距離可以緩解梯度消失問題。如果某層離Input更近,則它能獲得更多Input的變化信息,因此訓練會更容易。DFN的Multi-path可以帶來Express Way的性質。如下圖所示。
上圖中R03在原Base Network中距離Input兩層,距離Output三層。但在DFN中,由於Multi-path的作用,R03距離Input變成了一層,距離Output變成了兩層。因此具有了Express Way的性質。
2.2 Deeply-fused Net和Ensembling
Ensembling可以提高網路性能,前面提到Dropout和DisturbLabel都可以理解為Ensembling。DFN同樣也可以從Ensembling角度來理解。首先在網路結構角度,如下圖所示。
上圖左的DFN網路與上圖右的四組DFN是等價的。如果把上圖右的四組網路的對應融合層合併到一起,形成下圖中中間部分的網路結構,這兩者是等價的。因此,就得到了由八個Base Network組成的網路。這八個Base Network如下圖右邊部分所示。
通過以上過程,可以發現DFN和Ensembling是類似的。為了探求結構相似的作用,王老師設計實驗,採用了三種網路結構,如下圖所示。
左邊是Plain網路,中間是DFN,右邊是Ensembling。王老師在不同網路深度上對比了以上三種結構的性能。結果如下圖所示。
可以發現,Plain網路的性能隨著網路加深而迅速下降。DFN和Ensembling的性能很接近。但DFN相對來說較差,王老師認為這是因為Ensembling中每個Base Network的相關度(Correlation)較小。
在分析了DFN和Ensembling關係的基礎上,王老師進一步分析了在Ensemble過程中會影響DFN性能的因素。首先是Ensemble Size。從實驗中發現:Ensemble Size越大則網路性能越好。並且,當網路越來越深Ensemble Size對性能提高的作用越來越明顯。結果如下圖所示。
因為Fusion越多則Ensemble Size越大,而從圖中可以看出Fusion越大DFN的性能越好,因此Ensemble Size越大DFN的性能越好。
另外,DFN中Base Network的性能好壞也會影響DFN的整體性能。如下圖所示。
上圖上半部分表示網路的錯誤率,上圖下半部分的四個數字代表DFN中Base Network的層數。比如,左邊第一列的四個數字,14表示該DFN中最深的Base Network是14層,5表示最淺的Base Network是5層,而8和11代表另外兩種深度。紅色/黃色分別示意該深度的Base Network的性能較好/差。通過對比圖中數據,可以發現在DFN中如果某Base Network的深度太深,則該Base Network的性能會降低(綠色示意),進而導致整個DFN的性能降低。這表明較深的Base Network的性能會影響整個DFN的性能。
三、網路深度的作用
前面提到,DFN中較深的Base Network性能較差,而ResNet得到的啟示是網路越深性能越好。對於深度如何影響網路性能,王老師提出了自己的觀點。
王老師首先分析了DFN中的Weight Sharing的作用。如下圖所示。
Weight Sharing即DFN中不同Base Network的對應層(如L01)共享權值。王老師設計了多種深度的DFN對比試驗,發現Weight Sharing會使DFN中較淺的Base Network的性能變差,而讓較深的Base Network的性能變好。王老師分析,這是因為Weight Sharing會使DFN中較深的Base Network變得更容易訓練,從而達到更好的性能。
雖然Weight Sharing有利於DFN中較深的Base Network緩解訓練的困難,但對於最深的Base Network如何影響DFN的性能還沒有定論,可以確定的是它決定了整個DFN的深度。為研究最深的Base Network的其他作用,王老師設置了三種不同的網路結構,如下圖所示。
左邊的DFN包含最深的Base Network,中間的不包含最深的Base Network,右邊的訓練時包含最深的Base Network,而測試時不使用最深的Base Network。實驗結果如下圖所示。
從上圖中可以看出,如果訓練時包含最深的Base Network,則會影響整個網路的性能。王老師分析其原因是最深的Base Network會對網路的訓練造成不良影響。
除了分析DFN中最深的Base Network的影響,王老師也分析了DFN中其他Base Network。首先在DFN中依次切除各個Base Network,然後對DFN的性能進行分析,從而得到對DFN性能影響最大的Base Network。該實驗的結果表明,對整個DFN性能影響最大的不是最深的Base Network。
總而言之,通過以上的實驗發現:加深深度可以使Ensemble Size得到擴大,從而提高網路性能。但由於網路加深,最深的Base Network得不到良好的訓練,導致DFN中的其他Base Network的性能降低,從而影響整個網路的性能。這表明,想要提高網路的性能一味地加深深度是不正確的。
四、Merge and Run
通過以上的實驗,王老師總結得到了兩條網路設計的經驗:第一,選用更大的Ensemble Size;第二,避免設計過深的網路。依據這兩條經驗,王老師設計了Merge and Run網路結構,並且用它和Inception-like結構以及ResNet結構進行了對比。如下圖所示是三種網路結構。
從上圖中可以看出,Inception-like結構具有三條Path,ResNet結構具有四條Path。而Merge and Run結構具有六條Path,且其深度小於ResNet。王老師利用不同層數的三種網路結構在四個數據集上分別進行了實驗。實驗發現,在每個數據集上,無論網路層數為多少,Merge and Run結構的結果都是最優的。同時,相對於其他結構改變較大的State-of-art網路,如FractalNet【12】和DenseNet【13】,Merge and Run結構的結構改變相對較小。
五、總結與展望
深度融合對深度網路結構的設計主要帶來了四個啟示。第一是Multi-path,即多個Path能提高網路的性能。第二是Long and Short,即多個Path中深淺要多樣化。因為深的網路較難訓練,淺的網路有助於深的網路更好地訓練。第三是Express Way,即引入Express Way使網路各層之間的Information Flow更快。第四是Weight Sharing,Weight Sharing有利於淺網路幫助深網路更好地訓練。
最後王老師提到,自ResNet以來,許多研究人員在強調深度的重要性。這實際上是一個誤導,無論是在研究角度還是在應用角度,網路太深的意義有限,而使網路Wider或者Fatter(如下圖所示)是下一步可以嘗試的研究方向。
參考文獻
【1】http://www.cs.toronto.edu/~hinton/csc321/readings/science.pdf
【2】http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
【3】https://arxiv.org/abs/1311.2901
【4】https://arxiv.org/abs/1409.1556
【5】http://www.cs.toronto.edu/~hinton/csc321/readings/science.pdf
【6】https://arxiv.org/abs/1605.00055
【7】https://arxiv.org/abs/1409.4842
【8】https://arxiv.org/abs/1507.06228
【9】https://arxiv.org/abs/1409.4842
【10】https://arxiv.org/pdf/1605.07716.pdf
【11】https://arxiv.org/pdf/1611.07718.pdf
【12】https://arxiv.org/abs/1605.07648v1
【13】https://arxiv.org/abs/1608.06993
TAG:人工智慧前沿講習班 |