机器学习(3)——信息论基础(熵的介绍)

信息论基础

  在讲述熵的时候,我想先引入一个新的东西——信息量,信息是用来减少随机不确定性的东西(即不确定性的减少)。对于事件来说,它发生的概率越大,那么它所含有的信息量就越低,这很好理解,例如你今天去吃饭这个事件,这件事假定是一个必然事件的话,那么它所含有的信息只有吃饭这一件,那么假设这件事的概率越低,你也许会因为生病而不想吃饭,也许你随着心情来决定是否吃饭,它所含有的信息量就变大了。那么对于交叉熵中的熵,这又是一个什么东西呢?
  对于理工科的读者来说,这个东西并不难以理解,高中化学曾经学习过熵的一些概念。化学中的熵是指一个体系中的混乱程度,事实上对应我们机器学习中的熵是类似的。一个事物越混乱,那么很显然它就包含了更多的信息。
  熵有许多种,交叉、信息熵、相对熵以及条件熵等等。

信息熵

  信息熵是由信息论之父香农提出来的,它用于随机变量的不确定性度量,先上信息熵的函数图片。

Figure_1.png

  先上信息熵的公式:
H(X)=-\sum_{x \in X}p(x)logp(x)

  我们可以用
log\frac{1}{P}
来衡量不确定性。P是一件事情发生的概率,概率越大,不确定性越小。
  可以看到信息熵的公式,其实就是
log\frac{1}{P}
的期望,就是不确定性的期望,它代表了一个系统的不确定性,信息熵越大,不确定性越大。
  注意这个公式有个默认前提,就是X分布下的随机变量x彼此之间相互独立。还有log的底默认为2,实际上底是多少都可以,但是在信息论中我们经常讨论的是二进制和比特,所以用2。
  信息熵在联合概率分布的自然推广,就得到了联合熵:
H(X,Y)=-\sum_{x \in X} \sum_{y \in Y}p(x,y)logp(x,y)

  当X, Y相互独立时,
H(X, Y) = H(X) + H(Y)

  当X和Y不独立时,可以用
I(X, Y) = H(X) + H(Y) - H(X, Y)
衡量两个分布的相关性,这个定义比较少用到。
  下面这个例子很好的说明了这个问题

取自知乎
比如赌马比赛,有4匹马{ A, B, C, D},获胜概率分别为{ 1/2, 1/4, 1/8, 1/8 },将哪一匹马获胜视为随机变量X属于 { A, B, C, D } 。
假定我们需要用尽可能少的二元问题来确定随机变量 X 的取值。
例如,问题1:A获胜了吗? 问题2:B获胜了吗? 问题3:C获胜了吗?
最后我们可以通过最多3个二元问题,来确定取值。
如果X = A,那么需要问1次(问题1:是不是A?),概率为1/2
如果X = B,那么需要问2次(问题1:是不是A?问题2:是不是B?),概率为1/4
如果X = C,那么需要问3次(问题1,问题2,问题3),概率为1/8
如果X = D,那么需要问3次(问题1,问题2,问题3),概率为1/8
那么为确定X取值的二元问题的数量为
E(N)=\frac{1}{2}\cdot1+\frac{1}{4}\cdot2+\frac{1}{8}\cdot3+\frac{1}{8}\cdot3=\frac{7}{4}
回到信息熵的定义,会发现通过之前的信息熵公式,神奇地得到了:
H(X)=\frac{1}{2}log_2(2)+\frac{1}{4}log_24+\frac{1}{8}log_28=\frac{7}{4}bits
在二进制计算机中,一个比特为0或1,其实就代表了一个二元问题的回答。也就是说,在计算机中,我们给哪一匹马夺冠这个事件进行编码,所需要的平均码长为1.75个比特。
很显然,为了尽可能减少码长,我们要给发生概率p(x)较大的事件,分配较短的码长l(x)。这个问题深入讨论,可以得出霍夫曼编码的概念。
霍夫曼编码就是利用了这种大概率事件分配短码的思想,而且可以证明这种编码方式是最优的。我们可以证明上述现象:
为了获得信息熵为H(X)的随机变量X的一个样本,平均需要抛掷均匀硬币(或二元问题)H(X)次(参考猜赛马问题的案例)
信息熵是数据压缩的一个临界值(参考码长部分的案例)

*Kullback-Leibler*****散度

  我们通常将 Kullback-Leibler 散度称之为相对熵或者 KL距离 ,如果我们对于同一个随机变量 x 有两个单独的概率分布P(x)Q(x),我们可以使用KL散度来衡量这两个分布的差异。
  在机器学习中,P往往用来表示样本的真实分布,比如[1,0,0]表示当前样本属于第一类。Q用来表示模型所预测的分布,比如[0.7,0.2,0.1]。直观的理解就是如果用P来描述样本,那么就非常完美。而用Q来描述样本,虽然可以大致描述,但是不是那么的完美,信息量不足,需要额外的一些“信息增量”才能达到和P一样完美的描述。如果我们的Q通过反复训练,也能完美的描述样本,那么就不再需要额外的“信息增量”,Q等价于P。
  KL散度的计算公式:
D_{KL}(p||q)=\sum_{i=1}^np(x_i)log_2\frac{p(x_i)}{q(x_i)})
n为事件所有的可能性,D_{KL}的值与pq分布接近程度呈正相关关系。

交叉熵

  交叉熵可以看做 Kullback-Leibler散度 的特例,展开KL散度的公式:
D_{KL}(p||q)=\sum_{i=1}^np(x_i)log_2p(x_i)-p(x_i)log_2q(x_i)
  而之前我们给出的信息熵的公式是:
H(p)=-\sum_{i=1}^ip(x_i)logp(x_i)
  交叉熵公式是:
H(p,q) = -\sum_{i=1}^np(x_i)log_2(q(x_i))
  很容易发现,D_{KL}(p||q)+H(p)=H(p,q)。也就是说,如果H(p)是一个常量的时候,交叉熵和相对熵是完全等价的。
  看到这里,你也许会困惑为什么有KL散度和交叉熵两种算法?为什么他们可以用来求分布的不同?什么时候可以等价使用?这是一种解释:

  • 熵的意义是对A事件中的随机变量进行编码所需的最小字节数。
  • KL散度的意义是“额外所需的编码长度”如果我们用B的编码来表示A。
  • 交叉熵指的是当你用B作为密码本来表示A时所需要的“平均的编码长度”。

  大多数情况下,交叉熵和相对熵都是等价的,那么既然等价,显然使用更为简单的公式。

一点总结

  说了那么多,你或许会问,熵究竟有什么用处。交叉熵常常用作算法中的损失函数。为什么可以这样?因为机器学习算法本质上就是让模型学习到的分布与真实数据之间的分布越小越好。我们的 Kullback-Leibler 散度反映的不就是拟合程度吗?交叉熵可以和很多概率模型完美的结合。所以一般逻辑思路是,为了让学到的模型分布更贴近真实数据分布,我们最小化模型数据分布与训练数据之间的KL散度,而因为训练数据的分布是固定的,因此最小化KL散度等价于最小化交叉熵。因为等价,而且交叉熵更简单更好计算,所以我们还是使用交叉熵做为主要的计算公式。

我的掘金:WarrenRyan

我的简书:WarrenRyan

欢迎关注我的博客获得第一时间更新 https://blog.tity.online

我的Github:StevenEco

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

推荐阅读更多精彩内容