深度激活工具(激活函數(shù)的作用)
導(dǎo)讀
數(shù)字邏輯電路中的門(mén)電路可以使?jié)M足不同條件的輸入信號(hào)輸出導(dǎo)通(1)或截止(0)。這反映在機(jī)器學(xué)習(xí)中感知器的性質(zhì)中。但我們也知道感知器有一個(gè)局限性,那就是它無(wú)法表示單層的非線性變化,而神經(jīng)網(wǎng)絡(luò)往往通過(guò)激活函數(shù)來(lái)表示非線性變化。也就是說(shuō),激活函數(shù)的作用是引入非線性。神經(jīng)元輸出
神經(jīng)元的輸出信號(hào)由激活函數(shù)o=f()得處理后,得到得輸出,如圖所示給出
性質(zhì)
激活函數(shù)是滿足非線性和連續(xù)性的幾乎可微函數(shù)。
常見(jiàn)激活函數(shù)
乙狀結(jié)腸;正切;ReLU;LReLU、PReLU、RReLU;ELU(指數(shù)線性單位);軟加;軟簽名、軟最大;米什;格魯
Sigmoid函數(shù)
Sigmoid函數(shù)得到了廣泛的應(yīng)用,也是非常經(jīng)典的邏輯函數(shù)。sigmoid函數(shù)定義為:
該函數(shù)對(duì)應(yīng)的圖像為:
優(yōu)點(diǎn):1.Sigmoid函數(shù)的輸出映射在(0,1)之間,單調(diào)連續(xù),輸出范圍有限,優(yōu)化穩(wěn)定,可以用作輸出層。2.求導(dǎo)容易。
缺點(diǎn):1.由于其軟飽和性,容易產(chǎn)生梯度消失,導(dǎo)致訓(xùn)練出現(xiàn)問(wèn)題。2.其輸出并不是以0為中心的。
tanh函數(shù)
該函數(shù)位于區(qū)間[-1,1]內(nèi),對(duì)應(yīng)的圖像為:
優(yōu)點(diǎn):1.比Sigmoid函數(shù)收斂速度更快。2.相比Sigmoid函數(shù),其輸出以0為中心。缺點(diǎn):還是沒(méi)有改變Sigmoid函數(shù)的最大問(wèn)題——由于飽和性產(chǎn)生的梯度消失。
sigmoid函數(shù)可以很容易地應(yīng)用在訓(xùn)練過(guò)程中。然而,當(dāng)你要處理分類問(wèn)題時(shí),它們就無(wú)能為力了。簡(jiǎn)單來(lái)說(shuō),sigmoid函數(shù)只能處理兩類,不適合多分類問(wèn)題。所以softmax可以有效解決這個(gè)問(wèn)題。并且很多情況下在深井網(wǎng)路神經(jīng)網(wǎng)絡(luò)的最后一層使用softmax函數(shù),使得取值范圍在0到1之間,而不是二元分類。
ReLU
ReLU是近年來(lái)非常流行的激活函數(shù)。定義為
對(duì)應(yīng)的圖像是:
優(yōu)點(diǎn):1.相比起Sigmoid和tanh,ReLU在SGD中能夠快速收斂。
2.Sigmoid和tanh涉及許多昂貴的運(yùn)算(例如指數(shù)),而ReLU可以更簡(jiǎn)單地實(shí)現(xiàn)。3.有效緩解梯度消失問(wèn)題。4.即使沒(méi)有無(wú)監(jiān)督的預(yù)訓(xùn)練也能取得更好的性能。
5.提供神經(jīng)網(wǎng)絡(luò)的稀疏表達(dá)能力。
缺點(diǎn):隨著訓(xùn)練的進(jìn)行,可能會(huì)出現(xiàn)神經(jīng)元死亡,權(quán)重?zé)o法更新的情況。如果發(fā)生這種情況,那么流經(jīng)神經(jīng)元的梯度從這一點(diǎn)開(kāi)始將永遠(yuǎn)是0。也就是說(shuō),ReLU神經(jīng)元在訓(xùn)練中不可逆地死亡了。
LReLU、PReLU和RReLU
通常在LReLU和PReLU中,我們將激活函數(shù)定義為:
LReLU當(dāng)ai比較小而且固定的時(shí)候,我們稱之為L(zhǎng)ReLU。LReLU最初的目的是為了避免梯度消失。但在一些實(shí)驗(yàn)中,我們發(fā)現(xiàn)LReLU對(duì)準(zhǔn)確率并沒(méi)有太大的影響。很多時(shí)候,當(dāng)我們想要應(yīng)用LReLU時(shí),我們必須要非常小心謹(jǐn)慎地重復(fù)訓(xùn)練,選取出合適的a,LReLU的表現(xiàn)出的結(jié)果才比ReLU好。因此有人提出了一種自適應(yīng)地從數(shù)據(jù)中學(xué)習(xí)參數(shù)的PReLU。
PReLUPReLU是LReLU的改進(jìn),可以自適應(yīng)地從數(shù)據(jù)中學(xué)習(xí)參數(shù)。PReLU具有收斂速度快、錯(cuò)誤率低的特點(diǎn)。PReLU可以用于反向傳播的訓(xùn)練,可以與其他層同時(shí)優(yōu)化。
ELUs
ELU是ReLU激活函數(shù)的演變,使激活函數(shù)更能夠維持抗噪聲狀態(tài)。因此,提出一個(gè)具有負(fù)值的激活函數(shù),它可以使平均激活接近于零,但它會(huì)使具有較小參數(shù)的負(fù)激活函數(shù)ELU飽和。ELUs激活函數(shù)的公式為0的指數(shù)線性單元(ELU)如下所示
ELU通過(guò)將輸入x本身取為正值區(qū)間(x0區(qū)間的導(dǎo)數(shù)處處為1)來(lái)緩解梯度彌散問(wèn)題。所有四個(gè)激活函數(shù)都共享此功能。四者中,只有ReLU的輸出值沒(méi)有負(fù)值,因此輸出的均值會(huì)大于0。當(dāng)激活值的均值非0時(shí),會(huì)對(duì)下一層造成偏差。如果激活值不相互抵消(即均值非0),這將導(dǎo)致下一層的激活單元產(chǎn)生偏差。以這種方式疊加時(shí),單元越多,偏置偏移就越大。與ReLU相比,ELU可以取負(fù)值,這使得單元激活均值更接近于0,類似于BatchNormalization的效果,但需要較低的計(jì)算復(fù)雜度。雖然LReLU和PReLU也都有負(fù)值,但不能保證它們?cè)诜腔顒?dòng)狀態(tài)(即輸入為負(fù)時(shí))對(duì)噪聲具有魯棒性。另一方面,ELU在輸入取較小值時(shí)具有軟飽和特性,提高了對(duì)噪聲的魯棒性。如圖所示,是一個(gè)可調(diào)參數(shù),控制ELU負(fù)部分何時(shí)飽和。
與Relu的區(qū)別:
1.它在x0處的激活值為負(fù)數(shù),導(dǎo)數(shù)不為0。這是一個(gè)很好的性質(zhì),因?yàn)楫?dāng)輸入為負(fù)數(shù)時(shí),ReLU的導(dǎo)數(shù)會(huì)變成0,這會(huì)導(dǎo)致神經(jīng)元死亡的問(wèn)題。ELU對(duì)此進(jìn)行了改進(jìn),并且允許這部分表現(xiàn)出軟飽和,這有助于提高噪聲魯棒性(顯然LReLU對(duì)噪聲很敏感)。
2.所有輸出均值為0ReLU的輸出都可以設(shè)為非負(fù),因此其輸出均值必然為非負(fù),這個(gè)性質(zhì)會(huì)導(dǎo)致網(wǎng)絡(luò)發(fā)生均值漂移(biasshift,也稱為均值漂移)。因此,ReLU在訓(xùn)練一些超深網(wǎng)絡(luò)時(shí)會(huì)出現(xiàn)不收斂的問(wèn)題。
Softplus與Softsign
Softplus定義為
Softplus的倒數(shù)是sigmoid函數(shù)
軟簽名定義為
Softsign曲線和梯度
Mish
直接看Mish的代碼會(huì)更簡(jiǎn)單。簡(jiǎn)單總結(jié)一下,Mish=x*tanh(ln(1+e^x))。
PyTorch的Mish實(shí)現(xiàn):
擴(kuò)展型指數(shù)線性單元激活函數(shù)(SELU)
擴(kuò)展指數(shù)線性單元激活函數(shù)比較新,介紹它的論文包含90頁(yè)的附錄(包括定理和證明等)。實(shí)際應(yīng)用該激活函數(shù)時(shí),必須使用lecun_normal進(jìn)行權(quán)重初始化。如果你想應(yīng)用dropout,你應(yīng)該使用AlphaDropout。下面的代碼部分將進(jìn)行更詳細(xì)的介紹。論文作者計(jì)算了公式的兩個(gè)值:和;如下:
正如您所看到的,為了保證絕對(duì)精度,它們的小數(shù)點(diǎn)后有很多位。它們是預(yù)先確定的,這意味著我們不必?fù)?dān)心為此激活函數(shù)選擇正確的值。說(shuō)實(shí)話,這個(gè)公式看起來(lái)和其他公式或多或少有些相似。所有新的激活函數(shù)看起來(lái)都像是其他現(xiàn)有激活函數(shù)的組合。SELU的公式如下:
也就是說(shuō),如果輸入值x大于0,則輸出值為x乘以;如果輸入值x小于0,則會(huì)得到奇異函數(shù)——,該函數(shù)隨著x的增大而增大,并接近x為0時(shí)的值0.0848。本質(zhì)上,當(dāng)x小于0時(shí),乘以x值的指數(shù),減去,然后乘以值。
SELU功能圖。
GELU
高斯誤差線性單元激活函數(shù)用于最近的Transformer模型(Google的BERT和OpenAI的GPT-2)。GELU論文是2016年的,但最近才引起關(guān)注。該激活函數(shù)的形式為:
可以看出,這是某些函數(shù)(例如雙曲正切函數(shù)tanh)和近似數(shù)值的組合。沒(méi)什么好說(shuō)的。有趣的是這個(gè)函數(shù)的圖表:
GELU激活函數(shù)。
可見(jiàn),當(dāng)x大于0時(shí),輸出為x;除了從x=0到x=1的區(qū)間外,此時(shí)曲線更傾向于y軸。我無(wú)法找到這個(gè)函數(shù)的導(dǎo)數(shù),所以我使用WolframAlpha來(lái)微分該函數(shù)。結(jié)果如下:
和以前一樣,這是雙曲函數(shù)的另一種組合。但它的圖形看起來(lái)很有趣:
微分GELU激活函數(shù)。
優(yōu)勢(shì):
好像是目前NLP領(lǐng)域最好的;尤其是在Transformer模型中表現(xiàn)最好;它可以避免梯度消失問(wèn)題??偨Y(jié)
見(jiàn)下圖
相關(guān)資訊
- 大連中考數(shù)學(xué)2016(2021年大連市中考數(shù)學(xué))
- 中考?jí)狠S二次函數(shù)解題技巧(中考?jí)狠S二次函數(shù)題)
- 江蘇中考數(shù)學(xué)知識(shí)點(diǎn)總結(jié)(江蘇中考數(shù)學(xué)知識(shí)點(diǎn)占比)
- 中考數(shù)學(xué)套路技巧(中考數(shù)學(xué)套路問(wèn)題)
- 寧化一中2020年中考分?jǐn)?shù)線(寧化一中初中部招生分?jǐn)?shù)2021)
- 指數(shù)函數(shù)及其性質(zhì)視頻講解(高中數(shù)學(xué)指數(shù)函數(shù)及其性質(zhì))
- 河南中考數(shù)學(xué)知識(shí)點(diǎn)占比(河南中考數(shù)學(xué)知識(shí)點(diǎn)總結(jié))
- 新人教a版高一數(shù)學(xué)必修1目錄(2020高一數(shù)學(xué)高中必修第一冊(cè)人教新版課堂講解視頻)