2020-10-15【AI不惑境】網路深度對深度學習模型效能有什麼影響?
【AI不惑境】網路深度對深度學習模型效能有什麼影響?
本文轉自:https://zhuanlan.zhihu.com/p/63560913
原創言有三有三AI2019-04-24
收錄於話題
#有三AI修行之路
40個
大家好,這是專欄《AI不惑境》的第二篇文章,講述模型深度與模型效能的關係。
進入到不惑境界,就是向高手邁進的開始了,在這個境界需要自己獨立思考。如果說學習是一個從模仿,到追隨,到創造的過程,那麼到這個階段,應該躍過了模仿和追隨的階段,進入了創造的階段。從這個境界開始,講述的問題可能不再有答案,更多的是激發大家一起來思考。
作者&編輯 | 全能言有三
深度學習模型之所以在各種任務中取得了成功,足夠的網路深度起到了很關鍵的作用,那麼是不是模型越深,效能就越好呢?
1 為什麼加深可以提升效能
Bengio和LeCun在2017年的文章[1]中有這麼一句話,"We claim that most functions that can be represented compactly by deep architectures cannot be represented by a compact shallow architecture",大體意思就是大多數函式如果用一個深層結構剛剛好解決問題,那麼就不可能用一個更淺的同樣緊湊的結構來解決。
要解決比較複雜的問題,要麼增加深度,要麼增加寬度,而增加寬度的代價往往遠高於深度。
Ronen Eldan等人甚至設計了一個能被小的3層網路表示,而不能被任意的2層網路表示的函式。總之,一定的深度是必要的。
那麼隨著模型的加深,到底有哪些好處呢?
1.1、更好擬合特徵。
現在的深度學習網路結構的基本模組是卷積,池化,啟用,這是一個標準的非線性變換模組。更深的模型,意味著更好的非線性表達能力,可以學習更加複雜的變換,從而可以擬合更加複雜的特徵輸入。
看下面的一個對比圖[2],實線是一個只有一層,20個神經元的模型,虛線是一個2層,每一層10個神經元的模型。從圖中可以看出,2層的網路有更好的擬合能力,這個特性也適用於更深的網路。
1.2、網路更深,每一層要做的事情也更加簡單了。
每一個網路層各司其職,我們從zfnet反捲積看一個經典的網路各個網路層學習到的權重。
第一層學習到了邊緣,第二層學習到了簡單的形狀,第三層開始學習到了目標的形狀,更深的網路層能學習到更加複雜的表達。如果只有一層,那就意味著要學習的變換非常的複雜,這很難做到。
上面就是網路加深帶來的兩個主要好處,更強大的表達能力和逐層的特徵學習。
2 如何定量評估深度與模型效能
理論上一個2層的網路可以擬合任何有界的連續函式,但是需要的寬度很大,這在實際使用中不現實,因此我們才會使用深層網路。
我們知道一個模型越深越好,但是怎麼用一個指標直接定量衡量模型的能力和深度之間的關係,就有了直接法和間接法兩種方案。
直接法便是定義指標理論分析網路的能力,間接法便是通過在任務中的一系列指標比如準確率等來進行比較。
2.1、直接法
早期對淺層網路的研究,通過研究函式的逼近能力,網路的VC維度等進行評估,但是並不適用於深層網路。
目前直接評估網路效能一個比較好的研究思路是線性區間(linear regions)。可以將神經網路的表達看作是一個分段線性函式,如果要完美的擬合一個曲線,就需要無數多的線性區間(linear regions)。線性區間越多,說明網路越靈活。
Yoshua Bengio等人就通過線性區間的數量來衡量模型的靈活性。一個更深的網路,可以將輸入空間分為更多的線性響應空間,它的能力是淺層網路的指數級倍。
對於一個擁有n0個輸入,n個輸出,kn個隱藏層的單層網路,其最大數量為:
對於擁有同樣多的引數,n0個輸入,n個輸出,k個隱藏層,每一層n個節點的多層網路,其最大數量為:
因為n0通常很小,所以多層網路的數量是單層的指數倍(體現在k上),計算是通過計算幾何學來完成,大家可以參考論文[3]。
除此之外還有一些其他的研究思路,比如monica binachini[4]等使用的betti number,Maithra Raghu等提出的trajectory length[5]。
雖然在工程實踐中這些指標沒有多少意義甚至不一定有效,但是為我們理解深度和模型效能的關係提供了理論指導。
2.2、間接法
間接法就是展現實驗結果了,網路的加深可以提升模型的效能,這幾乎在所有的經典網路上都可以印證。比較不同的模型可能不夠公平,那就從同一個系列的模型來再次感受一下,看看VGG系列模型,ResNet系列模型,結果都是從論文中獲取。
在一定的範圍內,網路越深,效能的確就越好。
3 加深就一定更好嗎?
前面說到加深在一定程度上可以提升模型效能,但是未必就是網路越深就越好,我們從效能提升和優化兩個方面來看。
3.1、加深帶來的優化問題
ResNet為什麼這麼成功,就是因為它使得深層神經網路的訓練成為可行。雖然好的初始化,BN層等技術也有助於更深層網路的訓練,但是很少能突破30層。
VGGNet19層,GoogleNet22層,MobileNet28層,經典的網路超過30層的也就是ResNet系列常見的ResNet50,ResNet152了。雖然這跟後面ImageNet比賽的落幕,大家開始追求更加高效實用的模型有關係,另一方面也是訓練的問題。
深層網路帶來的梯度不穩定,網路退化的問題始終都是存在的,可以緩解,沒法消除。這就有可能出現網路加深,效能反而開始下降。
3.2、網路加深帶來的飽和
網路的深度不是越深越好,下面我們通過幾個實驗來證明就是了。公開論文中使用的ImageNet等資料集研究者已經做過很多實驗了,我們另外選了兩個資料集和兩個模型。
第一個資料集是GHIM資料集,第二個資料集是從Place20中選擇了20個類別,可見兩者一個比較簡單,一個比較困難。
第一個模型就是簡單的卷積+啟用的模型,第二個就是mobilenet模型。
首先我們看一下第一個模型的基準結構,包含5層卷積和一個全連線層, 因此我們稱其為allconv6吧,表示深度為6的一個卷積網路。
接下來我們試驗各種配置,從深度為5到深度為8,下面是每一個網路層的stride和通道數的配置。
我們看結果,優化都是採用了同一套引數配置,而且經過了調優,具體細節篇幅問題就不多說了。
看的出來網路加深效能並未下降,但是也沒有多少提升了。allconv5的效能明顯更差,深度肯定是其中的一個因素。
我們還可以給所有的卷積層後新增BN層做個試驗,結果如下,從allconv7_1和allconv8_1的效能相當且明顯優於allconv6可以得出與剛才同樣的結論。
那麼,對於更加複雜的資料集,表現又是如何呢?下面看在place20上的結果,更加清晰了。
allconv5,allconv6結果明顯比allconv7,allconv8差,而allconv7和allconv8效能相當。所以從allconv這個系列的網路結構來看,隨著深度增加到allconv7,之後再簡單增加深度就難以提升了。
接下來我們再看一下不同深度的mobilenet在這兩個資料集上的表現,原始的mobilenet是28層的結構。
不同深度的MobileNet在GHIM資料集的結果如下:
看得出來當模型到16層左右後,基本就飽和了。
不同深度的MobileNet在Place20資料集的結果如下:
與GHIM的結果相比,深度帶來的提升更加明顯一些,不過也漸趨飽和。
這是必然存在的問題,哪有一直加深一直提升的道理,只是如何去把握這個深度,尚且無法定論,只能依靠更多的實驗了。
除此之外,模型加深還可能出現的一些問題是導致某些淺層的學習能力下降,限制了深層網路的學習,這也是跳層連線等結構能夠發揮作用的很重要的因素。
關於網路深度對模型效能的影響,這次就先說這麼多,更多就去聽我的知乎live吧。
[1]Bengio Y, LeCun Y. Scaling learning algorithms towards AI[J]. Large-scale kernel machines, 2007, 34(5): 1-41.
[2]Montufar G F, Pascanu R, Cho K, et al. On the number of linear regions of deep neural networks[C]//Advances in neural information processing systems. 2014: 2924-2932.
[3]Pascanu R, Montufar G, Bengio Y. On the number of response regions of deep feed forward networks with piece-wise linear activations[J]. arXiv preprint arXiv:1312.6098, 2013.
[4]Bianchini M, Scarselli F. On the complexity of neural network classifiers: A comparison between shallow and deep architectures[J]. IEEE transactions on neural networks and learning systems, 2014, 25(8): 1553-1565.
[5]Raghu M, Poole B, Kleinberg J, et al. On the expressive power of deep neural networks[C]//Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017: 2847-2854.
總結
深度學習的名字中就帶著“深”,可見深度對模型的重要性。這一次我們講述了深度對模型帶來提升的原理,如何定量地評估深度對模型效能的貢獻,以及加深網路會遇到的問題。
下期預告:模型的寬度對效能的影響。
直播預告,掃碼可入