0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于深度學(xué)習(xí)最常用的10大激活函數(shù)詳解

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:機(jī)械之心 ? 作者:Sukanya Bag ? 2021-03-12 17:45 ? 次閱讀

今天早上在reddit上刷到一張非常形象mó xìng的圖,

那就讓我們來(lái)整理一下深度學(xué)習(xí)中離不開(kāi)的激活函數(shù)!

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

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

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

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

1. Sigmoid 激活函數(shù)

Sigmoid 函數(shù)的圖像看起來(lái)像一個(gè) S 形曲線。

函數(shù)表達(dá)式如下:

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

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

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

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

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

明確的預(yù)測(cè),即非常接近 1 或 0。

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

傾向于梯度消失;

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

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

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

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

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

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

在 tanh 圖中,負(fù)輸入將被強(qiáng)映射為負(fù),而零輸入被映射為接近零。

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

3. ReLU 激活函數(shù)

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

be0bfc7c-82c5-11eb-8b86-12bb97331649.png

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

當(dāng)輸入為正時(shí),不存在梯度飽和問(wèn)題。

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

當(dāng)然,它也有缺點(diǎn):

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

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

4. Leaky ReLU

它是一種專(zhuān)門(mén)設(shè)計(jì)用于解決 Dead ReLU 問(wèn)題的激活函數(shù):

be21c37c-82c5-11eb-8b86-12bb97331649.png

ReLU vs Leaky ReLU

為什么 Leaky ReLU 比 ReLU 更好?

be62c1a6-82c5-11eb-8b86-12bb97331649.png

Leaky ReLU 通過(guò)把 x 的非常小的線性分量給予負(fù)輸入(0.01x)來(lái)調(diào)整負(fù)值的零梯度(zero gradients)問(wèn)題;

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

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

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

5. ELU

ELU vs Leaky ReLU vs ReLU

ELU 的提出也解決了 ReLU 的問(wèn)題。與 ReLU 相比,ELU 有負(fù)值,這會(huì)使激活的平均值接近零。均值激活接近于零可以使學(xué)習(xí)更快,因?yàn)樗鼈兪固荻雀咏匀惶荻取?/p>

beb1d7b4-82c5-11eb-8b86-12bb97331649.png

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

沒(méi)有 Dead ReLU 問(wèn)題,輸出的平均值接近 0,以 0 為中心;

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

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

一個(gè)小問(wèn)題是它的計(jì)算強(qiáng)度更高。與 Leaky ReLU 類(lèi)似,盡管理論上比 ReLU 要好,但目前在實(shí)踐中沒(méi)有充分的證據(jù)表明 ELU 總是比 ReLU 好。

6. PReLU(Parametric ReLU)

PReLU 也是 ReLU 的改進(jìn)版本:

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

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

如果 a_i》 0,則 f 變?yōu)?leaky ReLU

如果 a_i 是可學(xué)習(xí)的參數(shù),則 f 變?yōu)?PReLU

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

在負(fù)值域,PReLU 的斜率較小,這也可以避免 Dead ReLU 問(wèn)題。

與 ELU 相比,PReLU 在負(fù)值域是線性運(yùn)算。盡管斜率很小,但不會(huì)趨于 0。

7. Softmax

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

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

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

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

在零點(diǎn)不可微;

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

8. Swish

函數(shù)表達(dá)式:y = x * sigmoid (x)

Swish 的設(shè)計(jì)受到了 LSTM 和高速網(wǎng)絡(luò)中 gating 的 sigmoid 函數(shù)使用的啟發(fā)。我們使用相同的 gating 值來(lái)簡(jiǎn)化 gating 機(jī)制,這稱(chēng)為 self-gating。

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

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

「無(wú)界性」有助于防止慢速訓(xùn)練期間,梯度逐漸接近 0 并導(dǎo)致飽和;(同時(shí),有界性也是有優(yōu)勢(shì)的,因?yàn)橛薪缂せ詈瘮?shù)可以具有很強(qiáng)的正則化,并且較大的負(fù)輸入問(wèn)題也能解決);

導(dǎo)數(shù)恒 》 0;

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

9. Maxout

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

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

