机器学习面试之各种混乱的熵

请听题:什么是熵?什么是交叉熵?什么是联合熵?什么是条件熵?什么是相对熵?它们的联系与区别是什么?

如果你感到回答这些问题有些吃力,对这些概念似乎清楚,似乎又没有那么明白,那这篇文章就是为你准备的。

1 从随机变量说起

假设有一枚硬币,将其抛出,落下后朝上的面为y。

这里的y是对未知量的一个表示。但它的值却是不确定的,可能取正面和反面两个值。

类似的不确定变量还有好多,比如说,将人的身高设为z,z中也包含了不确定性,因为不同的人身高是不一样的。


这类包含不确定性的变量我们称为随机变量。统计学就是研究这类不确定性变量的工具。

刻画随机变量最有力的一个工具就是它的概率分布。关于什么是概率分布,这里就不多说了,可以百度百科。

有了概率分布,我们可以说对一个随机变量有了完全的掌握,因为我们可以知道它可能取哪些值,某个值的概率是多少。

以上,是对基础知识的简单复习,下面开始进入正题。


2 什么是熵?

上面,我们知道,概率分布是对随机变量的刻画,不同的随机变量有着相同或不同的概率分布,熵,就是对不同概率分布的刻画!

为什么我们还需要对不同的概率分布进行刻画?

本质上,是为了描述不确定的程度,并以此对不同的概率分布进行比较。

请允许我举个栗子。

假如我告诉你,我有两枚硬币,一个上抛一次正面朝上概率是0.5,另一个是0.8。此时,假设两枚硬币上抛一次落下后朝上的面分别是x,y。

此时,我们可以很容易确定随机变量x,y的概率分布,并借此对两个随机变量有准确的掌握。

但我们要问,这两个随机变量哪个更随机?或者说,哪个随机变量包含的不确定性更大?


如果发挥直觉,我们可以感觉到,正面朝上概率为0.8的概率分布不确定性小于正面朝上概率为0.5的不确定性。

进一步思考,我们为什么会有这样的直觉?

因为我们是从“使用”概率分布的角度来思考问题的。也就是说,如果我们知道一枚硬币抛出后正面朝上概率为0.8,要比知道概率为0.5,更容易猜对硬币抛出后哪面朝上。

换句话说,0.8的概率分布比0.5的概率分布对我们来说,具有更大的信息量。

现在,我们对概率分布中的不确定性有了感性的认识,现在需要的是一个定量的指标,来衡量这个不确定性。想必你已经猜到了,这个指标就是熵。

3 熵的数学表达

熵应该是什么样子,才能表达出概率分布中的不确定性呢?

为了解决这个问题,我们来考察一下概率分布中的某个取值,以抛硬币为例,我们看正面这个取值。可以看到,取正面的概率越大,则不确定性就越小。概率越大,不确定性越小!请把这句话在心中默念三遍。

能够表达出概率越大,不确定性越小的表达式就是:

-logP

为了让大家有一个感性的认识,我特意画了一个图:


上图中的纵轴为-logP,横轴为P。

然后,我们继续思考,上面的-logP只是衡量了某个概率的不确定性,一个概率分布包含多个概率,而且概率相加等于1,一个概率大,必然会有其他的概率小。还是以抛硬币为例,0.8概率的正面,不确定性固然很小,但同时会造成反面的概率为0.2,不确定性比较大。这意味着,我们猜对一次抛硬币正面朝上的难度比较小,但要猜对一次反面朝上的难度就比较大。很显然,我们要衡量一个概率的分布的不确定性,就要综合衡量所有概率表达的不确定性。也就是求一个概率分布综合的不确定性。当当当当当!熵正式出场!

-∑PlogP

这个指标可以理解成概率分布的不确定性的期望值。这个值越大,表示该概率分布不确定性越大。它为我们人类提供的“信息”就越小,我们越难利用这个概率分布做出一个正确的判断。从这个角度,我们可以看到,熵是对概率分布信息含量的衡量,这与它是不确定性的衡量,其实是两种解读方式而已。

4 伯努利分布的熵

对于抛硬币判正反面来说,它的概率分布是伯努利分布,我们假设正面朝上的概率为p,则反面朝上的概率为(1-p),它的熵就是:

H(p) = -plogp -(1-p)log(1-p)

