交叉熵信息学解释及其在机器学习中的应用

交叉熵是机器学习、深度学习中非常常用的损失函数。本文梳理整合了关于交叉熵的比较好的解释资料。

交叉熵的基本定义

首先给出交叉熵的维基百科定义:
在这里插入图片描述

交叉熵与相对熵(KL散度)

相对熵又称为KL散度(Kullback-Leibler Divergence),用来衡量两个分布之间的距离,记为:
D K L = ( p ∣ ∣ q ) D_{KL} = (p||q) DKL=pq
在这里插入图片描述

这里H( p )是p的熵。
假设有两个分布p和q,它们在给定样本集上的交叉熵定义为:
在这里插入图片描述
从这里可以看出,交叉熵和相对熵相差了H( p ),而当p已知的时候,H( p )是个常数,所以交叉熵和相对熵在这里是等价的,反映了分布p和q之间的相似程度。

交叉熵的信息学解释

一句话概括的话,交叉熵描述了两个不同的概率分布p和q的差异程度。 交叉熵是不对称的,也就是说Hp( q ) 不等于 Hq( p )。两个分布差异越大,则两个交叉熵的差异越大。
关于交叉熵的信息学理解,下面这篇博客解释的很好,通俗易懂:
看得见的信息论-为什么用交叉熵作为逻辑回归的代价函数

交叉熵损失函数(机器学习/深度学习应用)

交叉熵来自香农的信息论,简单来说,交叉熵是用来衡量在给定的真实分布p(k)下,使用非真实分布q(k)所指定的策略 f(x) 消除系统的不确定性所需要付出的努力的大小。交叉熵的越低说明这个策略越好,我们总是minimize交叉熵,因为交叉熵越小,就证明算法所产生的策略越接近最优策略,也就间接证明我们的算法所计算出的非真实分布越接近真实分布。交叉熵损失函数从信息论的角度来说,其实来自于KL散度。

Cross Entropy Error Function(交叉熵损失函数)

二分类

在二分的情况下,模型最后需要预测的结果只有两种情况,对于每个类别我们的预测得到的概率为p和1-p。此时表达式为:
在这里插入图片描述
其中:

  • y——表示样本的label,正类为1,负类为0
  • p——表示样本预测为正的概率
    多分类
    多分类的情况实际上就是对二分类的扩展:

其中:

  • M——类别的数量;
  • y——指示变量(0或1),如果该类别和样本的类别相同就是1,否则是0;
  • p——对于观测样本属于类别c的预测概率。

这个表达式其实就是逻辑回归的损失函数,逻辑回归的损失函数就是交叉熵函数

多分类

多分类的情况实际上就是对二分类的扩展:
在这里插入图片描述
其中:

  • M——类别的数量;
  • y——指示变量(0或1),如果该类别和样本的类别相同就是1,否则是0;
  • p——对于观测样本属于类别c的预测概率。

pytorch中关于交叉熵损失函数的描述

在这里插入图片描述
pytorch 中的交叉熵其实已经集成了softmax计算,所以我们的输出不需再手动添加softmax层。pytorch的交叉熵函数中允许我们对不同的类别给予不同的权重。

参考资料:
1.维基百科
2.Softmax函数与交叉熵
3.看得见的信息论-为什么用交叉熵作为逻辑回归的代价函数
4.损失函数——交叉熵损失函数
5.pytorch官网-交叉熵

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值