1. 多分类问题的交叉熵
设标签
yk=1,也即
xk对应的第
k类的标签为1,则交叉熵损失函数为:
J=−j=1∑NyjlogajL=−logakL(1)
其中
N是分类的类别数目。
softmax激活函数的表达式为:
akL=j=1∑NezjLezkL(2)
反向传播过程需要对每一个
zjL,j=1,2,⋯,N求导数。
(1) 当
j=k时:
∂zjL∂J=∂zkL∂J=∂akL∂J∂zkL∂akL=−akL1(j=1∑NezjL)2(ezkL)j=1∑NezjL−ezkLezkL=−akL1akL(1−akL)=akL−1(3)
(2) 当
j ̸=k时:
∂zjL∂J=∂akL∂J∂zjL∂akL=−akL1(j=1∑NezjL)20∗j=1∑NezjL−ezkLezjL=ajL(4)
(3)和(4)式可以合并为:
∂zjL∂J=ajL−yj(5)
其中,只有当
j=k时,
yj=1,其余的
yj都是0。
2. 二分类问题的交叉熵
二分类问题的交叉熵损失函数:
L=−(ylogaL+(1−y)log(1−aL))(6)
则
∂zL∂J=∂aL∂J∂zL∂aL=(−aLy+1−aL1−y)aL(1−aL)=−y(1−aL)+(1−y)aL=aL−y(7)
综合比较式(7)和式(5),可以发现两者的形式是一致的。