我们把它画出来就是这样。


可以看到,p=0.5时,伯努利分布的熵达到最大。这与我们的经验常识一致,因为此时,硬币朝上还是朝下完全是随机的,不确定性最大。

当p趋向于0时,熵也趋向于0,举个极端例子,如果硬币以概率1正面朝上,概率0反面朝上,则完全没有不确定性,所以熵就是0,因为熵是对不确定性的一个测量。

再来思考一个问题,我们说熵是描述不确定性的,在概率论中,不是有一个方差可以用来描述变量变化程度的吗,它和熵是什么关系呢?

直觉上,方差越大,不确定性就越大,熵就应该越大,事实上确实如此,请看下图:


variance_entropy

对我们投硬币的伯努利分布,方差pq的最大值在p=0.5时取得,由上文我们知道,这也是熵取得最大值的p值。

对于正态分布,我们可以看到,期望对熵没有影响,只有方差才对熵有影响。这于我们的直觉也是相符的。

以上,我们尽可能从直觉的角度分析出了熵的表达式,也查看了几种分布的熵,以及它们和该分布的方差的关系,发现二者要描述的含义具有内在一致性。至此,我们终于可以说一窥熵的庐山真面目了。

下面,我们开始讨论由熵引出的各种其他熵,也就是本文文首提出的那些。

5 联合熵

虽然文首提出了那么多熵,但它们之间是有内在联系的,所以,我们尽可能按照它们的内在关系开展学习,先从联合熵说起。

联合熵与联合概率分布有关,对于随机变量X和Y,二者的联合概率分布为p(x,y),则这个联合概率分布的熵就叫做联合熵:

H(x,y) = -Σp(x,y)log(p(x,y))

我们假设X和Y都服从伯努利分布,且相互独立,可以把二者想象为上面的抛硬币,这样思考可以有所依托,不至于太抽象。X正面朝上的概率为p1,Y正面朝上的概率为p2,那么,它们的联合熵是多少呢?

显然,我们需要找出联合概率分布,如下图所示:



association

上面就是联合分布,自然可以据此算出它的熵,由于表达式写出来太麻烦,这里就省去了,感兴趣的可以自己写一下。

我们关心的问题是,H(x,y)和H(x),H(y)有什么关系呢?

这里不想进行繁杂的数学证明,而是要继续用我们的直觉来帮助思考。查看上图,我们和Y的概率分布进行对比。

Y原先只有两个概率p2和(1-p2),联合分布却有四个概率,这四个概率又可以认为是将Y的每个概率进行了分拆,p2 被分成了p2\*p1和p2\*(1-p1)。也就是说,对于Y的每个取值,本身就具有一个不确定性(p2),由于要与X联合起来,就在每个取值的不确定性上又引入了不确定性,不确定性显然是增大了。

如果你理解了上面关于熵的含义,那么,不难想出,H(x,y)肯定是大于等于H(x)和H(y)的。仅当X没有不确定性时,比如永远是正面朝上,此时,在Y的基础上联合X,并没有引入新的不确定性,所以,H(x,y)=H(y)。

以上,我们没有运用数学,仅仅依靠感性直觉的思考就确定了联合熵的一些性质,可见,善于运用直觉是很重要的。

6 条件熵

现在我们知道,x,y的联合熵大于等于x和y单独的熵,对于y来说,引入的x增大了熵,那么,x的引入增加了多大的熵呢?这就是条件熵。

H(x|y) = H(x,y) - H(y)

这里,有一个容易搞错的地方,H(x|y)叫做条件熵,它可不是条件概率p(x|y)的熵。为啥?因为p(x|y)压根就不是一个概率分布!!!还是以上面的两枚硬币为例,我们来计算一下p(x|y),注意,我们的例子中**假设x,y是相互独立的**。


condition

可见,所有的P(x|y)相加是2,根本就不是一个概率分布。有人可能会说,那为什么要叫条件熵,这不是故意误导人吗!

这是因为,条件熵的计算,和条件概率还是有点关系的。如下:

H(x|y) = - Σp(x,y)log(p(x|y))

这个公式可以由上面的熵的定义和条件熵的定义推导得出,这里就不推导了,感兴趣的可以自己推导下,并不难。

