博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【机器学习】极大似然估计、最大后验估计的对比与联系
阅读量:2051 次
发布时间:2019-04-28

本文共 5854 字,大约阅读时间需要 19 分钟。

文章目录

概率与统计

对于一组数据,我们常用某种模型对其进行描述,例如常见的正态分布模型,二项分布模型、以及机器学习中的线性回归模型,甚至是深度学习中的深度神经网络模型。其中每个模型的形式一旦定义,则其最终就由模型中的参数决定了。

根据参数估计的性质不同,可以将参数估计的方法分为点估计区间估计

点估计是通过样本统计量来推断未知总体的参数,如调查一个地区小学生的体重,则随机抽取的100名小学生计算得到的平均体重用来表示总体的平均体重,那么这就是点估计。点估计的常用方法有两种:分别是矩估计最大似然估计
由于总体的参数是一个常数(期望值),而通过样本计算得到的样本统计量(如平均值、方差等)是随机变量,通过这样一个随机变量来估计常数时,必然会有误差,而区间估计就是通过样本统计量的抽样分布特征,估计出总体参数的一个区间,而不是一个数值。通常区间估计会给出一个总体参数的区间,以及落在这个区间的置信度。如估计一个地区总体小学生的平均体重在25kg~35kg之间。

由于在接触概率论和统计学时,是在本科阶段通过《概率论与数理统计》这门学科,其将这两门学科合并到了一本书中,所以就导致了对这两种概念的混淆。简单来说,概率研究的是已知模型和参数,来推数据;统计研究的是已知数据,推模型和参数。以最俗的硬币为例,我们已知每次抛一枚硬币的正反面是服从二项分布的,即X~B(N, p)(模型),并且当硬币正常时p=0.5(参数),以此来推断扔100次硬币的正反面(数据),这就是概率研究的问题。如果我们不知道这枚硬币是否正常,但是有100次扔硬币的记录(数据),通过对数据进行观察,来推断扔硬币的模型以及参数,这就是统计研究的问题。而极大似然估计、最大后验估计以及贝叶斯估计都是统计的范畴,也就是通过已知的数据来估计数据分布的模型以及参数。

频率学派和贝叶斯派

另外在介绍极大似然估计之前,我们再来了解一下极大似然估计和贝叶斯估计的背景知识。根据对概率的不同看法,以前的研究学者们被分为两种派别,一种是频率学派,另一种是贝叶斯派

频率学派认为,我们需要推断的参数是客观存在的,虽然未知,但却有固定值,而样本是随机,其着眼点是针对于样本的分布。贝叶斯派认为,参数是随机的,符合一定的概率分布,而样本则是固定的,其着眼点是参数的分布。需要注意的是,随着数据量的增加,参数分布会越来越向数据靠拢,先验的影响力会越来越小如果先验是均匀分布的(uniform distribution),则贝叶斯方法等价于频率方法。

因此,极大似然估计是频率学派使用的参数估计方法,而最大后验概率估计则是贝叶斯学派使用的参数估计方法

极大似然估计(Maximum Likelihood Estimation, MLE)

首先,前面说了极大似然估计是统计范畴的问题解决方法,其是通过已知数据来估计数据的模型和参数,接着再看极大似然估计的名字,似然表示概率、可能性,因此,极大似然估计的作用则是通过已知的样本数据,来推断最大可能导致这些样本数据出现的模型参数值

在介绍极大似然估计之前,需要先引入似然函数(likelihood function)的概念。以博客的介绍为例:
对于函数 f ( x ∣ θ ) f(x|\theta) f(xθ)来说,如果 x x x表示数据, θ \theta θ表示模型的参数。

  • 如果 θ \theta θ是已知的, x x x是变量,那么这个函数就叫做概率函数(probability function),它描述对于不同的样本 x x x,其出现的概率是多少。
  • 如果是 x x x已知的, θ \theta θ是变量,那么这个函数就叫做似然函数,它描述对于不同的模型参数,出现样本 x x x的概率是多少。

因此,最大似然估计呢,其实就是求一组参数能使得似然函数最大,也就是: θ ^ M L E = a r g m a x θ f ( X ; θ ) \hat{\theta}_{MLE}=\mathop{argmax}\limits_{\theta}f(X;\theta) θ^MLE=θargmaxf(X;θ)上面的式子进一步进行推导,变转换为针对每个样本的形式,再对其进行求对数,即是: θ ^ M L E = a r g m a x θ f ( X ; θ ) = a r g m a x θ f ( x 1 ; θ ) f ( x 2 ; θ ) . . . f ( x n ; θ ) = a r g m a x θ l o g ∏ i = 1 n f ( x i ∣ θ ) = a r g m a x θ ∑ i = 1 n l o g f ( x i ∣ θ ) \hat{\theta}_{MLE}=\mathop{argmax}\limits_{\theta}f(X;\theta)\\=\mathop{argmax}\limits_{\theta}f(x_{1};\theta)f(x_{2};\theta)...f(x_{n};\theta)\\=\mathop{argmax}\limits_{\theta}log\prod_{i=1}^{n}f(x_{i}|\theta)\\=\mathop{argmax}\limits_{\theta}\sum_{i=1}^{n}logf(x_{i}|\theta) θ^MLE=θargmaxf(X;θ)=θargmaxf(x1;θ)f(x2;θ)...f(xn;θ)=θargmaxlogi=1nf(xiθ)=θargmaxi=1nlogf(xiθ)

