【深度學習】論文導讀:ELU激活函數的提出(FAST AND ACCURATE DEEP NETWORK LEARNING BY EXPONENTIAL LINEAR UNITS (ELUS))

論文下載:

FAST AND ACCURATE DEEP NETWORK LEARNING BY EXPONENTIAL LINEAR UNITS (ELUS)(2016,Djork-Arn´e Clevert, Thomas Unterthiner & Sepp Hochreiter)

一、簡介

ELU的表達式:


四種激活函數(ELU,LReLU,ReLU,SReLU)比較圖:


ELU通過在正值區間取輸入x本身減輕了梯度彌散問題(x>0區間導數處處爲1),這一點特性這四種激活函數都具備。四者當中只有ReLU的輸出值沒有負值,所以輸出的均值會大於0,當激活值的均值非0時,就會對下一層造成一個bias,如果激活值之間不會相互抵消(即均值非0),會導致下一層的激活單元有bias shift。如此疊加,單元越多時,bias shift就會越大。相比ReLU,ELU可以取到負值,這讓單元激活均值可以更接近0,類似於Batch Normalization的效果但是只需要更低的計算複雜度。雖然LReLU和PReLU都也有負值,但是它們不保證在不激活狀態下(就是在輸入爲負的狀態下)對噪聲魯棒。反觀ELU在輸入取較小值時具有軟飽和的特性,提升了對噪聲的魯棒性。

二、自然梯度

在描述自然梯度之前,讓我們先來看普通梯度,設f(x)=x^2


參數x的變化量和f的變化量可以在一個二維平面座標系下度量,在這種情形下,可以求得普通的梯度。
但是上述情況基於一個事實:x的變化所引起的f的變化是在一個度量系下的,我們使用了一組正交併且平直座標系去描述這種變化,數學上把這樣的空間稱作歐幾里德空間,以往我們接觸的問題都可以在歐幾里德空間下解決(函數優化、求解平面幾何等等)
但是在概率分佈問題下,歐幾里德空間就不好解決了,來舉個例子:
在神經網絡當中,給定一組數據{x1,x2,x3,……,xN}和一個概率分佈模型p(x;W),其中xi={樣本zi,標籤yi}兩部分構成,我們最後要做的就是估計一個W',使得p(x;W')和p(x;W)儘可能的相近。假設對於單個樣本x而言,它的概率服從W的一個函數,這個問題是在歐幾里德空間可解的

如下圖:當我們確定了正態分佈的μ和σ時,可以對單個樣本給出它的分佈函數和概率密度函數


但是我們要求解的並不是這個樣本,而是整個數據集的概率分佈,這個概率分佈隨着參數的變化實際上並不能用一個函數來表達,說得更專業一點就是無法在歐幾里德空間解這個問題。兩個概率分佈的距離,在統計學中,是以KL散度來表達的,瞭解KL散度需要涉及到信息熵和相對熵的問題。http://www.cnblogs.com/hxsyl/p/4910218.html已經給了詳細的介紹。
因此可以寫出一個分佈參數變化前後,相對應的KL散度

最終問題就變成最小化這個KL散度的問題。(當我們不停的迭代到參數接近模型自身參數的時候,KL散度就達到最小了)
KL散度隨着參數變化有最大的變化率,這樣決定的梯度,就稱爲自然梯度了

三、黎曼流形空間

上述KL散度隨參數變化的問題,是在黎曼流形空間上的問題。

流形(Manifold)可以理解爲受一定約束的某個(一維或多維)變量所有可能狀態的集合。其數學定義是:流形是一類拓撲空間,其中每個點都有鄰域,而這種鄰域與R^n中的單位開球在拓撲上同胚。簡單地說,流型從它每個點的鄰域來看和 Euclid 空間沒有不同;但從總體來看,流形可以是某種“彎曲”的空間,和“平直”的 Euclid 空間不一定相同。三維空間中的球面是流形的一個例子。球面上任何一條經線或緯線是一個子流形。基於球面建立的幾何學與 Euclid 幾何學是不同的。
事實上,我們不一定要關注流形是什麼,我們只需要一個可以表示自然梯度的公式。(以下的推導細節都不重要,你只需要知道最後的形式)


通過這一步,可以進而推導出自然梯度的普通梯度表示:


最後的公式是我們關注的,它居然和普通梯度僅僅相差了一個矩陣!!

四、fisher信息矩陣

從矩陣的表達形式上來看,它表示了對數似然函數一階導數的二階矩。我們希望似然函數的導數更偏離均值,對應的似然函數就越陡峭,這是有利於我們做似然估計的,於是fisher信息又有一種更直觀的表達:它對應於我們對於參數估計的準確度,換句話說,就是在一次似然估計中,並不是所有的樣本可以全部被這次估計所用,fisher信息,代表了可以用於似然估計的那部分信息。

把所有推理連貫一下:
自然梯度意味着使KL散度變化率最大=>KL散度的變化代表了似然估計的變化=>假設參數的改變,導致了似然函數發生了某一個改變=>這個改變僅僅導致了對於似然估計有用的那部分信息在似然函數裏產生的變化。
不看數學的推導,這個公式在實際當中的意義似乎也說得通!

五、ELU的提出

再回到論文,文中提出bias shift就是激活值均值在權重更新的時候的改變(因爲普通梯度的更新不會考慮數據的分佈)而自然梯度會對這種bias shift進行糾正,如何糾正的,文中用了一個例子以及一系列的數學推導證明了,大致過程就是在原網絡上增加了一個bias單元,用自然梯度求解時,發現新增單元會導致fisher信息矩陣上增加一行(用b表示),最終這一行b會影響bias權重和原始權重的更新。


這種影響作者把它稱作bias shift correction,它校正了所有的權值更新,去抵消這種bias shift

作者基於這個又提出了一種想法:既然要讓激活值的均值不變,是否可以一直讓激活函數的均值保持在0,這樣就不會發生bias shift,即可以用普通梯度代替自然梯度,最終其效果等同於使用了自然梯度?

最後ELU誕生了,它的形式是


其中α是一個可調整的參數,它控制着ELU負值部分在何時飽和。
ELU實現了兩個優點:
1、將前面單元輸入的激活值均值控制在0
2、讓激活函數的負值部分也可以被使用了(這意思應該是之前的激活函數,負值部分幾乎不攜帶信息,特別是ReLU)


個人觀點:不過感覺這種方法其實也是控制層間數據均值不發生偏移,思路和Batch Normalization差不多,只是表達不同罷了。

發佈了45 篇原創文章 · 獲贊 387 · 訪問量 84萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章