ReLU啟用函式

2021-09-02 07:25:40 字數 1531 閱讀 7076

在深度神經網路中,通常使用一種叫修正線性單元(rectified linear unit,relu)作為神經元的啟用函式。relu起源於神經科學的研究:2023年,dayan、abott從生物學角度模擬出了腦神經元接受訊號更精確的啟用模型,如下圖:

其中橫軸是時間(ms),縱軸是神經元的放電速率(firing rate)。同年,attwell等神經科學家通過研究大腦的能量消耗過程,推測神經元的工作方式具有稀疏性和分布性;2023年lennie等神經科學家估測大腦同時被啟用的神經元只有1~4%,這進一步表明了神經元的工作稀疏性。而對於relu函式而言,類似表現是如何體現的?其相比於其他線性函式(如purlin)和非線性函式(如sigmoid、雙曲正切)又有何優勢?下面請各位看官容我慢慢道來。

首先,我們來看一下relu啟用函式的形式,如下圖:

從上圖不難看出,relu函式其實是分段線性函式,把所有的負值都變為0,而正值不變,這種操作被成為單側抑制。可別小看這個簡單的操作,正因為有了這單側抑制,才使得神經網路中的神經元也具有了稀疏啟用性。尤其體現在深度神經網路模型(如cnn)中,當模型增加n層之後,理論上relu神經元的啟用率將降低2的n次方倍。這裡或許有童鞋會問:relu的函式影象為什麼一定要長這樣?反過來,或者朝下延伸行不行?其實還不一定要長這樣。只要能起到單側抑制的作用,無論是鏡面翻轉還是180度翻轉,最終神經元的輸出也只是相當於加上了乙個常數項係數,並不影響模型的訓練結果。之所以這樣定,或許是為了契合生物學角度,便於我們理解吧。

那麼問題來了:這種稀疏性有何作用?換句話說,我們為什麼需要讓神經元稀疏?不妨舉栗子來說明。當看名偵探柯南的時候,我們可以根據故事情節進行思考和推理,這時用到的是我們的大腦左半球;而當看蒙面唱將時,我們可以跟著歌手一起哼唱,這時用到的則是我們的右半球。左半球側重理性思維,而右半球側重感性思維。也就是說,當我們在進行運算或者欣賞時,都會有一部分神經元處於啟用或是抑制狀態,可以說是各司其職。再比如,生病了去醫院看病,檢查報告裡面上百項指標,但跟病情相關的通常只有那麼幾個。與之類似,當訓練乙個深度分類模型的時候,和目標相關的特徵往往也就那麼幾個,因此通過relu實現稀疏後的模型能夠更好地挖掘相關特徵,擬合訓練資料

此外,相比於其它啟用函式來說,relu有以下優勢:對於線性函式而言,relu的表達能力更強,尤其體現在深度網路中;而對於非線性函式而言,relu由於非負區間的梯度為常數,因此不存在梯度消失問題(vanishing gradient problem),使得模型的收斂速度維持在乙個穩定狀態。這裡稍微描述一下什麼是梯度消失問題:當梯度小於1時,**值與真實值之間的誤差每傳播一層會衰減一次,如果在深層模型中使用sigmoid作為啟用函式,這種現象尤為明顯,將導致模型收斂停滯不前。

ReLU啟用函式,Maxout

在使用sig moid sigmoid sigmoi d啟用函式進行梯度下降調參時,往往會出現梯度消失的問題,即無法找到收斂點。神經網路主要的訓練方法是bp演算法,bp演算法的基礎是導數的鏈式法則,也就是多個導數的乘積。而sig moid sigmoid sigmoi d的導數最大為0.25,且大部...

ReLU啟用函式雜談

在實現多層感知機 實現中使用了relu啟用函式 r el u x max x,0 relu x max x,0 relu x ma x x,0 形狀大概是這樣的 這裡根據幾個問題來進行回答解釋 為什麼要使用啟用函式呢?簡單來說啟用函式的作用就是將仿射函式進行非線性化,可以擬合出更多的情況。更詳細的解...

啟用函式Relu 及 leakyRelu

relu 及 leakyrelu是深度學習中常用的啟用函式,看了幾篇部落格後,做乙個小的總結。1.relu 數學表示式 a max 0,z 函式影象為 優點 由上圖可以看出,relu得到的sgd的收斂速度較快 缺點 訓練的時候很容易 die 了,對於小於0的值,這個神經元的梯度永遠都會是0,在實際操...