本文主要是回答激活函數(shù)的使用
我們認識的激活函數(shù)中sigmoid、ReLU等,今天就是要講解一下這些函數(shù)的一些性質(zhì)
激活函數(shù)通常有一些性質(zhì):
非線性:當(dāng)激活函數(shù)是線性的時候,一個兩層的神經(jīng)網(wǎng)絡(luò)就可以基本逼近所有的函數(shù),但是,如果激活函數(shù)是恒等激活函數(shù)的時候,就不滿足這個性質(zhì)了,而且如果MLP使用的是恒等激活函數(shù),那么其實整個網(wǎng)絡(luò)跟單層神經(jīng)網(wǎng)絡(luò)是等價的
可微性:當(dāng)優(yōu)化方法是基于梯度的時候,這個性質(zhì)是必須的
單調(diào)性:當(dāng)激活函數(shù)是單調(diào)的時候,這個性質(zhì)是必須的
f(x)≈x:當(dāng)激活函數(shù)滿足這個性質(zhì)的時候,如果參數(shù)的初始化是random的很小的值,那么神經(jīng)網(wǎng)絡(luò)的訓(xùn)練將會很高效;如果不滿足這個性質(zhì),那么就需要很用心的去設(shè)置初始值
輸出值的范圍:當(dāng)激活函數(shù)輸出值是有限的時候,基于梯度的優(yōu)化方法會更加穩(wěn)定,因為特征的表示,當(dāng)激活函數(shù)的輸出是無限的時候,模型訓(xùn)練會更加的高效,不過在這種情況很小,一般需要一個更小的學(xué)習(xí)率
Sigmoid函數(shù)

Sigmoid是常用的激活函數(shù),它的數(shù)學(xué)形式是這樣,

當(dāng)如果是非常大的負數(shù)或者正數(shù)的時候,梯度非常小,接近為0,如果你的初始值是很大的話,大部分神經(jīng)元都出在飽和的情況,會導(dǎo)致很難學(xué)習(xí)
還有就是Sigmoid的輸出,不是均值為0為的平均數(shù),如果數(shù)據(jù)進入神經(jīng)元的時候是正的(e.g.x>0elementwise inf=wTx+b),那么w計算出的梯度也會始終都是正的。
當(dāng)然了,如果你是按batch去訓(xùn)練,那么那個batch可能得到不同的信號,所以這個問題還是可以緩解一下的。因此,非0均值這個問題雖然會產(chǎn)生一些不好的影響
tanh
和Sigmoid函數(shù)很像,不同的是均值為0,實際上是Sigmoid的變形
數(shù)學(xué)形式

與Sigmoid不同的是,tanh是均值為0
ReLU
今年來,ReLU貌似用的很多
數(shù)學(xué)形式

ReLU的優(yōu)點
相比較其他的,ReLU的收斂速度會比其他的方法收斂速度快的多
ReLU只需要一個閾值就可以得到激活值,而不用去算一大堆復(fù)雜的運算
也有一個很不好的缺點:就是當(dāng)非常大的梯度流過一個 ReLU 神經(jīng)元,更新過參數(shù)之后,這個神經(jīng)元再也不會對任何數(shù)據(jù)有激活現(xiàn)象了,所以我們在訓(xùn)練的時候都需要設(shè)置一個比較合適的較小的學(xué)習(xí)率
Leaky-ReLU、P-ReLU、R-ReLU

數(shù)學(xué)形式
f(x)=x,(x>=0)
這里的α是一個很小的常數(shù)。這樣,即修正了數(shù)據(jù)分布,又保留了一些負軸的值,使得負軸信息不會全部丟失

自己在寫神經(jīng)網(wǎng)絡(luò)算法的時候還沒嘗試過這個激活函數(shù),有興趣的同學(xué)可以試試效果
對于 Leaky ReLU 中的α,通常都是通過先驗知識人工賦值的。
然而可以觀察到,損失函數(shù)對α的導(dǎo)數(shù)我們是可以求得的,可不可以將它作為一個參數(shù)進行訓(xùn)練呢?
不僅可以訓(xùn)練,而且效果更好。
如何去選擇
目前業(yè)界人都比較流行ReLU,
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4825瀏覽量
106755 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4405瀏覽量
66801
原文標題:BP神經(jīng)網(wǎng)絡(luò)常用激活函數(shù)
文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
激活函數(shù)ReLU的理解與總結(jié)
sigmoid函數(shù)波形
多輸出Plateaued函數(shù)的密碼學(xué)性質(zhì)
Sigmoid函數(shù)的擬合法分析及其高效處理
ReLU到Sinc的26種神經(jīng)網(wǎng)絡(luò)激活函數(shù)可視化大盤點
13種神經(jīng)網(wǎng)絡(luò)激活函數(shù)
一些人會懷疑:難道神經(jīng)網(wǎng)絡(luò)不是最先進的技術(shù)?
PyTorch已為我們實現(xiàn)了大多數(shù)常用的非線性激活函數(shù)
在PyTorch中使用ReLU激活函數(shù)的例子
Dynamic ReLU:根據(jù)輸入動態(tài)確定的ReLU

激活函數(shù)中sigmoid、ReLU等函數(shù)的一些性質(zhì)
評論