最近在回顾关于深度学习的基础知识。在求神经网络梯度的时候损失函数对于网络最后一层输入单元的求导是比较有技巧的。比如在多类别分类任务中经常用交叉熵损失函数训练softmax来输出目标值y。这一组合在对softmax输入单元的求梯度会非常简单,而且损失函数中的log可以抵消softmax中的exp。下面我就来推导交叉熵损失函中对softmax函数输入单元求导过程。
下图便是手动推导过程,我们的目标是对softmax函数中输入单元求导。
最后可以看到对输入单元zi求导变得非常简单。在求梯度的时候可以直接给出,使得梯度反向传播的计算量变得很小。