下面以最大似然估计来得到逻辑回归(Logistic Regression)模型的最优参数为例进行介绍。逻辑回归常用与解决二分类问题,其常用sigmoid函数的输出表示样本分类结果为正类的概率,即下面的函数 f ( x ) = 1 1 + e − θ x f(x) = \frac{1}{1+e^{-\theta x}} f(x)=1+eθx1所以这里我们想通过最大似然估计来得到一组参数,使得让其对于样本预测正确的概率最大。另外,极大似然估计中采样需满足一个重要的假设,就是采集的样本数据都是独立同分布的

根据逻辑回归的内容我们可以知道,对于样本数据 x i x_{i} xi,其标签是 y i y_{i} yi为0或1。那么 x i x_{i} xi的预测正确的概率就是 P t r u e ( x i ) = f ( x i ) y i ∗ ( 1 − f ( x i ) ) 1 − y i P_{true}(x_{i}) = f(x_{i})^{y_{i}}*(1-f(x_{i}))^{1-y_{i}} Ptrue(xi)=f(xi)yi(1f(xi))1yi由于样本数据是独立同分布的,那么我们每一次的预测都是独立事件,所以可以根据概率的连乘法则,得到所有样本都分类正确的概率是: P t r u e ( x 1 , x 2 , . . . , x n ) = P t r u e ( x 1 ) ∗ P t r u e ( x 2 ) ∗ . . . ∗ P t r u e ( x n ) P_{true}(x_{1},x_{2},...,x_{n})=P_{true}(x_{1})*P_{true}(x_{2})*...*P_{true}(x_{n}) Ptrue(x1,x2,...,xn)=Ptrue(x1)Ptrue(x2)...Ptrue(xn)则将上面的式子用连乘符进行表示就是 L ( θ ) = ∏ i = 1 n f ( x i ) y i ∗ ( 1 − f ( x i ) ) 1 − y i L(\theta)=\prod_{i=1}^{n}f(x_{i})^{y_{i}}*(1-f(x_{i}))^{1-y_{i}} L(θ)=i=1nf(xi)yi(1f(xi))1yi由于连乘的形式不利于进一步进行计算,所以我们通常对其进行取对数,使其变为连加的形式,即: l n L ( θ ) = ∑ i = 1 n ( y i ∗ l n f ( x i ) + ( 1 − y i ) ∗ l n ( 1 − f ( x i ) ) ) lnL(\theta)=\sum_{i=1}^{n}(y_{i}*lnf(x_{i})+(1-y_{i})*ln(1-f(x_{i}))) lnL(θ)=i=1n(yilnf(xi)+(1yi)ln(1f(xi)))因此,我们的目的就是得到一组参数使得上面的函数结果越大越好,而我们在优化一个问题时,习惯于将其转换为最小化的问题,所以我们在前面加入一个负号,即: J ( θ ) = ∑ i = 1 n − ( y i ∗ l n f ( x i ) − ( 1 − y i ) ∗ l n ( 1 − f ( x i ) ) ) J(\theta)=\sum_{i=1}^{n}-(y_{i}*lnf(x_{i})-(1-y_{i})*ln(1-f(x_{i}))) J(θ)=i=1n(yilnf(xi)(1yi)ln(1f(xi)))这其实就是逻辑回归或者其他二分类问题常用的损失函数,即交叉熵损失函数(corss entropy loss function)。求解上面的交叉熵损失函数就可以通过常用的梯度下降等算法进行求解了。通过这个例子,可以加深我们对于极大似然估计求解模型参数的理解。

最大后验概率估计(Maximum A Posteriori Estimation, MAP)

首先,我们知道最大后验概率估计同极大似然估计的出发点是一样的,都是为了通过已知数据来估计数据的模型和参数。但是不同于极大似然估计的地方在于,最大后验概率估计中,它在进行参数估计时引入了参数的先验概率,先验概率指的是根据以往经验分析得到的概率,例如我们在探究抛硬币的例子中,估计硬币是正面的概率,而根据生活经验知道一枚硬币的正面的概率是0.5。

因此,极大似然估计中,它认为所有参数出现的可能是一样的,而最大后验概率估计中,引入了先验知识,也就是通过这个先验知识可以知道有些值更有可能,而有些值更加没有可能。

