青青草原在线视频,亚洲视频无码专区,玖玖爱在线观看视频,国产A级理论片无码免费孕妇做为

當前位置:首頁 > 最新資訊 > 行業(yè)資訊

深度學習必知十大激活函數(shù)

最近在reddit上刷到一張非常形象mó xìng的圖。圖形表達的是深度學習中常用的激活函數(shù)。

那就讓我們來整理一下深度學習中離不開的激活函數(shù)!

激活函數(shù)

激活函數(shù)(Activation Function)是一種添加到人工神經(jīng)網(wǎng)絡中的函數(shù),旨在幫助網(wǎng)絡學習數(shù)據(jù)中的復雜模式。類似于人類大腦中基于神經(jīng)元的模型,激活函數(shù)最終決定了要發(fā)射給下一個神經(jīng)元的內(nèi)容。

在人工神經(jīng)網(wǎng)絡中,一個節(jié)點的激活函數(shù)定義了該節(jié)點在給定的輸入或輸入集合下的輸出。標準的計算機芯片電路可以看作是根據(jù)輸入得到開(1)或關(guān)(0)輸出的數(shù)字電路激活函數(shù)。因此,激活函數(shù)是確定神經(jīng)網(wǎng)絡輸出的數(shù)學方程式,本文概述了深度學習中常見的十種激活函數(shù)及其優(yōu)缺點。

首先我們來了解一下人工神經(jīng)元的工作原理,大致如下:

上述過程的數(shù)學可視化過程如下圖所示:

Sigmoid激活函數(shù)

Sigmoid函數(shù)的圖像看起來像一個S形曲線。函數(shù)表達式如下:

在什么情況下適合使用Sigmoid激活函數(shù)呢?

Sigmoid函數(shù)的輸出范圍是0到1。由于輸出值限定在0到1,因此它對每個神經(jīng)元的輸出進行了歸一化;

用于將預測概率作為輸出的模型。由于概率的取值范圍是0到1,因此Sigmoid函數(shù)非常合適;

梯度平滑,避免「跳躍」的輸出值;

函數(shù)是可微的。這意味著可以找到任意兩個點的sigmoid曲線的斜率;

明確的預測,即非常接近1或0。

Sigmoid激活函數(shù)有哪些缺點?

傾向于梯度消失;

函數(shù)輸出不是以0為中心的,這會降低權(quán)重更新的效率;

Sigmoid函數(shù)執(zhí)行指數(shù)運算,計算機運行得較慢。

Tanh/雙曲正切激活函數(shù)

tanh激活函數(shù)的圖像也是S形,表達式如下:

tanh是一個雙曲正切函數(shù)。tanh函數(shù)和sigmoid函數(shù)的曲線相對相似。但是它比sigmoid函數(shù)更有一些優(yōu)勢。

首先,當輸入較大或較小時,輸出幾乎是平滑的并且梯度較小,這不利于權(quán)重更新。二者的區(qū)別在于輸出間隔,tanh的輸出間隔為1,并且整個函數(shù)以0為中心,比sigmoid函數(shù)更好;

在tanh圖中,負輸入將被強映射為負,而零輸入被映射為接近零。

注意:在一般的二元分類問題中,tanh函數(shù)用于隱藏層,而sigmoid函數(shù)用于輸出層,但這并不是固定的,需要根據(jù)特定問題進行調(diào)整。

ReLU激活函數(shù)

ReLU激活函數(shù)圖像如上圖所示,函數(shù)表達式如下:

ReLU函數(shù)是深度學習中較為流行的一種激活函數(shù),相比于sigmoid函數(shù)和tanh函數(shù),它具有如下優(yōu)點:

當輸入為正時,不存在梯度飽和問題。

計算速度快得多。ReLU函數(shù)中只存在線性關(guān)系,因此它的計算速度比sigmoid和tanh更快。

當然,它也有缺點:

Dead ReLU問題。當輸入為負時,ReLU完全失效,在正向傳播過程中,這不是問題。有些區(qū)域很敏感,有些則不敏感。但是在反向傳播過程中,如果輸入負數(shù),則梯度將完全為零,sigmoid函數(shù)和tanh函數(shù)也具有相同的問題;

我們發(fā)現(xiàn)ReLU函數(shù)的輸出為0或正數(shù),這意味著ReLU函數(shù)不是以0為中心的函數(shù)。

Leaky ReLU

它是一種專門設計用于解決Dead ReLU問題的激活函數(shù):

ReLU vs Leaky ReLU

為什么Leaky ReLU比ReLU更好?

Leaky ReLU通過把x的非常小的線性分量給予負輸入(0.01x)來調(diào)整負值的零梯度(zero gradients)問題;

leak有助于擴大ReLU函數(shù)的范圍,通常a的值為0.01左右;

Leaky ReLU的函數(shù)范圍是(負無窮到正無窮)。

注意:從理論上講,Leaky ReLU具有ReLU的所有優(yōu)點,而且Dead ReLU不會有任何問題,但在實際操作中,尚未完全證明Leaky ReLU總是比ReLU更好。

ELU

ELU vs Leaky ReLU vs ReLU

ELU的提出也解決了ReLU的問題。與ReLU相比,ELU有負值,這會使激活的平均值接近零。均值激活接近于零可以使學習更快,因為它們使梯度更接近自然梯度。

顯然,ELU具有ReLU的所有優(yōu)點,并且:

沒有Dead ReLU問題,輸出的平均值接近0,以0為中心;

ELU通過減少偏置偏移的影響,使正常梯度更接近于單位自然梯度,從而使均值向零加速學習;

ELU在較小的輸入下會飽和至負值,從而減少前向傳播的變異和信息。

一個小問題是它的計算強度更高。與Leaky ReLU類似,盡管理論上比ReLU要好,但目前在實踐中沒有充分的證據(jù)表明ELU總是比ReLU好。

PReLU(Parametric ReLU)

PReLU也是ReLU的改進版本:

看一下PReLU的公式:參數(shù)α通常為0到1之間的數(shù)字,并且通常相對較小。

如果a_i=0,則f變?yōu)镽eLU

如果a_i>0,則f變?yōu)閘eaky ReLU

如果a_i是可學習的參數(shù),則f變?yōu)镻ReLU

PReLU的優(yōu)點如下:

在負值域,PReLU的斜率較小,這也可以避免Dead ReLU問題。

與ELU相比,PReLU在負值域是線性運算。盡管斜率很小,但不會趨于0。

Softmax

Softmax是用于多類分類問題的激活函數(shù),在多類分類問題中,超過兩個類標簽則需要類成員關(guān)系。對于長度為K的任意實向量,Softmax可以將其壓縮為長度為K,值在(0,1)范圍內(nèi),并且向量中元素的總和為1的實向量。

Softmax與正常的max函數(shù)不同:max函數(shù)僅輸出最大值,但Softmax確保較小的值具有較小的概率,并且不會直接丟棄。我們可以認為它是argmax函數(shù)的概率版本或「soft」版本。

Softmax函數(shù)的分母結(jié)合了原始輸出值的所有因子,這意味著Softmax函數(shù)獲得的各種概率彼此相關(guān)。

Softmax激活函數(shù)的主要缺點是:

在零點不可微;

負輸入的梯度為零,這意味著對于該區(qū)域的激活,權(quán)重不會在反向傳播期間更新,因此會產(chǎn)生永不激活的死亡神經(jīng)元。

Swish

函數(shù)表達式:

Swish的設計受到了LSTM和高速網(wǎng)絡中g(shù)ating的sigmoid函數(shù)使用的啟發(fā)。我們使用相同的gating值來簡化gating機制,這稱為self-gating。

self-gating的優(yōu)點在于它只需要簡單的標量輸入,而普通的gating則需要多個標量輸入。這使得諸如Swish之類的self-gated激活函數(shù)能夠輕松替換以單個標量為輸入的激活函數(shù)(例如ReLU),而無需更改隱藏容量或參數(shù)數(shù)量。

Swish激活函數(shù)的主要優(yōu)點如下:

「無界性」有助于防止慢速訓練期間,梯度逐漸接近0并導致飽和;(同時,有界性也是有優(yōu)勢的,因為有界激活函數(shù)可以具有很強的正則化,并且較大的負輸入問題也能解決);

導數(shù)恒>0;

平滑度在優(yōu)化和泛化中起了重要作用。

Maxout

在Maxout層,激活函數(shù)是輸入的最大值,因此只有2個maxout節(jié)點的多層感知機就可以擬合任意的凸函數(shù)。

單個Maxout節(jié)點可以解釋為對一個實值函數(shù)進行分段線性近似(PWL),其中函數(shù)圖上任意兩點之間的線段位于圖(凸函數(shù))的上方。

Maxout也可以對d維向量(V)實現(xiàn):

假設兩個凸函數(shù)h_1(x)和h_2(x),由兩個Maxout節(jié)點近似化,函數(shù)g(x)是連續(xù)的PWL函數(shù)。

因此,由兩個Maxout節(jié)點組成的Maxout層可以很好地近似任何連續(xù)函數(shù)。

Softplus

Softplus函數(shù):

Softplus的導數(shù)為:

也稱為logistic/sigmoid函數(shù)。

Softplus函數(shù)類似于ReLU函數(shù),但是相對較平滑,像ReLU一樣是單側(cè)抑制。它的接受范圍很廣:(0,+inf)。

猜你喜歡