softmax做激活函数,crossentropy做损失函数时softmax的求导问题

首先crossentropy的定义为

softmax的直观定义(摘于李宏毅教授主页http://speech.ee.ntu.edu.tw/~tlkagk/courses.html)

softmax做激活函数,crossentropy做损失函数时softmax的求导问题_第1张图片

softmax做激活函数,crossentropy做损失函数时softmax的求导问题_第2张图片

softmax它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!以手写数字图像识别为例。softmax输出的是一个十维的vector,比如待识别的数字是2,则我们希望的是在索引为2处的值最大,此时y可能是\begin{bmatrix} 0.02\\ 0.05\\ 0.8\\ 0.01\\ 0.01\\ 0.03\\ 0.01\\ 0.02\\ 0.05\\ \end{bmatrix}而y_hat为

\begin{bmatrix} 0\\ 0\\ 1\\ 0\\ 0\\ 0\\ 0\\ 0\\ 0\\ \end{bmatrix}虽然Loss是求和的形式,但由于y_hat中只有一个数字为1,其他都为0,所以Loss其实是等于 -Iny_{r} (r是y_hat中1的索引)

在Backpropagation中我们需要求\LARGE ^{\frac{\partial C}{\partial z^L}},其中\LARGE z^L[ Z^L_{1},Z^L_{2}... Z^L_{10} ],分别对10个变量求偏导即可,对Z^L_{i}求偏导需要分i=r与i≠r两种情况 \LARGE \fn_cm \LARGE ^{\frac{\partial C}{\partial z^L_{i}}} = ^{\frac{\partial C}{\partial y_{r}}}*^{\frac{\partial y_{r}}{\partial z^L_{i}}}  

softmax做激活函数,crossentropy做损失函数时softmax的求导问题_第3张图片

1)当i=r时( 注:此时yr的分子分母都含有Z^L_{i}项,且此时y_hat为1)

softmax做激活函数,crossentropy做损失函数时softmax的求导问题_第4张图片

2)i≠r时 ( 注:此时yr的只有分母都含有Z^L_{i}项)

softmax做激活函数,crossentropy做损失函数时softmax的求导问题_第5张图片

 

 

你可能感兴趣的:(人工智能)