日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

6 种激活函数核心知识点,请务必掌握!

發(fā)布時間:2025/3/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6 种激活函数核心知识点,请务必掌握! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

點擊上方“AI有道”,選擇“置頂公眾號”

關(guān)鍵時刻,第一時間送達(dá)!

我們知道,神經(jīng)網(wǎng)絡(luò)模型中,各隱藏層、包括輸出層都需要激活函數(shù)(Activation Function)。我們比較熟悉的、常用的激活函數(shù)也有 ReLU、Sigmoid 等等。但是,對于各個激活函數(shù)的選取方法、區(qū)別特點還有幾點需要特別注意的地方。今天紅色石頭就和大家一起來總結(jié)一下常用激活函數(shù) Sigmoid、tanh、ReLU、Leaky ReLU、ELU、Maxout 的關(guān)鍵知識點。

1

為什么需要激活函數(shù)

神經(jīng)網(wǎng)絡(luò)單個神經(jīng)元的基本結(jié)構(gòu)由線性輸出 Z 和非線性輸出 A 兩部分組成。如下圖所示:

其中,f(x) 即為線性輸出 Z,g(x) 即為非線性輸出,g() 表示激活函數(shù)。通俗來說,激活函數(shù)一般是非線性函數(shù),其作用是能夠給神經(jīng)網(wǎng)絡(luò)加入一些非線性因素,使得神經(jīng)網(wǎng)絡(luò)可以更好地解決較為復(fù)雜的問題。

舉個簡單的例子,二分類問題,如果不使用激活函數(shù),例如使用簡單的邏輯回歸,只能作簡單的線性劃分,如下圖所示:

如果使用激活函數(shù),則可以實現(xiàn)非線性劃分,如下圖所示:

可見,激活函數(shù)能夠幫助我們引入非線性因素,使得神經(jīng)網(wǎng)絡(luò)能夠更好地解決更加復(fù)雜的問題。

有個問題,為什么激活函數(shù)一般都是非線性的,而不能是線性的呢?從反面來說,如果所有的激活函數(shù)都是線性的,則激活函數(shù) g(z)=z,即 a=z。那么,以兩層神經(jīng)網(wǎng)絡(luò)為例,最終的輸出為:

經(jīng)過推導(dǎo)我們發(fā)現(xiàn)網(wǎng)絡(luò)輸出仍是 X 的線性組合。這表明,使用神經(jīng)網(wǎng)絡(luò)與直接使用線性模型的效果并沒有什么兩樣。即便是包含多層隱藏層的神經(jīng)網(wǎng)絡(luò),如果使用線性函數(shù)作為激活函數(shù),最終的輸出仍然是線性模型。這樣的話神經(jīng)網(wǎng)絡(luò)就沒有任何作用了。因此,隱藏層的激活函數(shù)必須要是非線性的。

值得一提的是,如果所有的隱藏層全部使用線性激活函數(shù),只有輸出層使用非線性激活函數(shù),那么整個神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)就類似于一個簡單的邏輯回歸模型,效果與單個神經(jīng)元無異。另外,如果是擬合問題而不是分類問題,輸出層的激活函數(shù)可以使用線性函數(shù)。

2

Sigmoid

激活函數(shù) Sigmoid 的圖形表達(dá)式如下所示:

Sigmoid 函數(shù)的取值范圍在 (0,1) 之間,單調(diào)連續(xù),求導(dǎo)容易,一般用于二分類神經(jīng)網(wǎng)絡(luò)的輸出層。

下面重點談一下 Sigmoid 函數(shù)的缺點。

首先,Sigmoid 函數(shù)飽和區(qū)范圍廣,容易造成梯度消失。飽和區(qū)如下圖所示:

上圖中紅色橢圓標(biāo)注的飽和區(qū)曲線平緩,梯度的值很小,近似為零。而且 Sigmoid 函數(shù)的飽和區(qū)范圍很廣,例如除了 [-5,5],其余區(qū)域都近似飽和區(qū)。這種情況很容易造成梯度消失,梯度消失會增大神經(jīng)網(wǎng)絡(luò)訓(xùn)練難度,影響神經(jīng)網(wǎng)絡(luò)模型的性能。

