美文网首页
最大似然vs最大后验

最大似然vs最大后验

作者: aufwieder | 来源:发表于2018-01-16 19:02 被阅读0次

    本文发布于 https://tswc.github.io/tswc.github.io/2018/01/10/statistic/
    由于公式使用latex语法,在简书中好像不支持,所以这里作为草稿箱了,请移步上面的地址。

    概率和统计

    概率和统计通常被我们放在一起,虽然有联系,但它们的实际含义其实截然相反。
    概率:我们不知道具体的数据,但是我有数据的模型。
    比如说,我告诉你,a是一个整数,在$ (0,10] $平均分布。那么现在问你$a=3$的概率是多少?
    $$P(a=3)=1/10$$
    这里就是一个概率。 已知整体的分布,问你个体的概率。
    统计:我们知道数据的出现概率,但是没有数据模型的知识。
    现在,我告诉你,$a\in(0,10] & a is N$,且a是0到9的概率均为$1/10$,问你a是怎么分布的。
    a在$(0,10]$上平均分布。
    这里就是一个统计。我们知道个体出现的概率,问你整体的分布或者说模型是怎么样的。
    总的来说就是,
    概率是已知模型,用模型(方程)来计算概率。
    统计是已知概率,用概率来推算模型(方程)。
    对于机器学习领域来说,我们一般的流程是收集数据,希望通过已知的数据来学习规律,也就是推算出模型,用模型来处理未知的数据。
    本文所侧重的极大似然和最大后验都属于统计的范畴。(用最大概率的方式来推算出模型的参数)

    贝叶斯

    先看看贝叶斯公式
    $$P(A|B) = \frac{P(A,B)}{P(B)} \tag{1.1}$$
    $$P(A|B) = \frac{P(B|A)P(A)}{P(B)} \tag{1.2}$$
    <font color=red><center>贝叶斯公式就是在描述,你有多大把握能相信一件证据?(how much you can trust the evidence)</center></font>

    这句话说的有点直击灵魂,棒!

    例1【汽车被砸与警报器】

    引用从http://blog.csdn.net/u011508640/article/details/72815981里看到的解释这份公式例子,十分通俗易懂。

    $P(A|B)$表示B事件发生的情况下,A事件发生的概率,也就是说如果B发生了,我们有多大把握A事件也发生。
    想想这个情况。一辆汽车(或者电瓶车)的警报响了,你通常是什么反应?有小偷?撞车了? 不。。 你通常什么反应都没有。因为汽车警报响一响实在是太正常了!每天都要发生好多次。本来,汽车警报设置的功能是,出现了异常情况,需要人关注。然而,由于虚警实在是太多,人们渐渐不相信警报的功能了。

    $$P(A|B) = \frac{P(B|A)P(A)}{P(B|A)P(A) + P(B|\sim A)P(\sim A)}\tag{1.3}$$
    我们假设响警报的目的就是想说汽车被砸了。把A计作“汽车被砸了”,B计作“警报响了”,带进贝叶斯公式里看。我们想求等式左边发生A|B的概率,这是在说警报响了,汽车也确实被砸了。汽车被砸引起(trigger)警报响,即B|A。但是,也有可能是汽车被小孩子皮球踢了一下、被行人碰了一下等其他原因(统统计作∼A),其他原因引起汽车警报响了,即B|∼A。那么,现在突然听见警报响了,这时汽车已经被砸了的概率是多少呢(这即是说,警报响这个证据有了,多大把握能相信它确实是在报警说汽车被砸了)?想一想,应当这样来计算。用警报响起、汽车也被砸了这事件的数量,除以响警报事件的数量(这是1.2)。进一步展开,即警报响起、汽车也被砸了的事件的数量,除以警报响起、汽车被砸了的事件数量加上警报响起、汽车没被砸的事件数量(这是1.3)。

    再想想1.3,如果想让$P(A|B)=1$,也就是要将$P(B|\sim A)P(\sim A)$清0,也就是说要么杜绝小孩踢皮球,行人碰到车的可能性,要么就要让警报器在这些例外情况下不工作。这样的话,警报器的可行度大大提升。

    做事之前,要综合考虑所以的可能性

    当考虑$P(A|B)$时,即使$P(B|A)$很大,若是$P(A)$很小,$P(A|B)$还是很难变得较大,因为虽然A与B联系很紧,但是A的先验概率过小。

    从这个角度思考贝叶斯公式:一个本来就难以发生的事情,就算出现某个证据和他强烈相关,也要谨慎。
    证据很可能来自别的虽然不是很相关,但发生概率较高的事情。 发现刚才写的代码编译报错,可是我今天状态特别好,这语言我也很熟悉,犯错的概率很低。因此觉得是编译器出错了。 ————别,还是先再检查下自己的代码吧。

    似然&后验

    似然: $P(X;\theta)$
    对于似然函数求解的问题,一般来说模型确定,但是参数未知,通过实验得到一组数据要我们来估计模型参数。其中X就是实验得到的数据,$\theta$就是我们要估计的参数。
    $P(X|\theta)$表示的是在已知模型中,当参数为$\theta$时,X发生的概率。很自然的,我们要使这件事发生的概率最大,这就是我们求$\theta$的标准。
    $$\theta_{MLE} = \mathop{\rm arg,max}\limits_{\theta} P(X;\theta)$$
    对于这个式子中的分号,到底和表示条件概率的竖线有什么区别,这里有解释
    http://blog.csdn.net/pipisorry/article/details/42715245
    这里想想$P(X|\theta)$和$P(X;\theta)$的区别在哪?
    (关于这个问题想了很久,下面是纯粹个人想法,不保证正确)
    出现"|"时,其实表示的条件概率,等价于$P(X,\theta)/P(\theta)$;出现";"时,其实表示的是X的概率,只不过告诉我们有一个参数是$\theta$,等价于$P(X)$。
    分歧点就在$\theta$上,$\theta$到底是不是一个随机变量?
    如果我们将$P(X|\theta)$理解为条件概率,不考虑上面链接中说的等价情况。$P(X;\theta)$认为,$\theta$未知但确定,不存在概率的问题,只是具体的值需要听过上面的式子求得。或者说,我们对$\theta$不存在任何先验知识,所以不考虑$\theta$的分布情况,任何的$\theta$值对我们来说都是等价的。

    后验:$P(X|\theta)P(\theta)$
    几乎所以关于后验概率的解释都是
    $$
    P(\theta \vert X) = \frac{P(X \vert \theta) P(\theta)}{P(X)} \
    \propto P(X \vert \theta) P(\theta)
    $$
    而我在这里的对于后验概率得到想法与这个过程恰恰相反。
    所谓后验的意义,其实是我们有了先验的知识,所以才有了后验的概念。这个问题中,先验的知识其实就是$P(\theta)$。那么我们在极大似然中所用的$P(X;\theta)$应该写成$P(X|\theta)$,向我们前文中提到的,“一个本来就难以发生的事情,就算出现某个证据和他强烈相关,也要谨慎。”
    我们希望最大化X的发生概率,不能仅仅最大化$P(X|\theta)$,因为即使X与$\theta$强烈相关,若是$P(\theta)$自身发生的概率太小,X还是不容易发生。
    所以要将$P(\theta)$也考虑进去,才能保证X的发生概率。
    $$
    P(X \vert \theta) P(\theta) = \frac{P(X \vert \theta) P(\theta)}{P(X)}
    \propto P(\theta \vert X)
    $$
    考虑到编程的例子,我这里很有可能还是错的,欢迎指正!

    想法不一定正确,但是结论还是可以保证的
    对于最大似然和最大后验的理解:两者的分歧点在于对于参数$\theta$的看法,将$\theta$视为未知定值时,是最大似然;将$\theta$视为随机变量时,考虑$P(\theta)$时是最大后验。

    例2【掷硬币】

    http://blog.csdn.net/u011508640/article/details/72815981
    还是nebulaf91 博客里,有个掷硬币的例子来解释最大似然和最大后验。

    参考:
    关于具体例子:http://blog.csdn.net/pipisorry/article/details/42715245
    关于$P(X|\theta)$和$P(X;\theta)$的理解:http://blog.csdn.net/u011508640/article/details/72815981

    相关文章

      网友评论

          本文标题:最大似然vs最大后验

          本文链接:https://www.haomeiwen.com/subject/jnzanxtx.html