贝叶斯分类器(2)极大似然估计、MLE与MAP

根据上一篇贝叶斯分类器(1)贝叶斯决策论概述、贝叶斯和频率、概率和似然,我们对贝叶斯分类器所要解决的问题、问题的求解方法做了概述,将贝叶斯分类问题转化成了求解P(x|c)的问题,并提出了第一个求解方法:极大似然估计,也对似然的概念做了一定的理解,在本篇中,我们来介绍极大似然估计的原理、使用方法及其与最大后验估计MAP的区别。

1 极大似然估计

1.1 极大似然估计的步骤

我们已经知道,似然即参数的似然,表示给定样本下,参数\theta为真值的可能性,所以,极大似然估计就是以最大化参数的似然值的方法来估计参数的真值的算法。

极大似然函数估计值的一般步骤:

  1. 假设概率服从某种确定的概率分布(或者分布已知);
  2. 写出似然函数:L(\theta_1,\theta_2,...,\theta_n, |x_1,x_2,...x_n)
  3. 对似然函数取对数,并整理;
  4. 求导数;
  5. 解似然方程,得到极大似然的参数;

对于一批样本,共有M个属性值和N个类别,那么x就是一个M维向量,要求得P(x|c),其实就是要求P([x_1,x_2,...x_m]|c_i),i=1,2,...,N,因为对不同的类别c,类条件概率P(x|c)应该是不同的分布,所以应该有N个不同的分布假设和似然函数。

我们按极大似然估计的步骤来看看怎样计算P(x|c)

  1. 假设分布:假设P(x|c)具有确定的形式并且被参数向量θ_c唯一确定,则我们的任务就是利用训练集D估计参数θ_c。我们将假设的P(x|c)分布记为P(x;θ_c)
  2. 似然函数,取对数:D_c表示训练集D中第c类样本组成的集合,假设这些样本是独立同分布的,则参数θ_c对于数据集D_c的似然函数是:

L(θ_c|D_c)=\prod_{x\in D_c} P(x;θ_c)

取对数得到对数似然函数,连乘转换为累加,求导之类的计算更加方便:

LL(θ_c|D_c)=\sum_{x\in D_c} log(P(x;θ_c))

  1. 求导数:当似然函数取得极大值时,自变量θ_c的导数应该为0,所以可以得到针对参数向量θ_c中每个参数θ_i求偏导之后的方程组:

\begin{cases} & \frac{\partial L(\theta_c|D_c)}{\partial \theta_1}=0 \\ & ... \\ & \frac{\partial L(\theta_c|D_c)}{\partial \theta_i}=0 \end{cases}

  1. 解似然方程:求解方程组得到参数向量θ_c,确定P(x|c)所假设的分布,根据x的取值[x_1,x_2,...x_m]得到其概率。

注意:

  • 当属性值的个数M=1时,属于假设的分布是单个属性的分布,还比较好计算;
  • 当属性值的个数M>1时,多个属性的分布是多维随机变量分布,需要计算其多个属性的联合分布概率,这个计算方法是比较困难的。

1.2 从散度的角度解读极大似然估计

知乎上大神详细介绍了从散度的角度解读极大似然估计:知乎 - 微调的回答,跟随大神的脚步学习一下(原回答了引入了期望,我觉得其实不用期望也没问题):

MLE的第一步是假设分布(或者已有一个分布),接下来就是通过最大化X发生的概率来求得分布参数,认为这就是最可能真实的分布,这个思路其实还是有一点绕的,凭什么说X发生的概率最大的参数就是真的参数呢?我们的目的是求出真实分布,最直观的思路应该是看我们算出来的分布跟真实分布的相似程度,这刚好可以通过散度来解释。

这里的散度是机器学习的散度,也就是信息论中的散度,与物理上的散度不太一样。机器学习中我们常用的散度是KL散度(KL-Divergence)。信息论中,KL(P∥Q)可以理解为:用来衡量在同一份数据P下,使用P的编码方案和Q的编码方案的平均编码长度的差异,如果我们把真实的分布P_\theta和计算得到的分布P_\tilde{\theta }看做样本数据的编码方案,那么我们就可以用KL散度来计算两种分布之间的相似程度:

KL(P∥Q)=\sum_{x}P_\theta (x)\log_2 (\frac{P_\theta (x)}{P_\tilde{\theta } (x)} )=P_\theta (x)[\sum_{x}\log_2 P_\theta (x)- \sum_{x}\log_2 {P_\tilde{\theta } (x)}]

注意上面两个分布的顺序是不能变的,因为定义中的P必须是真实分布,数据就是由P产生的。我们的目标是人是让KL(P∥Q)最小,注意到式中\sum_{x}\log_2 P_\theta (x)是定值,所以:

\min_{\tilde{\theta } } KL(P∥Q)=\max_{\tilde{\theta } } \sum_{x}\log_2 {P_\tilde{\theta } (x)}=\max_{\tilde{\theta } } log_2\prod_{x}\ {P_\tilde{\theta } (x)}

看上面的推导,再看看极大似然的公式:

L(θ_c|D_c)=\prod_{x\in D_c} P(x;θ_c)

LL(θ_c|D_c)=\sum_{x\in D_c} log(P(x;θ_c))

是不是根本就是一样的?所以其实如果我们正向考虑极大似然估计,当模型是条件概率分布,损失函数是对数损失函数时,极大似然估计就是做经验风险最小化;如果我们反过来考虑,即上面从散度推导的过程,MLE就是在寻找最接近真实分布的分布。

