天天看點

激活函數(Activation Functions)概述Activation Function

Activation Function

在神經元中,輸入的 inputs 通過權重,求和後,還被作用了一個函數,這個函數就是激活函數 Activation Function。神經網絡中使用激活函數來加入非線性因素,提高模型的表達能力。

Activation Function性質

  • 可微性:計算梯度時必須要有此性質。
  • 非線性:保證資料非線性可分。
  • 單調性:保證凸函數。
  • 輸出值與輸入值相差不會很大:保證神經網絡訓練和調參高效。

常用Activation Function:

  • sigmoid
  • tanh
  • ReLU
    • Leaky ReLU
    • ELU
  • Maxout
  • softmax

sigmoid函數

函數式:

f ( z ) = 1 1 + e x p ( − z ) f(z) = \frac{1}{1+exp(-z)} f(z)=1+exp(−z)1​

圖像:

激活函數(Activation Functions)概述Activation Function

優點

  • 取值範圍為(0,1),它可以将一個實數映射到(0,1)的區間,可以用來做二分類。在特征相差比較複雜或是相差不是特别大時效果比較好。

缺點

  • sigmoid 函數不是關于原點中心對稱的,由于Sigmoid輸出是在0-1之間,總是正數,以f=sigmoid(wx+b)為例, 假設輸入均為正數(或負數),那麼對w的導數總是正數(或負數),這樣在反向傳播過程中要麼都往正方向更新,要麼都往負方向更新,使得收斂緩慢。,這樣更新的時候容易出現zigzag現象,不容易到達最優值。
  • 指數運算相對耗時。
  • 激活函數計算量大,反向傳播求誤差梯度時,求導涉及除法反向傳播時,很容易就會出現梯度消失的情況,進而無法完成深層網絡的訓練。

    原因:

    反向傳播算法中,要對激活函數求導,sigmoid 的導數表達式為:

    f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) f'(x) = f(x)(1-f(x)) f′(x)=f(x)(1−f(x))

    導數圖像:

    激活函數(Activation Functions)概述Activation Function

Tanh函數

函數式

f ( z ) = s i n h ( z ) c o s h ( z ) = e z − e − z e z + e − z f(z) =\frac{sinh(z)}{cosh(z)} = \frac{e^z - e^{-z}}{e^z + e^{-z}} f(z)=cosh(z)sinh(z)​=ez+e−zez−e−z​

圖像

激活函數(Activation Functions)概述Activation Function

優點

  • Tanh函數是0均值的更加有利于提高訓練效率。
  • Tanh在特征相差明顯時的效果會很好,在循環過程中會不斷擴大特征效果。

缺點

  • 指數運算相對耗時。
  • 梯度消失。(原因同上sigmoid函數,導數圖像可以加以說明。)

Rectified Linear Unit(ReLU)

函數式

R ( z ) = m a x ( 0 , z ) R(z) = max(0, z) R(z)=max(0,z)

圖像

激活函數(Activation Functions)概述Activation Function

優點

  • 不存在梯度趨于0的飽和區域。
  • 實際應用中converge(融合)遠比sigmoid/tanh快。
  • ReLU 對于 SGD 的收斂有巨大的加速作用(Alex Krizhevsky 指出有 6 倍之多)
  • 生物上的合理性,它是單邊的,相比sigmoid和tanh,更符合生物神經元的特征。(大多數時間,生物神經元是非激活的)

缺點

  • 不是以0為中心,x<0時沒有梯度,反向傳播不會更新,會dead。

    舉例來說:一個非常大的梯度經過一個 ReLU 神經元,更新過參數之後,這個神經元再也不會對任何資料有激活現象了。如果這種情況發生,那麼從此所有流過這個神經元的梯度将都變成 0 。

    也就是說,這個 ReLU 單元在訓練中将不可逆轉的死亡,導緻了資料多樣化的丢失。實際中,如果學習率設定得太高,可能會發現網絡中 40% 的神經元都會死掉(在整個訓練集中這些神經元都不會被激活)。

    合理設定學習率,會降低這種情況的發生機率。

Leaky ReLU

函數式

當x<0時,f(x)=αx,其中α非常小,這樣可以避免在x<0時,不能夠學習的情況:

f ( x ) = m a x ( α x , x ) f(x)=max(αx,x) f(x)=max(αx,x)

稱為Parametric Rectifier(PReLU),将 α 作為可學習的參數。

  • 當 α 從高斯分布中随機産生時稱為Random Rectifier(RReLU)。
  • 當固定為α=0.01時,是Leaky ReLU。

圖像

激活函數(Activation Functions)概述Activation Function

