2022年常用激活函數(shù)_第1頁
2022年常用激活函數(shù)_第2頁
2022年常用激活函數(shù)_第3頁
2022年常用激活函數(shù)_第4頁
2022年常用激活函數(shù)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

常用激活函數(shù)〔鼓勵函數(shù))理解與總結(jié)

引言

學習神經(jīng)網(wǎng)絡(luò)的時候我們總是聽到激活函數(shù)這個詞,而且很多資料都會提到常用

的激活函數(shù),比方Sigmoid函數(shù)、tanh函數(shù)、Relu函數(shù)。那么我們就來詳細

了解下激活函數(shù)方方面面的知識。本文的內(nèi)容包含幾個局部:

1.什么是激活函數(shù)?

2.激活函數(shù)的用途〔為什么需要激活函數(shù)〕?

3.有哪些激活函數(shù),都有什么性質(zhì)和特點?

4.應(yīng)用中如何選擇適宜的激活函數(shù)?

如果你對以上幾個問題不是很清楚,下面的內(nèi)容對你是有價值的。

什么是激活函數(shù)?

首先要了解神經(jīng)網(wǎng)絡(luò)的根本模型?!膊皇煜さ耐瑢W請去看本人其它一篇介紹:A

工神經(jīng)網(wǎng)絡(luò)根本原理〕

單一神經(jīng)元模型如下列圖所示。

激活函數(shù)

f(z)

神經(jīng)網(wǎng)絡(luò)中的每個神經(jīng)元節(jié)點接受上一層神經(jīng)元的輸出值作為本神經(jīng)元的輸入

值,并將輸入值傳遞給下一層,輸入層神經(jīng)元節(jié)點會將輸入屬性值直接傳遞給下

一層〔隱層或輸出層〕。在多層神經(jīng)網(wǎng)絡(luò)中,上層節(jié)點的輸出和下層節(jié)點的輸入

之間具有一個函數(shù)關(guān)系,這個函數(shù)稱為激活函數(shù)〔又稱鼓勵函數(shù)〕。

激活函數(shù)的用途〔為什么需要激活函數(shù)〕?

如果不用鼓勵函數(shù)〔其實相當于鼓勵函數(shù)是f(x)=X〕,在這種情況下你每一層

節(jié)點的輸入都是上層輸出的線性函數(shù),很簡單驗證,無論你神經(jīng)網(wǎng)絡(luò)有多少層,

輸出都是輸入的線性組合,與沒有隱藏層效果相當,這種情況就是最原始的感知

機(Perceptron]了,那么網(wǎng)絡(luò)的逼近能力就相當有限。正因為上面的原因,

我們決定引入非線性函數(shù)作為鼓勵函數(shù),這樣深層神經(jīng)網(wǎng)絡(luò)表達能力就更強化大

〔不再是輸入的線性組合,而是幾乎可以逼近任意函數(shù)〕。

有哪些激活函數(shù),都有什么性質(zhì)和特點?

早期研究神經(jīng)網(wǎng)絡(luò)主要采納sigmoid函數(shù)或者tanh函數(shù),輸出有界,很簡單充

當下一層的輸入。

近些年Relu函數(shù)及其改良型〔如Leaky-ReLU、P-ReLU、R-ReLU等〕在多層

神經(jīng)網(wǎng)絡(luò)中應(yīng)用比擬多。下面我們來總結(jié)下這些激活函數(shù):

Sigmoid函數(shù)

Sigmoid是常用的非線性的激活函數(shù),它的數(shù)學形式如下:

f(z)=ii+e-zf(z)=\frac{1}{l+eA{-z}}./(z)=l+e-zl

Sigmoid的幾何圖像如下:

特點:

它能夠把輸入的連續(xù)實值變換為0和1之間的輸出,特別的,如果是非常大的

負數(shù),那么輸出就是0;如果是非常大的正數(shù),輸出就是1.

缺點:

sigmoid函數(shù)曾經(jīng)被使用的很多,不過近年來,用它的人越來越少了。主要是因

