交叉熵

交叉熵(cross entropy)是香农信息论中的一个重要概念,其概念主要来源于KL散度(Kullback-Leibler divergence),又称为相对熵。相对熵的定义如下所示:
在这里插入图片描述
其中,P(x)和Q(x)分别为随机变量x的真实分布和预测或者拟合分布。我们将上式中的log函数展开得到如下形式:
在这里插入图片描述
通过上式我们发现等式右边第一项由于P(x)为随机变量的真实分布所以第一项为常量恒不变,所以对于相对熵我们只研究其第二项,即交叉熵:
在这里插入图片描述
其中n为样本的类别数。
通过相对熵的公式,我们会发现KL(P||Q)的值越小,P(x)和Q(x)的值越接近,即预测分布越接近真实分布,此时训练达到了目标。由于相对熵的第一项为常量,当我们希望KL(P||Q)的值越小时,实际上就可以转化为求解第二项即交叉熵的最小化问题。然而在神经网络中,我们通常以一个batch_size大小的样本集去训练神经网络,此时交叉熵的公式在以上的公式基础之上稍作变化,即此时我们需要求一个batch_size大小的样本数据集的交叉熵的平均值,即
在这里插入图片描述
其中m为batch_size的值,即样本数据集的大小。
在tensorflow中的代码如下所示:

cross_entropy=-tf.reduce_mean(tf.reduce_sum(y_*tf.log(tf.clip_by_value(y,1e-10,1.0))))

其中y_为真实分布,tf.clip_by_value()函数可以将y(预测值)的值限定在一定范围内,从而避免出现一些运算错误(例如log0)。以上的y_和y均经过softmax函数处理,即转化为了概率的形式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值