激活函數(shù)
神經(jīng)網(wǎng)絡(luò)中使用激活函數(shù)來加入非線性因素, 充分組合特征,提高模型的表達(dá)能力。
?
Sigmoid函數(shù)
?
特點
把輸入的連續(xù)實值變換為0和1之間的輸出
如果是非常大的負(fù)數(shù),那么輸出就是0;如果是非常大的正數(shù),輸出就是1
優(yōu)點
- 輸出映射在(0,1)之間,單調(diào)連續(xù),輸出范圍有限,優(yōu)化穩(wěn)定,可以用作輸出層
- 求導(dǎo)容易
缺點
在深度神經(jīng)網(wǎng)絡(luò)中梯度反向傳遞時導(dǎo)致梯度爆炸和梯度消失,其中梯度爆炸發(fā)生的概率非常小,而梯度消失發(fā)生的概率比較大
其輸出并不是以0為中心
其解析式中含有冪運算,計算耗時
tanh函數(shù)

特點
取值范圍為[-1,1]
tanh在特征相差明顯時的效果會很好,在循環(huán)過程中會不斷擴大特征效果
優(yōu)點
- 比Sigmoid函數(shù)收斂速度更快
- 相比Sigmoid函數(shù),其輸出以0為中心
缺點
- 并沒有改變Sigmoid函數(shù)的最大問題——由于飽和性產(chǎn)生的梯度消失
ReLU

特點
取最大值函數(shù) 用于隱層神經(jīng)元輸出
優(yōu)點
- 解決了gradient vanishing問題 (在正區(qū)間)
- 計算速度非???,只需要判斷輸入是否大于0
- 收斂速度遠(yuǎn)快于sigmoid和tanh
缺點
- ReLU的輸出不是zero-centered
- Dead ReLU Problem,指的是某些神經(jīng)元可能永遠(yuǎn)不會被激活,導(dǎo)致相應(yīng)的參數(shù)永遠(yuǎn)不能被更新
softmax
?

特點
用于多分類神經(jīng)網(wǎng)絡(luò)輸出 如果某一個 zj 大過其他 z, 那這個映射的分量就逼近于 1,其他就逼近于 0
softmax 把一個 k 維的real value向量(a1,a2,a3,a4….)映射成一個(b1,b2,b3,b4….)其中 bi 是一個 0~1 的常數(shù),輸出神經(jīng)元之和為 1.0,所以相當(dāng)于概率值,然后可以根據(jù) bi 的概率大小來進(jìn)行多分類的任務(wù)
優(yōu)點
計算方便 形式簡單
梯度消失與梯度爆炸
淺層的梯度計算需要后面各層的權(quán)重及激活函數(shù)導(dǎo)數(shù)的乘積,因此可能出現(xiàn)前層比后層的學(xué)習(xí)率小(vanishing gradient)或大(exploding)的問題,所以具有不穩(wěn)定性
權(quán)重初始化
使用合適的方式初始化權(quán)重, 如ReLU使用MSRA的初始化方式, tanh使用xavier初始化方式.激活函數(shù)選擇
激活函數(shù)要選擇ReLU等梯度累乘穩(wěn)定的.學(xué)習(xí)率
一種訓(xùn)練優(yōu)化方式是對輸入做白化操作(包括正規(guī)化和去相關(guān)), 目的是可以選擇更大的學(xué)習(xí)率. 現(xiàn)代深度學(xué)習(xí)網(wǎng)絡(luò)中常使用Batch Normalization(包括正規(guī)化步驟,但不含去相關(guān)). (All you need is a good init. If you can't find the good init, use Batch Normalization.)
激活函數(shù)選擇
首先嘗試ReLU,速度快,但要注意訓(xùn)練的狀態(tài).
如果ReLU效果欠佳,嘗試Leaky ReLU或Maxout等變種。
嘗試tanh正切函數(shù)(以零點為中心,零點處梯度為1)
sigmoid/tanh在RNN(LSTM、注意力機制等)結(jié)構(gòu)中有所應(yīng)用,作為門控或者概率值.
在淺層神經(jīng)網(wǎng)絡(luò)中,如不超過4層的,可選擇使用多種激勵函數(shù),沒有太大的影響。