說明
本文對(duì)深度學(xué)習(xí)中的重要組件——激活函數(shù)做系統(tǒng)性匯總。
了解激活函數(shù)
什么是激活函數(shù)
在神經(jīng)網(wǎng)絡(luò)中凄吏,一個(gè)節(jié)點(diǎn)的激活函數(shù)(Activation Function)定義了該節(jié)點(diǎn)在給定的輸入變量或輸入集合下的輸出。wiki中以計(jì)算機(jī)芯片電路為例成肘,標(biāo)準(zhǔn)的計(jì)算機(jī)芯片電路可以看作是根據(jù)輸入得到開(1)或關(guān)(0)輸出的數(shù)字電路激活函數(shù)帘靡。激活函數(shù)主要用于提升神經(jīng)網(wǎng)絡(luò)解決非線性問題的能力淆攻。激活函數(shù)各式各樣行嗤,各有優(yōu)缺點(diǎn)已日,目前常用的有 ReLU、sigmoid栅屏、tanh等飘千。各個(gè)激活函數(shù)的細(xì)節(jié)詳見下文。
為什么需要激活函數(shù)
當(dāng)不用激活函數(shù)時(shí)既琴,神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏差只會(huì)進(jìn)行線性變換
。線性方程很簡單泡嘴,但是解決復(fù)雜問題的能力有限甫恩。沒有激活函數(shù)的神經(jīng)網(wǎng)絡(luò)實(shí)質(zhì)上就是一個(gè)線性回歸模型
。為了方便理解酌予,以一個(gè)簡單的例子來說明磺箕〗被牛考慮如下網(wǎng)絡(luò)
在不用激活函數(shù)的情況下,該圖可用如下公式表示
實(shí)質(zhì)是的線性方程松靡。
若在隱藏層引入激活函數(shù)简僧,例如令
,那么原始式子就無法用簡單線性方程表示了雕欺。
激活函數(shù)類型
wiki中給出了激活函數(shù)的類型岛马,這里略做歸納
Identity function (恒等函數(shù))
Step function (階躍函數(shù))
Sigmoidal function (S形函數(shù))
Ramp function (斜坡函數(shù))
Binary 和 Bipolar 的區(qū)別應(yīng)該是 Binary(單位)對(duì)應(yīng)值為 0 或 1, Bipolar(兩極)對(duì)應(yīng)值為 -1 或 1
激活函數(shù)的一些特性
非線性(Nonlinear) 當(dāng)激活函數(shù)是非線性的屠列,那么一個(gè)兩層神經(jīng)網(wǎng)絡(luò)也證明是一個(gè)通用近似函數(shù)通用近似理論啦逆。而恒等激活函數(shù)則無法滿足這一特性,當(dāng)多層網(wǎng)絡(luò)的每一層都是恒等激活函數(shù)時(shí)笛洛,該網(wǎng)絡(luò)實(shí)質(zhì)等同于一個(gè)單層網(wǎng)絡(luò)夏志。
輸出值域(Range) 若激活函數(shù)的值域是有限的,因?yàn)閷?duì)權(quán)重的更新影響有限苛让,所以基于梯度的訓(xùn)練方法更穩(wěn)定沟蔑。若值域是無限的,因?yàn)榇蠖鄶?shù)情況下權(quán)重更新更明顯狱杰,所以訓(xùn)練通常更有效瘦材,通常需要設(shè)定較小的學(xué)習(xí)率。
連續(xù)可微(Continuously differentiable) 通常情況下浦旱,當(dāng)激活函數(shù)連續(xù)可微宇色,則可以用基于梯度的優(yōu)化方法。(也有例外颁湖,如ReLU函數(shù)雖不是連續(xù)可微宣蠕,使用梯度優(yōu)化也存在一些問題,如ReLU存在由于梯度過大或?qū)W習(xí)率過大而導(dǎo)致某個(gè)神經(jīng)元輸出小于0甥捺,從而使得該神經(jīng)元輸出始終是0抢蚀,并且無法對(duì)與其相連的神經(jīng)元參數(shù)進(jìn)行更新,相當(dāng)于該神經(jīng)元進(jìn)入了“休眠”狀態(tài)镰禾,參考深度學(xué)習(xí)中皿曲,使用relu存在梯度過大導(dǎo)致神經(jīng)元“死亡”,怎么理解吴侦? - 知乎屋休,但ReLU還是可以使用梯度優(yōu)化的。)二值階躍函數(shù)在0處不可微备韧,并且在其他地方的導(dǎo)數(shù)是零劫樟,所以梯度優(yōu)化方法不適用于該激活函數(shù)。
單調(diào)(Monotonic) 當(dāng)激活函數(shù)為單調(diào)函數(shù)時(shí),單層模型的誤差曲面一定是凸面。即對(duì)應(yīng)的誤差函數(shù)是凸函數(shù),求得的最小值一定是全局最小值商架。
一階導(dǎo)單調(diào)(Smooth functions with a monotonic derivative) 通常情況下骗污,這些函數(shù)表現(xiàn)更好。
原點(diǎn)近似恒等函數(shù)(Approximates identity near the origin) 若激活函數(shù)有這一特性,神經(jīng)網(wǎng)絡(luò)在隨機(jī)初始化較小的權(quán)重時(shí)學(xué)習(xí)更高效。若激活函數(shù)不具備這一特性,初始化權(quán)重時(shí)必須特別小心徐勃。參考machine learning - Why activation functions that approximate the identity near origin are preferable? - Cross Validated
激活函數(shù)速查表
以下是輸入為一個(gè)變量的激活函數(shù)列表,主要參考自 wiki
函數(shù) | 圖形 | 值域 | 連續(xù)性 | 單調(diào) | 一階導(dǎo)單調(diào) | 原點(diǎn)近似恒等 |
---|---|---|---|---|---|---|
Identity(恒等函數(shù)) | 是 | 是 | 是 | |||
Binary step(單位階躍函數(shù)) | 是 | 否 | 否 | |||
Sigmoid(S函數(shù)又稱Logistic邏輯函數(shù)) | 是 | 否 | 否 | |||
TanH(雙曲正切函數(shù)) | 是 | 否 | 是 | |||
ArcTan(反正切函數(shù)) | 是 | 否 | 是 | |||
Softsign函數(shù) | 是 | 否 | 是 | |||
Inverse square root unit(反平方根函數(shù),ISRU) | 是 | 否 | 是 | |||
Inverse square root linear unit(反平方根線性函數(shù),ISRLU) | 是 | 是 | 是 | |||
Square Nonlinearity(平方非線性函數(shù),SQNL) | 是 | 否 | 是 | |||
Rectified linear unit(線性整流函數(shù),ReLU) | 是 | 是 | 否 | |||
Bipolar rectified linear unit(二級(jí)線性整流函數(shù),BReLU) | 是 | 是 | 否 | |||
Leaky rectified linear unit(帶泄露隨機(jī)線性整流函數(shù),Leaky ReLU) | 是 | 是 | 否 | |||
Parameteric rectified linear unit(參數(shù)化線性整流函數(shù),PReLU) | 是 iff |
是 | 是 iff |
|||
Randomized leaky rectified linear unit(帶泄露隨機(jī)線性整流函數(shù),RReLU) | 是 | 是 | 否 | |||
Exponential linear unit(指數(shù)線性函數(shù),ELU) | 是 iff |
是 iff |
是 iff |
|||
Scaled exponential linear unit(擴(kuò)展指數(shù)線性函數(shù),SELU) | 是 | 否 | 否 | |||
S-shaped rectified linear activation unit(S型線性整流激活函數(shù),SReLU) | 否 | 否 | 否 | |||
Adaptive piecewise linear(自適應(yīng)分段線性函數(shù),APL) | 否 | 否 | 否 | |||
SoftPlus函數(shù) | 是 | 是 | 否 | |||
Bent identity(彎曲恒等函數(shù)) | 是 | 是 | 是 | |||
Sigmoid-weighted linear unit (SiLU)[11] (也被稱為Swish[12]) | 否 | 否 | 否 | |||
SoftExponential函數(shù) | 是 | 是 | 是 iff |
|||
Soft Clipping(柔性剪峰函數(shù)) | 是 | 否 | 否 | |||
Sinusoid(正弦函數(shù)) | 否 | 否 | 是 | |||
Sinc函數(shù) | 否 | 否 | 否 | |||
Gaussian(高斯函數(shù)) | 否 | 否 | 否 | |||
Hard Sigmoid(分段近似Sigmoid函數(shù)) | 是 | 否 | 否 | |||
Hard Tanh(分段近似Tanh函數(shù)) | 是 | 否 | 是 | |||
LeCun Tanh(也稱Scaled Tanh,按比例縮放的Tanh函數(shù)) | 是 | 否 | 否 | |||
Symmetrical Sigmoid(對(duì)稱Sigmoid函數(shù)) | 是 | 否 | 否 | |||
Complementary Log Log函數(shù) | 是 | 否 | 否 | |||
Absolute(絕對(duì)值函數(shù)) | 否 | 否 | 否 |
激活函數(shù)詳細(xì)描述
函數(shù)圖形說明
函數(shù)圖形主要取自Visualising Activation Functions in Neural Networks捕发。
左側(cè)藍(lán)線是激活函數(shù)方程式圖形疏旨,黃色是激活函數(shù)一階導(dǎo)圖形。
右側(cè)籃框是對(duì)激活函數(shù)方程式的各項(xiàng)特性描述扎酷,包括:
- Range(激活函數(shù)輸出值域)
- Monotonic(激活函數(shù)是否單調(diào))
- Continuity(激活函數(shù)連續(xù)性類型)
- Identity at Origin(激活函數(shù)在原點(diǎn)處是否近似恒等)
- Symmetry(激活函數(shù)是否對(duì)稱)
右側(cè)黃框是對(duì)激活函數(shù)一階導(dǎo)的各項(xiàng)特性描述檐涝,包括:
- Range(一階導(dǎo)輸出值域)
- Monotonic(一階導(dǎo)是否單調(diào))
- Continuous(一階導(dǎo)是否連續(xù))
- Vanishing Gradient(是否梯度消失:指隨著網(wǎng)絡(luò)向后傳遞,是否存在當(dāng)梯度值過小時(shí)法挨,梯度變化以指數(shù)形式衰減谁榜,直至消失,導(dǎo)致后面的網(wǎng)絡(luò)節(jié)點(diǎn)幾乎無法更新參數(shù))
- Exploding Gradient(是否梯度爆炸:指是否存在當(dāng)梯度值過大凡纳,梯度變化以指數(shù)形式增加窃植,直至爆炸)
- Saturation(飽和:指激活函數(shù)值接近其邊界時(shí),如sigmoid函數(shù)值接近0或1時(shí)荐糜,函數(shù)曲線是否平緩巷怜,過于平緩可能會(huì)導(dǎo)致在向后傳播時(shí)梯度消失)
- Dead Neurons(神經(jīng)元死亡:指在網(wǎng)絡(luò)傳播時(shí),是否會(huì)出現(xiàn)某個(gè)神經(jīng)元永遠(yuǎn)不會(huì)再更新的情況)
Identity(恒等函數(shù))
描述: 一種輸入和輸出相等的激活函數(shù)暴氏,比較適合線性問題延塑,如線性回歸問題。但不適用于解決非線性問題答渔。
方程式:
一階導(dǎo):
圖形:
Binary step(單位階躍函數(shù))
描述: step與神經(jīng)元激活的含義最貼近关带,指當(dāng)刺激超過閾值時(shí)才會(huì)激發(fā)。但是由于該函數(shù)的梯度始終為0沼撕,不能作為深度網(wǎng)絡(luò)的激活函數(shù)
方程式:
一階導(dǎo):
圖形:
Sigmoid(S函數(shù)又稱Logistic邏輯函數(shù))
描述: 使用很廣的一類激活函數(shù)宋雏,具有指數(shù)函數(shù)形狀,在物理意義上最接近生物神經(jīng)元务豺。并且值域在(0,1)之間磨总,可以作為概率表示。該函數(shù)也通常用于對(duì)輸入的歸一化笼沥,如Sigmoid交叉熵?fù)p失函數(shù)蚪燕。Sigmoid激活函數(shù)具有梯度消失和飽和的問題招狸,一般來說,sigmoid網(wǎng)絡(luò)在5層之內(nèi)就會(huì)產(chǎn)生梯度消失現(xiàn)象邻薯。
方程式:
一階導(dǎo):
圖形:
TanH(雙曲正切函數(shù))
描述: TanH與Sigmoid函數(shù)類似,在輸入很大或很小時(shí)乘凸,輸出幾乎平滑厕诡,梯度很小,不利于權(quán)重更新营勤,容易出現(xiàn)梯度消失和飽和的問題灵嫌。不過TanH函數(shù)值域在(-1,1)之間,以0為中心反對(duì)稱葛作,且原點(diǎn)近似恒等寿羞,這些點(diǎn)是加分項(xiàng)。一般二分類問題中赂蠢,隱藏層用tanh函數(shù)绪穆,輸出層用sigmod函數(shù)。
方程式:
一階導(dǎo):
圖形:
ArcTan(反正切函數(shù))
描述: ArcTen從圖形上看類似TanH函數(shù)虱岂,只是比TanH平緩玖院,值域更大。從一階導(dǎo)看出導(dǎo)數(shù)趨于零的速度比較慢第岖,因此訓(xùn)練比較快难菌。
方程式:
一階導(dǎo):
圖形:
Softsign函數(shù)
描述: Softsign從圖形上看也類似TanH函數(shù),以0為中心反對(duì)稱蔑滓,訓(xùn)練比較快郊酒。
方程式:
一階導(dǎo):
圖形:
Inverse square root unit(反平方根函數(shù),ISRU)
描述: 圖形類似于tanH和Sigmoid函數(shù),論文說可作為RNN層的激活函數(shù)键袱,號(hào)稱在RNN層中達(dá)到與tanh和sigmoid一樣效果的情況下燎窘,計(jì)算復(fù)雜度更低。
方程式:
一階導(dǎo):
圖形:
Inverse square root linear unit(反平方根線性函數(shù),ISRLU)
描述: 一個(gè)分段函數(shù)杠纵,小于0部分是ISRU荠耽,大于等于0部分是恒等函數(shù),論文里說這函數(shù)在CNN層上相較于ReLU學(xué)習(xí)更快比藻,更一般化铝量。
方程式:
一階導(dǎo):
圖形:
Square Nonlinearity(平方非線性函數(shù),SQNL)
描述: 類似Softsign的函數(shù),論文摘要中將這個(gè)與Softsign對(duì)比银亲,說該函數(shù)在收斂速度上更快慢叨。
方程式:
一階導(dǎo):
圖形:
Rectified linear unit(線性整流函數(shù),ReLU)
描述: 比較流行的激活函數(shù),該函數(shù)保留了類似step那樣的生物學(xué)神經(jīng)元機(jī)制务蝠,即高于0才激活拍谐,不過因在0以下的導(dǎo)數(shù)都是0,可能會(huì)引起學(xué)習(xí)緩慢甚至神經(jīng)元死亡的情況。
方程式:
一階導(dǎo):
圖形:
Bipolar rectified linear unit(二級(jí)線性整流函數(shù),BReLU)
描述: relu系列的一種激活函數(shù)轩拨,形式很奇怪践瓷,采用mod 2作為條件分段,論文說在個(gè)別場景上能取得更好的效果亡蓉。
方程式:
一階導(dǎo):
圖形:
Leaky rectified linear unit(帶泄露隨機(jī)線性整流函數(shù),Leaky ReLU)
描述: relu的一個(gè)變化晕翠,即在小于0部分不等于0,而是加一個(gè)很小的不為零的斜率砍濒,減少神經(jīng)元死亡帶來的影響淋肾。
方程式:
一階導(dǎo):
圖形:
Parameteric rectified linear unit(參數(shù)化線性整流函數(shù),PReLU)
描述: 也是ReLU的一個(gè)變化,與Leaky ReLU類似爸邢,只不過PReLU將小于零部分的斜率換成了可變參數(shù)α樊卓。這種變化使值域會(huì)依據(jù)α不同而不同。
方程式:
一階導(dǎo):
圖形:
Randomized leaky rectified linear unit(帶泄露隨機(jī)線性整流函數(shù),RReLU)
描述: 在PReLU基礎(chǔ)上將α變成了隨機(jī)數(shù)杠河。參考論文
方程式:
一階導(dǎo):
圖形:
Exponential linear unit(指數(shù)線性函數(shù),ELU)
描述: ELU小于零的部分采用了負(fù)指數(shù)形式碌尔,相較于ReLU權(quán)重可以有負(fù)值,并且在輸入取較小值時(shí)具有軟飽和的特性券敌,提升了對(duì)噪聲的魯棒性七扰。參考ELU激活函數(shù)的提出
方程式:
一階導(dǎo):
圖形:
Scaled exponential linear unit(擴(kuò)展指數(shù)線性函數(shù),SELU)
描述: ELU的一種變化,引入超參λ和α陪白,并給出了相應(yīng)取值颈走,這些取值在原論文中(Self-Normalizing Neural Networks)詳細(xì)推導(dǎo)過程
方程式:
一階導(dǎo):
圖形:
S-shaped rectified linear activation unit(S型線性整流激活函數(shù),SReLU)
描述: 也是ReLU的一種變化,不同的是該函數(shù)有三個(gè)分段咱士,四個(gè)超參數(shù)立由,這種設(shè)置使函數(shù)圖形看起來像S型,具體參考論文序厉。
方程式:
一階導(dǎo):
圖形:
Adaptive piecewise linear(自適應(yīng)分段線性函數(shù),APL)
描述: 原論文表示通過分段為神經(jīng)元學(xué)習(xí)加入自適應(yīng)激活功能锐膜,比ReLU在cifar-10、cifar-100上有更好的性能弛房。
方程式:
一階導(dǎo):
圖形:
SoftPlus函數(shù)
描述: 是ReLU的平滑替代道盏,函數(shù)在任何地方連續(xù)且值域非零,避免了死神經(jīng)元文捶。不過因不對(duì)稱且不以零為中心荷逞,可以影響網(wǎng)絡(luò)學(xué)習(xí)。由于導(dǎo)數(shù)必然小于1粹排,所以也存在梯度消失問題种远。
方程式:
一階導(dǎo):
圖形:
Bent identity(彎曲恒等函數(shù))
描述: 可以理解為identity和ReLU之間的一種折中,不會(huì)出現(xiàn)死神經(jīng)元的問題顽耳,不過存在梯度消失和梯度爆炸風(fēng)險(xiǎn)坠敷。
方程式:
一階導(dǎo):
圖形:
Sigmoid-weighted linear unit (SiLU)
描述: 具體參考論文
方程式:
一階導(dǎo):
圖形:
SoftExponential函數(shù)
描述: 參考論文
方程式:
一階導(dǎo):
圖形:
Soft Clipping(柔性剪峰函數(shù))
描述: 參考論文
方程式:
一階導(dǎo):
圖形:
Sinusoid(正弦函數(shù))
描述: Sinusoid作為激活函數(shù)妙同,為神經(jīng)網(wǎng)絡(luò)引入了周期性,且該函數(shù)處處聯(lián)系膝迎,以零點(diǎn)對(duì)稱粥帚。參考論文
方程式:
一階導(dǎo):
圖形:
Sinc函數(shù)
描述: Sinc函數(shù)在信號(hào)處理中尤為重要,因?yàn)樗碚髁司匦魏瘮?shù)的傅立葉變換限次。作為激活函數(shù)茎辐,它的優(yōu)勢在于處處可微和對(duì)稱的特性,不過容易產(chǎn)生梯度消失的問題掂恕。
方程式:
一階導(dǎo):
圖形:
Gaussian(高斯函數(shù))
描述: 高斯激活函數(shù)不常用。
方程式:
一階導(dǎo):
圖形:
Hard Sigmoid(分段近似Sigmoid函數(shù))
描述: 是Sigmoid函數(shù)的分段線性近似弛槐,更容易計(jì)算懊亡,不過存在梯度消失和神經(jīng)元死亡的問題
方程式:
一階導(dǎo):
圖形:
Hard Tanh(分段近似Tanh函數(shù))
描述: Tanh激活函數(shù)的分段線性近似。
方程式:
一階導(dǎo):
圖形:
LeCun Tanh(也稱Scaled Tanh,按比例縮放的Tanh函數(shù))
描述: Tanh的縮放版本乎串,參考論文
方程式:
一階導(dǎo):
圖形:
Symmetrical Sigmoid(對(duì)稱Sigmoid函數(shù))
描述: 是Tanh的一種替代方法店枣,比Tanh形狀更扁平,導(dǎo)數(shù)更小叹誉,下降更緩慢鸯两。
方程式:
一階導(dǎo):
圖形:
Complementary Log Log函數(shù)
描述: 是Sigmoid的一種替代,相較于Sigmoid更飽和长豁。
方程式:
一階導(dǎo):
圖形:
Absolute(絕對(duì)值函數(shù))
描述: 導(dǎo)數(shù)只有兩個(gè)值钧唐。
方程式:
一階導(dǎo):
圖形:
附錄
Order of continuity(函數(shù)連續(xù)性)
函數(shù)參數(shù)連續(xù)性是個(gè)人的意譯,大概意思應(yīng)該是激活函數(shù)曲線的連續(xù)性類型匠襟。wiki中有對(duì)各個(gè)值的說明钝侠,可參考Order_of_continuity和描述光滑度中對(duì)于曲線、曲面的C0酸舍、C1帅韧、C2和G0、G1啃勉、G2定義和區(qū)別 - chenchen_fcj程序猿的博客 - CSDN博客忽舟,簡單說明如下
: 曲線不連續(xù)
: 曲線本身是連續(xù)的,但不可導(dǎo)
: 曲線一階導(dǎo)是連續(xù)的淮阐,但無法二階導(dǎo)
: 曲線一階導(dǎo)和二階導(dǎo)是連續(xù)的叮阅,但無法三階導(dǎo)
: 曲線一階導(dǎo)到n階導(dǎo)是連續(xù)的,但無法進(jìn)行n+1階導(dǎo)
: 曲線無窮階可導(dǎo)
參考
visualising-activation-functions-in-neural-networks
Activation_function
https://zhuanlan.zhihu.com/p/32824193