常用激活函數總結


神經網絡與激活函數

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

image

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

常用激活函數總結

這里主要介紹非線性激活函數,線性的激活函數也就是恆等函數,在坐標軸表示為一條直線,通常使用較少。常見的非線性激活函數通常可以分為兩類,一種是輸入單個變量輸出單個變量,如sigmoid函數,Relu函數;還有一種是輸入多個變量輸出多個變量,如Softmax函數,Maxout函數。

1.Sigmoid函數

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

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

函數定義為

\[a = sigmoid(z) = \frac{1}{1+e^{-z}} \]

其求導結果為

\[a'=\frac{1}{1+e^{-z}}\left( 1 - \frac{1}{1+e^{-z}}\right)=a(1-a) \]

image.png

2.tanh函數

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

函數定義為

\[a = thah(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}} \]

求導結果為

\[a' = 1 - tanh^2(z) = 1 - a^2 \]

image.png

3. ReLU函數及其變體

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

ReLU函數為

\[a = ReLU(z) = max(0,z) \]

其導數為

\[a' = \left\{\begin{matrix} 0 & x<0 \\ 1 & x>0 \end{matrix}\right. \]

image

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

Leaky ReLU為

\[a = LeakyReLU(z) = max(0.01z,z) \]

其導數為

\[a' = \left\{\begin{matrix} 0.01 & x<0 \\ 1 & x>0 \end{matrix}\right. \]

image

此外,還有幾種激活函數由算法來學習負數區域的學習率,如PReLU函數和ELU函數,原理與ReLU函數類似。

4.Softmax函數

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

其函數表達式為

\[\sigma (z)_{j}= \frac{e^{z_j}}{\sum_{k=1}^{K}e^{z_k}} \]

如何選擇激活函數

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

  • 對於二分類問題,在輸出層可以選擇 sigmoid 函數。
  • 對於多分類問題,在輸出層可以選擇 softmax 函數。
  • 由於梯度消失問題,盡量sigmoid函數和tanh的使用。
  • tanh函數由於以0為中心,通常性能會比sigmoid函數好。
  • ReLU函數是一個通用的函數,一般在隱藏層都可以考慮使用。
  • 有時候要適當對現有的激活函數稍作修改,以及考慮使用新發現的激活函數。

歡迎大家關注公眾號“計算機視覺與機器學習”
計算機視覺和機器學習


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM