機器學習之激活函數

1.概念

神經網絡中的每個神經元節點接受上一層神經元的輸出值作爲本神經元的輸入值,並將輸入值傳遞給下一層,輸入層神經元節點會將輸入屬性值直接傳遞給下一層(隱層或輸出層)。在多層神經網絡中,上層節點的輸出和下層節點的輸入之間具有一個函數關係,這個函數稱爲激活函數(又稱激勵函數)。

關於神經網絡中的激活函數的作用,通常都是這樣解釋:不使用激活函數的話,神經網絡的每層都只是做線性變換,多層輸入疊加後也還是線性變換。因爲線性模型的表達能力通常不夠,所以這時候就體現了激活函數的作用了, 激活函數可以引入非線性因素 。

疑問就來了,激活函數是如何引入非線性因素呢?

http://dy.163.com/v2/article/detail/EANGFRK905313FCL.html

2.常見的激活函數

  • sigmoid函數

現在不常用。sigmoid函數飽和使梯度消失(Sigmoidsaturate and kill gradients)。

  • tanh函數

tanh函數跟sigmoid還是很像的,實際上,tanh是sigmoid的變形。依然存在梯度消失問題。

  • ReLu函數

優點: (1)ReLU解決了梯度消失的問題,至少x在正區間內,神經元不會飽和;(2)由於ReLU線性、非飽和的形式,在SGD中能夠快速收斂;(3)算速度要快很多。ReLU函數只有線性關係,不需要指數計算,不管在前向傳播還是反向傳播,計算速度都比sigmoid和tanh快

     缺點: (1) ReLU的輸出不是“零爲中心”(Notzero-centered output)。(2)隨着訓練的進行,可能會出現神經元死亡,權重無法更新的情況。這種神經元的死亡是不可逆轉的死亡。

總結:訓練神經網絡的時候,一旦學習率沒有設置好,第一次更新權重的時候,輸入是負值,那麼這個含有ReLU的神經節點就會死亡,再也不會被激活。

因爲:ReLU的導數在x>0的時候是1,在x<><=0,那麼relu的輸出是0,那麼反向傳播中梯度也是0,權重就不會被更新,導致神經元不再學習。 也就是說,這個relu激活函數在訓練中將不可逆轉的死亡,導致了訓練數據多樣化的丟失。在實際訓練中,如果學習率設置得太高,可能會發現網絡中40%的神經元都會死掉,且在整個訓練集中這些神經元都不會被激活。所以,設置一個合適的較小的學習率,會降低這種情況的發生。="" 所以必須設置一個合理的學習率。="" 爲決神經元節點死亡的情況,有人提出了leaky="">

引出的問題: 神經網絡中ReLU是線性還是非線性函數?爲什麼relu這種“看似線性”(分段線性)的激活函數所形成的網絡,居然能夠增加非線性的表達能力?

  (1)relu是非線性激活函數。

  (2)讓我們先明白什麼是線性網絡?如果把線性網絡看成一個大的矩陣M。那麼輸入樣本A和B,則會經過同樣的線性變換MA,MB(這裏A和B經歷的線性變換矩陣M是一樣的)

  (3)的確對於單一的樣本A,經過由relu激活函數所構成神經網絡,其過程確實可以等價是經過了一個線性變換M1,但是對於樣本B,在經過同樣的網絡時,由於每個神經元是否激活(0或者Wx+b)與樣本A經過時情形不同了(不同樣本),因此B所經歷的線性變換M2並不等於M1。因此,relu構成的神經網絡雖然對每個樣本都是線性變換,但是不同樣本之間經歷的線性變換M並不一樣,所以整個樣本空間在經過relu構成的網絡時其實是經歷了非線性變換的。

  • Leaky ReLU函數

ReLU是將所有的負值設置爲0,造成神經元節點死亡情況。相反,Leaky ReLU是給所有負值賦予一個非零的斜率。Leaky ReLU激活函數是在聲學模型(2013)中首次提出來的。它的數學表達式如公式8所示:

優點:

  (1).神經元不會出現死亡的情況。

  (2).對於所有的輸入,不管是大於等於0還是小於0,神經元不會飽和。

  (3).由於Leaky ReLU線性、非飽和的形式,在SGD中能夠快速收斂。

  (4).計算速度要快很多。Leaky ReLU函數只有線性關係,不需要指數計算,不管在前向傳播還是反向傳播,計算速度都比sigmoid和tanh快。

缺點: (1). Leaky ReLU函數中的α,需要通過先驗知識人工賦值。

  總結: Leaky ReLU很好的解決了“dead ReLU”的問題。因爲Leaky ReLU保留了x小於0時的梯度,在x小於0時,不會出現神經元死亡的問題。對於Leaky ReLU給出了一個很小的負數梯度值α,這個值是很小的常數。比如:0.01。這樣即修正了數據分佈,又保留了一些負軸的值,使得負軸信息不會全部丟失。但是這個α通常是通過先驗知識人工賦值的。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章