啟用函式的起源是希望該函式能夠對神經元進行建模,進而起到對輸入的資料進行非線性響應的過程。
啟用函式應該具有的性質:
(1)非線性。線性啟用層對於深層神經網路沒有作用,因為其作用以後仍然是輸入的各種線性變換。。
(2)連續可微。梯度下降法的要求。
(3)範圍最好不飽和,當有飽和的區間段時,若系統優化進入到該段,梯度近似為0,網路的學習就會停止。
(4)單調性,當啟用函式是單調時,單層神經網路的誤差函式是凸的,好優化。
(5)在原點處近似線性,這樣當權值初始化為接近0的隨機值時,網路可以學習的較快,不用可以調節網路的初始值。
目前常用的啟用函式都只擁有上述性質的部分,沒有乙個擁有全部的~~
(1)sigmoid函式f(
x)=1
1+e−
x 目前已被淘汰
缺點:
∙飽和時梯度值非常小。由於bp演算法反向傳播的時候後層的梯度是以乘性方式傳遞到前層,因此當層數比較多的時候,傳到前層的梯度就會非常小,網路權值得不到有效的更新,即梯度耗散。如果該層的權值初始化使得f(
x)處於飽和狀態時,網路基本上權值無法更新。
∙輸出值不是以0為中心值。
(2)tanh函式ta
nh(x
)=2σ
(2x)
−1其中σ(
x)為sigmoid函式,仍然具有飽和的問題。
(3)relu函式f(
x)=m
ax(0
,x)
alex在2023年提出的一種新的啟用函式。該函式的提出很大程度的解決了bp演算法在優化深層神經網路時的梯度耗散問題
優點: ∙
x>
0 時,梯度恒為1,無梯度耗散問題,收斂快;
∙增大了網路的稀疏性。當
x<
0 時,該層的輸出為0,訓練完成後為0的神經元越多,稀疏性越大,提取出來的特徵就約具有代表性,泛化能力越強。即得到同樣的效果,真正起作用的神經元越少,網路的泛化效能越好
∙ 運算量很小;
缺點:
如果後層的某乙個梯度特別大,導致w更新以後變得特別大,導致該層的輸入<0,輸出為0,這時該層就會『die』,沒有更新。當學習率比較大時可能會有40%的神經元都會在訓練開始就『die』,因此需要對學習率進行乙個好的設定。
由優缺點可知ma
x(0,
x)函式為乙個雙刃劍,既可以形成網路的稀疏性,也可能造成有很多永遠處於『die』的神經元,需要tradeoff。
(4)leaky relu函式f(
x)={
1,(x
<0)
αx+1
(x>=0)
改善了relu的死亡特性,但是也同時損失了一部分稀疏性,且增加了乙個超引數,目前來說其好處不太明確
(5)maxout函式f(
x)=m
ax(w
t1x+
b1,w
t2x+
b2)
泛化了relu和leaky relu,改善了死亡特性,但是同樣損失了部分稀疏性,每個非線性函式增加了兩倍的引數
真實使用的時候最常用的還是relu函式,注意學習率的設定以及死亡節點所佔的比例即可
caffe中啟用函式的設定都比較簡單,不在贅述~~~
caffe系列之啟用函式
1 sigmoid layer 2 relu retified linear and leaky relu 可選引數 negative slope 預設為0。對標準的relu函式進行變化,如果設定了這個值,那麼資料為負數時,就不再設定為0,而是原始資料乘以negative slope。layer r...
caffe之(三)啟用函式層
在caffe中,網路的結構由prototxt檔案中給出,由一些列的layer 層 組成,常用的層如 資料載入層 卷積操作層 pooling層 非線性變換層 內積運算層 歸一化層 損失計算層等 本篇主要介紹啟用函式層 下面首先給出啟用函式層的結構設定的乙個小例子 定義在.prototxt檔案中 lay...
Deep learning系列(七)啟用函式
sigmoid將乙個實數輸入對映到 0,1 範圍內,如下圖 左 所示。使用sigmoid作為啟用函式存在以下幾個問題 因為上面兩個問題的存在,導致引數收斂速度很慢,嚴重影響了訓練的效率。因此在設計神經網路時,很少採用sigmoid啟用函式。tanh函式將乙個實數輸入對映到 1,1 範圍內,如上圖 右...