常見的損失函式包含以上幾個。
在神經網路中樣本的平方損失函式一般會定義為: ed
=12∑
i(zi
−yi)
2,方便求導後約掉係數。
使用誤差逆傳播訓練神經網路時會使用梯度下降法來更新每個神經網路中的權重,
根據鏈式求導法可以得到權重更新公式,
∂ed∂wji
=∂ed
∂nod
ej∂n
odej
∂wji
=∂ed
∂nod
ej∂∑
iwji
xji∂
wji=
∂ed∂
node
jxji
此時對於輸出層,權重更新公式為 ∂
ed∂w
ji=∂
ed∂y
j∂yj
∂nod
ejxj
i如果神經元使用sigmoid啟用函式,即y=
11+e
−z,函式圖如下,
則梯度下降法更新權重時,會涉及到sigmoid函式的導數,這個導數的形狀大致如下:
可以看到導數兩邊的值基本都接近0,也就是說兩邊的斜率很平緩,兩邊的點在使用梯度下降時下降很緩慢,可能會影響訓練最終效果。
針對以上不足,有兩個方向來避免,一是從啟用函式下手,乙個是從損失函式下手。這裡我們不換啟用函式,還是用sigmoid函式,於是引入了交叉熵損失函式。
l=∑i[zi
lnyi
+(1−
zi)l
n(1−
yi)]
這時再看權重更新公式, ∂
l∂wj
i=∂l
∂nod
ej∂n
odej
∂wji
=∂l∂
node
j∂∑i
wjix
ji∂w
ji=∂
l∂no
dejx
ji
此時對於輸出層,權重更新公式為 ∂
l∂wj
i=∂l
∂yj∂
yj∂n
odej
xji=
xji(
zj−y
j)
可以看到梯度下降已經不與sigmoid的導數相關了,而是由誤差來影響,當誤差較大時則下降較快,讓梯度下降法更有效率,避免了訓練慢的問題。
以下是廣告
*****===廣告時間*****===
鄙人的新書《tomcat核心設計剖析》已經在京東銷售了,有需要的朋友可以到 進行預定。感謝各位朋友。
為什麼寫《tomcat核心設計剖析》
神經網路多分類任務的損失函式 交叉熵
神經網路解決多分類問題最常用的方法是設定n個輸出節點,其中n為類別的個數。對於每乙個樣例,神經網路可以得到的乙個n維陣列作為輸出結果。陣列中的每乙個維度 也就是每乙個輸出節點 對應乙個類別。在理想情況下,如果乙個樣本屬於類別k,那麼這個類別所對應的輸出節點的輸出值應該為1,而其他節點的輸出都為0。以...
神經網路多分類任務的損失函式 交叉熵
神經網路解決多分類問題最常用的方法是設定n個輸出節點,其中n為類別的個數。對於每乙個樣例,神經網路可以得到的乙個n維陣列作為輸出結果。陣列中的每乙個維度 也就是每乙個輸出節點 對應乙個類別。在理想情況下,如果乙個樣本屬於類別k,那麼這個類別所對應的輸出節點的輸出值應該為1,而其他節點的輸出都為0。以...
交叉熵作為損失函式在神經網路中的作用
一般情況下,最後乙個輸出層的節點個數與分類任務的目標數相等。假設最後的節點數為n,那麼對於每乙個樣例,神經網路可以得到乙個n維的陣列作為輸出結果,陣列中每乙個維度會對應乙個類別。在最理想的情況下,如果乙個樣本屬於k,那麼這個類別所對應的的輸出節點的輸出值應該為1,而其他節點的輸出都為0,即 0,0,...