在上一篇随笔中,我提到了多分类(Softmax)交叉熵损失函数反向传播为,但并未证明,现将证明过程附上。
首先,多分类的Softmax函数为:
交叉熵损失函数为:
为输入值,
为输入值的第
个维度,
为预测值,
为第
个标签,
为真实值。所求的反向传播,实际上是损失函数
对于入参每个维度
的偏导数
。
而,
因此
注意到,上式右边偏导数的算法取决于与
是否相等,因此我们将上式分开。有:
而
因此
因为对于多分类任务,真实值是one-hot向量,所以
,因此,
上面这一点也提醒我们,多分类交叉熵损失函数只适用于单标签的多分类任务,不适用于该函数训练多标签分类任务(本人惨痛教训),切记。望多指教。