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