優點

  • relu的所有優點。
  • 解決了x<0時沒有梯度,反向傳播不會更新,會dead的情況。

Exponential Linear Unit指數線性單元

函數式

f ( x ) = { α ( e x − 1 ) , x ≤ 0 x , x &gt; 0 f(x) = \begin{cases} \alpha (e^x - 1), \quad x \le 0 \\ x, \quad x \gt 0 \end{cases} f(x)={α(ex−1),x≤0x,x>0​

導數式:

f ′ ( x ) = { f ( x ) + α , x ≤ 0 1 , x &gt; 0 f&#x27;(x) = \begin{cases} f(x) + \alpha , \quad x \le 0 \\ 1, \quad x \gt 0 \end{cases} f′(x)={f(x)+α,x≤01,x>0​

ReLU家族對比

激活函數(Activation Functions)概述Activation Function

優點

  • 有較高的噪聲魯棒性,同時能夠使得使得神經元的平均激活均值趨近為 0,同時對噪聲更具有魯棒性。
  • ReLU的所有優點。

缺點

  • 計算指數,計算量較大。

Maxout

函數式

Maxout可以看做是在深度學習網絡中加入一層激活函數層,包含一個參數k。這一層相比ReLU,sigmoid等,其特殊之處在于增加了k個神經元,然後輸出激活值最大的值。我們常見的隐含層節點輸出:

h i ( x ) = s i g m o i d ( W i x i + b i ) h_i(x) = sigmoid(W_ix_i + b_i) hi​(x)=sigmoid(Wi​xi​+bi​)

而在Maxout網絡中,其隐含層節點的輸出表達式為:

h i ( x ) = m a x j ∈ { 1 , 2 , . . . , k } ( W i j x + b i j ) h_i(x) = max_{j \in \{1, 2, ..., k\}}(W_{ij}x + b_{ij}) hi​(x)=maxj∈{1,2,...,k}​(Wij​x+bij​)

圖像

激活函數(Activation Functions)概述Activation Function

優點

  • Maxout的拟合能力非常強,可以拟合任意的凸函數。
  • Maxout具有ReLU的所有優點,線性、不飽和性。
  • 同時沒有ReLU的一些缺點。如:神經元的死亡。

缺點

  • 整體參數的數量大。

Softmax函數

函數式

softmax用于多分類過程中,它将多個神經元的輸出,映射到(0,1)區間内,可以看成機率來了解,進而來進行多分類。

S i = e V i ∑ j C e V j S_i = \frac{e^{V_i}}{\sum_{j}^{C}e^{V_j}} Si​=∑jC​eVj​eVi​​

其中, V i V_i Vi​是分類器前級輸出單元的輸出。i 表示類别索引,總的類别個數為 C。 S i S_i Si​ 表示的是目前元素的指數與所有元素指數和的比值。Softmax 将多分類的輸出數值轉化為相對機率,更容易了解和比較。

可以看出,所有 S i S_i Si​的和為1,即:

∑ i C S i = 1 \sum_{i}^{C}S_i = 1 i∑C​Si​=1

圖像

激活函數(Activation Functions)概述Activation Function

優點

  • softmax模組化使用的分布是多項式分布,回歸進行的多分類,類與類之間是互斥的,即一個輸入隻能被歸為一類;

缺點

  • 不适合用于回歸進行多分類,輸出的類别并不是互斥的情況。(這種情況下,一般使用多個logistic回歸進行分類)

softmax求導過程

常見激活函數總結

  • sigmoid: 計算量大,激活函數計算量大,反向傳播求誤差梯度時,求導涉及除法

    反向傳播時,很容易就會出現梯度消失的情況,進而無法完成深層網絡的訓練。

  • Tanh: tanh在特征相差明顯時的效果會很好,在循環過程中會不斷擴大特征效果。

    與 sigmoid 的差別是,tanh 是 0 均值的,是以實際應用中 tanh 會比 sigmoid 更好。

  • ReLU:收斂速度快,但是存在dead情況,此時可以考慮使用Leaky ReLU等ReLU家族函數。
  • Maxout: 拟合性強,以上的激活函數優點幾乎都具有,但是參數很多,訓練不易。
  • Softmax: 主要用于多分類,且各類别互斥的情況。

選擇上,結合具體的優缺點選擇,注意各激活函數的特點!!!

參考資料

  • cs231n課程
  • 機器學習課程——吳恩達
  • https://www.jianshu.com/p/22d9720dbf1a
  • https://www.jianshu.com/p/ffa51250ba2e
  • https://zhuanlan.zhihu.com/p/37211635

繼續閱讀