交叉熵的反向傳播梯度推導(使用softmax激活函數)

1. 多分類問題的交叉熵

設標籤yk=1y_k=1,也即xkx_k對應的第kk類的標籤爲1,則交叉熵損失函數爲:
(1)J=j=1NyjlogajL=logakLJ = -\sum_{j=1}^Ny_j\log a_j^L = -\log a_k^L \tag{1}
其中NN是分類的類別數目。

softmax激活函數的表達式爲:
(2)akL=ezkLj=1NezjLa_k^L = \frac{e^{z_k^L}}{\sum\limits_{j=1}^{N}e^{z_j^L}} \tag{2}

反向傳播過程需要對每一個zjL,j=1,2, ,Nz_j^L, j=1, 2, \cdots, N求導數。

(1) 當j=kj=k時:
(3)JzjL=JzkL=JakLakLzkL=1akL(ezkL)j=1NezjLezkLezkL(j=1NezjL)2=1akLakL(1akL)=akL1\begin{aligned} \frac{\partial J}{\partial z_j^L}=\frac{\partial J}{\partial z_k^L}& = \frac{\partial J}{\partial a_k^L}\frac{\partial a_k^L}{\partial z_k^L} \\ & = -\frac{1}{a_k^L}\frac{(e^{z_k^L})\sum\limits_{j=1}^{N}e^{z_j^L}-e^{z_k^L}e^{z_k^L}}{(\sum\limits_{j=1}^{N}e^{z_j^L)^2}} \\ & = -\frac{1}{a_k^L} a_k^L(1- a_k^L) \\ & = a_k^L -1 \tag{3} \end{aligned}

(2) 當 j kj~\neq k時:
(4)JzjL=JakLakLzjL=1akL0j=1NezjLezkLezjL(j=1NezjL)2=ajL\begin{aligned} \frac{\partial J}{\partial z_j^L}& = \frac{\partial J}{\partial a_k^L}\frac{\partial a_k^L}{\partial z_j^L} \\ & = -\frac{1}{a_k^L}\frac{0*\sum\limits_{j=1}^{N}e^{z_j^L}-e^{z_k^L}e^{z_j^L}}{(\sum\limits_{j=1}^{N}e^{z_j^L)^2}} \\ & = a_j^L \tag{4} \end{aligned}

(3)和(4)式可以合併爲:
(5)JzjL=ajLyj\frac{\partial J}{\partial z_j^L} = a_j^L - y_j \tag{5}
其中,只有當j=kj=k時,yj=1y_j=1,其餘的yjy_j都是0。

2. 二分類問題的交叉熵

二分類問題的交叉熵損失函數:
(6)L=(ylogaL+(1y)log(1aL))L = -(y\log a^L+(1-y)\log(1-a^L)) \tag{6}

(7)JzL=JaLaLzL=(yaL+1y1aL)aL(1aL)=y(1aL)+(1y)aL=aLy\begin{aligned} \frac{\partial J}{\partial z^L}& = \frac{\partial J}{\partial a^L}\frac{\partial a^L}{\partial z^L} \\ & = (- \frac{y}{a^L} + \frac{1-y}{1-a^L})a^L(1-a^L)\\ &=-y(1-a^L) + (1-y)a^L\\ &= a^L - y \tag{7} \end{aligned}

綜合比較式(7)和式(5),可以發現兩者的形式是一致的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章