啟用函式是什麼?
啟用函式, 即activation function, 有時候也稱作激勵函式. 提到啟用函式,就不得不先說一下神經網路.
神經網路中最基本的成分是神經元(neuron)模型, 每個神經元與其他神經元相連.如果某神經元的電位超過了乙個'閾值'(threshold), 那麼它就會被啟用, 即'興奮'起來.當它'興奮'時就會向相連的神經元傳送化學物質,從而改變這些神經元內的電位.
下圖是乙個簡單的神經元模型
它接收n個輸入x1, x2, ... ,xn. 並為每個輸入賦予乙個權重w1, w2, ... ,wn. b是偏置引數(可以理解為為了更好的達到目標而做調整的引數),數學公式為:
神經元接受了多個輸入後,還會通過乙個函式對輸入資訊進行非線性變換,最終得到輸出. 這個函式就是啟用函式
可以說深度網路就是模擬生物神經網路, 那麼深度學習裡的啟用函式就是模仿這種神經元的'啟用方式'
為什麼使用啟用函式?
使用啟用函式的最主要目的是引入非線性. 我們知道線性模型有如下特性
啟用函式對輸入進行非線性變換, 這樣深層網路才能有意義, 能夠處理複雜任務
啟用函式使反向傳播成為可能, 因為啟用函式的誤差梯度可以用來調整權重和偏差
有哪些啟用函式?
sigmoid函式
sigmoid函式是經典的啟用函式,此函式是乙個擠壓函式,公式如圖
由圖可見其取值範圍為[0,1].當z是非常大的正數時, g(z)會趨近於1;而z是非常大的負數時,則g(z)會趨近於0
微分形式簡單,可以用自身表示. 公式如下
缺點:tanh函式(雙曲正切函式)
tanh函式是sigmoid函式的一種變體,此函式是乙個擠壓函式, 公式如圖:
取值範圍為[-1,1]
優點:
缺點:
softmax函式
softmax函式也是一種sigmoid函式
softmax用於多分類過程中, 它將多個神經元的輸出對映到(0,1)區間內,可以理解成概率,從而來進行多分類. 其定義為:
舉個例子來看公式:
通過上圖可以看到,softmax直白來說就是將原來輸出是3,1,-3通過softmax函式一作用,就對映成為(0,1)的值,而這些值的累和為1(滿足概率的性質),那麼我們就可以將它理解成概率,在最後選取輸出結點的時候,我們就可以選取概率最大(也就是值對應最大的)結點,作為我們的**目標
softmax函式最好在分類器的輸出層使用
relu函式(rectified linear unit)
近幾年非常受歡迎的啟用函式,輸入訊號 <0 時, 輸出都是0; >0 的情況下, 輸出等於輸入
優點:relu 的缺點是: 它在訓練時比較脆弱並且可能'死掉'
leaky relu函式
leaky relu函式是relu函式的改良版本,ε代表負區間上的斜率. 一般ε=0.01
當輸入訊號為負時, leaky relu則是給出乙個很小的負數梯度值,比如 0.01. 這樣負軸資訊不會全部丟失, 解決了relu神經元'死掉'的問題
實際用的真的不多, 其效果還有待驗證
prelu函式
prelu函式是leaky relu函式的改良版本,把負區間上的斜率(ε)當做每個神經元中的乙個引數來訓練
該啟用函式在在不同任務中表現的效果也沒有特別清晰
maxout函式
maxout將啟用函式變成乙個網路選擇器, 可以將它看做是在深度網路中加入一層啟用函式'層'
這一層的特殊之處在於增加了k個神經元並列地放在一起, 然後計算出k個啟用值.
從輸出結果中選擇最大的值, 這個最大值代表對特徵相應最敏感
然後取這個神經元的結果參與後面的運算.
公式如下:
下圖是單個神經元和maxout網路的對比(k=3):
為什麼要這樣做呢? 神經元的作用類似神經細胞, 不同的神經元會因為輸入的不同而產生不同的輸出,即不同的細胞關心的訊號不同.
依賴於這個原理,現在的做法就是相當於同時將多個神經元放在一起,哪個效果更好就用哪個,所以這樣的網路會有更好的擬合效果
優點:缺點:
如何選擇啟用函式?
深度學習之啟用函式詳解
啟用函式是什麼 啟用函式,即activation function,有時候也稱作激勵函式。它是為了解決線性不可分的問題引出的。但是也不是說線性可分就不能用啟用函式,也是可以的。它的目的是為了使資料更好的展現出我們想要的效果。啟用函式在 用?比如乙個神經網路 為了更清晰的表示,我用紅色標出。比如像上面...
深度學習之啟用函式
sigmoid啟用函式 sigmoid將乙個實數輸入對映到 0,1 範圍內,如下圖 左 所示。使用sigmoid作為啟用函式存在以下幾個問題 梯度飽和。當函式啟用值接近於0或者1時,函式的梯度接近於0。在反向傳播計算梯度過程中 l w l t l 1 f z l 每層殘差接近於0,計算出的梯度也不可...
深度學習之啟用函式
啟用函式 activate function 在神經元中非常重要,為了增強網路的表示能力和學習能力,啟用函式需要具備以下幾點性質 1 連續並可導的非線性函式,以便於利用數值優化的方法來學習網路引數。2 啟用函式及其導數要盡可能簡單,以提高網路計算的效率。3 啟用函式的導函式的值域要在乙個合適的區間內...