進行非線性變換,假如我們構建了乙個多層的神經網路,那它每一層做的其實都是乙個線性加權求和的運算,因此這個神經網路就只能做線性分類。當我們對每層網路中的各個節點都做非線性變換(使用啟用函式)時,那麼這個神經網路就可以做非線性分類任務了。
下面我列舉了的三種常用的啟用函式:
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
m1i
=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(θ)=−
m1i
=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⋅logak
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的方程與線性方程非常相似,取值範圍從 到 ...