九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
深度學習中的主要激活函數(shù)有哪些?

本文從激活函數(shù)的背景知識開始介紹,重點講解了不同類型的非線性激活函數(shù):Sigmoid、Tanh、ReLU、LReLU、PReLU、Swish,并詳細介紹了這些函數(shù)的優(yōu)缺點。


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

生物神經(jīng)網(wǎng)絡啟發(fā)了人工神經(jīng)網(wǎng)絡的發(fā)展。但是,ANN 并非大腦運作的近似表示。不過在我們了解為什么在人工神經(jīng)網(wǎng)絡中使用激活函數(shù)之前,先了解生物神經(jīng)網(wǎng)絡與激活函數(shù)的相關性是很有用處的。

典型神經(jīng)元的物理結(jié)構(gòu)包括細胞體(cell body)、向其他神經(jīng)元發(fā)送信號的軸突(axon)和接收其他神經(jīng)元發(fā)送的信號或信息的樹突(dendrites)。

生物神經(jīng)網(wǎng)絡

上圖中,紅色圓圈代表兩個神經(jīng)元交流的區(qū)域。神經(jīng)元通過樹突接收來自其他神經(jīng)元的信號。樹突的權(quán)重叫作突觸權(quán)值(synaptic weight),將和接收的信號相乘。來自樹突的信號在細胞體內(nèi)不斷累積,如果信號強度超過特定閾值,則神經(jīng)元向軸突傳遞信息。如未超過,則信號被該神經(jīng)元「殺死」,無法進一步傳播。

激活函數(shù)決定是否傳遞信號。在這種情況下,只需要帶有一個參數(shù)(閾值)的簡單階梯函數(shù)?,F(xiàn)在,當我們學習了一些新的東西(或未學習到什么)時,一些神經(jīng)元的閾值和突觸權(quán)值會發(fā)生改變。這使得神經(jīng)元之間產(chǎn)生新的連接,大腦學會新的東西。

讓我們再次理解這一概念,不過這次要使用人工神經(jīng)元。

上圖中(x_1, ..., x_n)是信號向量,它和權(quán)重(w_1, ..., w_n)相乘。然后再累加(即求和 + 偏置項 b)。最后,激活函數(shù) f 應用于累加的總和。

注意:權(quán)重(w_1, ..., w_n)和偏置項 b 對輸入信號進行線性變換。而激活函數(shù)對該信號進行非線性變換,這使得我們可以任意學習輸入和輸出之間的復雜變換。

過去已經(jīng)出現(xiàn)了很多種函數(shù),但是尋找使神經(jīng)網(wǎng)絡更好更快學習的激活函數(shù)仍然是活躍的研究方向。

2. 神經(jīng)網(wǎng)絡如何學習?

我們有必要對神經(jīng)網(wǎng)絡如何學習有一個基本了解。假設網(wǎng)絡的期望輸出是 y(標注值),但網(wǎng)絡實際輸出的是 y'(預測值)。預測輸出和期望輸出之間的差距(y - y')可以轉(zhuǎn)化成一種度量,即損失函數(shù)(J)。神經(jīng)網(wǎng)絡犯大量錯誤時,損失很高;神經(jīng)網(wǎng)絡犯錯較少時,損失較低。訓練目標就是找到使訓練集上的損失函數(shù)最小化的權(quán)重矩陣和偏置向量。

在下圖中,損失函數(shù)的形狀像一個碗。在訓練過程的任一點上,損失函數(shù)關于梯度的偏導數(shù)是那個位置的梯度。沿偏導數(shù)預測的方向移動,就可以到達谷底,使損失函數(shù)最小化。使用函數(shù)的偏導數(shù)迭代地尋找局部極小值的方法叫作梯度下降。

人工神經(jīng)網(wǎng)絡中的權(quán)重使用反向傳播的方法進行更新。損失函數(shù)關于梯度的偏導數(shù)也用于更新權(quán)重。從某種意義上來說,神經(jīng)網(wǎng)絡中的誤差根據(jù)求導的鏈式法則執(zhí)行反向傳播。這通過迭代的方式來實施,經(jīng)過多次迭代后,損失函數(shù)達到極小值,其導數(shù)變?yōu)?0。

我們計劃在其他文章中介紹反向傳播。這里主要指出的就是訓練過程中出現(xiàn)的求導步驟。

3. 激活函數(shù)的類型

線性激活函數(shù):這是一種簡單的線性函數(shù),公式為:f(x) = x。基本上,輸入到輸出過程中不經(jīng)過修改。

線性激活函數(shù)

