神經網路演算法中的三種函式

2021-10-04 22:59:44 字數 2109 閱讀 5492

進行非線性變換,假如我們構建了乙個多層的神經網路,那它每一層做的其實都是乙個線性加權求和的運算,因此這個神經網路就只能做線性分類。當我們對每層網路中的各個節點都做非線性變換(使用啟用函式)時,那麼這個神經網路就可以做非線性分類任務了。

下面我列舉了的三種常用的啟用函式:

sigmoid啟用函式

sigmoid函式介於0~1之間,多用於輸出層。

tanh啟用函式

tanh函式(雙曲正切函式)比sigmoid函式表現得更好,它介於-1~1之間,啟用函式的平均值就更接近0,從數學上看tanh函式其實是sigmoid函式向下平移後得到的,多用於隱藏層。

relu啟用函式

sigmoid函式和tanh函式都有乙個缺點,當自變數 x 非常大或非常小時,那麼導數的梯度或者說這個函式的斜率可能就很小,接近於0,這樣會拖慢梯度下降演算法。relu函式(線性修正單元)解決了這個問題,當x大於0時,斜率為1;當x小於0時,斜率為0;當x等於0時,倒數沒有意義。

在選擇啟用函式有一些經驗,當輸出值為0和1或在做二分類時,那麼sigmoid函式很適合作為輸出層的啟用函式,其他所有層都用relu函式,relu啟用函式的斜率和0差的很遠,這樣構成的神經網路的學習速度會快很多。

是神經網路優化的目標函式,相當於**值和真實值之間的誤差,神經網路訓練或者優化的過程就是最小化損失函式的過程,損失函式值小了,對應的**結果和真實結果的值就越接近。

神經網路有三種較為常用的損失函式:

1.均方誤差損失函式(mse)

j (θ

)=12

m∑i=

1m(y

(i)−

y(i)

′)2j(\theta)=\frac \sum_^m (y^-y^)^2

j(θ)=2

m1​i

=1∑m

​(y(

i)−y

(i)′

)2其中y是真值,y′是**值,y′=wx+b。

2.交叉熵損失函式(cross-entropy)

j (θ

)=−1

m∑i=

1my(

i)lo

g(hθ

(x(i

)))+

(1−y

(i))

log(

1−hθ

(x(i

)))j(θ)=−\frac\sum_^my^log(h_θ(x^))+(1−y^)log(1−h_θ(x^))

j(θ)=−

m1​i

=1∑m

​y(i

)log

(hθ​

(x(i

)))+

(1−y

(i))

log(

1−hθ

​(x(

i)))

3.對數似然損失函式

j (w

,b,a

l,y)

=1m∑

x∑ky

k⋅log⁡ak

lj(w,b,al,y)=\frac\sum_\sum_ y_k\cdot \log a_k^l

j(w,b,

al,y

)=m1

​x∑​

k∑​y

k​⋅logak

l​其中a kl

a^l_k

akl​

表示網路的輸出值,yk表示真值,取0或1。

優化函式起到優化演算法的功能,是通過改善訓練方式,來最小化(或最大化)損失函式。一般最基礎的優化函式是梯度下降演算法。

多標籤文字分類 三種神經網路 網路模型

基於深度學習 基於深度學習的文字分類綜述 多種深度學習演算法模型 本人的主要研究方向為基於深度學習的多標籤文字分類,在此給出用於文字分類的三種神經網路結構 cnn rnn transformer,也可以說是四種 算上nn nn,傳統的神經網路模型,例如fasttext。cnn,卷積神經網路模型。將影...

神經網路中的啟用函式

所謂啟用函式 activation function 就是在人工神經網路的神經元上執行的函式,負責將神經元的輸入對映到輸出端,也叫激勵函式。作用 因為線性模型的表達能力不夠,引入啟用函式是為了新增非線性因素。在神經網路中,每一層輸出的都是上一層輸入的線性函式,所以無論網路結構怎麼搭,輸出都是輸入的線...

神經網路中的啟用函式

作者 renu khandelwal 編譯 vk medium 啟用函式有助於決定我們是否需要啟用神經元。如果我們需要發射乙個神經元那麼訊號的強度是多少。啟用函式是神經元通過神經網路處理和傳遞資訊的機制 在神經網路中,z是輸入節點與節點權值加上偏差的乘積。z的方程與線性方程非常相似,取值範圍從 到 ...