為它固有的一些缺點。

缺點1:在深度神經(jīng)網(wǎng)絡(luò)中梯度反向傳遞時導(dǎo)致梯度爆炸和梯度消逝,其中梯度

爆炸發(fā)生的概率非常小,而梯度消逝發(fā)生的概率比擬大。首先來看Sigmoid函

數(shù)的導(dǎo)數(shù),如下列圖所示:

Derivativeofsigmoidfunction

Z

如果我們初始化神經(jīng)網(wǎng)絡(luò)的權(quán)值為0,1]0,1]0,1]之間的隨機值,由反向傳播算

法的數(shù)學推導(dǎo)可知,梯度從后向前傳播時,每傳遞一層梯度值都會減小為原來的

0.25倍,如果神經(jīng)網(wǎng)絡(luò)隱層特別多,那么梯度在穿過多層后將變得非常小接近

于0,即出現(xiàn)梯度消逝現(xiàn)象;當網(wǎng)絡(luò)權(quán)值初始化為(1,+8)(1,+8)(1,+8)區(qū)間

內(nèi)的值,則會出現(xiàn)梯度爆炸情況。

詳細數(shù)學分析見文章::〃neuralnetworksanddeeplearninq

/chap5.html中文譯文:深度神經(jīng)網(wǎng)絡(luò)為何很難訓練

缺點2:Sigmoid的output不是0均值〔即zero-centered]。這是不可取

的,因為這會導(dǎo)致后一層的神經(jīng)元將得到上一層輸出的非0均值的信號作為輸入。

產(chǎn)生的一個結(jié)果就是:如x>0,f=WTx+bx>O,\f=wATx+bx>0,f=wrx+b,

那么對w求局部梯度則都為正,這樣在反向傳播的過程中w要么都往正方向更

新,要么都往負方向更新,導(dǎo)致有一種捆綁的效果,使得收斂緩慢。當然了,

如果按batch去訓練,那么那個batch可能得到不同的信號,所以這個問題還

是可以緩解一下的。因此,非0均值這個問題雖然會產(chǎn)生一些不好的影響,不過

跟上面提到的梯度消逝問題相比還是要好很多的。

缺點3:其解析式中含有幕運算,計算機求解時相對來講比擬耗時。對于規(guī)模比

擬大的深度網(wǎng)絡(luò),這會較大地增加訓練時間。

tanh函數(shù)

tanh函數(shù)解析式:

tanh(x)=ex-e-xex+e-xtanh(x)=\frac{eA{x)-eA{-x}}{eA{x}+eA{-x}}tanh(x

)=ex+e-xex—e-x

tanh函數(shù)及其導(dǎo)數(shù)的幾何圖像如下列圖:

tanh(x)dtanh(x)/dx

tanh讀作HyperbolicTangent,它解決了Sigmoid函數(shù)的不是zero-centered

輸出問題,然而,梯度消逝(gradientvanishing]的問題和幕運算的問題仍舊

存在。

Relu函數(shù)

Relu函數(shù)的解析式:

Relu=max(O,x)Relu=max(O,x)Re/〃=/xax(O,%)

Relu函數(shù)及其導(dǎo)數(shù)的圖像如下列圖所示:

ReLU(x)dReLU(x)/dx

ReLU函數(shù)其實就是一個取最大值函數(shù),注意這并不是全區(qū)間可導(dǎo)的,但是我們

可以取sub-gradient,如上圖所示。ReLU雖然簡單,但卻是近幾年的重要成

果,有以下幾大優(yōu)點:

1]解決了gradientvanishing問題(在正區(qū)間)

2]計算速度非??欤恍枰茢噍斎胧欠翊笥?

3]收斂速度遠快于sigmoid和tanh

ReLU也有幾個需要特別注意的問題:

1]ReLU的輸出不是zero-centered

2]DeadReLUProblem,指的是某些神經(jīng)元可能永遠不會被激活,導(dǎo)致相應(yīng)

