700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 图示Softmax及交叉熵损失函数

图示Softmax及交叉熵损失函数

时间:2021-08-05 09:15:21

相关推荐

图示Softmax及交叉熵损失函数

Softmax函数

Softmax是将神经网络得到的多个值,进行归一化处理,使得到的值在之间,让结果变得可解释。即可以将结果看作是概率,某个类别概率越大,将样本归为该类别的可能性也就越高。Softmax就如下图(借鉴李宏毅老师的课件)

SoftMax

为了更加清晰的看清整个过程,我将其制作成gif,如下图所示:

Softmax的工作过程

交叉熵:

假设和是关于样本集的两个分布,其中是样本集的真实分布,是样本集的估计分布,那么按照真是分布来衡量识别一个样本所需要编码长度的期望(即,平均编码长度):

如果用估计分布来表示真实分布的平均编码长度,应为:

这是因为用来编码的样本来自于真是分布,所以期望值中的概率是。而就是交叉熵。

注:不了解什么是编码的请看这里:如何理解用信息熵来表示最短的平均编码长度。

在神经网络后面添加Softmax,真实的标签(或者是类别)就相当于真实的分布,经过Softmax得出的值就是预测的结果,因此可以使用交叉熵函数来作为损失函数。有了交叉熵的概念,我们就可以得出,Softmax的损失函数:

其中是神经元的输出也可以作为预测结果,是第i个类别的真实值,只能取值。在Softmax中我们取以为底的对数,因为都是的指数形式,可以方便计算。在反向传播的过程中,如何对交叉熵损失函数求导呢?可以先看下图的示例,显示了如何得到损失函数:

由上图可以看到,损失函数具体形式是什么。为了计算反向传播,我们从最后一层开始,也就是首先要对Softmax的输入求导,得:

,其中

由于每个的分母中都有的贡献,故我们要考虑每一个输出值。则:

对于,需要分开讨论因为和时的求导结果不同,故需分开讨论。则

当时,有:

当时

故,

注:因为如果给定一个样本那么他对应的真实标签只有一个值为,其余为0,故,

Sotfmax的交叉熵损失函数,还有另外的形式:

其本质是一样的,因为是示性函数,只有当大括号内的值为真时才取值为1,否则为0,即。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。