常用啟用函式總結

2022-09-13 16:48:12 字數 2106 閱讀 6477

神經網路從數學上來說,就是用來擬合乙個函式。把資料扔進去,得到乙個**結果,以此來解決分類和回歸等問題。但是針對不同的問題,需要擬合不同的函式,包括線性函式和非線性函式。神經網路中常常會見到各種啟用函式,當需要擬合非線性函式時就需要啟用函式登場了。

對於每個神經元來說,都是先進行線性變換,再將線性變換的結果通過啟用函式來進行啟用。注意,這裡的有效啟用函式必須是非線性函式。如果採用線性啟用函式,則在前向傳播的過程中,相當於一直做線性變換,這樣的話,無論多少隱藏層,都是線性變換,也就是隱藏層在這裡沒有發生作用,仍然是乙個單層的感知機。當然對於最後一層的輸出層則沒有這個要求,可以選擇線性或者非線性的啟用函式。

這裡主要介紹非線性啟用函式,線性的啟用函式也就是恒等函式,在座標軸表示為一條直線,通常使用較少。常見的非線性啟用函式通常可以分為兩類,一種是輸入單個變數輸出單個變數,如sigmoid函式,relu函式;還有一種是輸入多個變數輸出多個變數,如softmax函式,maxout函式。

sigmoid函式,也叫做s函式將值限定在 \((0,1)\) 之間,能夠很好的作為概率來解釋演算法得到的結果。目前在計算機視覺中不常用,只適用於二分類等問題。

缺點是當輸入較大的正數或者負數時,導數就會變為0,這時候採用梯度下降方法就會下降很慢,使得神經網路不能正常更新。同時不是以0為對稱,容易在更新時產生 zigzag 路徑。

函式定義為

\[a = sigmoid(z) = \frac}

\]其求導結果為

thah函式能夠將值限定在 \((-1,1)\) 之間,比sigmoid函式更為常用。但是也存在與sigmoid函式一樣的缺點,當在z值較大或者較小時,斜率接近0,這時優化速度很慢,這種情況下可以考慮採用relu函式。

函式定義為

\[a = thah(z) = \frac}}

\]求導結果為

relu函式,也叫做線性整流函式,能夠解決在值較大時產生的梯度為0的問題,能夠正常的更新,並且沒有複雜的指數計算,使得效能較好,收斂較快,是目前在視覺領域最為常見的啟用函式。

relu函式為

\[a = relu(z) = max(0,z)

\]其導數為

leakyrelu是為了防止relu函式在負數時,斜率為0的情況,但在實際情況中,很難到負數那邊去,所以基本採用relu就足夠了,不過也建議採用交叉驗證來試試這個函式。

leaky relu為

\[a = leakyrelu(z) = max(0.01z,z)

\]其導數為

此外,還有幾種啟用函式由演算法來學習負數區域的學習率,如prelu函式和elu函式,原理與relu函式類似。

softmax函式與sigmoid函式很相似,也是將值變換到 \((0,1)\) 之間。但是可以針對多個類別,**出每個類別的歸一化概率,所以通常softmax函式是在分類器的輸出層使用。

其函式表示式為

\[\sigma (z)_= \frac}^e^}

\]選擇啟用函式沒有固定的規則,每個啟用函式適用於不同的應用,比如分類和回歸,多分類和二分類任務。但根據每個啟用函式的性質,也存在一些基本的規律

常用啟用函式

優點 能夠把輸入的連續實值變換為0和1之間的輸出,如果是非常大的負數,那麼輸出就是0 如果是非常大的正數,輸出就是1。缺點 1 sigmoid函式的導數範圍是 0,0.25 導數最大都不大於1,容易引起梯度消失 2 公式包含冪運算,導致方向傳播運算速度慢 3 sigmoid函式輸出不是零中心對稱。s...

常用啟用函式

可見,啟用函式能夠幫助我們引入非線性因素,使得神經網路能夠更好地解決更加複雜的問題。s ig moid x 11 e xsigmoid x frac sigmoi d x 1 e x1 s ig moid x 11 e xsigmoid x frac sigmoi d x 1 e x1 sigmoi...

啟用函式總結

一 主要作用 啟用函式的主要作用就是加入非線性因素,以解決線性模型表達能力不足的缺陷,在整個神經網路起到至關重要的作用。在神經網路中常用的啟用函式有sigmoid tanh和relu等,下面逐一介紹。二 sigmod函式 1 函式介紹 sigmoid是常用的非線性的啟用函式,數學公式如下 2 函式曲...