天天看點

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

激活函數定義: 就是在神經網絡的神經元上運作的函數,負責将神經元的輸入映射到輸出端。

常見的激活函數包括:

  • Sigmoid
  • TanHyperbolic(tanh)
  • ReLu
  • softplus
  • softmax

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

  如果不用激勵函數(其實相當于激勵函數是f(x) = x),在這種情況下你每一層輸出都是上層輸入的線性函數,很容易驗證,無論你神經網絡有多少層,輸出都是輸入的線性組合,與沒有隐藏層效果相當,這種情況就是最原始的感覺機(Perceptron)了。 正因為上面的原因,我們決定引入非線性函數作為激勵函數,這樣深層神經網絡就有意義了(不再是輸入的線性組合,可以逼近任意函數)。最早的想法是sigmoid函數或者tanh函數,輸出有界,很容易充當下一層輸入(以及一些人的生物解釋balabala)。

1.Sigmoid函數

  Sigmoid函數的表達式為 

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

  導數為:

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

  函數曲線如下圖所示:

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

   Sigmoid函數是傳統神經網絡中最常用的激活函數,一度被視為神經網絡的核心所在。 

  從數學上來看,Sigmoid函數對中央區的信号增益較大,對兩側區的信号增益小,在信号的特征空間映射上,有很好的效果。從神經科學上來看,中央區酷似神經元的興奮态,兩側區酷似神經元的抑制态,因而在神經網絡學習方面,可以将重點特征推向中央區,将非重點特征推向兩側區。 

對比sigmoid類函數主要變化是:

  1)單側抑制

  2)相對寬闊的興奮邊界

  3)稀疏激活性

Sigmoid 和 Softmax 差別:

  sigmoid将一個real value映射到(0,1)的區間,用來做二分類。而 softmax 把一個 k 維的real value向量(a1,a2,a3,a4….)映射成一個(b1,b2,b3,b4….)其中 bi 是一個 0~1 的常數,輸出神經元之和為 1.0,是以相當于機率值,然後可以根據 bi 的機率大小來進行多分類的任務。二分類問題時 sigmoid 和 softmax 是一樣的,求的都是 cross entropy loss,而 softmax 可以用于多分類問題多個logistic回歸通過疊加也同樣可以實作多分類的效果,但是 softmax回歸進行的多分類,類與類之間是互斥的,即一個輸入隻能被歸為一類;多個logistic回歸進行多分類,輸出的類别并不是互斥的,即"蘋果"這個詞語既屬于"水果"類也屬于"3C"類别。

2.TanHyperbolic(tanh)函數

  TanHyperbolic(tanh)函數又稱作雙曲正切函數,數學表達式為

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

  導數為:

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

  圖像為:

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

   在具體應用中,tanh函數相比于Sigmoid函數往往更具有優越性,這主要是因為Sigmoid函數在輸入處于[-1,1]之間時,函數值變化敏感,一旦接近或者超出區間就失去敏感性,處于飽和狀态,影響神經網絡預測的精度值。而tanh的輸出和輸入能夠保持非線性單調上升和下降關系,符合BP網絡的梯度求解,容錯性好,有界,漸進于0、1,符合人腦神經飽和的規律,但比sigmoid函數延遲了飽和期.tanh在特征相差明顯時的效果會很好,在循環過程中會不斷擴大特征效果。與 sigmoid 的差別是,tanh 是 0 均值的,是以實際應用中 tanh 會比 sigmoid 更好。

3.ReLu函數

  ReLu函數的全稱為Rectified Linear Units

  函數表達式為:

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

  導數為:

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數
激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

Sigmoid ,tanh與ReLU 比較:

  sigmoid,tanh 會出現梯度消失問題,ReLU 的導數就不存在這樣的問題。

優點:

(1)從計算的角度上,Sigmoid和Tanh激活函數均需要計算指數,複雜度高,而ReLU隻需要一個門檻值即可得到激活值;

(2)ReLU的非飽和性潰瘍有效地解決梯度消失的問題,提供相對寬的激活邊界;

(3)ReLU的單側抑制提供了網絡的稀疏表達能力

缺點:

訓練過程中會導緻神經元死亡的問題。這是由于函數f(z)=max(0,z)導緻負梯度在經過該ReLU單元時被置為0,且在之後也不被任何資料激活,即流經該神經元的梯度永遠為0,不對任何資料産生響應。

在實際訓練中,如果學習率設定較大,會導緻一定比例的神經元不可逆死亡,進而參數梯度無法更新,整個訓練過程失敗。

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數
激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

