Caffe學習(七)啟用函式

2021-07-16 09:25:28 字數 1874 閱讀 4491

啟用函式的起源是希望該函式能夠對神經元進行建模,進而起到對輸入的資料進行非線性響應的過程。

啟用函式應該具有的性質:

(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 範圍內,如上圖 右...