深度學習基礎知識之啟用函式

2021-10-25 04:35:55 字數 2420 閱讀 7663

在深度視覺的三大基本任務中,我們構建乙個卷積神經網路,啟用函式是必不可少的,例如sigmoid,relu等,下面我們來介紹下啟用函式。

如圖所示:

不使用啟用函式的話,神經網路的每層都只是做線性變換,線性函式無論疊加多少層,都是線性的,只是斜率和截距不同,疊加網路對解決實際問題沒有多大幫助;因為需要神經網路解決的實際問題基本都是非線性的。

我們現在有乙個任務,要分4個類別,用下面兩個圖來說明:

從以上兩幅對比,用了啟用函式分類效果更準確,這也說明非線性擬合能力更強。

線性非線性在這裡就可以理解為直線和曲線。

其實光理解直線和曲線不太嚴謹,不過這裡不影響後續學習。

sigmoid

函式公式:

s ig

moid

=11+

e−xsigmoid = \frac}

sigmoi

d=1+

e−x1

​ 函式影象如圖所示

sigmoid函式:輸出值範圍為[0,1]之間的實數,用作2分類問題。

缺點:sigmoid函式飽和使梯度消失。

sigmoid函式輸出不是零為中心,即zigziag現象,收斂慢。

指數函式計算比較消耗計算資源。

tanh

函式公式:

t an

h=1−

e−x1

+e−x

tanh = \frac}}

tanh=1

+e−x

1−e−

x​函式影象如下圖所示:

優點:tanh解決了sigmoid的輸出非「零為中心」的問題

缺點:依然有sigmoid函式過飽和的問題。

依然進行的是指數運算

relu

函式公式:

r el

u=ma

x(0,

x)relu = max(0, x)

relu=m

ax(0

,x)優點:

relu解決了梯度消失的問題,至少x在正區間內,神經元不會飽和。

由於relu線性、非飽和的形式,在sgd中能夠快速收斂。

算速度要快很多。relu函式只有線性關係,不需要指數計算,計算速度都比sigmoid和tanh快。

缺點:relu的輸出不是「零為中心」。

隨著訓練的進行,可能會出現神經元死亡,權重無法更新的情況。這種神經元的死亡是不可逆轉的死亡。

常用的還是relu函式,當你不知道用啥,就用relu。

softmax

softmax簡單理解:將輸出值變成概率化。

公式:

其直觀理解:

​,對應的值為[31

−3][3~~~1 ~~-3]

[31−3]

,經過softmax函式作用,就是將輸出的值,帶入saoftmax公式,得到的y

yy就會被對映到(01

)(0 ~1)

(01)

之間,這些值的和為1

11,在最後的輸出選取概率輸出的最大值為分類結果,上圖中就是z1,

3z_1,3

z1​,

3對應的輸出y

1y_1

y1​的概率值最大,他的索引值,即為我們的目標分類 0

00 。

通常來說,不能把各種啟用函式串起來在乙個網路中使用。

如果使用relu,那麼一定要小心設定學習率(learning rate),並且要注意不要讓網路**現很多死亡神經元。

盡量不要使用sigmoid啟用函式,可以試試tanh,不過我還是感覺tanh的效果會比不上relu。

深度學習之啟用函式

sigmoid啟用函式 sigmoid將乙個實數輸入對映到 0,1 範圍內,如下圖 左 所示。使用sigmoid作為啟用函式存在以下幾個問題 梯度飽和。當函式啟用值接近於0或者1時,函式的梯度接近於0。在反向傳播計算梯度過程中 l w l t l 1 f z l 每層殘差接近於0,計算出的梯度也不可...

深度學習之啟用函式

啟用函式 activate function 在神經元中非常重要,為了增強網路的表示能力和學習能力,啟用函式需要具備以下幾點性質 1 連續並可導的非線性函式,以便於利用數值優化的方法來學習網路引數。2 啟用函式及其導數要盡可能簡單,以提高網路計算的效率。3 啟用函式的導函式的值域要在乙個合適的區間內...

深度學習 深度學習基礎知識 Adagrad

adagrad是一種基於梯度的優化演算法 它將學習速率與引數相適應,對不同的變數提供不同的學習率 它增加了罕見但資訊豐富的特徵的影響 因此,它非常適合處理稀疏資料。在基本的梯度下降法優化中,有個乙個常見問題是,要優化的變數對於目標函式的依賴是各不相同的。對於某些變數,已經優化到了極小值附近,但是有的...