前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩个游戏来理解交叉熵

玩个游戏来理解交叉熵

作者头像
McGL
发布2020-09-02 19:05:40
5070
发布2020-09-02 19:05:40
举报
文章被收录于专栏:PyVisionPyVision

作者:Lili Jiang 编译:McGL

首先,我们需要理解熵(entropy)的概念。

要不先来玩个游戏吧。

游戏一:

我将从一袋硬币(里面有一枚蓝色硬币,一枚红色硬币,一枚绿色硬币和一枚橙色硬币)中取出一枚硬币。你的目标是用最少的问题来猜它是什么颜色。

最好的策略之一是:

每枚硬币被选中的概率是1/4,需要2个问题才能猜对。所以猜硬币的预期问题数是2。

游戏二:

现在,我将从一袋硬币(其中1/2是蓝色的,1/4是红色的,1/8是绿色的,1/8是橙色的)中抽出一枚硬币 。之前的策略不再是最好的; 因为抽到蓝色硬币的概率大,我们应该优先猜测最有可能的结果。最佳策略现在看起来是这样的:

1/2情况下,它是蓝色的,只需要一个问题就能猜出来。1/4情况下,它是红色的,需要两个问题才能猜出来。根据这个逻辑,猜硬币的预期问题数是1/2 x 1个问题(蓝色) + 1/4 x 2个问题(红色) + 1/8 x 3个问题(绿色) + 1/8 x 3个问题(橙色) = 1.75。

游戏三:

为了与一个极端的例子形成对比,我从一个装满蓝色硬币的袋子里取出一些硬币。显然,猜我的硬币的颜色需要0个问题,或者... 如果我们用一种有趣的方式表示的话:log(1) = 0。注意,只有当你知道它一袋全是蓝色时,才需要回答0个问题。

有趣的是,一个模式出现了: 一枚概率为 p 的硬币需要 log(1/p) 个问题才能答对。例如,当 p = 1/4, log(4) = 2 个问题(本文所有对数的基都为2)。所以总计这个游戏的预期问题数是

这就是熵的表达式。直观的说,这实际上是指猜颜色这个游戏的最佳策略下的预期问题数量。越不确定的设置(游戏一 > 游戏二 > 游戏三) ,熵越高。

现在,让我们继续讨论交叉熵(cross entropy)

对于游戏二,如果我们仍然使用游戏一的策略,

于是,1/8概率硬币是橙色的,需要2个问题才能猜对。1/2概率它是蓝色的,但它仍然需要2个问题才能猜对。平均来说,需要问1/8 × 2 + 1/8 × 2 + 1/4 × 2 + 1/2 × 2 = 2 个问题才能得到正确的答案,而不是我们前面讨论过的最优策略1.75个问题。因此,在游戏二中使用游戏一的策略更糟糕,其中2是使用游戏一策略的交叉熵。

因此,对于一个给定的策略,交叉熵就是在该策略下猜测颜色的问题数量的期望。对于给定的设置,策略越好,交叉熵越低。最低的交叉熵即最优策略的交叉熵,也就是上面定义的熵。这就是为什么在机器学习的分类问题中,人们试图使交叉熵最小化。

更正式的说,交叉熵是

其中 是真实概率(例如,橙色和绿色为1/8,红色为1/4,蓝色为1/2), 是错误假设的概率(例如,使用策略1,我们假设所有颜色p = 1/4)。很容易混淆log里面应该是 p 还是 。这样理解比较容易记住: 对数用于计算你的策略下需要问的问题数量,所以 log 里面是你的预测概率, 。

所以,在一个决策树中,如果你的树没有以最好的方式构造,你基本上就是错误地假设了结果的概率分布,而且交叉熵很高。

交叉熵不仅仅用于决策树,它也适用于所有的分类问题。在二分类问题中,预测 表示y = 1的可能性, 表示y = 0的可能性。因此,我们可以用一种巧妙的方式写出我们想要最大化的可能性:

当 y = 1时,乘积的第二项是1,我们要最大化 ; 当 y = 0时,乘积的第一项是1,我们要最大化 。只有当 y 的值仅为0或1时,这个方法才有效。

最大化对数的可能性等价于最小化

这是交叉熵的表达式。这就是为什么交叉熵被称为对数损失。最小交叉熵即最大化对数。例如,在我的分类中有三个数据点,它们的真实标签是1, 1, 0,我的预测 y 是0.8, 0.9, 0.3。那么平均交叉熵是

如果我完美预测为1, 1, 0,那么交叉熵是0。(从技术上讲,对数在0处没有定义,但是这里我们可以忽略这点。) 使用硬币游戏类比,在这里,每个样本 y 的预测是一个单独的猜硬币游戏,设置和游戏三相同。第一个样本 y=1 就像从一个只有“ y=1”的袋子里抽出一枚硬币。现在,如果你是一个忍者猜测者(又名完美算法) ,那么你也知道它必须是一袋硬币全是一。所以 。第二个和第三个样本也是如此。因此,对于一个完美的算法,交叉熵为0。

原文:https://www.quora.com/Whats-an-intuitive-way-to-think-of-cross-entropy/answer/Lili-Jiang

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-21,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 PyVision 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者:Lili Jiang 编译:McGL
  • 游戏一:
  • 游戏二:
  • 游戏三:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com