1. 程式人生 > >CNN學習筆記:激活函數

CNN學習筆記:激活函數

說明 param 情況 cnn fall 並且 輸入 inf oid

CNN學習筆記:激活函數

激活函數

   使用一個神經網絡時,需要決定使用哪種激活函數用隱藏層上,哪種用在輸出節點上。

  在神經網路的前向傳播中,技術分享圖片這兩步會使用到sigmoid函數。sigmoid函數在這裏被稱為激活函數。

sigmoid函數

  之前在線性回歸中,我們用過這個函數,使我們的輸出值平滑地處於0~1之間。

  技術分享圖片

說明:除非輸出層是一個二分類問題否則基本不會用它。

雙曲正切函數

  tanh函數是sigmoid的向下平移和伸縮後的結果。對它進行了變形後,穿過了原點,並且值域介於+1和-1之間。

  技術分享圖片

  結果表明,如果在隱藏層上使用函數tanh效果總是優於sigmoid

函數。因為函數值域在-1和+1的激活函數,其均值是更接近零均值的。在訓練一個算法模型時,如果使用tanh函數代替sigmoid函數中心化數據,使得數據的平均值更接近0而不是0.5.

說明:tanh是非常優秀的,幾乎適合所有場合

修正線性單元的函數(ReLu

  sigmoid函數與雙曲正切函數都有一個共同的問題,在Z特別大或者特別小的情況下,導致梯度或者函數的斜率變得特別小,最後就會接近於0,導致降低梯度下降的速度。

  線性整流函數(Rectified Linear Unit, ReLU),又稱修正線性單元, 是一種人工神經網絡中常用的激活函數(activation function),通常指代以斜坡函數及其變種為代表的非線性函數。

  技術分享圖片

  

  Relu作為神經元的激活函數,定義了該神經元在線性變換 技術分享圖片之後的非線性輸出結果。換言之,對於進入神經元的來自上一層神經網絡的輸入向量技術分享圖片,使用線性整流激活函數的神經元會輸出技術分享圖片至下一層神經元或作為整個神經網絡的輸出(取決現神經元在網絡結構中所處位置)。

  只要是WTX+b正值的情況下,導數恒等於1,當WTX+b是負值的時候,導數恒等於0。從實際上來說,當使用的導數時,WTX+b=0的導數是沒有定義的。

選擇激活函數的經驗法則:

  如果輸出是0、1值(二分類問題),則輸出層選擇sigmoid函數,然後其它的所有單元都選擇Relu函數。

  最常用的默認函數,,如果不確定用哪個激活函數,就使用ReLu

或者Leaky ReLu

帶泄露線性整流函數(Leaky ReLU)

  在輸入值 為負的時候,帶泄露線性整流函數(Leaky ReLU)的梯度為一個常數 技術分享圖片,而不是0。在輸入值為正的時候,帶泄露線性整流函數和普通斜坡函數保持一致。

  技術分享圖片

  在深度學習中,如果設定 技術分享圖片 為一個可通過反向傳播算法(Backpropagation)學習的變量,那麽帶泄露線性整流又被稱為參數線性整流(Parametric ReLU)

CNN學習筆記:激活函數