日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

softmax with cross-entropy loss求导(转载+细节整理)

發(fā)布時(shí)間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 softmax with cross-entropy loss求导(转载+细节整理) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

softmax 函數(shù)
softmax(柔性最大值)函數(shù),一般在神經(jīng)網(wǎng)絡(luò)中, softmax可以作為分類任務(wù)的輸出層。

其實(shí)可以認(rèn)為softmax輸出的是幾個(gè)類別選擇的概率,比如我有一個(gè)分類任務(wù),要分為三個(gè)類,softmax函數(shù)可以根據(jù)它們相對(duì)的大小,輸出三個(gè)類別選取的概率,并且概率和為1。

即總共有kkk類,必有:
∑k=1Cyi=1\sum_{k=1}^Cy_i=1k=1C?yi?=1

為了方便下面的推導(dǎo),先來(lái)個(gè)圖示:

----------------------------------------
softmax函數(shù)的公式是這種形式:
ai=ezi∑kezka_i=\frac{e^{z_i}}{\sum_k^{e^{z_k}}}ai?=kezk??ezi??

其中:
wijw_{ij}wij?:第iii個(gè)神經(jīng)元的第jjj個(gè)權(quán)重,
b:偏移值。
ziz_izi?:該網(wǎng)絡(luò)的第iii個(gè)輸出。

ziz_izi?后面施加softmax函數(shù),得到aia_iai?

損失函數(shù)使用Cross_Entropy
----------------------------------------
J=?∑iyilnaiJ=-\sum_i{y_i}ln\ a_iJ=?i?yi?ln?ai?
其中:
aia_iai?:模型預(yù)測(cè)值
yiy_iyi?:預(yù)期數(shù)值

當(dāng)二分類時(shí),有

1N∑n=1N[pnlogqn+(1?pn)log(1?qn)]\frac{1}{N}\sum_{n=1}^N[p_nlogq_n+(1-p_n)log(1-q_n)]N1?n=1N?[pn?logqn?+(1?pn?)log(1?qn?)]
其中:
NNN:數(shù)據(jù)集的總數(shù)
pnp_npn?:真實(shí)分布
qnq_nqn?:預(yù)測(cè)分布
----------------------------------------------

這篇博客中,我們的目標(biāo)函數(shù)是:
?J?zi\frac{\partial J}{\partial z_i}?zi??J?
=∑j(?Jj?aj?aj?zi)=\sum_j(\frac{\partial J_j}{\partial a_j}\frac{\partial a_j}{\partial z_i})j?(?aj??Jj???zi??aj??)

其中:
?Jj?aj\frac{\partial J_j}{\partial a_j}?aj??Jj??
=??yj?lnaj?aj=-\frac{-y_j·ln a_j}{\partial a_j}=??aj??yj??lnaj??
=?yj1aj=-y_j\frac{1}{a_j}=?yj?aj?1?

?aj?zi\frac{\partial a_j}{\partial z_i}?zi??aj??
=?[ezj∑kezk]?zi=\frac{\partial[ \frac{e^{z_j}}{ \sum_k e^{z_k} }]}{\partial z_i}=?zi??[k?ezk?ezj??]?

下面分情況,這里之所以要分情況是求導(dǎo)的規(guī)律來(lái)決定的:

?[ezj∑kezk]?zi(1)\frac{\partial[ \frac{e^{z_j}}{ \sum_k e^{z_k} }]}{\partial z_i}(1)?zi??[k?ezk?ezj??]?(1)
為了處理式(1),根據(jù):
f(x)=g(x)h(x)f(x)=\frac{g(x)}{h(x)}f(x)=h(x)g(x)?
f′(x)=g′(x)h(x)?g(x)h′(x)∣h(x)∣2f'(x)=\frac{g'(x)h(x)-g(x)h'(x)}{|h(x)|^2}f(x)=h(x)2g(x)h(x)?g(x)h(x)?

所以這里:
g(x)=ezjg(x)=e^{z_j}g(x)=ezj?
h(x)=∑kezkh(x)={\sum_k e^{z_k}}h(x)=k?ezk?

i=j時(shí),g′(x)=ezj,h′(x)=ezji=j時(shí),g'(x)=e^{z_j},h'(x)=e^{z_j}i=j時(shí),g(x)=ezj?,h(x)=ezj?
iii≠j時(shí),g′(x)=0,h′(x)=ezj時(shí),g'(x)=0,h'(x)=e^{z_j}時(shí),g(x)=0,h(x)=ezj?

由此處理式(1)得到:
i=j時(shí)i=j時(shí)i=j時(shí)
?aj?zi=ezi∑kezk?(ezi)2[∑kezk]2=ai?ai2\frac{\partial a_j}{\partial z_i}=\frac{e^{z_i}{\sum_k e^{z_k}}-(e^{z_i})^2}{[ { \sum_k e^{z_k} }]^2}=a_i-a_i^2?zi??aj??=[k?ezk?]2ezi?k?ezk??(ezi?)2?=ai??ai2?

iiij時(shí)j時(shí)j時(shí)
?aj?zi=?(ezj)(ezi)[∑kezk]2=?aj?ai\frac{\partial a_j}{\partial z_i}=\frac{-(e^{z_j})(e^{z_i})}{[ { \sum_k e^{z_k} }]^2}=-a_j·a_i?zi??aj??=[k?ezk?]2?(ezj?)(ezi?)?=?aj??ai?

總結(jié)下:
?J?zi\frac{\partial J}{\partial z_i}?zi??J?
=∑j(?Jj?aj?aj?zi)=\sum_j (\frac{\partial J_j}{\partial a_j} \frac{\partial a_j}{\partial z_i})=j?(?aj??Jj???zi??aj??)
=∑i=j[(?yjaj)(ai?ai2)]+∑i≠j[(?yjaj)(?ajai)]=\sum_{i=j}[(\frac{-y_j}{a_j})(a_i-a_i^2)]+\sum_{i \ne j}[(\frac{-y_j}{a_j})(-a_ja_i)]=i=j?[(aj??yj??)(ai??ai2?)]+i??=j?[(aj??yj??)(?aj?ai?)]
=?yi(1?ai)+∑i≠j[yjai]=-y_i(1-a_i)+\sum_{i \ne j}[y_ja_i]=?yi?(1?ai?)+i??=j?[yj?ai?]
=?yi+ai∑jyj=-y_i+a_i\sum_jy_j=?yi?+ai?j?yj?
∵∑jyj=1(因?yàn)樗星闆r的概率和為1)∵ \sum_j y_j=1(因?yàn)樗星闆r的概率和為1)j?yj?=1(1)
∴原式=?yi+ai∴原式=-y_i+a_i?yi?+ai?

參考鏈接:
https://blog.csdn.net/Charel_CHEN/article/details/81266838
https://blog.csdn.net/qian99/article/details/78046329
https://zhuanlan.zhihu.com/p/27223959
http://shuokay.com/2016/07/20/softmax-loss/

總結(jié)

以上是生活随笔為你收集整理的softmax with cross-entropy loss求导(转载+细节整理)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。