機器學習之啟用函式

2021-09-24 14:25:24 字數 2104 閱讀 3445

1.概念

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

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

疑問就來了,啟用函式是如何引入非線性因素呢?

2.常見的啟用函式

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

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

優點: (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構成的網路時其實是經歷了非線性變換的。

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。這樣即修正了資料分布,又保留了一些負軸的值,使得負軸資訊不會全部丟失。但是這個α通常是通過先驗知識人工賦值的。

機器學習 softmax啟用函式

softmax函式 softmax函式,一般用於多分類的問題上,將多個神經元的輸入,對映在 0,1 之間。可以當作概率的計算。這一點跟sigmoid函式相似。softmax的計算公式為 s i ei j 1ne js i frac n e j si j 1n ejei 值得關注的是 i 1nsi 1...

機器學習 啟用函式的認識

啟用函式的主要作用是提供網路的非線性建模能力。如果沒有啟用函式,那麼該網路僅能夠表達線性對映,此時即便有再多的隱藏層,其整個網路跟單層神經網路也是等價的。因此也可以認為,只有加入了啟用函式之後,深度神經網路才具備了分層的非線性對映學習能力。sigmoid函式 特別注意sigmoid函式的導數求法 缺...

機器學習 啟用函式理解

作用 tf呼叫 公式影象 導數優點 缺點sigmoid 梯度反向傳遞時導致梯度 和梯度消失 其中梯度 發生的概率非常小 而梯度消失發生的概率比較大。sigmoid輸出永遠是正數 非零中心 tanh 輸出 1,1 沒有解決 梯度消失問題 relu 不會有梯度消失問題 輸入負數,則完全不啟用,relu函...