c0333948-82c5-11eb-8b86-12bb97331649.png

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

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

c0b5edd4-82c5-11eb-8b86-12bb97331649.png

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

10. Softplus

Softplus 函數(shù):f(x)= ln(1 + exp x)

Softplus 的導(dǎo)數(shù)為

f ′(x)=exp(x) / ( 1+exp? x )

= 1/ (1 +exp(?x ))

,也稱(chēng)為 logistic / sigmoid 函數(shù)。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4286

    瀏覽量

    62336
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5471

    瀏覽量

    120903

原文標(biāo)題:深度學(xué)習(xí)最常用的10個(gè)激活函數(shù)!

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    詳解kubectl常用命令

    詳解kubectl常用命令
    的頭像 發(fā)表于 11-05 15:39 ?102次閱讀
    <b class='flag-5'>詳解</b>kubectl<b class='flag-5'>常用</b>命令

    labview常用的基本函數(shù)

    電子發(fā)燒友網(wǎng)站提供《labview常用的基本函數(shù).pdf》資料免費(fèi)下載
    發(fā)表于 10-15 17:29 ?0次下載

    利用Matlab函數(shù)實(shí)現(xiàn)深度學(xué)習(xí)算法

    在Matlab中實(shí)現(xiàn)深度學(xué)習(xí)算法是一個(gè)復(fù)雜但強(qiáng)大的過(guò)程,可以應(yīng)用于各種領(lǐng)域,如圖像識(shí)別、自然語(yǔ)言處理、時(shí)間序列預(yù)測(cè)等。這里,我將概述一個(gè)基本的流程,包括環(huán)境設(shè)置、數(shù)據(jù)準(zhǔn)備、模型設(shè)計(jì)、訓(xùn)練過(guò)程、以及測(cè)試和評(píng)估,并提供一個(gè)基于Matlab的
    的頭像 發(fā)表于 07-14 14:21 ?1810次閱讀

    神經(jīng)元模型激活函數(shù)通常有哪幾類(lèi)

    神經(jīng)元模型激活函數(shù)是神經(jīng)網(wǎng)絡(luò)中的關(guān)鍵組成部分,它們負(fù)責(zé)在神經(jīng)元之間引入非線性,使得神經(jīng)網(wǎng)絡(luò)能夠學(xué)習(xí)和模擬復(fù)雜的函數(shù)映射。以下是對(duì)神經(jīng)元模型激活
    的頭像 發(fā)表于 07-11 11:33 ?780次閱讀

    深度學(xué)習(xí)中的時(shí)間序列分類(lèi)方法

    的發(fā)展,基于深度學(xué)習(xí)的TSC方法逐漸展現(xiàn)出其強(qiáng)大的自動(dòng)特征提取和分類(lèi)能力。本文將從多個(gè)角度對(duì)深度學(xué)習(xí)在時(shí)間序列分類(lèi)中的應(yīng)用進(jìn)行綜述,探討常用
    的頭像 發(fā)表于 07-09 15:54 ?666次閱讀

    前饋神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)和常見(jiàn)激活函數(shù)

    激活函數(shù)的非線性變換,能夠學(xué)習(xí)和模擬復(fù)雜的函數(shù)映射,從而解決各種監(jiān)督學(xué)習(xí)任務(wù)。本文將詳細(xì)闡述前饋神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu),包括其組成層、權(quán)重和偏
    的頭像 發(fā)表于 07-09 10:31 ?507次閱讀

    深度學(xué)習(xí)常用的Python庫(kù)

    深度學(xué)習(xí)常用的Python庫(kù),包括核心庫(kù)、可視化工具、深度學(xué)習(xí)框架、自然語(yǔ)言處理庫(kù)以及數(shù)據(jù)抓取庫(kù)等,并詳細(xì)分析它們的功能和優(yōu)勢(shì)。
    的頭像 發(fā)表于 07-03 16:04 ?528次閱讀

    BP神經(jīng)網(wǎng)絡(luò)激活函數(shù)怎么選擇

    中,激活函數(shù)起著至關(guān)重要的作用,它決定了神經(jīng)元的輸出方式,進(jìn)而影響整個(gè)網(wǎng)絡(luò)的性能。 一、激活函數(shù)的作用 激活
    的頭像 發(fā)表于 07-03 10:02 ?546次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)激活函數(shù)的作用

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNNs)是深度學(xué)習(xí)中一種重要的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),廣泛應(yīng)用于圖像識(shí)別、語(yǔ)音識(shí)別、自然語(yǔ)言處理等領(lǐng)域。在卷積神經(jīng)網(wǎng)絡(luò)中,激活
    的頭像 發(fā)表于 07-03 09:18 ?688次閱讀

    神經(jīng)網(wǎng)絡(luò)中激活函數(shù)的定義及類(lèi)型

    引言 神經(jīng)網(wǎng)絡(luò)是一種模擬人腦神經(jīng)元結(jié)構(gòu)的計(jì)算模型,廣泛應(yīng)用于圖像識(shí)別、自然語(yǔ)言處理、語(yǔ)音識(shí)別等領(lǐng)域。在神經(jīng)網(wǎng)絡(luò)中,激活函數(shù)起著至關(guān)重要的作用,它決定了神經(jīng)元的輸出值,進(jìn)而影響整個(gè)網(wǎng)絡(luò)的性能。本文將
    的頭像 發(fā)表于 07-02 10:09 ?409次閱讀

    深度學(xué)習(xí)模型訓(xùn)練過(guò)程詳解

    詳細(xì)介紹深度學(xué)習(xí)模型訓(xùn)練的全過(guò)程,包括數(shù)據(jù)預(yù)處理、模型構(gòu)建、損失函數(shù)定義、優(yōu)化算法選擇、訓(xùn)練過(guò)程以及模型的評(píng)估與調(diào)優(yōu)。
    的頭像 發(fā)表于 07-01 16:13 ?1031次閱讀

    神經(jīng)網(wǎng)絡(luò)中的激活函數(shù)有哪些

    在神經(jīng)網(wǎng)絡(luò)中,激活函數(shù)是一個(gè)至關(guān)重要的組成部分,它決定了神經(jīng)元對(duì)于輸入信號(hào)的反應(yīng)方式,為神經(jīng)網(wǎng)絡(luò)引入了非線性因素,使得網(wǎng)絡(luò)能夠學(xué)習(xí)和處理復(fù)雜的模式。本文將詳細(xì)介紹神經(jīng)網(wǎng)絡(luò)中常用
    的頭像 發(fā)表于 07-01 11:52 ?478次閱讀

    MATLAB信號(hào)處理常用函數(shù)詳解

    MATLAB是一款功能強(qiáng)大的數(shù)學(xué)軟件,尤其在信號(hào)處理領(lǐng)域,它提供了眾多的函數(shù)和工具箱,使得信號(hào)的分析、處理、仿真變得簡(jiǎn)單而高效。本文將詳細(xì)介紹MATLAB在信號(hào)處理中常用函數(shù),并通過(guò)具體示例來(lái)闡述其應(yīng)用。
    的頭像 發(fā)表于 05-17 14:31 ?1600次閱讀

    PyTorch中激活函數(shù)的全面概覽

    為了更清晰地學(xué)習(xí)Pytorch中的激活函數(shù),并對(duì)比它們之間的不同,這里對(duì)最新版本的Pytorch中的激活函數(shù)進(jìn)行了匯總,主要介紹
    的頭像 發(fā)表于 04-30 09:26 ?490次閱讀
    PyTorch中<b class='flag-5'>激活</b><b class='flag-5'>函數(shù)</b>的全面概覽

    詳解深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用

    在如今的網(wǎng)絡(luò)時(shí)代,錯(cuò)綜復(fù)雜的大數(shù)據(jù)和網(wǎng)絡(luò)環(huán)境,讓傳統(tǒng)信息處理理論、人工智能與人工神經(jīng)網(wǎng)絡(luò)都面臨巨大的挑戰(zhàn)。近些年,深度學(xué)習(xí)逐漸走進(jìn)人們的視線,通過(guò)深度學(xué)習(xí)解決若干問(wèn)題的案例越來(lái)越多。一
    的頭像 發(fā)表于 01-11 10:51 ?1852次閱讀
    <b class='flag-5'>詳解</b><b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>、神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用