softmax是一个多分类器,可以计算预测对象属于各个类别的概率。
公式
yi=S(z)i=∑j=1Cezjezi,i=1,...,C
- z是上一层的输出,
softmax
的输入, 维度为 C - yi为预测对象属于第 c类的概率
梯度
![](https://wenyibi-files.oss-cn-hangzhou.aliyuncs.com/images/20191216/343_1576491225170_828052FAB343E27F3D0A88FB6A3A1116)
变量间的计算图如上,已知 y的梯度 ∂yi∂l,i=1,...,C,要计算 z的梯度 ∂zj∂l,j=1,...,C
从计算图中可以看到, z的分量 zj对 y的每一个分量都有贡献,因此:
∂zj∂l=i=1∑C∂yi∂l∂zj∂yi
由于 ∂yi∂l已知,因此计算 ∂zj∂yi即可!
为方便记 ∑j=1Cezj为 ∑C
(1) i=j时:
∂zj∂yi=∑C2ezi∑C−eziezi=∑Cezi−∑Cezi2=yi−yi2=yi(1−yi)
(2) i̸=j
∂zj∂yi=∑C20∑C−eziezj=−∑Cezi∑Cezj=−yiyj