1.3 极大似然估计实例

以上一篇提到的西瓜好坏分类为例:
西瓜数据集如下图:

西瓜数据集

显然样本共有M=6个属性值和N=2个类别,首先根据样本估计类先验概率P(好瓜)=8/17=0.47,P(坏瓜)=9/17=0.53,然后为每个属性估计条件概率P(x|c),要求P(x|c),应该假设两个六维概率分布,比如我们假设样本为6元正态分布:

P([色泽,根蒂,...触感]|好瓜) - N(\vec{\mu_1 } ,\Sigma_1)

P([色泽,根蒂,...触感]|坏瓜) - N(\vec{\mu_2 } ,\Sigma_2)

均值向量\vec{\mu_i }为6维向量,协方差矩阵\Sigma_i是一个6*6的正定矩阵。

然后分别写出似然函数的对数形式:

LL(\vec{\mu_1 } ,\Sigma_1|D_c)=\sum_{x\in D_c} log(P([色泽,根蒂,...触感];\vec{\mu_1 } ,\Sigma_1))

LL(\vec{\mu_2 } ,\Sigma_2|D_c)=\sum_{x\in D_c} log(P([色泽,根蒂,...触感];\vec{\mu_2 } ,\Sigma_2))

最后再求偏导解方程即可,多元正态分布求导计算还是挺复杂的,本篇主要讲极大似然估计,具体计算过程就不写了,大家明白是怎么做的就好。

讲完了极大似然估计的理论和操作,再来看看它和一个跟它很像的算法最大后验估计MAP的关系。

2 MLE和MAP的区别和联系

极大似然估计MLE是频率学派的参数估计方法,最大后验估计MAP是贝叶斯学派的参数估计方法。因此,同样是参数估计的问题,MLE中参数是确定值,故定义为P(x;θ);MAP中参数是一个随机变量,故定义为P(θ|x),是一个后验概率,受到先验P(θ)和样本x的共同作用,这就是他们最本质的区别了,由此可得到其计算过程的区别:

极大似然估计MLE对参数θ的估计是:

最大后验估计MAP对参数θ的估计是:

我们发现原来MAP与MLE在计算上的不同就是多了一个先验概率项,因此如果有一个合理的先验的话,MAP会比MLE对样本数据的依赖更小一些,如果数据量很大的话他们基本就是一样的了,以我们上一篇中的抛硬币例子来说:

有一个硬币,它有θ的概率会正面向上,有θ的概率反面向上。现有正反序列:x=HHTTHTHHHH。无论θ的值是多少,这个序列的概率值为
L(θ|x)=θ⋅θ⋅(1-θ)⋅(1-θ)⋅θ⋅(1-θ)⋅θ⋅θ⋅θ⋅θ = θ⁷ \cdot (1-θ)³

如果按极大似然估计计算,取对数求导后计算得到θ=0.7,这似乎不太符合我们的常识,如果是用MAP呢?对抛硬币问题,我们先验是P(θ) - N(\mu=0.5,\sigma=0.1)(注意MAP中的θ是随机变量,先验是一个分布,不能是一个数值哦,如果给一个数值的话,样本就不起作用了),因此:

P(θ|x)=P(θ)\prod_{x\in D} P(x|θ)=P(θ)\cdot θ⁷ \cdot (1-θ)³

正态分布的概率密度函数:

因此:

-logP(θ)=-log\frac{1}{\sigma\sqrt{2\pi } }+\frac{(\theta -\mu)^2}{2\sigma^2} =C+\frac{(\theta -\mu)^2}{2\sigma^2}

在MAP中使用一个高斯分布的先验的效果就类似于在MLE中采用L2正则,相当于结构风险最小化,可以说,当模型是条件概率分布、损失函数是对数损失函数、模型复杂度由模型的先验概率表示时,结构风险最小化就等价于最大后验估计。

回到θ的计算上来,P(θ)\cdot θ⁷ \cdot (1-θ)³进行取对数、求导,可得θ=0.558,结果受到了先验和样本共同的作用。

显然MAP的计算要麻烦的多,现实中很多问题都要比我们的例子复杂的多,其求解通常不会像我们的例子这样求导计算。

总结一下:

  • MLE是频率学派的参数估计方法,MAP是贝叶斯学派的参数估计方法,基本思想不同;
  • MLE是一种经验风险最小化,MAP是一种结构风险最小化;
  • 在计算上,MAP比MLE多了一个先验概率项,随着数据量的增加,先验的影响力会越来越小;
  • MAP对先验的假设比较依赖,需要有好的先验假设。

3 极大似然估计求解P(x|c)总结

我们将贝叶斯分类器转化为了求解P(x|c)的问题,使用极大似然估计是我们介绍的第一个求解方法,它还存在一些不足:

  • P(x|c)分布的假设强依赖,所假设的概率分布形式需要符合潜在的真实数据分布,这个比较难;
  • 对于多个属性值的样本,使用极大似然估计计算比较困难。

在下一篇中,我们来看看求解P(x|c)问题的另一个方法:朴素贝叶斯。



主要参考资料

《机器学习》周志华
《统计学习方法》 李航
知乎 - 微调的回答
聊一聊机器学习的MLE和MAP:最大似然估计和最大后验估计
最大后验估计MAP

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