Surpassing Human-Level Performance on ImageNet Classification ImageNet Classification

該文章的兩大創新點:一個是PReLU,一個是權值初始化的方法。下面我們分別一一來看。

 

 

PReLU(paramter ReLU)

所謂的PRelu,即在 ReLU激活函數的基礎上加入了一個參數,看一個圖就明白了:

image

右邊的圖上多了一個參數吧,在負半軸上不再爲0,而是一個可以學習的斜率。  很容易明白。實驗結果顯示該方法可以提高識別率。

 

權值初始化的方法:

 

對於文中的權值初始化問題:主要思想是跟隨了“Xavier”的初始化的思想,研究了第一層layer的響應的 variance。下面的推導過程是基於ReLU激活函數的。 分爲一下兩種情況來分析:

forward propagation:

在推導前,先說一些符號的代表意義:yL表示第L層上的一個feature map上的一個神經單元的response(這裏的response指的是上一層的所有連接單元的加權和,是不經過激活函數哈,這裏把激活函數作另外的一個行爲吧);yL 經過激活函數看得到的值我們記作XL; bL表示偏置;L層的feature map的個數用 dL表示; 卷積核的大小表示爲k*K(可能不同的layer的卷積核不一樣哦,這裏就不區分了); 激活函數表示爲f();

以下爲正向傳播的卷積過程(只畫出了一個feature map的情況) :

image

其中一個輸出值用公式表示 如下(接收域的feature map 的個數爲 dL-1) :

image

 

接下來呢,我們會這麼做:

1. 初始化時,我們把權值WL裏的各元素 初始化爲獨立同分布的變量,且令 WL 的均值爲 0 ;

2. 我們假設元素 XL 的變量也是獨立同分布的變量;

3. WL 與 XL 是相互獨立的;

 

往下的推導會用於以下概率論中的知識:

對於隨機變量X,它的期望可以表示爲EX,下面看看它的方差怎麼表示:

DX  = E(X-EX)2 = E(X2-2XEX +(EX)2) = EX2 - (EX)2

所以當 EX=0時,DX = EX2

當隨機變量X與隨機變量Y相互獨立時,我們有這樣的結論:

EXY = EX * EY

DXY = EX2EY2 –(EX)2(EY)2

D(X+Y) = DX + DY

 

在上面的條件下我們繼續推導,推導的核心爲求 response 的 方差(variance):

image

所以就得到了:

image

 

然後呢,我們讓W L-1 的對稱分佈在0值的左右,這樣同時也就可以讓 W 的均值爲0 (或期望爲0)了,然後,這樣的話, y L-1 的分佈也是對稱分佈在0值左右了。y L-1的期望也爲0 了。所以就有了下面的結果:

image

代入到上面公式中得到:

image

把L層的layer 聯合起來,我們可以得:

image

 

爲了使 y1 的方差與 yL 的方差相等,我們就需要另:

image  ,其中 l = 2, 3, 4, …… L。

 

對於第一層的輸入,我們有這樣的公式:

image

所以第一層對應的條件爲:

image

 

爲了各層之間 統一起來, 第一層差個1/2也沒事,所以呢,對於前向傳導,權值應該滿足這樣的條件:

image

其中:

image,K 爲第K層的卷積核的大小。

 

結論: 權值滿足 mean 爲0,  方差爲 2/ nl 的條件.

 

 

Backward Propagation :

 

對於反向傳播時,利用BP算法,當我們在推導公式中,總要求出目標函數對每一層的輸入值的 偏導數。下面的公式如果你沒有推導過這個BP過程的話,可能有點看不懂哦:

image

上面的公式可能和論文裏的有點不一樣,因爲吧,論文裏一次性把多個feature map上的對應元素求出來了,我覺得對於下面的推導,求一個就夠 了。對於上面公式的過程,我自己畫了一個圖表示一下 :

image

對上圖的說明:1,我只畫出了一個 feature map的情況;2,還有注意卷積核,與正向傳播時的卷積核有差別(旋轉了180度);3,卷積的對象以及輸出的對象都是偏導數;4,可以與正向傳播時作個對比;

下面爲推導過程,也是圍繞着 方差來的:

image

然後,就得到了:

image

當我們把L層合在一起時,變爲了:

image

當然,對於X0(它表示網絡的輸入)沒有必要去求偏導數,但是爲了推出第一層網絡權值滿足的條件,我們也可以寫出來:

image,它同樣符合公式的哦,我已經證明過了。。。

對於前向傳導時,在第一層會有一個1/2的差別,但是在這反向傳播中沒有。其實反射傳播也存在一層的差別,只不過是在L+1層,因爲在第L層往後可能沒有激活函數了。

 

所以呢,在反向傳播過程中,爲了使偏對數的方差相同的話,那麼需要滿足的條件爲:

image

image,K 爲第L層的卷積核。

 

注意了正向與反向的差別了吧,爲了均衡正向與反向傳播,我們可以取其平均值哦。

 

 

文章後面的話,就是一些實驗的安排了。。其實對於VLIRC  任務來說,實驗部分其實都基本上吧方法類似的。

文章一方面說,他的初始化方法可以做到對於深層的網絡訓練時起來收斂的作用, 一方面又說了,很多時候一味地增加網絡的深度並不一定可以使網絡的性能提高(這個也在很多其它的文獻中有說的了)。所以呢,網絡的設計吧,還是一個難題啊。

 

另外,從文中看到一個新的pooling 方法: spatial pyramid pooling. 它來自文獻: Spatial pyramid pooling in deep convolutional networks for visual recognition。

 

總之呢,文章最大亮點大於:Prelu 和  權值初始化的方法。  如果有什麼問題與錯誤,大家可以在評論區寫下來,我相互討論學習進步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章