的參數(shù)永遠不能被更新。有兩個主要原因可能導(dǎo)致這種情況產(chǎn)生:(1)非常不幸

的參數(shù)初始化,這種情況比擬少見⑵learningrate太高導(dǎo)致在訓練過程中參

數(shù)更新太大,不幸使網(wǎng)絡(luò)進入這種狀態(tài)。解決方法是可以采納Xavier初始化方

法,以及防止將learningrate設(shè)置太大或使用adagrad等自動調(diào)節(jié)learning

rate的算法。

盡管存在這兩個問題,ReLU目前仍是最常用的activationfunction,在搭建

人工神經(jīng)網(wǎng)絡(luò)的時候推舉優(yōu)先嘗試!

LeakyReLU函數(shù)(PReLU)

函數(shù)表達式:f(x)=max(ax,x)f(x)=max(\alphax,x)/(%)=maNox#

LeakyRelu函數(shù)及其導(dǎo)數(shù)的圖像如下列圖所示:

〔有同學在評論中反映下列圖有誤,其實沒有錯誤,左半邊直線斜率非常接近0,

所以看起來像是平的。就不改了,a=0.01\alpha=0.01a=0.01看起來就是這樣

的。感激大家提意見_人〕

人們?yōu)榱私鉀QDeadReLUProblem,提出了將ReLU的前半段設(shè)為ax\alpha

xcu而非0,通常a=0.01\alpha=0.01a=0.01。其它一種直觀的想法是基于參

數(shù)的方法,即ParametricReLU:f(x)=max(ax,x)ParametricReLU:f(x)=

\max(\alphax,x)ParametricReLU:fix)=max(0LxX)<其中a'alphaa

可由方向傳播算法學出來。理論上來講,LeakyReLU有ReLU的全部優(yōu)點,外

加不會有DeadReLU問題,但是在實際操作當中,并沒有完全證明LeakyReLU

總是好于ReLU。

ELU(ExponentialLinearUnits)函數(shù)

函數(shù)表達式:

f(x)={x,a(ex—1),ifx>Ootherwisef(x)=\begin{cases}x,&\text{if}

x>()\\\alpha(eAx-1),&

\text{otherwise}\end{cases}j[x)={x,a(ex-1),ifx>Ootherwise

函數(shù)及其導(dǎo)數(shù)的圖像如下列圖所示:

的d*x)/dx

ELU也是為解決ReLU存在的問題而提出顯然,ELU有ReLU的根本全部優(yōu)點,

以及:

不會有DeadReLU問題

輸出的均值接近0,zero-centered

1

2

它的一個小問題在于計算量稍大。類似于LeakyReLU,理論上雖然好于ReLU,

但在實際使用中目前并沒有好的證據(jù)ELU總是優(yōu)于ReLU。

MaxOut函數(shù)

這個函數(shù)可以參考文章材料《maxoutnetworks》,Maxout是深度學習網(wǎng)絡(luò)

中的一層網(wǎng)絡(luò),就像池化層、卷積層一樣等,我們可以把maxout看成是網(wǎng)絡(luò)

的激活函數(shù)層,我們假設(shè)網(wǎng)絡(luò)某一層的輸入特征向量為:X=[xl,x2,……xd],

也就是我們輸入是d個神經(jīng)元。Maxout隱藏層每個神經(jīng)元的計算公式如下:

hi(x)=maxz可

上面的公式就是maxout隱藏層神經(jīng)元i的計算公式。其中,k就是maxout層

所需要的參數(shù)了,由我們?nèi)藶樵O(shè)定大小。就像dropout一樣,也有自己的參數(shù)

p(每個神經(jīng)元dropout概率),maxout的參數(shù)是ko公式中Z的計算公式為:

權(quán)重w是一個大小為(d,m,k)三維矩陣,b是一個大小為(m,k)的二維矩陣,這兩

個就是我們需要學習的參數(shù)。如果我們設(shè)定參數(shù)k=l,那么這個時候,網(wǎng)絡(luò)就

類似于以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論