微軟亞洲實驗室一篇超過人類識別率的論文:Delving Deep into Rectifiers: 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 和  權值初始化的方法。  如果有什么問題與錯誤,大家可以在評論區寫下來,我相互討論學習進步。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM