激活函數Sigmoid

激活函數Sigmoid


  上一節激活函數中已經討論了激活函數的重要性,和大致發展路徑。本文直接討論SIgmoid激活函數,這是比較早的激活函數了,使用也非常廣泛,這個函數又叫Logistic函數,因爲這個激活函數和邏輯迴歸的關係式非常之密切的。
  函數的形式是f(x)=11+exf(x)=\frac{1}{1+e^{-x}},對函數的值域做個分析就知道函數的值域f(x)[0,1]f(x)\in[0,1],函數的輸出被積壓到了[0,1][0,1]之間,所以又叫擠壓函數。函數的圖像如下。

圖片來自網上
  直觀上來看,該激活函數在兩邊無窮大處的收斂了,導函數應該也是收斂於0的。我們來證實一下。
f(x)=(11+ex)=ex(1+ex)2f'(x)= \left ( \frac{1}{1+e^{-x}} \right )'= \frac{e^{-x}}{(1+e^{-x})^2},可以很容易的對這個導函數兩邊向無窮大取極限,得到f(x)=0f'(x)=0,所以兩邊都是飽和的。同時也可以證明該函數是單調遞增函數,單調有界必收斂,收斂也可以說明導函數爲0。
  Sigmoid的特點就是將輸出映射到[0,1]之內,可以和概率輕易對應起來,很容易用來反映二分類結果的概率。事實上邏輯迴歸就是使用sigmoid函數作爲輸出概率的,後面可能會整理邏輯迴歸,同時談一談sigmoid和softmax的關係。但是顯然sigmoid可以和類別概率對應起來,但是也僅僅能和二分類概率對應起來,對於多分類問題無能爲力。
  另一個特點就是反向傳播的計算比較簡單,因爲這個函數有一個特性,f(x)=f(x)(1f(x))f'(x)= f(x)\left( 1-f(x) \right ),根據這個公式可以很快速的計算出反向傳播的導數值。但是這個函數的計算本身就有點不容易,要計算指數還要計算除法。
  還有一點不足之處就是,這個函數由於具有軟飽和性,訓練的時候,對於絕對值較大的數,計算出來的梯度非常小,如果多層的梯度相乘,導致計算出來的最終梯度非常小,使得參數幾乎無法更新,訓練無法正常進行下去,這就是所謂的梯度消失問題
  我們可以從函數圖像很直觀的看到,sigmoid函數是不以0爲中心的,對所有的參數求導後,發現值是同正同負的,使得所有的參數更新時,只能朝一個方向,這樣梯度下降的時候,下降的不夠自由,就只能Z字形下降,會減慢收斂速度,具體的細節請大家自行研究。

系列文章:

神經網絡中的激活函數總述
sigmoid激活函數
tanh激活函數
ReLU系列激活函數
maxout激活函數
Swish激活函數
激活函數發展的新里程——EvoNorms

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章