如下圖,在神經元中,輸入的 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應該沒啥事,結果它是以來...