這裡主要首先要說下為什麼在深度學習網路中需要加入啟用函式?因為啟用函式是網路中非線性的**,去除了該部分之後網路就只剩下線性運算部分了,而且線性運算的組合疊加也是線性的,最後得到的結果模型也當然可以等價於單層的線性模型了,也為了能夠適用於複雜的情況,所以需要在網路中引入非線性單元。
那麼說到了啟用函式那麼就先從常見的sigmoid開始談起吧。
首先,來看看sigmoid函式是怎麼定義的 si
gmoi
d(x)
=11+
e−x sig
moid
(x)=
11+e
−x其表示的實際函式曲線是這樣的
從上圖中可以看出:sigmoid函式的輸出被限制在(0,1)之間,單調連續,並且根據其定義其求導容易;但是該損失函式由於其軟飽和性,容易產生梯度消失,導致訓練出現問題,並且其輸出並不是以0為中心的。
tanh函式和sigmoid函式比較類似,其函式定義為 ta
nh(x
)=2s
igmo
id(2
x)−1
=21+
e(−2
x)−1
=ex−
e−xe
x+e−
x tan
h(x)
=2si
gmoi
d(2x
)−1=
21+e
(−2x
)−1=
ex−e
−xex
+e−x
其函式曲線為:
從上面的曲線中可以看出函式的取值範圍為[-1,1]。tanh在特徵相差明顯時的效果會很好,在迴圈過程中會不斷擴大特徵效果。與 sigmoid 的區別是,tanh 是 0 均值的,因此實際應用中 tanh 會比 sigmoid 更好。tanh的梯度相比較sigmoid更加陡峭。我們選擇sigmoid還是tanh是根據問題中對梯度的要求而定的。
softmax是另一種sigmoid函式,但是它是在分類中比較容易控制的一種啟用函式。sigmoid只能處理兩類的問題。softmax將輸出結果壓縮在0-1之間,並依據輸出的總和來分類。它給輸入的概率乙個概率。softmax形式如下:
假設我們的乙個輸出結果是[1.2,0.9,0.75],當我們使用了softmax之後,這個值變成了[0.42, 0.31, 0.27],我們可以使用這些概率當做每一類的概率。
softmax在輸出層中使用是比較完美的,這裡我們通常是需要獲得輸入資料對應的類別的各種概率。
籠統解釋:二分類情況一般使用sigmoid啟用,多分類情形一般使用softmax進行啟用。
說到relu函式一般是說的其一般表示式: re
lu(x
)=ma
x(x,
0)r el
u(x)
=max
(x,0
)其函式影象也很簡單了,大於0的分布就是一條直線,小於0的分布那就是y=
0 y=
0的水平直線。
relu函式在最近的幾年中是最廣泛使用的啟用函式原因首先是它是非線性的,也就意味著反向傳播演算法可用。而relu乙個非常好的特性是它不會同時啟用所有的神經元。這是什麼意思呢?從上面的圖中我們可以看到relu的圖形,在輸入是負值的情況下,它會輸出0,那麼神經元就不會被啟用。這意味著同一時間只有部分神經元會被啟用,從而使得網路很稀疏,進而對計算來說是非常有效率的。
在進行反向傳播的時候,輸入值小於0對應的神經元是不會被更新的,相當於是死的,不會被啟用。
通過上面的影象可以看到relu函式在輸入小於0的時候,對應的神經元是不能被啟用的。為了解決該問題,提出了relu這一族的函式,其大體思想可以使用下面的函式進行概括: f(
x)={
x,ax
,x > 0
x<= 0
f (x
)={x
,x > 0ax
,x<= 0
該函式是google大腦團隊提出了乙個新的啟用函式。其函式定義式為: sw
ish(
x)=x
⋅sig
moid
(x)=
x1+e
−xs wi
sh(x
)=x⋅
sigm
oid(
x)=x
1+e−
x其函式影象為:
團隊的測試結果表明該函式在很多模型都優於relu。
從影象上來看,swish函式跟relu差不多,唯一區別較大的是接近於0的負半軸區域。其實這個啟用函式跟facebook提出的glu啟用函式是類似的。
講了如上的啟用函式,在實際的運用過程中如何使用?並沒有特定的規則。但是根據這些函式的特徵,可以總結乙個比較好的使用規律或者使用經驗,使得網路可以更加容易且更快的收斂。
1. sigmoid函式以及它們的聯合通常在分類器的中有更好的效果
2. 由於梯度崩塌的問題,在某些時候需要避免使用sigmoid和tanh啟用函式
3. relu函式是一種常見的啟用函式,在目前使用是最多的
4. 如果遇到了一些死的神經元,我們可以使用leaky relu函式
5. 記住,relu永遠只在隱藏層中使用
6. 根據經驗,我們一般可以從relu啟用函式開始,但是如果relu不能很好的解決問題,再去嘗試其他的啟用函式
7. 如果使用 relu,要小心設定 learning rate,注意不要讓網路出現很多 「dead」 神經元,如果不好解決,可以試試 leaky relu、prelu 或者 maxout.
the activation function in deep learning **深度學習中的啟用函式
深度學習基礎——啟用函式以及什麼時候該使用啟用函式
常用啟用函式比較
常見啟用函式整理
啟用函式的飽和 定義 x趨向於正無窮或者負無窮時,函式導數趨近於0,此時稱為飽和 飽和啟用函式 sigmod tanh 非飽和啟用函式 relu leaky relu gelu 給神經網路引入非線性元素,使神經網路可以完成非線性對映。如果不使用啟用函式,無論神經網路有多少層,都只是線性組合而已。si...
什麼是啟用函式?常用的啟用函式
啟用函式是神經網路中的重要一環,也是神經網路之所以能叫 神經網路 的原因。初中應該就學過關於神經元的知識了。神經系統的結構和功能的基本單位是神經元,神經元的基本結構包括細胞體和突起兩部分神經元的功能是神經元接受刺激並能產生興奮 神經衝動 並能把興奮傳導到其它的神經元。也就是說其作用主要有三個 接受刺...
啟用函式作用
在神經網路結構中,通過啟用函式將非線性的特性引入到神經網路中,從而讓神經網路可以理解 處理複雜的資料及問題。通常啟用函式的形式可以寫成 y f x 這裡的 x 是啟用函式f 的輸入,y 是 x經過啟用函式變換得到的輸出。通過f 將原來的輸入 x 對映成為另外一種形式表達y。通常在神經網路結構中常用的...