前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习 | 交叉熵

机器学习 | 交叉熵

作者头像
努力在北京混出人样
发布2019-02-18 18:15:08
1.1K0
发布2019-02-18 18:15:08
举报

为分类任务中,常用交叉熵来刻画损失函数,为什么可以这样使用呢?下面将一步步的揭开面纱。

1、数学背景

定义:在信息论中,交叉熵是表示两个概率分布p,q,其中p表示真实分布,q表示非真实分布,在相同的一组事件中,用非真实分布q来表示某个事件发生所需要的平均比特数。从这个定义中,我们很难理解交叉熵的定义。下面举个例子来描述一下。

假设现在有一个样本集中两个概率分布p,q,其中p为真实分布,q为非真实分布。假如,按照真实分布p来衡量识别一个样本所需要的编码长度的期望为:

H(p)=∑p(i)∗log(1p(i))

H(p) = \sum p(i) * log(\frac{1}{p(i)})

但是,如果采用错误的分布q来表示来自真实分布p的平均编码长度,则应该是:

H(p,q)=∑p(i)log(1q(i))

H(p,q) = \sum p(i) log(\frac{1}{q(i)})

此时,就将H(p,q)称之为交叉熵。交叉熵的计算方法如下:

  • 对于离散变量采用以下的方式计算:

H(p,q)=−∑xp(x)log(q(x))

H(p,q) = -\sum_{x} p(x) log(q(x))

  • 对于连续变量采用以下的方式计算:

−∫XP(x)log(Q(x))dr(x)=Ep[−logQ]

-\int_{X} P(x)log(Q(x)) dr(x) = E_{p} [-logQ]

实际上,交叉熵是衡量两个概率分布p,q之间的相似性。这可以子啊特征工程中,用来衡量变量的重要性。

此部分引用:http://www.cnblogs.com/ljy2013/p/6432269.html

2、机器学习中应用交叉熵

应用一: 在分类任务中,基于传统平方的方法是无法构建损失函数的,因此引入softmax函数来概率化。这里我们介绍对分类任务构建损失函数,使用交叉熵的方法,将真实值与预测值联系起来。

交叉熵越小,表明其值差异越小,也就意味着损失函数越小。于是,我们的优化目标便是:最小化交叉熵。

对于真实的类别向量为y,预测的向量为y_ ,这是的损失函数为:

loss=−∑ylog(y_)

loss = -\sum y log (y\_)

基于损失函数来做优化,可采用梯度下降法、随机梯度下降法等。

应用二: 在特征工程中,可以用来衡量两个随机变量之间的相似度。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年06月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档