NN Basics - Softmax Calculation && Backpropagation
转自详解softmax函数以及相关求导过程
若该分类ai的label为1,则偏导数为ai-1
若该分类aj的label为0,则偏导数为aj
1. 偏导数推倒
其实也可以这样理解:
- 若网络输出三个类别softmax值分别是0.1, 0.2, 0.7,ground true label为0,0,1,那么loss即为0.1, 0.2, -0.3
- 这也符合直觉,因为前2类loss是为了惩罚,让weight的偏导数减少,就是0.1-0和0.2-0,最后1类loss是为了补偿,0.7-1=-0.3,让weight的偏导数增大
- 总结下,softmax with loss相对于之前最后一个节点的偏导,就是网络计算的该点输出的softmax值,减去对应的ground truth label(0或者1)
combines LogSoftMax and NLLLoss in one single class,也就是说我们的网络不需要在最后一层加任何输出层,该loss Function为我们打包好了
3. 附件,常用导数公式