激活函數activation function

整理時參考:
https://blog.csdn.net/u011630575/article/details/78063641
http://www.javashuo.com/article/p-udutvmuw-kt.html
https://blog.csdn.net/bbbeoy/article/details/78835496
一是什麼: 在人工神經網絡的神經元上運行的函數,負責將神經元的輸入映射到輸出端。
二目的: 引入激活函數是爲了增加神經網絡模型的非線性。沒有激活函數的每層都相當於矩陣相乘。就算你疊加了若干層之後,無非還是個矩陣相乘罷了。
三幾種激活函數
1.linear fucntion:一條直線 step fucntion:階梯型
2.maxout
這裏寫圖片描述
w的shape=dxmxk,
d表示輸入層節點的個數,
m表示隱藏層節點的個數,
k表示隱藏層中這k個節點都是線性輸出的,而maxout的每個節點就是取這k個節點輸出值中最大的那個值。(每k個輸出一個最大的)
maxout的擬合能力是非常強的,它可以擬合任意的的凸函數。
3.dropout:減少過擬合
dropout的思想是訓練整體深度神經網絡,並平均整個集合的結果,而不是訓練單個深度神經網絡。網絡是以概率P捨棄部分神經元,其它神經元以概率q=1-p被保留,捨去的神經元的輸出都被設置爲零。
下圖來自https://blog.csdn.net/bbbeoy/article/details/78835496
這裏寫圖片描述
4.sigmoid
公式:這裏寫圖片描述
優點:輸出映射在(0,1)內,單調連續,非常適合用作輸出層,並且求導比較容易;
缺點:具有軟飽和性,一旦輸入落入飽和區,一階導數就變得接近於0,很容易產生梯度消失。
飽和性:當|x|>c時,其中c爲某常數,此時一階導數等於0,通俗的說一階導數就是上圖中的斜率,函數越來越水平。
5.softmax
公式:這裏寫圖片描述
如果某一個 zj 大過其他 z, 那這個映射的分量就逼近於 1,其他就逼近於 0.
softmax是sigmoid的擴展,因爲,當類別數 k=2 時,softmax 迴歸退化爲 logistic 迴歸。
分類問題時 sigmoid 和 softmax 是一樣的,求的都是 cross entropy loss,而 softmax 可以用於多分類問題.
6.tanh爲雙曲正切
公式: 這裏寫圖片描述 tanh函數也具有軟飽和性。因爲它的輸出是以0爲中心,收斂速度比sigmoid函數要快。但是仍然無法解決梯度消失問題。 7.relu f(x)=max(0,x) relu在x<0時是硬飽和。 由於當x>0時一階導數爲1。所以,relu函數在x>0時可以保持梯度不衰減,從而緩解梯度消失問題,還可以更快的去收斂。 但是,隨着訓練的進行,部分輸入會落到硬飽和區,導致對應的權重無法更新。我們稱之爲「神經元死亡」。 8.leaky relu leakrelu函數是relu激活函數的改進版本,解決部分輸入會落到硬飽和區,導致對應的權重無法更新的問題。