非線性激活函數(shù):用于分離非線性可分的數(shù)據(jù),是最常用的激活函數(shù)。非線性方程控制輸入到輸出的映射。非線性激活函數(shù)有 Sigmoid、Tanh、ReLU、LReLU、PReLU、Swish 等。下文中將詳細介紹這些激活函數(shù)。

非線性激活函數(shù)

4. 為什么人工神經(jīng)網(wǎng)絡需要非線性激活函數(shù)?

神經(jīng)網(wǎng)絡用于實現(xiàn)復雜的函數(shù),非線性激活函數(shù)可以使神經(jīng)網(wǎng)絡隨意逼近復雜函數(shù)。沒有激活函數(shù)帶來的非線性,多層神經(jīng)網(wǎng)絡和單層無異。

現(xiàn)在我們來看一個簡單的例子,幫助我們了解為什么沒有非線性,神經(jīng)網(wǎng)絡甚至無法逼近異或門(XOR gate)、同或門(XNOR gate)等簡單函數(shù)。下圖是一個異或門函數(shù)。叉和圈代表了數(shù)據(jù)集的兩個類別。當 x_1、x_2 兩個特征一樣時,類別標簽是紅叉;不一樣,就是藍圈。兩個紅叉對于輸入值 (0,0) 和 (1,1) 都有輸出值 0,兩個藍圈對于輸入值 (0,1) 和 (1,0) 都有輸出值 1。

異或門函數(shù)的圖示

從上圖中,我們可以看到數(shù)據(jù)點非線性可分。也就是說,我們無法畫出一條直線使藍圈和紅叉分開來。因此,我們需要一個非線性決策邊界(non-linear decision boundary)來分離它們。

激活函數(shù)對于將神經(jīng)網(wǎng)絡的輸出壓縮進特定邊界內(nèi)也非常關鍵。神經(jīng)元

的輸出值可以非常大。該輸出在未經(jīng)修改的情況下饋送至下一層神經(jīng)元時,可以被轉(zhuǎn)換成更大的值,這樣過程就需要極大算力。激活函數(shù)的一個任務就是將神經(jīng)元的輸出映射到有界的區(qū)域(如,0 到 1 之間)。

了解這些背景知識之后,我們就可以了解不同類型的激活函數(shù)了。

5. 不同類型的非線性激活函數(shù)

5.1 Sigmoid

Sigmoid又叫作 Logistic 激活函數(shù),它將實數(shù)值壓縮進 0 到 1 的區(qū)間內(nèi),還可以在預測概率的輸出層中使用。該函數(shù)將大的負數(shù)轉(zhuǎn)換成 0,將大的正數(shù)轉(zhuǎn)換成 1。數(shù)學公式為:

下圖展示了 Sigmoid 函數(shù)及其導數(shù):

Sigmoid 激活函數(shù)

Sigmoid 導數(shù)

Sigmoid 函數(shù)的三個主要缺陷:

1. 梯度消失:注意:Sigmoid 函數(shù)趨近 0 和 1 的時候變化率會變得平坦,也就是說,Sigmoid 的梯度趨近于 0。神經(jīng)網(wǎng)絡使用 Sigmoid 激活函數(shù)進行反向傳播時,輸出接近 0 或 1 的神經(jīng)元其梯度趨近于 0。這些神經(jīng)元叫作飽和神經(jīng)元。因此,這些神經(jīng)元的權(quán)重不會更新。此外,與此類神經(jīng)元相連的神經(jīng)元的權(quán)重也更新得很慢。該問題叫作梯度消失。因此,想象一下,如果一個大型神經(jīng)網(wǎng)絡包含 Sigmoid 神經(jīng)元,而其中很多個都處于飽和狀態(tài),那么該網(wǎng)絡無法執(zhí)行反向傳播。

2. 不以零為中心:Sigmoid 輸出不以零為中心的。

3. 計算成本高昂:exp() 函數(shù)與其他非線性激活函數(shù)相比,計算成本高昂。

下一個要討論的非線性激活函數(shù)解決了 Sigmoid 函數(shù)中值域期望不為 0 的問題。

5.2 Tanh

Tanh 激活函數(shù)

Tanh 導數(shù)

Tanh 激活函數(shù)又叫作雙曲正切激活函數(shù)(hyperbolic tangent activation function)。與 Sigmoid 函數(shù)類似,Tanh 函數(shù)也使用真值,但 Tanh 函數(shù)將其壓縮至-1 到 1 的區(qū)間內(nèi)。與 Sigmoid 不同,Tanh 函數(shù)的輸出以零為中心,因為區(qū)間在-1 到 1 之間。你可以將 Tanh 函數(shù)想象成兩個 Sigmoid 函數(shù)放在一起。在實踐中,Tanh 函數(shù)的使用優(yōu)先性高于 Sigmoid 函數(shù)。負數(shù)輸入被當作負值,零輸入值的映射接近零,正數(shù)輸入被當作正值。唯一的缺點是:

