激活函數(shù),就是使得神經(jīng)網(wǎng)絡(luò)具有的擬合非線(xiàn)性函數(shù)的能力,使得其具有強(qiáng)大的表達(dá)能力! 關(guān)于激活函數(shù),首先要搞清楚的問(wèn)題是,激活函數(shù)是什么,有什么用?不用激活函數(shù)可不可以?答案是不可以。 一、激活函數(shù)1.1 什么是激活函數(shù):在多層神經(jīng)網(wǎng)絡(luò)中,上層節(jié)點(diǎn)的輸出和下層節(jié)點(diǎn)的輸入之間具有一個(gè)函數(shù)關(guān)系,這個(gè)函數(shù)稱(chēng)為激活函數(shù)(又稱(chēng)激勵(lì)函數(shù))。具體來(lái)說(shuō),神經(jīng)網(wǎng)絡(luò)中的每個(gè)神經(jīng)元節(jié)點(diǎn)接受上一層神經(jīng)元的輸出值作為本神經(jīng)元的輸入值,并將輸入值傳遞給下一層,輸入層神經(jīng)元節(jié)點(diǎn)會(huì)將輸入屬性值直接傳遞給下一層(隱層或輸出層)。 如下圖,在神經(jīng)元中,輸入的 inputs 通過(guò)加權(quán),求和后,還被作用了一個(gè)函數(shù),這個(gè)函數(shù)就是激活函數(shù) Activation Function。 1.2 那么激活函數(shù)應(yīng)該具有什么樣的性質(zhì)呢?可微性: 當(dāng)優(yōu)化方法是基于梯度的時(shí)候,這個(gè)性質(zhì)是必須的。 單調(diào)性: 當(dāng)激活函數(shù)是單調(diào)的時(shí)候,單層網(wǎng)絡(luò)能夠保證是凸函數(shù)。 輸出值的范圍: 當(dāng)激活函數(shù)輸出值是 有限 的時(shí)候,基于梯度的優(yōu)化方法會(huì)更加 穩(wěn)定,因?yàn)樘卣鞯谋硎臼苡邢迿?quán)值的影響更顯著;當(dāng)激活函數(shù)的輸出是 無(wú)限 的時(shí)候,模型的訓(xùn)練會(huì)更加高效,不過(guò)在這種情況小,一般需要更小的learning rate。從目前來(lái)看,常見(jiàn)的激活函數(shù)多是分段線(xiàn)性和具有指數(shù)形狀的非線(xiàn)性函數(shù)。 1.3 激活函數(shù)的用途(為什么需要激活函數(shù))?如果不用激勵(lì)函數(shù)(其實(shí)相當(dāng)于激勵(lì)函數(shù)是f(x) = x),在這種情況下你每一層節(jié)點(diǎn)的輸入都是上層輸出的線(xiàn)性函數(shù),很容易驗(yàn)證,無(wú)論你神經(jīng)網(wǎng)絡(luò)有多少層,輸出都是輸入的線(xiàn)性組合,與沒(méi)有隱藏層效果相當(dāng),這種情況就是最原始的感知機(jī)(Perceptron)了,那么網(wǎng)絡(luò)的逼近能力就相當(dāng)有限。正因?yàn)樯厦娴脑?,我們決定引入非線(xiàn)性函數(shù)作為激勵(lì)函數(shù),這樣深層神經(jīng)網(wǎng)絡(luò)表達(dá)能力就更加強(qiáng)大(不再是輸入的線(xiàn)性組合,而是幾乎可以逼近任意函數(shù))。 二、有哪些常見(jiàn)的激活函數(shù),都有什么性質(zhì)和特點(diǎn)?激活函數(shù)可以分為兩大類(lèi) :
相對(duì)于飽和激活函數(shù),使用“非飽和激活函數(shù)”的優(yōu)勢(shì)在于兩點(diǎn): 在深度學(xué)習(xí)中,比較常用的激活函數(shù)主要有:sigmoid函數(shù)、tanh函數(shù)、ReLU函數(shù)和softmax函數(shù)。下面我們將具體介紹。 2.1 Sigmoid函數(shù)Sigmoid 是以前最常用的非線(xiàn)性的激活函數(shù),它能夠是把輸入的 (-∞,+∞)范圍內(nèi) 連續(xù)實(shí)值變換為0和1之間的輸出,特別的,如果是非常大的負(fù)數(shù),那么輸出就是0;如果是非常大的正數(shù),輸出就是1。 此外,(0, 1) 的輸出還可以被表示作概率,或用于輸入的歸一化,代表性的如Sigmoid交叉熵?fù)p失函數(shù)。 公式: 函數(shù)曲線(xiàn): 缺點(diǎn):sigmoid函數(shù)曾經(jīng)被使用的很多,不過(guò)近年來(lái),用它的人越來(lái)越少了。主要是因?yàn)樗逃械囊恍┤秉c(diǎn)。 缺點(diǎn)1:在深度神經(jīng)網(wǎng)絡(luò)中梯度反向傳遞時(shí)導(dǎo)致梯度爆炸和梯度消失,其中梯度爆炸發(fā)生的概率非常小,而梯度消失發(fā)生的概率比較大。 缺點(diǎn)2:Sigmoid 的 output 不是0均值(即zero-centered)。這是不可取的,因?yàn)檫@會(huì)導(dǎo)致后一層的神經(jīng)元將得到上一層輸出的非0均值的信號(hào)作為輸入。 缺點(diǎn)3:其解析式中含有冪運(yùn)算,計(jì)算機(jī)求解時(shí)相對(duì)來(lái)講比較耗時(shí)。對(duì)于規(guī)模比較大的深度網(wǎng)絡(luò),這會(huì)較大地增加訓(xùn)練時(shí)間。 2.2 tanh函數(shù)Hyperbolic tangent function 雙曲正切函數(shù),將一個(gè) (-∞,+∞)范圍內(nèi) 實(shí)值輸入壓縮至 [-1, 1]的范圍,這類(lèi)函數(shù)具有平滑和漸近性,并保持單調(diào)性。 它解決了Sigmoid函數(shù)的不是zero-centered輸出問(wèn)題,與sigmoid相比,它的輸出均值是0,使得其收斂速度要比sigmoid快,減少迭代次數(shù),然而,梯度消失(gradient vanishing)的問(wèn)題和冪運(yùn)算的問(wèn)題仍然存在。 公式: 實(shí)際上是Sigmoid的變形,tanh(z)=2Sigmoid(2x)-1 曲線(xiàn): tanh函數(shù)也稱(chēng)為雙切正切函數(shù),取值范圍為[-1,1]。 2.3 Relu函數(shù)Rectified Linear Unit(ReLU) 修正線(xiàn)性單元- 用于隱層神經(jīng)元輸出, 深度學(xué)習(xí)目前最常用的激活函數(shù),是一種分段線(xiàn)性函數(shù),彌補(bǔ)了sigmoid函數(shù)以及tanh函數(shù)的梯度消失問(wèn)題。 公式: 輸入信號(hào) <0 時(shí),輸出都是0,>0 的情況下,輸出等于輸入 曲線(xiàn):Relu函數(shù)及其導(dǎo)數(shù)的圖像 ReLU函數(shù)其實(shí)就是一個(gè)取最大值函數(shù),注意這并不是全區(qū)間可導(dǎo)的,但是我們可以取sub-gradient,如上圖所示。 ReLU雖然簡(jiǎn)單,但卻是近幾年的重要成果,有以下幾大優(yōu)點(diǎn): 1) 解決了gradient vanishing問(wèn)題 (在正區(qū)間) 2)計(jì)算速度非???,只需要判斷輸入是否大于0 3)使用梯度下降(GD)法時(shí),收斂速度更快 缺點(diǎn): 1)ReLU的輸出不是zero-centered 2)Dead ReLU Problem,指的是某些神經(jīng)元可能永遠(yuǎn)不會(huì)被激活,導(dǎo)致相應(yīng)的參數(shù)永遠(yuǎn)不能被更新。有兩個(gè)主要原因可能導(dǎo)致這種情況產(chǎn)生: (1) 非常不幸的參數(shù)初始化,這種情況比較少見(jiàn) (2) learning rate太高導(dǎo)致在訓(xùn)練過(guò)程中參數(shù)更新太大,不幸使網(wǎng)絡(luò)進(jìn)入這種狀態(tài)。解決方法是可以采用Xavier初始化方法,以及避免將learning rate設(shè)置太大或使用adagrad等自動(dòng)調(diào)節(jié)learning rate的算法。 盡管存在這兩個(gè)問(wèn)題,ReLU目前仍是最常用的activation function,在搭建人工神經(jīng)網(wǎng)絡(luò)的時(shí)候推薦優(yōu)先嘗試! 2.4 Softmax函數(shù)Softmax - 用于多分類(lèi)神經(jīng)網(wǎng)絡(luò)輸出 公式: exp(x) 是表示 的指數(shù)函數(shù)(e 是納皮爾常數(shù) 2.7182 …)。上式表示假設(shè)輸出層共有 n 個(gè)神經(jīng)元,計(jì)算第 k 個(gè)神經(jīng)元的輸出 。如上式所示,softmax 函數(shù)的分子是輸入信號(hào) 的指數(shù)函數(shù),分母是所有輸入信號(hào)的指數(shù)函數(shù)的和。 Softmax函數(shù)是用于多類(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函數(shù)可以將其壓縮為長(zhǎng)度為 K,值在 [0,1] 范圍內(nèi),并且向量中元素的總和為 1 的實(shí)向量。 Softmax激活函數(shù)的特點(diǎn):
此篇博客學(xué)習(xí)和部分引用以下優(yōu)秀博客: 機(jī)器學(xué)習(xí)(九):激活函數(shù) - 知乎 各種激活函數(shù)_狼刀流的博客-CSDN博客_激活函數(shù) 激活函數(shù)之softmax函數(shù)_小嘿黑15斤的博客-CSDN博客_softmax激活函數(shù) 機(jī)器學(xué)習(xí)中的數(shù)學(xué)——激活函數(shù)(七):Softmax函數(shù)_von Neumann的博客-CSDN博客_softmax激活函數(shù) 如有遺漏,可聯(lián)系我修正,謝謝~ |
|
來(lái)自: univasity > 《編程開(kāi)發(fā)》