在深度学习中,softmax层一般作为输出层出现,也就是网络的最后一层;测试过程中,这一层直接输出网络的最终结果,而在训练过程这一层又会作为误差反传的第一层,也就是计算误差的第一层。
下面我们就来推导一下:
假设softmax层有K个神经元(也可以理解为K个输出)
其中
首先我们先计算softmax的输出对输入
的偏导:
这里有两个情况需要分别处理(1),(2)
当时:
当时:
有了这两个公式就可以计算出对应梯度。
假设模型损失的值为
在深度学习中,softmax层一般作为输出层出现,也就是网络的最后一层;测试过程中,这一层直接输出网络的最终结果,而在训练过程这一层又会作为误差反传的第一层,也就是计算误差的第一层。
下面我们就来推导一下:
假设softmax层有K个神经元(也可以理解为K个输出)
其中
首先我们先计算softmax的输出对输入
的偏导:
这里有两个情况需要分别处理(1),(2)
当时:
当时:
有了这两个公式就可以计算出对应梯度。
假设模型损失的值为