激活函數-Sigmoid,Tanh,ReLu,softplus,softmax

不管是傳統的神經網絡模型還是時下熱門的深度學習,我們都可以在其中看到激活函數的影子。所謂激活函數,就是在神經網絡的神經元上

運行的函數,負責將神經元的輸入映射到輸出端。常見的激活函數包括Sigmoid、TanHyperbolic(tanh)、ReLu、 softplus以及softmax函數。

這些函數有一個共同的特點那就是他們都是非線性的函數。那麼我們爲什麼要在神經網絡中引入非線性的激活函數呢?引用

https://www.zhihu.com/question/29021768的解釋就是:

如果不用激勵函數(其實相當於激勵函數是f(x) = x),在這種情況下你每一層輸出都是上層輸入的線性函數,很容易驗證,無論你神經

網絡有多少層,輸出都是輸入的線性組合,與沒有隱藏層效果相當,這種情況就是最原始的感知機(Perceptron)了。 正因爲上面的原

因,我們決定引入非線性函數作爲激勵函數,這樣深層神經網絡就有意義了(不再是輸入的線性組合,可以逼近任意函數)。最早的想法

是sigmoid函數或者tanh函數,輸出有界,很容易充當下一層輸入(以及一些人的生物解釋balabala)。

  由此可見,激活函數對神經網絡的深層抽象功能有着極其重要的意義,下面根據我在網絡上找到的資料,分別對上述激活函數進行說明:

Sigmoid函數

  Sigmoid函數的表達式爲,函數曲線如下圖所示: 
   
        Sigmoid函數的函數曲線 
   
  Sigmoid函數是傳統神經網絡中最常用的激活函數,一度被視爲神經網絡的核心所在。 
  從數學上來看,Sigmoid函數對中央區的信號增益較大,對兩側區的信號增益小,在信號的特徵空間映射上,有很好的效果。 
  從神經科學上來看,中央區酷似神經元的興奮態,兩側區酷似神經元的抑制態,因而在神經網絡學習方面,可以將重點特徵推向中央區,

將非重點特徵推向兩側區。

TanHyperbolic(tanh)函數

  TanHyperbolic(tanh)函數又稱作雙曲正切函數,數學表達式爲,其函數曲線與Sigmoid函數相似,tanh函

數與Sigmoid函數的函數曲線如下所示: 
        這裏寫圖片描述 (
此圖tanh錯誤,應過0點,Sigmoid也錯誤,其取值範圍【0,1】
   
  在具體應用中,tanh函數相比於Sigmoid函數往往更具有優越性,這主要是因爲Sigmoid函數在輸入處於[0,1]之間時,函數值變化敏感

,一旦接近或者超出區間就失去敏感性,處於飽和狀態,影響神經網絡預測的精度值。而tanh的輸出和輸入能夠保持非線性單調上升和下降關

系,符合BP網絡的梯度求解,容錯性好,有界,漸進於0、1,符合人腦神經飽和的規律,但比sigmoid函數延遲了飽和期。

ReLu函數和softplus函數

  ReLu函數的全稱爲Rectified Linear Units,函數表達式爲,softplus函數的數學表達式爲,它們的函

數表達式如下: 
  這裏寫圖片描述 
  可以看到,softplus可以看作是ReLu的平滑。根據神經科學家的相關研究,softplus和ReLu與腦神經元激活頻率函數有神似的地方。也就

是說,相比於早期的激活函數,softplus和ReLu更加接近腦神經元的激活模型,而神經網絡正是基於腦神經科學發展而來,這兩個激活函數的

應用促成了神經網絡研究的新浪潮。 
  那麼softplus和ReLu相比於Sigmoid的優點在哪裏呢?引用https://www.zhihu.com/question/29021768的解釋就是:

第一,採用sigmoid等函數,算激活函數時(指數運算),計算量大,反向傳播求誤差梯度時,求導涉及除法,計算量相對大,而採用

Relu激活函數,整個過程的計算量節省很多。 
第二,對於深層網絡,sigmoid函數反向傳播時,很容易就會出現梯度消失的情況(在sigmoid接近飽和區時,變換太緩慢,導數趨於0,

這種情況會造成信息丟失),從而無法完成深層網絡的訓練。 
第三,Relu會使一部分神經元的輸出爲0,這樣就造成了網絡的稀疏性,並且減少了參數的相互依存關係,緩解了過擬合問題的發生(以

及一些人的生物解釋balabala)。

如果想要了解更多的話,http://www.cnblogs.com/neopenx/p/4453161.html對softplus進行了詳細的介紹,這裏不再贅述。

softmax函數

  我們可以看到,Sigmoid函數實際上就是把數據映射到一個的空間上,也就是說,Sigmoid函數如果用來分類的話,只能進行二

分類,而這裏的softmax函數可以看做是Sigmoid函數的一般化,可以進行多分類。softmax函數的函數表達式爲:

從公式中可以看出,就是如果某一個zj

大過其他,那這個映射的分量就逼近於1,其他就逼近於0,即用於多分類。也可以理解爲將K維向量映射爲另外一種K維向量。用通信的術語

來講,如果Sigmoid函數是MISO,Softmax就是MIMO的Sigmoid函數。

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