可以参考:https://blog.csdn.net/qian99/article/details/78046329
第一篇博客中将损失函数定义为下面的会更加容易理解:
将 定义成:
或者:
关于损失函数的求导问题:
损失函数的求导目标是 :
那么求导出来就是(复合函数求导):
由于有些朋友对于之前的写法有些疑惑,所以我这里修改了一下,这里为什么是 aj 而不是ai,这里要看一下softmax的公式了,因为softmax公式的特性,它的分母包含了所有神经元的输出,所以,对于不等于i的其他输出里面,也包含着Zi,Zi是Zk中去除Zj的那些部分,意思Zk = Zi+Zj, 所以要考虑 i == j 和 i != j的两种情况:
如果 i==j :
上式的求导时候, 这里注意的问题: ,
对
的导数等于自身
对
的导数等于
,因为
其余不属于j的部分求导会等于0
如果 i!=j :
对
求导等于0,
对
求导等于
ok,接下来我们只需要把上面的组合起来:
这个梯度等于: