一種新的ResNet思路:Learning Identity Mapping with Residual Gates論文筆記

一種新的ResNet思路:Learning Identity Mapping with Residual Gates論文筆記

論文地址:Learning Identity Mappings with Residual Gates
本文地址:http://blog.csdn.net/wspba/article/details/72789964

前言

自從2015年ResNet在ImageNet比賽上火了之後,現在簡直就是大紅大紫啊,這兩年關於ResNet的研究、基於ResNet網路的延伸、改進也越來越多,包括FractalNet、WideResNet、DenseNet等等,這幾篇文章都會一一為大家介紹,今天要介紹的叫做Gated ResNet,它來自一篇發表在今年ICLR上的論文,它沒有之前提到的幾個網路複雜,它對ResNet所提出的Identity Mapping進行了更加細緻的思靠,它認為Identity Mapping才是ResNet包括Highway Network的精髓,並提出了對於一個深層網路,如果它具有退化成Identity Mapping的能力,那麼它一定是容易優化、並且具有很好效能的。

精髓:Identity Mapping

ResNet中所提出的Residual block之所以成功,原因有兩點,第一,是它的shortcut connection增加了它的資訊流動,第二,就是它認為對於一個堆疊的非線性層,那麼它最優的情況就是讓它成為一個恆等對映,但是shortcut connection的存在恰好使得它能夠更加容易的變成一個Identity Mapping。對於第二點,其實剛開始看ResNet原文時,並沒有完全理解,直到看到今天所講的這篇論文時才正真理解到它的含義。

看下圖:
這裡寫圖片描述

下面那行的網路其實就是在上面那行網路的基礎上新疊加了一層,而新疊加上那層的權重weight,如果能夠學習成為一個恆等的矩陣I,那麼其實上下兩個網路是等價的,那麼也就是說如果繼續堆疊的層如果能夠學到一個恆等矩陣,那麼經過堆疊的網路是不會比原始網路的效能差的,也就是說,如果能夠很容易的學到一個恆等對映,那麼更深層的網路也就更容易產生更好的效能。這是ResNet所提出的根源,也是本文所強調的重點。

對於一個網路中的一個卷積層f(x,W)W是卷積層的權重,如果要使得這個卷積層是一個恆等對映,即f(x,W)=x,那麼W就應該是一個恆等對映I,但是當模型的網路變深時,要使得W=I 就不那麼容易。對於ResNet的每一個Residual Block,要使得它為一個恆等對映,即f(x,W) x=x,就只要使得W=0即可,而學習一個全0的矩陣比學習一個恆等矩陣要容易的多,這就是ResNet在層數達到幾百上千層時,依然不存在優化難題的原因。

改進:Residual Gates

學習一個全0矩陣,是要使得一個矩陣中所有的值都為0,那麼還有沒有更簡單的方法呢?比如說,只要一個值為0就夠了?這恰恰就是本文的亮點:Residual Gates。

下圖是基於plain network的一個改進:
這裡寫圖片描述
這樣f(x,W)就變成了g(k)f(x,W) (1-g(k))x,很熟悉有沒有,是不是很像Highway Network:這裡寫圖片描述 ,但是Highway Network仍然需要學習一個以x為輸入的函式T(x,Wt),使Wt為全0矩陣時,整個網路才相當於恆等對映。而在這裡,只需要g(k)等於0表示為恆等對映,注意到這裡k也是模型的一個引數,也是通過模型的前向和反向訓練得出,g為啟用函式(ReLU),即只要k學習到一個接近於0或者小於0(由於ReLU的存在)的值,或者k=1,W=I即可,比單純指望W學習到I要簡單得多。按照作者的意思,這個模型就具有了退化成恆等對映的能力,因此當層數加深時,是能夠提升模型的效能的。

而對於ResNet,也可以使用同樣的Gates:
這裡寫圖片描述
即:g(k)(f(x,W) x) (1-g(k))x=g(k)f(x,W) x ,這樣看來g(k)甚至都不需要作為門控的功能,只要相當於一個縮放的作用,相比於原始ResNet需要W學成全0矩陣而言,使得g(k)等於0更加簡單,因此作者推斷,門控版的Gates ResNet要強於原始的ResNet。

實驗

模型在MINIST和CIFAR-10資料集上的結果在這裡就不多進行展示和解釋。但是有幾點我也是比較感興趣的。
首先:
這裡寫圖片描述
當模型較淺時,引數優化簡單,因此k的作用體現不出來,而且k值很大,可能起到的是一個訊號的放大或者增強的作用;但是當層數逐漸增加時,k值慢慢減小,比如上圖,d=100時,k的均值只有0.67,那麼在很多層中,k的值應該是很接近與0的,這些層起到的就是恆等對映的作用,這也就驗證了作者的觀點。

其次,另外一個圖,這是一個100層的深層模型:
這裡寫圖片描述
作者發現在ResNet中,k值可能在中間的某些曾具有更低的值,而作者認為,當k接近於0時,該層接近於恆等對映,那麼該層可能起到更多的就是資訊傳遞,而不是資訊提取的作用,因此,對於整個模型的影響並不大,那麼將這些層剔除,模型的效能應該也不會有太大的影響。右圖的曲線也證明了這點,作者的這個發現,為模型的壓縮也提供的新的思路。

基於第二個發現,在只有24層的淺層模型中:
這裡寫圖片描述
我們發現,在第1、5、9個residual block中,k值很低,而第1、5、9個residual block正好對應了維度上升的層(不明白的可以回去看Wide ResNet或者ResNet的模型結構),這說明了在升維的residual block中,shortcut connection中用來增加維度卷積層起到了更加重要的作用,而在最後一個block中,k值非常高,也就是說明在這裡,shortcut connection幾乎不起到作用,因此將shortcut connection去除也幾乎沒有影響。

總結

這篇論文給模型的設計和優化提供了很好的思路,它提出了一個叫做模型退化成恆等對映的能力,即,如果模型具有退化成恆等對映的能力,那麼堆疊很多這樣的層,將不會比更淺的層效果要差。提出了一個只有單一引數的門控機制,它是的普通的平原網路,甚至是本來就效能很好的ResNet,變得更好,原因是一個引數的學習總會比多維權重的學習更加簡單。最後,作者還給出了一個對模型理解以及優化的思路,對於一個含有門控機制的訓練好的模型,我們可以通過觀察k的值,來判斷各個層的作用,並且根據作用的重要性,可以對不重要的層進行剔除而不影響到模型的效果,起到了一個模型壓縮的作用。

總的來說,這篇論文真的是非常棒的文章,值得大家細細品讀,當然論文中還有很多理解不到位的地方,也希望大家能夠提出來,一起交流一起學習!