深度学习入门(python)考试速成之Softmax-with-Loss层

softmax函数:
深度学习入门(python)考试速成之Softmax-with-Loss层_第1张图片

交叉熵误差(Cross Entropy Error层):
深度学习入门(python)考试速成之Softmax-with-Loss层_第2张图片

这里的\log表示以e为底数的自然对数(\log_{e}),即\ln,即L=- \sum_{k}t_{k}\log y_{k}=- \sum_{k}t_{k}\ln y_{k}

y_{k}是神经网络的输出,t_{k}是正确解标签,t_{k}中只有正确解标签(表示)索引为1,其他均为0(one-hot表示)

假设正确解标签索引为“2”,与之对应的神经网络输出是0.6,则交叉熵误差为-\log0.6=0.51;若“2”对应的输出是0.1,则交叉熵误差为-\log0.1=2.30

深度学习入门(python)考试速成之Softmax-with-Loss层_第3张图片

深度学习入门(python)考试速成之Softmax-with-Loss层_第4张图片

深度学习入门(python)考试速成之Softmax-with-Loss层_第5张图片

结果\begin{pmatrix} -\frac{t_{1}}{y_{1}} & -\frac{t_{2}}{y_{2}} &-\frac{t_{3}}{y_{3}} \end{pmatrix}是传给Softmax层的反向传播的输入。

深度学习入门(python)考试速成之Softmax-with-Loss层_第6张图片

Softmax层的反向传播

深度学习入门(python)考试速成之Softmax-with-Loss层_第7张图片

前面的层(Cross Entropy Error层)的反向传播的值传过来。

深度学习入门(python)考试速成之Softmax-with-Loss层_第8张图片

深度学习入门(python)考试速成之Softmax-with-Loss层_第9张图片

深度学习入门(python)考试速成之Softmax-with-Loss层_第10张图片

正向传播时若有分支流出,则反向传播时它们的反向传播的值会相加。 因此,这里分成了三支的反向传播的值(-t_{1}S,-t_{2}S, -t_{3}S)会被求和。然后, 还要对这个相加后的值进行“/”节点的反向传播,结果为 。 这里,\begin{pmatrix} t_{1} & t_{2} & t_{3} \end{pmatrix}是教师标签,也是one-hot向量。one-hot向量意味着\begin{pmatrix} t_{1} & t_{2} & t_{3} \end{pmatrix}中只有一个元素是1,其余都是0。因此,\begin{pmatrix} t_{1} & t_{2} & t_{3} \end{pmatrix}的和为1。

深度学习入门(python)考试速成之Softmax-with-Loss层_第11张图片

“+”节点原封不动地传递上游的值。

深度学习入门(python)考试速成之Softmax-with-Loss层_第12张图片

“×”节点将值翻转后相乘。这里,式子变形时使用了y_{1}=\frac{exp(a_{1})}{S}

深度学习入门(python)考试速成之Softmax-with-Loss层_第13张图片

深度学习入门(python)考试速成之Softmax-with-Loss层_第14张图片

深度学习入门(python)考试速成之Softmax-with-Loss层_第15张图片

你可能感兴趣的:(深度学习,python,人工智能)