最大后验概率估计是贝叶斯学派的方法,因此,它的基础是贝叶斯公式,即: p ( θ ∣ X ) = p ( X ∣ θ ) p ( θ ) p ( X ) p(\theta|X) = \frac{p(X|\theta)p(\theta)}{p(X)} p(θX)=p(X)p(Xθ)p(θ)其中 p ( X ∣ θ ) p(X|\theta) p(Xθ)就是前面介绍的似然函数, p ( θ ) p(\theta) p(θ)是参数的先验概率, p ( θ ∣ X ) p(\theta|X) p(θX)就是后验概率。所以,最大后验概率估计的目的就是求得一组参数使得后验概率 p ( θ ∣ X ) p(\theta|X) p(θX)最大。即: θ ^ M A P = a r g m a x θ p ( θ ∣ X ) \hat{\theta}_{MAP} = \mathop{argmax}\limits_{\theta}p(\theta|X) θ^MAP=θargmaxp(θX)根据贝叶斯公式,以及丢掉与 θ \theta θ无关的项,上面的式子就可以写成 θ ^ M A P = a r g m a x θ p ( θ ∣ X ) = a r g m a x θ p ( X ∣ θ ) p ( θ ) p ( X ) = a r g m a x θ p ( X ∣ θ ) p ( θ ) \hat{\theta}_{MAP} = \mathop{argmax}\limits_{\theta}p(\theta|X)\\=\mathop{argmax}\limits_{\theta}\frac{p(X|\theta)p(\theta)}{p(X)}\\=\mathop{argmax}\limits_{\theta}p(X|\theta)p(\theta) θ^MAP=θargmaxp(θX)=θargmaxp(X)p(Xθ)p(θ)=θargmaxp(Xθ)p(θ)然后对其求对数,并转换为针对每个样本的形式 a r g m a x θ p ( X ∣ θ ) p ( θ ) = a r g m a x θ ∏ i = 1 n l n ( p ( x i ∣ θ ) p ( θ ) ) = a r g m a x θ ∑ i = 1 n ( l n p ( x i ∣ θ ) + l n p ( θ ) ) \mathop{argmax}\limits_{\theta}p(X|\theta)p(\theta) = \mathop{argmax}\limits_{\theta}\prod_{i=1}^{n} ln(p(x_{i}|\theta)p(\theta))\\=\mathop{argmax}\limits_{\theta}\sum_{i=1}^{n}(lnp(x_{i}|\theta)+lnp(\theta)) θargmaxp(Xθ)p(θ)=θargmaxi=1nln(p(xiθ)p(θ))=θargmaxi=1n(lnp(xiθ)+lnp(θ))对比前面极大似然的推导结果,最大后验概率估计不同处在于多了先验概率 l n p ( θ ) lnp(\theta) lnp(θ)这一项。其中,这个先验概率可以是正态分布也可以是 β \beta β分布等。其中,当先验概率是均匀分布时,两种估计方法是一样的效果。

总结

所以一句话来总结MLE和MAP之间的关系就是,极大似然估计的目的是求得一组参数使得似然函数最大,最大后验概率估计的目的就是求得一组参数使得后验概率最大。

另外,我们在处理机器学习任务的时候,通过需要将其转换为一个优化问题,而这个优化问题都需要一个目标函数,MLE和MAP都是用于推导优化函数的基本方法,所以对这两种方法进行学习和梳理是很有必要的。

REF

转载地址:http://bzklf.baihongyu.com/

你可能感兴趣的文章
【Python】用Python打开csv和xml文件
查看>>
【Loadrunner】性能测试报告实战
查看>>
【面试】一份自我介绍模板
查看>>
【自动化测试】自动化测试需要了解的的一些事情。
查看>>
【selenium】selenium ide的安装过程
查看>>
【手机自动化测试】monkey测试
查看>>
【英语】软件开发常用英语词汇
查看>>
Fiddler 抓包工具总结
查看>>
【雅思】雅思需要购买和准备的学习资料
查看>>
【雅思】雅思写作作业(1)
查看>>
LoadRunner-常用的函数
查看>>
【雅思】【大作文】【审题作业】关于同不同意的审题作业(重点)
查看>>
【Loadrunner】通过loadrunner录制时候有事件但是白页无法出来登录页怎么办?
查看>>
【Python】Python 读取csv的某行或某列数据
查看>>
【Loadrunner】平台1.9环境APP成功录制并调试成功后的脚本备份
查看>>
【Loadrunner】性能测试:通过服务器日志获取性能需求
查看>>
【Python】sasa版:文件中csv读取在写入csv读取的数据和执行是否成功。
查看>>
【loadrunner】【scorm学习】demo/test域上进行scorm脚本录制及回放成功脚本备份
查看>>
【Loadrunner】使用LoadRunner上传及下载文件
查看>>
【Python】Python 打印和输出更多用法。
查看>>