cross entropy与softmax求导(1) 思路

softmax是向量函数,输入向量并输出另一个向量,

“对softmax求导”,到底是在对什么求导?

 

对向量函数求导 得到的是一个矩阵: (不要在意字母的含义) 

 

因为有多个输出,要明确的是:计算哪个输出元素的导数?

以及,由于softmax具有多个输入,所以也要明确:计算它(这个输出元素)关于哪个输入元素的偏导数?

求导在这里更具体的表述是: 求第 i 个输出关于第 j 个输入的偏导数

这样:

 

 

求导是为了配合cross entropy来进行backpropagation,

假设最后cross entropy中进行计算的one-hot向量的第 i 位为1,其余的为0,

我们只要求出 第 i 个输出关于 每一个输入元素的偏导数就可以了,

因为其他的输出都乘以0了,对loss没有贡献,

 

 

对于所有的输入元素,用 j 来表示输入元素的序号,这里又分两种情况,

(1) j 等于 i 时,即第 i 个输入变量 ;

(2) j 不等于 i 时;

 

这两种情况下,偏导数的公式是不同的

 j 等于 i 时,softmax分子分母都含有第 j 个输入元素,

 j 不等于 i 时,softmax只有分母含有第 j 个输入元素,

 

转载并自己发挥:https://blog.csdn.net/cassiePython/article/details/80089760

posted @ 2018-09-13 10:28  烧鸭饭真好吃  阅读(177)  评论(0编辑  收藏  举报