机器学习面试之最大熵模型

最大熵模型属于运用最大熵原理的多分类模型,这个模型在面试中经常会与逻辑回归一起问,比如,为什么说二者是类似的?要解答这个问题,需要对两个模型的原理都有清晰的理解,很多面试者虽然能从书上背来一两句结论,比如二者都是求的最大似然概率,但是只要深入问下去,都会面露囧色。本文试图尽可能用清晰简洁的语言说明白最大熵模型的原理,以及它与最大似然的关系。

1、分清最大熵思想与最大熵模型

我们平常说的最大熵模型,只是运用最大熵思想的多分类模型,最大熵的思想却是一种通用的思维方法。所以,理解最大熵模型只需要搞清楚两件事就可以:

  • 最大熵思想是什么
  • 最大熵模型是如何运用最大熵思想的

2、最大熵思想

我们知道,分类模型有判别模型和生成模型两种,判别模型是要学习一个条件概率分布 P(y|x)。
举例说明,x是病人身体指标,体温、血压、血糖,y是各种可能的疾病,可简化为小病、中病、大病三种。

现在,我们有一个样本x1={体温:30,血压:160,血糖:60},那么P(y|x1)就是一个概率分布,该分布的值就是上面简化的三种,小病、中病、大病。可能的概率分布如下所示:

小病 中病 大病
1/2 1/4 1/4
1/4 1/3 5/12
1/3 1/3 1/3

当然,这样的分布有无数种,上面只是举例说明而已。那么,问题来了,在这无数种概率分布中,哪一个才是好的呢?

为了选出一个好的分布,可以做如下两步:

  • 1、看看以往的病例中,指标x1={体温:30,血压:160,血糖:60}和三种病之间的关系,如果没有这样的病例,也就是说我们没有过往的经验可以参考,那么,就直接选一个熵最大的分布就是,也就是上面表格中的第三个分布,因为均匀分布总是同类分布中熵最大的分布。
  • 2、如果查看以往病例后,我们得到一个经验,指标x1={体温:30,血压:160,血糖:60}有1/2的概率是小病,于是我们有了一定的经验知识,此时,最好的分布就是符合这个经验知识的前提下,熵最大的分布,显然,第一个分布就是最好的分布。

以上,我们就是运用了最大熵的思想。总结来说,最大熵的思想是,当你要猜一个概率分布时,如果你对这个分布一无所知,那就猜熵最大的均匀分布,如果你对这个分布知道一些情况,那么,就猜满足这些情况的熵最大的分布。

3、运用最大熵思想来做多分类问题

现在,我们来看最大熵模型是如何运用最大熵思想的。
还是上面的例子,假设我们不只有一个x1样本,而是有x1、x2、...、xN个样本。并且知道每一个样本所得的病y1、y2、...、yN,yi是小病、中病、大病三者之一。这个时候,我们要怎么运用最大熵思想呢?

首先,我们要认真考虑一下这个例子和第2部分中的例子的不同之处,在第2部分的例子中,我们只有一个样本x1,并且假设我们有关于x1的先验知识,那就是1/2的概率是小病,要求的概率分布只有一个,那就是P(y|x1)。

现在,我们有N个样本和它们的标签。这些标签就是我们现在的先验知识,即,对于xi,我们知道它的标签是yi,这个先验知识与第2部分例子中的已知的1/2概率不再是同一种形式了。

其次,此时我们要求的模型P(y|x)已经不是一个概率分布,而是无数个概率分布,因为,每一个x都会对应一个P(y|x)。但是,这无数个分布可以用一个关于x的函数来表示,即 P(y|x) ~x。这样,我们只要求出这个函数的形式和它的参数值,就算求出了模型P(y|x)。
在后面的叙述中,P(y|x)有时代表某个x下y的条件概率分布,有时也指无数个分布的集合,即关于x的函数。请注意辨别。

请思考一下,在这种情况下,如何贯彻最大熵思想来求解条件概率 P(y|x)?

首先,我们回顾一下最大熵思想:

当你要猜一个概率分布时,如果你对这个分布一无所知,那就猜熵最大的均匀分布,如果你对这个分布知道一些情况,那么,就猜满足这些情况的熵最大的分布。

其实,我们只要两步就可以贯彻最大熵思想:

1、找出满足现有情况的分布P(y|x)。

虽然我们现在对P(y|x)的形式和参数还是一无所知,但这并不妨碍我们从概率分布的层面上去考察它的一些特点。也就是P(y|x)要满足的一些约束,这些约束,就是对我们已知的先验知识的拟合。我们的先验知识就是N个训练样本(xi,yi)。假设我们通过观察这N个样本,发现了一个事实:

当体温小于38,血压小于100,血糖小于30时,总是得小病。这就是一个综合后的先验知识。我们可以据此定义一个特征函数:

f(x,y) = 1 当且仅当 x ={体温小于38,血压小于100,血糖小于30},y=小病

将f(x,y)运用到任一个样本(xi,yi)上,我们就可以知道该样本是不是满足上述事实。你可以认为,f(x,y)是对样本是否符合某个事实的判定函数。

也许你还是会对这个特征函数感到迷惑,请暂时放下迷惑,只要相信,这一切都是为了让我们能更加形式化地定义:什么样的P(y|x)是满足现有情况的。

根据已有的N个样本,我们可以算出P(x,y)的经验分布P~(x,y)和P(x)的经验分布P~(x)。
然后,我们就可以统计下,在这个经验分布中,f(x,y)的期望是多少,如下所示


屏幕快照 2018-07-22 下午6.55.29.png

这个期望表示什么意思呢?它表示的是,就我们的经验分布来看,满足 x ={体温小于38,血压小于100,血糖小于30},y=小病这一事实的样本占总体样本的比率。比如说是1/3,表示从我们的经验分布看,一个样本有1/3的概率是符合这个事实的。

那么,我们求出的P(y|x)也要符合这个期望值才能算是满足现有情况。至此,我们终于找到一个衡量P(y|x)是否满足现有情况的指标。但是,还有最后一个问题,我们的P(y|x)是条件分布,衡量分布是否满足现有情况时,需要联合分布。

这个问题,很好解决,我们有了x的经验分布P~(x),将这个经验分布乘以P(y|x)就可以近似表示我们的P(y|x)背后的联合分布,据此,我们可以写出P(y|x)要满足的一个约束:

第一个约束

我们求出的P(y|x)满足这个约束条件,就相当于满足了现有的 x ={体温小于38,血压小于100,血糖小于30},y=小病这一事实。这个事实来自于我们对N个样本的观察总结。

当然,观察N个样本,我们还可以得出其他事实,每一个事实都可以按照上述步骤,为P(y|x)施加一个“紧箍咒”。这个事实总结的越准确,我们就越能窥见要求的P(y|x)的模样。

2、使得P(y|x)的熵最大化

假设我们现在已经找出了所有满足上面约束条件的P(y|x),现在,我们要运用最大熵思想来从中找出熵最大的P(y|x)。

这里运用最大熵思想时,我们要将P(y|x)看做是无数个概率分布的集合,即每一个x,都对应一个特定的概率分布P(y|x),每一个概率分布都会有一个熵,此时,所谓的最大熵,就是最大化这些所有的概率分布的熵的和,由于每个x都有一个经验概率P~(x),我们还需要对所有这些熵进行加权求和,以此表示哪一个概率分布的熵的最大化更加重要。如下所示:

目标函数

4、求解最大熵模型

对前面的内容进行整理,我们得出如下的优化数学问题:


屏幕快照 2018-07-22 下午7.22.40.png

注意:这里的 i=1,...,n表示我们对样本观察得出的n个事实,可不是N个样本哦。同时,这里通过加负号的办法,将最大化问题转化成了最小化问题。

为啥我们喜欢最小化而不喜欢最大化呢,因为最小化相当于就坡往下滚,省劲,爽,最大化相当于上坡,费劲,累。哈哈,如果你当真我就服了你!

到这一步,我们稍微回顾一下。

  • 我们到现在都不知道P(y|x)的函数形式是什么,参数有多少,我们仅仅是从概率分布的抽象层面上进行讨论,确定它要满足的一些约束
  • 每一个约束都来自于我们凭借已有知识,对N个样本进行观察总结得出的一个事实。
  • 按照最大熵思想求P(y|x)时,我们是对所有可能的概率分布的熵进行了加权求和。然后最大化这个和,而不是某个单一的概率分布的最大熵。

那么,剩下的工作就应该由数学家帮我们搞定了,因为我们已经将问题完全形式化为一个约束最优化问题了!

由于下面涉及很多具体的数学,在叙述时,我尽可能不涉及具体的数学,而只从整体的思路上说,以防止具体的数学干扰我们对模型的理解。
具体的求解方法和svm的求解是一致的,利用拉格朗日函数转为求解对偶问题。对偶问题如下所示:


屏幕快照 2018-07-22 下午8.11.02.png

求解分为两步:
第一步是求对偶问题里面的最小化问题,该问题求解完成后,我们可以看到P(y|x)的形式,如下所示:


屏幕快照 2018-07-22 下午8.02.28.png

形式虽然有了,但是里面的参数w还没有具体确定,第二步的最大化就是来确定参数w的。

第二步,最大化。将P_w(y|x)带入L(P,w),最大化该函数的值,也就是求对偶问题外层的最大化问题,从而求出具体的w。

至此,最大熵模型解答完毕!

5、 说好的与逻辑回归的相似处呢?

Note:由于下面的讨论比较笼统,建议结合李航书观看,风味更佳。

到这里,我们都没有涉及到最大熵与逻辑回归的相似的讨论。因为这个问题也会涉及到很多的数学问题。让我们从整体上来看一下。

在第4部分中,我们首先求解对偶问题的最小化,得出了P(y|x)的形式P_w(y|x),然后我们要求最大化,当我们将P_w(y|x)代入上面的L(P,w)后,经过一系列的变形推导,我们惊奇的发现我们求最大化时,实际上与我们直接求解P_w(y|x)关于样本数据的对数似然最大化是一样一样的。

至此,我们发现,我们从最大熵的思想出发得出的最大熵模型,最后的最大化求解就是在求P(y|x)的对数似然最大化。逻辑回归也是在求条件概率分布关于样本数据的对数似然最大化。二者唯一的不同就是条件概率分布的表示形式不同。

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

推荐阅读更多精彩内容