这里我们再分析一下条件熵H(x|y)与H(x)的关系,仍然用直觉法。条件熵是在Y上引入X后增加的不确定性,从感觉上,增加的不确定性无论如何不可能大于X本身自有的不确定性,也就是:

H(x|y) <= H(x)

仅当x,y相互独立时,等号才成立。

这个结论是我们感性认识到的,事实上,也可以进行证明得到。

学习过《统计学习方法》的同学,肯定对里面的信息增益概念有所了解,其实,我们仍然可以用直觉来理解这个概念。

不过,我们需要换种方式解读H(x|y) <= H(x)

之前,我们得出这个结论,是说Y上引入的X增加的不确定性不能大于X本身的不确定性。换个角度,X原有的不确定性是H(x),现在我们引入Y,得到了联合的不确定性H(x,y),从这个不确定性中减去Y自身带来的不确定性H(Y),剩下的就是H(x|y),这个值小于等于H(x),说明什么?说明,由于Y的引入,X的不确定性变小了,不确定性变小,就是信息含量的增加。不确定性变小的多少就是信息增益:

gain(X) = H(x) - H(x|y)

信息增益也叫做互信息。二者完全一样。

Note:

这里简单说下我对李航书的看法,一句话:不适合用来入门!只适合用来提高和面试准备。我意见比较大的是对逻辑回归的推导,不优雅。回头,我会专门写一篇逻辑回归的推导文章。

7 相对熵(又叫互熵,KL散度)

把相对熵放到最后来讲,是因为它和前面的几个概念联系不大。

假设我们有如下5个样本:


huxinxi

我们要以此推导出标签的真实分布。假设标签的真实分布是q(x),x取值为1和-1

为了确定q(x)在x=1和x=-1处的值,我们当然要运用最大似然法则。最大似然函数是:

q(x=1)\*q(x=1)\*q(x=-1)\*q(x=-1)\*q(x=-1)

如果你最大似然函数理解上有困难,建议补充一下这方面的知识,因为这个知识点在机器学习中运用的太多,确实无法绕过,逻辑回归本质上也是用的最大似然函数。

对上面的式子做合并处理,得到:

q(x=1)^2\*q(x=-1)^3

进一步,对上面的式子开5次方,得到:

q(x=1)^(2/5)\*q(x=-1)^(3/5)

假设p(x)就是由样本中统计出来的标签分布

2/5就是p(x=1)

3/5就是p(x=-1)

所以,对上面的式子进行规整就得到最大似然函数最终表达式:

Πq(x)^(p(x))

再取对数就是

Σp(x)log(q(x))

再取负号就是

d= -Σp(x)log(q(x))

最大化似然函数就是最小化d。

心急的朋友可能在想,说了半天,互熵到底是啥?现在就给出定义:

D(q||p) = d - H(p)

这里的d就是我们上面得到的d。

互熵描述的是什么呢?如何从直觉上进行理解?毕竟,上面用最大似然推出互熵还是有点太数学了。

这里,我们需要观察一下d,假设q和p完全相同,那么d就是H(p),互熵D也就等于0了。

同理,q和p越接近,越相同,则D就越小。互熵D(q||p)实际上就是在衡量我们通过计算得出的真实分布的表达式q,究竟与由样本统计得来的分布p有多接近,在衡量多接近这个概念时,我们运用到了熵的形式。

8 交叉熵

交叉熵放到最后,因为它最简单,它就是上面得出的d!

我们可以体会一下为什么叫做交叉熵,交叉是什么含义?

d= -Σp(x)log(q(x))

原本,p的熵是-Σp(x)log(p(x)),q的熵是-Σq(x)log(q(x))

现在,把p熵的log成分换成q(x), q熵的log成分换成p(x),(这里做了一个“交叉”!)就是

d= -Σp(x)log(q(x))      d2 = -Σq(x)log(p(x)) 

 d 就是p和q的交叉熵,

d2就是q和p的交叉熵。

从中我们也体会到,交叉熵是不满足交换律的,也就是说p和q的交叉熵与q和p的交叉熵是不一样的。


9 无总结,不进步

以上,是我对各种熵的概念的一些理解和感悟,分享出来,希望能够帮助到需要的朋友,当然,由于是个人理解,难免有不到位,甚至错误的地方,还望各路大神多多批评指正!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271