其次,Sigmoid 函數(shù)輸出是非零對稱的,即輸出恒大于零。這會產(chǎn)生什么影響呢?我們來看,假如 Sigmoid 函數(shù)的輸出為 σ(Wx+b),且滿足 0<σ(Wx+b)<1。在反向求導(dǎo)過程中,令損失函數(shù) J 對?σ(Wx+b) 的求導(dǎo)為 dσ,現(xiàn)在計算 J 對 W 的偏導(dǎo)數(shù):

其中,σ(Wx+b)>0,1-σ(Wx+b)>0。

若神經(jīng)元的輸入 x>0,則無論?dσ 正負(fù)如何,總能得到 dW 恒為正或者恒為負(fù)。也就是說參數(shù)矩陣 W 的每個元素都會朝著同一個方向變化,同為正或同為負(fù)。這對于神經(jīng)網(wǎng)絡(luò)訓(xùn)練是不利的,所有的 W 都朝著同一符號方向變化會減小訓(xùn)練速度,增加模型訓(xùn)練時間。就好比我們下樓梯的所需的時間總比直接滑梯下來的時間要長得多,如下圖所示:

圖中,紅色折線是上文討論的情況,藍(lán)色斜線是 W 不全朝同一方向變化的情況。

值得一提的是,針對 Sigmoid 函數(shù)的這一問題,神經(jīng)元的輸入 x 常會做預(yù)處理,即將均值歸一化到零值。這樣也能有效避免?dW 恒為正或者恒為負(fù)。

最后還有一點,Sigmoid 函數(shù)包含 exp 指數(shù)運算,運算成本也比較大。

3

tanh

激活函數(shù) tanh 的圖形表達(dá)式如下所示:

tanh 函數(shù)的取值范圍在 (-1,1) 之間,單調(diào)連續(xù),求導(dǎo)容易。

相比于 Sigmoid 函數(shù),tanh 函數(shù)的優(yōu)點主要有兩個:其一,收斂速度更快,如下圖所示,tanh 函數(shù)線性區(qū)斜率較 Sigmoid 更大一些。在此區(qū)域內(nèi)訓(xùn)練速度會更快。其二,tanh 函數(shù)輸出均值為零,也就不存在 Sigmoid 函數(shù)中?dW 恒為正或者恒為負(fù),從而影響訓(xùn)練速度的問題。

但是,tanh 函數(shù)與 Sigmoid 函數(shù)一樣,也存在飽和區(qū)梯度消失問題。其飽和區(qū)甚至比 Sigmoid 還要大一些,但不明顯。

4

ReLU

激活函數(shù) ReLU 的全稱是?Rectified Linear Unit,其圖形表達(dá)式如下所示:

ReLU 函數(shù)是最近幾年比較火熱的激活函數(shù)之一。相比 Sigmoid 和 tanh 函數(shù),其主要優(yōu)點包括以下幾個方面:

  • 沒有飽和區(qū),不存在梯度消失問題。

  • 沒有復(fù)雜的指數(shù)運算,計算簡單、效率提高。

  • 實際收斂速度較快,大約是 Sigmoid/tanh 的 6 倍。

  • 比 Sigmoid 更符合生物學(xué)神經(jīng)激活機(jī)制。

下面這張圖對比了 ReLU 與 tanh 的收斂速度差異性。數(shù)據(jù)集是 CIFAR 10,模型是四層的卷積神經(jīng)網(wǎng)絡(luò)。圖中,實線代表 ReLU,虛線代表 tanh,ReLU 比 tanh 更快地到達(dá)了錯誤率 0.25 處。(引自論文《ImageNet Classification with Deep Convolutional Neural Networks》)

但是,ReLU 函數(shù)的缺點也比較明顯。首先,ReLU 的輸出仍然是非零對稱的,可能出現(xiàn)?dW 恒為正或者恒為負(fù),從而影響訓(xùn)練速度。

