啟用函式彙總及各優缺點

2021-10-24 01:19:41 字數 1637 閱讀 6459

如下圖,在神經元中,輸入的 inputs 通過加權,求和後,還被作用了乙個函式,這個函式就是啟用函式

如果不用啟用函式,每一層輸出都是上層輸入的線性函式,無論神經網路有多少層,輸出都是輸入的線性組合。

如果使用的話,啟用函式給神經元引入了非線性因素,使得神經網路可以任意逼近任何非線性函式,這樣神經網路就可以應用到眾多的非線性模型中。

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

可微性: 當優化方法是基於梯度的時候,這個性質是必須的。

單調性: 當啟用函式是單調的時候,單層網路能夠保證是凸函式。

輸出值的範圍: 當啟用函式輸出值是 有限 的時候,基於梯度的優化方法會更加 穩定,因為特徵的表示受有限權值的影響更顯著;當啟用函式的輸出是 無限 的時候,模型的訓練會更加高效,不過在這種情況小,一般需要更小的learning rate

從目前來看,常見的啟用函式多是分段線性和具有指數形狀的非線性函式

sigmoid缺點:

tanh也是一種非常常見的啟用函式。

tanh優缺點:

優點:與sigmoid相比,它的輸出均值是0,使得其收斂速度要比sigmoid快,減少迭代次數。

缺點:tanh一樣具有軟飽和性,從而造成梯度消失,在兩邊一樣有趨近於0的情況

這就是leaky-relu, 而p-relu認為,αα也可以作為乙個引數來學習,原文獻建議初始化a為0.25,不採用正則。

relu 的優點:

krizhevsky et al. 發現使用 relu 得到的 sgd 的收斂速度會比 sigmoid/tanh 快很多

relu 的缺點:

訓練的時候很」脆弱」,很容易就」die」了

例如,乙個非常大的梯度流過乙個 relu 神經元,更新過引數之後,這個神經元再也不會對任何資料有啟用現象了,那麼這個神經元的梯度就永遠都會是 0.

如果 learning rate 很大,那麼很有可能網路中的 40% 的神經元都」dead」了。

參考

啟用函式及其各自的優缺點

所謂啟用函式 activation function 就是在人工神經網路的神經元上執行的函式,負責將神經元的輸入對映到輸出端。啟用函式對於人工神經網路模型去學習 理解非常複雜和非線性的函式來說具有十分重要的作用。它們將非線性特性引入到我們的網路中。如圖,在神經元中,輸入 inputs 通過加權,求和...

建構函式用途及優缺點

每個物件上面都有乙個constructor屬性 嚴格意義上來說,是原型上的,物件是通過查詢到原型找到 constructor屬性 後面講到原型的時候,我會用示意圖的方式說明。1 function createobj uname 6 7 var obj1 new createobj ghostwu 8...

Docker各作業系統安裝方式及優缺點

一直以來使用docker都是在centos redhat系統上執行,昨天晚上想裝一下windows版的看下怎樣,我物理機的作業系統是windows 10專業版,裡面裝了vmware workstation pro跑了幾個虛擬機器,以為在物理機windows上安裝個docker應該沒啥事,結果它是以來...