4.softplus函數

  softplus函數的數學表達式為:

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

  ReLu和softplus的函數曲線如下:

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

       可以看到,softplus可以看作是ReLu的平滑。根據神經科學家的相關研究,softplus和ReLu與腦神經元激活頻率函數有神似的地方。也就是說,相比于早期的激活函數,softplus和ReLu更加接近腦神經元的激活模型,

而神經網絡正是基于腦神經科學發展而來,這兩個激活函數的應用促成了神經網絡研究的新浪潮。 

 softplus和ReLu相比于Sigmoid的優點在哪裡呢?

  • 采用sigmoid等函數,算激活函數時(指數運算),計算量大,反向傳播求誤差梯度時,求導涉及除法,計算量相對大,而采用Relu激活函數,整個過程的計算量節省很多。
  • 對于深層網絡,sigmoid函數反向傳播時,很容易就會出現梯度消失的情況(在sigmoid接近飽和區時,變換太緩慢,導數趨于0,這種情況會造成資訊丢失),進而無法完成深層網絡的訓練。
  • Relu會使一部分神經元的輸出為0,這樣就造成了網絡的稀疏性,并且減少了參數的互相依存關系,緩解了過拟合問題的發生(以及一些人的生物解釋balabala)。

5.softmax函數

  Sigmoid函數如果用來分類的話,隻能進行二分類,而這裡的softmax函數可以看做是Sigmoid函數的一般化,可以進行多分類。softmax函數的函數表達式為:

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

  從公式中可以看出,就是如果某一個Zj大過其他z,那這個映射的分量就逼近于1,其他就逼近于0,即用于多分類。也可以了解為将K維向量映射為另外一種K維向量。用通信的術語來講,如果Sigmoid函數是MISO,Softmax就是MIMO的Sigmoid函數。

  二分類和多分類其實沒有多少差別。用的公式仍然是y=wx + b。 但有一個非常大的差別是他們用的激活函數是不同的。 邏輯回歸用的是sigmoid,這個激活函數的除了給函數增加非線性之外還會把最後的預測值轉換成在【0,1】中的資料值。也就是預測值是0<y<1。 我們可以把最後的這個預測值當做是一個預測為正例的機率。在進行模型應用的時候我們會設定一個門檻值,當預測值大于這個門檻值的時候,我們判定為正例子,反之我們判斷為負例。這樣我們可以很好的進行二分類問題。 而多分類中我們用的激活函數是softmax。 為了能夠比較好的解釋它,我們來說一個例子。 假設我們有一個圖檔識别的4分類的場景。 我們想從圖檔中識别毛,狗,雞和其他這4種類别。那麼我們的神經網絡就變成下面這個樣子的。

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

  我們最後的一層中使用的激活函數就是softmax。 我們發現跟二分類在輸出層之後一個單元不同的是, 使用softmax的輸出層擁有多個單元,實際上我們有多少個分類就會有多少個單元,在這個例子中,我們有4個分類,是以也就有4個神經單元,它們代表了這4個分類。在softmax的作用下每個神經單元都會計算出目前樣本屬于本類的機率。如下:

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

  如上圖,該樣本屬于第一個分類的機率是0.842, 屬于第二個分類的機率是0.042,屬于第三個分類的機率是0.002,屬于第四個分類的機率是0.114. 我們發現這些值相加等于一,因為這些值也是經過歸一化的結果。 整個效果圖可以參考下面的例子, 這是一個比較直覺的圖。

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

Softmax的損失函數

  既然softmax的輸出變成了多個值,那麼我們如何計算它的損失函數呢, 有了損失函數我們才能進行梯度下降疊代并根據前向傳播和反向傳播進行學習。如下圖:

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

  還是假設有4個分類,那麼實際的預測向量,也會有4個次元。 如上圖左邊的樣子。 如果是屬于第二個分類,那麼第二個值就是1, 其他值都是0。 假設右邊的向量是預測值, 每個分類都有一個預測機率。 那麼我們的損失函數就是。

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

  由于實際值得向量隻有一個是1,其他的都是0. 是以其實到了最後的函數是下面這個樣子的

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

  有了損失函數,我們就可以跟以前做邏輯回歸一樣做梯度下降就可以了。

softmax的梯度求解

激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數
激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數
激活函數---Sigmoid、Tanh、ReLu、softplus、softmax1.Sigmoid函數2.TanHyperbolic(tanh)函數3.ReLu函數4.softplus函數5.softmax函數

 參考文獻:

【1】softmax的log似然代價函數(公式求導)

【2】https://www.cnblogs.com/nxf-rabbit75/p/9276412.html

繼續閱讀