Processing math: 100%
0%

怎样理解 Cross Entropy

通过一个简单的例子来解释和总结什么是 Cross Entropy 以及为什么使用 Cross Entropy.

第一个例子

假设随机从一个口袋里取硬币,口袋里有一个蓝色的,一个红色的,一个绿色的,一个橘色的。取出一个硬币之后,每次问一个问题,然后做出判断,目标是,问最少的问题,得到正确答案。其中一个最好的策略如下:

每一个硬币有 14 的概率被选中,回答问题的期望是 2.

第二个例子

例子变了,变成了袋子中 18 的硬币是绿色的,18 的是橘色的,14 是红色的,12 是蓝色的,这时最优的策略如下:

12 的概率是蓝色,只需要 1 个问题就可以知道是或者不是,14 的概率是红色,需要 2 个问题,按照这个逻辑,猜中硬币需要的问题的期望是 12×1+14×2+18×3+18×3=1.75

第三个例子

假设袋子中全部是蓝色的硬币,那么,这时候,需要 0 个问题就可以猜到硬币,即 log21=0. 需要注意的是,只有当知道袋子中全部是蓝色的硬币的时候才会需要的问题是 0 个。

总结上面的例子,假设一种硬币出现的概率是 p, 那么,猜中该硬币的所需要的问题数是 log21p. 例如,p=14, log24=2.

在这个问题中,问题个数的期望是 ipi×log21pi. 这个式子就是 entropy 的表达式。简单来说,其意义就是 在最优化策略下,猜到颜色所需要的问题的个数. 不确定性越高,entropy 就越大.
现在已经了解了 entropy 是什么,那么,下面解释 cross entropy 的含义。
对于第二个例子,如果仍然使用第一个例子中的策略,如下图:

18 的概率,硬币是橘色,需要两个问题,12 的概率是蓝色,仍然需要两个问题,平均来说,需要的问题数是 18×2+18×2+14×2+12×2=2. 因此,在例子二中使用例子一的策略是一个比较差的策略。其中 2 是这个方案中的 cross entropy.
给定一个策略,cross entropy 就是在该策略下猜中颜色所需要的问题的期望值. 给定一个方案,约优的策略,最终的 cross entropy 越低。具有最低的 cross entropy 的策略就是最优化策略。也就是上面定义的 entropy. 因此,在机器学习中,我们需要最小化 cross entropy.

数学上来讲,cross entropy 就是 ipi×log21ˆpi, 其中,p 是真正的概率,例如例子二中,橘色和绿色是 18, 红色是 14, 蓝色是 12. ^pi 是错误地假设了的概率,例如,在例子二中我们错误地假设了所有的颜色的概率都是 14. pˆp 可能有点容易混淆。记住一点,log 是用来计算在 你的策略 下猜中所需要的问题数,因此,log 中需要的是 你的预测概率 ˆp.
在决策树中,如果建立的数不是最优的,结果就是对于输出的概率分布的假设是错误地,导致的直接结果就是 cross entropy 很高。
cross entropy 不仅仅应用在决策树中,在所有的分类问题中都有应用。在二分类问题中,标签 y 是 1 的似然是对于标签 y 的预测 ˆy, 同样的,标签是 0 的似然是 1ˆy. 我们需要最大化似然函数,而且,由于二分类问题的特殊性,可以把似然函数写成 ˆyy(1ˆy)1y. 当 y=1 的时候,第二项为 1, 因此,优化的是 ˆy, 当 y=0 的时候,第一项为 1, 优化的是 1ˆy.
对上面的似然函数取对数,结果是:

logˆyy(1ˆy)1y=ylogˆy+(1y)log(1ˆy)

最大化似然函数,就是对上面表达式取负然后最小化,即最小化 ylogˆy+(1y)log(1ˆy). 这就是 cross entropy 的表达式。cross entropy 有时候也被称为 log loss.
举例来说,假设我有 3 枚硬币,正正反,记为 1,1,0. 预测结果是 0.8, 0.9, 0.3, 那么,cross entropy 的均值是:

13(1×log0.8+1×log0.9+(10)×log(10.3))

假设有一个完美的算法,直接预测出了 1,1,0, 那么 cross entropy 的结果就是 0.