其次,也是最為重要的,當(dāng) x<0 時,ReLU 輸出總為零。該神經(jīng)元輸出為零,則反向傳播時,權(quán)重、參數(shù)的梯度橫為零,造成權(quán)重、參數(shù)永遠(yuǎn)不會更新,即造成神經(jīng)元失效,形成了“死神經(jīng)元”。所以,針對這一問題,有時候會將 ReLU 神經(jīng)元初始化為正偏值,例如 0.01。

5

Leaky ReLU

Leaky ReLU 對 ReLU 進(jìn)行了改進(jìn),其圖形表達(dá)式如下所示:

Leaky ReLU 的優(yōu)點與 ReLU 類似:

  • 沒有飽和區(qū),不存在梯度消失問題。

  • 沒有復(fù)雜的指數(shù)運算,計算簡單、效率提高。

  • 實際收斂速度較快,大約是 Sigmoid/tanh 的 6 倍。

  • 不會造成神經(jīng)元失效,形成了“死神經(jīng)元”。

當(dāng)然,0.01 的系數(shù)是可調(diào)的,一般不會太大。

6

ELU

ELU(Exponential Linear Units)也是 ReLU 的一個變種,其圖形表達(dá)式如下所示:

ELU 繼承了 Leaky ReLU 的所有優(yōu)點:

  • 沒有飽和區(qū),不存在梯度消失問題。

  • 沒有復(fù)雜的指數(shù)運算,計算簡單、效率提高。

  • 實際收斂速度較快,大約是 Sigmoid/tanh 的 6 倍。

  • 不會造成神經(jīng)元失效,形成了“死神經(jīng)元”。

  • 輸出均值為零

  • 負(fù)飽和區(qū)的存在使得 ELU 比 Leaky ReLU 更加健壯,抗噪聲能力更強(qiáng)。

但是,ELU 包含了指數(shù)運算,存在運算量較大的問題。

7

Maxout

Maxout 最早出現(xiàn)在 ICML2013 上,由 Goodfellow 提出。其表達(dá)式如下所示:

Maxout 的擬合能力是非常強(qiáng)的,它可以擬合任意的的凸函數(shù)。最直觀的解釋就是任意的凸函數(shù)都可以由分段線性函數(shù)以任意精度擬合,而 Maxout 又是取 k 個隱藏層節(jié)點的最大值,這些”隱藏層"節(jié)點也是線性的,所以在不同的取值范圍下,最大值也可以看做是分段線性的(上面的公式中 k = 2)。

上圖引自論文《Maxout Networks.? Ian J. Goodfellow, David Warde-Farley, Mehdi Mirza, Aaron Courville, Yoshua Bengio》,可以說,Maxout 可以擬合任意凸函數(shù),k 值越大,分段越多,擬合效果也就越好。

Maxout 保證了始終是線性區(qū)域,沒有飽和區(qū),訓(xùn)練速度快,而且不會出現(xiàn)壞死神經(jīng)元。

8

如何選擇合適的激活函數(shù)

1)首選 ReLU,速度快,但是要注意學(xué)習(xí)速率的調(diào)整,

2)如果 ReLU 效果欠佳,嘗試使用 Leaky ReLU、ELU 或 Maxout 等變種。

3)可以嘗試使用 tanh。

4)Sigmoid 和 tanh 在 RNN(LSTM、注意力機(jī)制等)結(jié)構(gòu)中有所應(yīng)用,作為門控或者概率值。其它情況下,減少 Sigmoid 的使用。

5)在淺層神經(jīng)網(wǎng)絡(luò)中,選擇使用哪種激勵函數(shù)影響不大。

推薦閱讀

【干貨】我的機(jī)器學(xué)習(xí)入門路線圖

白話生成對抗網(wǎng)絡(luò) GAN,50 行代碼玩轉(zhuǎn) GAN!

7 種回歸方法!請務(wù)必掌握!

機(jī)器學(xué)習(xí)筆試題精選

機(jī)器學(xué)習(xí)筆試題精選

點擊“閱讀原文”,獲取更多干貨文章!

總結(jié)

以上是生活随笔為你收集整理的6 种激活函数核心知识点,请务必掌握!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。