output later 有k個神經元,有k個輸入和輸出。為了分別標記輸入和輸出,用ai
∈[1,
k]來表示output layer的輸入資料,yj
∈[1,
k]來表示output layer輸出點資料。每個輸入資料ai
∈[1,
k]和隱藏層的h個塊之間是全連線的。
這裡要求的是代價函式對每個輸入資料的導數δi
=∂l(
x,z)
∂ai 。在反向傳播中δi
會傳播給後續網路。(u
v)′=
u′v+
uv′l
n(x)
′=1x
對於任意乙個輸出yj
的導數 ∂l
(x,z
)∂yj
=∂−∑
kj′=
1zj′
lnyj
′∂yj
=−zj
yj當j
′≠j時
,該項對
於yj的
微分為0
。因此只
需要求j
′=j項
時的導數
此時有:
∂zjl
nyj∂
yj=z
jyj
首先準備一下在計算時會反覆用到的部分: ∂1
∑kj′
=1ea
j′∂a
j=∂1
∑kj′
=1ea
j′∂∑
kj=1
eaj′
∂∑kj
′=1e
aj′∂
aj=−
1(∑k
j′=1
eaj′
)2∂∑
kj=1
eaj′
∂aj=
−1(∑
kj′=
1eaj
′)2e
aj根據
鏈式法則
,把複雜
的函式分
解成復合
函式,然
後可以對
其分別求
導數∑j
′=1k
eaj′
可以分解
為∑j′
≠jea
j′+e
aj其對
eaj的
導數就是
eaj
在求導數時,根據i和j是否相等分開進行討論:
當i=j時,求導數公式如下: ∂e
ai∑k
j=1e
aj∂a
i=∂e
ai∂e
ai1∑
kj′=
1eaj
′+ea
i∂1∑
kj′=
1eaj
′∂ai
=eai
1∑kj
′=1e
aj′+
eai(
−1(∑
kj′=
1eaj
′)2e
ai)=
eai∑
kj′=
1eaj
′(1−
eai∑
kj′=
1)=y
i(1−
yi)根
據(uv
)′=u
′v+u
v′,把
函式拆成
兩個部分
分別求導
數由so
ftma
x定義,
yi=e
ai∑k
j′=1
eaj′
i≠j的求導數公式如下: ∂e
aj∑k
j′=1
eaj′
∂ai=
eaj∂
1∑kj
′=1e
aj′∂
eai=
eaj(
−1(∑
kj′=
1eaj
′)2e
ai)=
eaj∑
kj=1
eaj′
eai∑
kj′=
1eaj
′=−y
jyie
aj不受
eai影
響,是個
常數 l
受所有的輸出資料yj
影響,而任意乙個輸入資料ai
會影響到所有的輸出資料yj
,因此在
l 對任意乙個ai
求導數時,要把所有的yj
的導數都傳遞給ai
,並把它們累加起來。
根據i和
j是否相
等分開進
行討論
當i≠j
時: ∑j
≠ik∂
l∂yj
∂yj∂
ai=∑
j≠ik
[−zj
yj(−
yiyj
)]當i=j時: ∂l
∂yi∂
yi∂a
i=−z
iyi[
yi(1
−yi)
] 把這兩個部分加起來: δi
=∂l∂
ai=∑
j≠ik
∂l∂y
j∂yj
∂ai+
∂l∂y
i∂yi
∂ai=
∑j≠i
k[−z
jyj(
−yiy
j)]+
=yi=
yi=y
i(1−
ziyi
)=yi
−zi根
據i和j
是否相等
分開進行
討論把上
面兩個部
分代入提
取公因數
yi由於
zj是個
概率函式
,因此所
有的zj
的和是1
。∑j≠
ikzj
+zi=
1
交叉熵損失函式以及softmax損失函式
週六總結 參考資料 本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,...
softmax分類及交叉熵損失
回歸就是通過y wx b得到的。而如果是分類,則輸出層神經元個數即為類別數。例如3類,o i wx b,i 1,2,3,然後將輸出值o做指數變化exp o i 得到的exp o 1 exp o i 即將輸出值變為和為1的概率分布。即對輸出進行指數歸一化處理 分類的損失函式一般用交叉熵損失函式 回歸一...
softmax交叉熵損失函式求導
來寫乙個softmax求導的推導過程,不僅可以給自己理清思路,還可以造福大眾,豈不美哉 softmax經常被新增在分類任務的神經網路中的輸出層,神經網路的反向傳播中關鍵的步驟就是求導,從這個過程也可以更深刻地理解反向傳播的過程,還可以對梯度傳播的問題有更多的思考。softmax 柔性最大值 函式,一...