1. Tanh 函數(shù)也會有梯度消失的問題,因此在飽和時也會「殺死」梯度。

為了解決梯度消失問題,我們來討論另一個非線性激活函數(shù)——修正線性單元(rectified linear unit,ReLU),該函數(shù)明顯優(yōu)于前面兩個函數(shù),是現(xiàn)在使用最廣泛的函數(shù)。

5.3 修正線性單元(ReLU)

ReLU 激活函數(shù)

ReLU 導數(shù)

從上圖可以看到,ReLU 是從底部開始半修正的一種函數(shù)。數(shù)學公式為:

當輸入 x<0 時,輸出為 0,當 x> 0 時,輸出為 x。該激活函數(shù)使網(wǎng)絡更快速地收斂。它不會飽和,即它可以對抗梯度消失問題,至少在正區(qū)域(x> 0 時)可以這樣,因此神經(jīng)元至少在一半?yún)^(qū)域中不會把所有零進行反向傳播。由于使用了簡單的閾值化(thresholding),ReLU 計算效率很高。但是 ReLU 神經(jīng)元也存在一些缺點:

1. 不以零為中心:和 Sigmoid 激活函數(shù)類似,ReLU 函數(shù)的輸出不以零為中心。

2. 前向傳導(forward pass)過程中,如果 x < 0,則神經(jīng)元保持非激活狀態(tài),且在后向傳導(backward pass)中「殺死」梯度。這樣權(quán)重無法得到更新,網(wǎng)絡無法學習。當 x = 0 時,該點的梯度未定義,但是這個問題在實現(xiàn)中得到了解決,通過采用左側(cè)或右側(cè)的梯度的方式。

為了解決 ReLU 激活函數(shù)中的梯度消失問題,當 x < 0 時,我們使用 Leaky ReLU——該函數(shù)試圖修復 dead ReLU 問題。下面我們就來詳細了解 Leaky ReLU。

5.4 Leaky ReLU

Leaky ReLU 激活函數(shù)

該函數(shù)試圖緩解 dead ReLU 問題。數(shù)學公式為:

Leaky ReLU 的概念是:當 x < 0 時,它得到 0.1 的正梯度。該函數(shù)一定程度上緩解了 dead ReLU 問題,但是使用該函數(shù)的結(jié)果并不連貫。盡管它具備 ReLU 激活函數(shù)的所有特征,如計算高效、快速收斂、在正區(qū)域內(nèi)不會飽和。

Leaky ReLU 可以得到更多擴展。不讓 x 乘常數(shù)項,而是讓 x 乘超參數(shù),這看起來比 Leaky ReLU 效果要好。該擴展就是 Parametric ReLU。

5.5 Parametric ReLU

PReLU 函數(shù)的數(shù)學公式為:

其中是超參數(shù)。這里引入了一個隨機的超參數(shù),它可以被學習,因為你可以對它進行反向傳播。這使神經(jīng)元能夠選擇負區(qū)域最好的梯度,有了這種能力,它們可以變成 ReLU 或 Leaky ReLU。

總之,最好使用 ReLU,但是你可以使用 Leaky ReLU 或 Parametric ReLU 實驗一下,看看它們是否更適合你的問題。

5.6 Swish

Swish 激活函數(shù)

該函數(shù)又叫作自門控激活函數(shù),它近期由谷歌的研究者發(fā)布,數(shù)學公式為:

根據(jù)論文(https://arxiv.org/abs/1710.05941v1),Swish 激活函數(shù)的性能優(yōu)于 ReLU 函數(shù)。

根據(jù)上圖,我們可以觀察到在 x 軸的負區(qū)域曲線的形狀與 ReLU 激活函數(shù)不同,因此,Swish 激活函數(shù)的輸出可能下降,即使在輸入值增大的情況下。大多數(shù)激活函數(shù)是單調(diào)的,即輸入值增大的情況下,輸出值不可能下降。而 Swish 函數(shù)為 0 時具備單側(cè)有界(one-sided boundedness)的特性,它是平滑、非單調(diào)的。更改一行代碼再來查看它的性能,似乎也挺有意思。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
深入了解神經(jīng)網(wǎng)絡
常用激活函數(shù)總結(jié)
神經(jīng)網(wǎng)絡為何非激活函數(shù)不可?
激活函數(shù)小結(jié)
深度學習激活函數(shù)們
機器學習常用激活函數(shù)
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服