1. 程式人生 > >深度學習啟用函式sigmoid,tanh,ReLU,softma詳解

深度學習啟用函式sigmoid,tanh,ReLU,softma詳解

啟用函式sigmoid,tanh,ReLU,softma詳解

[轉載地址:](https://blog.csdn.net/u011684265/article/details/78039280)

# **啟用函式sigmoid,tanh,ReLU,softmax**

1、什麼是啟用函式

2、為什麼要用

3、都有什麼啟用函式

4、sigmoid,Relu,softmax

1. 什麼是啟用函式

如下圖,在神經元中,輸入的 inputs 通過加權,求和後,還被作用了一個函式,這個函式就是啟用函式 Activation Function。

2. 為什麼要用

如果不用激勵函式,每一層輸出都是上層輸入的線性函式,無論神經網路有多少層,輸出都是輸入的線性組合。
如果使用的話,啟用函式給神經元引入了非線性因素,使得神經網路可以任意逼近任何非線性函式,這樣神經網路就可以應用到眾多的非線性模型中。

3. 都有什麼啟用函式

(1) sigmoid函式

公式:

曲線:

導數:

sigmoid函式也叫 Logistic 函式,用於隱層神經元輸出,取值範圍為(0,1),它可以將一個實數對映到(0,1)的區間,可以用來做二分類。
在特徵相差比較複雜或是相差不是特別大時效果比較好。

sigmoid缺點:

  • 啟用函式計算量大,反向傳播求誤差梯度時,求導涉及除法
  • 反向傳播時,很容易就會出現梯度消失的情況,從而無法完成深層網路的訓練

  • Sigmoids函式飽和且kill掉梯度。
  • Sigmoids函式收斂緩慢。

下面解釋為何會出現梯度消失:

反向傳播演算法中,要對啟用函式求導,sigmoid 的導數表示式為:


sigmoid 原函式及導數圖形如下:


由圖可知,導數從 0 開始很快就又趨近於 0 了,易造成“梯度消失”現象

(2) Tanh函式

公式



曲線


也稱為雙切正切函式,取值範圍為[-1,1]。
tanh在特徵相差明顯時的效果會很好,在迴圈過程中會不斷擴大特徵效果。
與 sigmoid 的區別是,tanh 是 0 均值的,因此實際應用中 tanh 會比 sigmoid 更好。

(3) ReLU

Rectified Linear Unit(ReLU) - 用於隱層神經元輸出

公式


曲線


RELU特點:

輸入訊號 <0 時,輸出都是0,>0 的情況下,輸出等於輸入

ReLU 的優點:

Krizhevsky et al. 發現使用 ReLU 得到的 SGD 的收斂速度會比 sigmoid/tanh 快很多

ReLU 的缺點:
訓練的時候很”脆弱”,很容易就”die”了
例如,一個非常大的梯度流過一個 ReLU 神經元,更新過引數之後,這個神經元再也不會對任何資料有啟用現象了,那麼這個神經元的梯度就永遠都會是 0.
如果 learning rate 很大,那麼很有可能網路中的 40% 的神經元都”dead”了。

(4) softmax函式

Softmax - 用於多分類神經網路輸出

公式


舉個例子來看公式的意思:


就是如果某一個 zj 大過其他 z, 那這個對映的分量就逼近於 1,其他就逼近於 0,主要應用就是多分類。

為什麼要取指數,第一個原因是要模擬 max 的行為,所以要讓大的更大。
第二個原因是需要一個可導的函式。

4. sigmoid ,ReLU, softmax 的比較

Sigmoid 和 ReLU 比較:

sigmoid 的梯度消失問題,ReLU 的導數就不存在這樣的問題,它的導數表示式如下:


曲線如圖


對比sigmoid類函式主要變化是:
1)單側抑制
2)相對寬闊的興奮邊界
3)稀疏啟用性。

Sigmoid 和 Softmax 區別:

softmax is a generalization of logistic function that “squashes”(maps) a K-dimensional vector z of arbitrary real values to a K-dimensional vector σ(z) of real values in the range (0, 1) that add up to 1.

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 可以用於多分類問題

softmax是sigmoid的擴充套件,因為,當類別數 k=2 時,softmax 迴歸退化為 logistic 迴歸。具體地說,當 k=2 時,softmax 迴歸的假設函式為:


利用softmax迴歸引數冗餘的特點,從兩個引數向量中都減去向量θ1 ,得到:


最後,用 θ′ 來表示 θ2−θ1,上述公式可以表示為 softmax 迴歸器預測其中一個類別的概率為


另一個類別概率的為


這與 logistic迴歸是一致的。

softmax建模使用的分佈是多項式分佈,而logistic則基於伯努利分佈
  
多個logistic迴歸通過疊加也同樣可以實現多分類的效果,但是 softmax迴歸進行的多分類,類與類之間是互斥的,即一個輸入只能被歸為一類;多個logistic迴歸進行多分類,輸出的類別並不是互斥的,即"蘋果"這個詞語既屬於"水果"類也屬於"3C"類別。


5. 如何選擇

選擇的時候,就是根據各個函式的優缺點來配置,例如:

如果使用 ReLU,要小心設定 learning rate,注意不要讓網路出現很多 “dead” 神經元,如果不好解決,可以試試 Leaky ReLU、PReLU 或者 Maxout.