标签:
b. 正态分布是重要的概率分布。随着参数 和 变化,概率分布也产生变化。它的概率密度函数是:
本文假设大家都知道什么叫条件概率了(P(A|B)表示在B事件发生的情况下,A事件发生的概率)。
先验概率和后验概率:
教科书上的解释总是太绕了。其实举个例子大家就明白这两个东西了。
假设我们出门堵车的可能因素有两个(就是假设而已,别当真):车辆太多和交通事故。
堵车的概率就是先验概率 。
那么如果我们出门之前我们听到新闻说今天路上出了个交通事故,那么我们想算一下堵车的概率,这个就叫做条件概率 。也就是P(堵车|交通事故)。这是有因求果。
如果我们已经出了门,然后遇到了堵车,那么我们想算一下堵车时由交通事故引起的概率有多大,那这个就叫做后验概率 (也是条件概率,但是通常习惯这么说)。也就是P(交通事故|堵车)。这是有果求因。
下面的定义摘自百度百科:
先验概率是指根据以往经验和分析得到的概率,如全概率公式,它往往作为"由因求果"问题中的"因"出现.
后验概率是指依据得到"结果"信息所计算出的最有可能是那种事件发生,如贝叶斯公式中的,是"执果寻因"问题中的"因".
----------
那么这两个概念有什么用呢?
最大似然估计,我们来看一个例子:
有一天,有个病人到医院看病。他告诉医生说自己头痛,然后医生根据自己的经验判断出他是感冒了,然后给他开了些药回去吃。有人肯定要问了,这个例子看起来跟我们要讲的最大似然估计有啥关系啊。关系可大了,事实上医生在不知不觉中就用到了最大似然估计(虽然有点牵强,但大家就勉为其难地接受吧^_^)。
大家知道,头痛的原因有很多种啊,比如感冒,中风,脑溢血...(脑残>_<这个我可不知道会不会头痛,还有那些看到难题就头痛的病人也不在讨论范围啊!)。那么医生凭什么说那个病人就是感冒呢?哦,医生说这是我从医多年的经验啊。咱们从概率的角度来研究一下这个问题。其实医生的大脑是这么工作的,他计算了一下:
P(感冒|头痛)(头痛由感冒引起的概率,下面类似)
P(中风|头痛)
P(脑溢血|头痛)
...
然后这个计算机大脑发现,P(感冒|头痛)是最大的,因此就认为呢,病人是感冒了。看到了吗?这个就叫最大似然估计(Maximum likelihood estimation,MLE) 。
咱们再思考一下,P(感冒|头痛),P(中风|头痛),P(脑溢血|头痛)是先验概率还是后验概率呢?
没错,就是后验概率。看到了吧,后验概率可以用来看病(只要你算得出来,呵呵)。事实上,后验概率起了这样一个用途,根据一些发生的事实(通常是坏的结果),分析结果产生的最可能的原因,然后才能有针对性地去解决问题。
那么先验概率有啥用呢?
我们来思考一下,P(脑残|头痛)是怎么算的。P(脑残|头痛)=头痛的人中脑残的人数/头痛的人数,头痛的样本倒好找,但是头痛的人中脑残的人数就不好调查了吧。如果你去问一个头痛的人你是不是脑残了,我估计那人会把你拍飞吧。接下来先验概率就派上用场了。
根据贝叶斯公式 : P(B|A)=P(A|B)P(B)/P(A)
我们可以知道: P(脑残|头痛)=P(头痛|脑残)P(脑残)/P(头痛), 注意: (头痛|脑残)是先验概率,那么利用贝叶斯公式我们就可以利用先验概率把后验概率算出来了。
P(头痛|脑残)=脑残的人中头痛的人数/脑残的人数,这样只需要我们去问脑残的人你头痛吗,明显很安全了。(你说脑残的人数怎么来的啊,那我们就假设我们手上有一份传说中的脑残名单吧。那份同学不要吵,我没说你在名单上啊。再说调查脑残人数的话咱就没必要抓着一个头痛的人问了。起码问一个心情好的人是否脑残比问一个头痛的人安全得多)
我承认上面的例子很牵强,不过主要是为了表达一个意思。后验概率在实际中一般是很难直接计算出来的,相反先验概率就容易多了。因此一般会利用先验概率来计算后验概率。
这时我们会发现各种各样的参数估计方法,例如极大似然估计、最大后验估计、贝叶斯推断、最大熵估计,等等。虽然方法各不相同,但实际上背后的道理大体一样。想要了解它们之间的联系与区别,只要举一个最简单的例子就可以了:观测到一堆从某个高斯分布产生的数值,请估该计高斯分布的参数之一—均值。下图就是我们的实验数据:从一个0均值一维高斯分布中产生的1000个点,横坐标是数据的序号(1:1000),纵坐标是样本点的值。
怎样的参数是最好的?使得观测数据出现的概率(即所谓likelihood,似然)最大的参数就是最好的。这个朴素的思想,就是极大似然估计(Maximum Likelihood Estimation, MLE)。对一个独立同分布(i.d.d)的样本集来说,总体的似然就是每个样本似然的乘积。例如本例中的似然(Likelihood)显然是:
在实际中,因为连乘计算起来比较麻烦,并且概率都很小,难免越乘越接近0最终引发数值bug,因此多对其取log, 得到log似然( log likelihood):
log并不改变似然函数的凸性,因此可令其对u取极值(函数取极值的方法:导数为0的点,边界点。),显然得到:
这就完成了对高斯分布均值的极大似然估计。值得一提的是,该例的log似然实在是太简单,所以这个极值可以直接求导得到;在更多的情况下,我们需要通过梯度下降法等最优化算法来求解。而绝大部分最优化的工具包都默认求函数的最小值,因此别忘了把你的log似然乘以-1变成负log似然(Negative Log Likelihood),在你把它塞给一个最优化工具包之前。
MLE简单又客观,但是过分的客观有时会导致过拟合(Over fitting)。在样本点很少的情况下,MLE的效果并不好。为此,贝叶斯学派发明了最大后验估计(Maximum a Posterior)。先看一个最简单的概率图模型,借此来复习一下先验、似然、后验:
likelihood:对一个待估参数θ来说,它产生观测样本x的概率密度函数p(x|θ)叫做x的似然;
prior:θ本身是一个未观测到的变量,既然未观测到,也就是可以看成一个随机变量,假设其服从以α为参数的概率分布p(θ|α),叫做θ的先验;
posterior:在观测到x之后,我们对θ的认识得到了增强,将它的概率分布修正为p(θ|α,x),这个就叫做θ的后验;简单套用一下贝叶斯公式,可以得到后验分布:
即先验和似然的乘积。在本文的例子中,假设我们预先知道均值u本身服从一个高斯分布,其均值为u0,方差为σ0,那么观测到数据样本之后,u的后验分布为:
接下来就和MLE完全一样了:求一个u使得后验概率最大即可。方便起见,把u0固定成0,变化σ0做几组对比实验:
横轴是参数估计所用到的样本数,纵轴是估计值与真实值之间的误差。σ0取了0.01、0.1、1等三个值,作为方差,值越小先验的强度越大。
可见:
1) MLE在数据较少时不准确
2) 先验强的MAP(图中红线、黄线)可以在少量数据时就达到较好的结果
3) 先验弱的MAP(图中蓝线)退化为MLE
还有一点在图中看不出来:假如我们预先知道的关于u的信息是不对的,即选择了一个强但偏离实际的先验(例如把u0设置成5, σ0设置成0.01)会怎样?其实那样的话结果甚至还不如MLE,这也是贝叶斯学派广为诟病的硬伤之一:凭什么去选择先验?大部分时候,我们选一个方便计算但不包含太多信息的共轭先验(什么是共轭先验?下回分解)。
其实MAP不仅让频率学派的人不领情,甚至不能令苛刻的贝叶斯学派满意。
一来,MAP只取后验分布的峰值(众数,mode),而mode往往不具有很强的代表性(特别是在多峰的函数中);
二来,MAP有一个独特的缺点,对参数形式敏感。如果我们要估计方差,就会发现,将方差作为参数得到的解,并不是将标准差作为参数得到的解的平方。而MLE可不会这样。
那么与其将后验分布的峰值拿来凑合,还不如将整个后验分布求出来,用一个分布来描述待估的参数。这就是Inference。
可是我们刚才在MAP中不是已经求出了整个后验分布么?是的,这是因为例子太简单了。在绝大部分超过三个节点的概率图模型中,都无法求出精确的后验分布,我们需要借助于各种各样的近似手段,于是才有了拉普拉斯近似、变分推断、Gibbs采样…等等等等,内容庞杂,下回再表。
前例中的估计无不建立在这样一个基础上:已知分布的形式,求分布的参数。但是如果并不知道分布的形式,还能估计么?答案是不仅可以,并且靠谱。这就是鼎鼎有名的最大熵法。关于怎么样从最大的熵原理推导出最大熵估计,已经有足够多的介绍,在这里就不说了。
我们要说的是,其实最大熵估计也是一种MLE。
首先,我们不知道样本的分布形式,但是它作为一个概率分布,一定会满足
1)处处非负
2)和为1
于是,可以随意构造一个这样的函数:
其中
指数保证了非负,Z保证了归一化,因此f(x)可以构造成任意一个关于x的函数--茫茫大海中,总会有一个f(x)使得p(x)接近样本的真实分布。
现在我们来对这个分布做MLE,其log似然是:
这个log似然对λ来说是凸的,因此使用简单的优化算法(比如梯度下降),就可以求得一个最优的λ,把λ代入p(x)的通项公式中,就可以得到分布的具体形式。特别的,当我们取f(x)=(x,x2)时,所得结果就是一个高斯分布。从另一方面来说,估计的结果严重依赖于选择怎样的f(x),这一点和MAP有些类似。
-这个结果和最大熵估计完全等价。也就是说,最大熵估计等同于对以下形式的模型的MLE:
而这种形式的模型,被统一称作“对数线性模型”(log linear model)。它是logistic回归、最大熵模型、以及以条件随机场(CRF)为代表的各种概率无向图的的基础。
最大似然估计:
最大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。简单而言,假设我们要统计全国人口的身高,首先假设这个身高服从服从正态分布,但是该分布的均值与方差未知。我们没有人力与物力去统计全国每个人的身高,但是可以通过采样,获取部分人的身高,然后通过最大似然估计来获取上述假设中的正态分布的均值与方差。
最大似然估计中采样需满足一个很重要的假设,就是所有的采样都是独立同分布的。下面我们具体描述一下最大似然估计:
首先,假设为独立同分布的采样,θ为模型参数,f为我们所使用的模型,遵循我们上述的独立同分布假设。参数为θ的模型f产生上述采样可表示为
回到上面的“模型已定,参数未知”的说法,此时,我们已知的为,未知为θ,故似然定义为:
在实际应用中常用的是两边取对数,得到公式如下:
其中称为对数似然,而称为平均对数似然。而我们平时所称的最大似然为最大的对数平均似然,即:
举个别人博客中的例子,假如有一个罐子,里面有黑白两种颜色的球,数目多少不知,两种颜色的比例也不知。我 们想知道罐中白球和黑球的比例,但我们不能把罐中的球全部拿出来数。现在我们可以每次任意从已经摇匀的罐中拿一个球出来,记录球的颜色,然后把拿出来的球 再放回罐中。这个过程可以重复,我们可以用记录的球的颜色来估计罐中黑白球的比例。假如在前面的一百次重复记录中,有七十次是白球,请问罐中白球所占的比例最有可能是多少?很多人马上就有答案了:70%。而其后的理论支撑是什么呢?
我们假设罐中白球的比例是p,那么黑球的比例就是1-p。因为每抽一个球出来,在记录颜色之后,我们把抽出的球放回了罐中并摇匀,所以每次抽出来的球的颜 色服从同一独立分布。这里我们把一次抽出来球的颜色称为一次抽样。题目中在一百次抽样中,七十次是白球的概率是P(Data | M),这里Data是所有的数据,M是所给出的模型,表示每次抽出来的球是白色的概率为p。如果第一抽样的结果记为x1,第二抽样的结果记为x2... 那么Data = (x1,x2,…,x100)。这样,
P(Data | M)
= P(x1,x2,…,x100|M)
= P(x1|M)P(x2|M)…P(x100|M)
= p^70(1-p)^30.
那么p在取什么值的时候,P(Data |M)的值最大呢?将p^70(1-p)^30对p求导,并其等于零。
70p^69(1-p)^30-p^70*30(1-p)^29=0。
解方程可以得到p=0.7。
在边界点p=0,1,P(Data|M)=0。所以当p=0.7时,P(Data|M)的值最大。这和我们常识中按抽样中的比例来计算的结果是一样的。
假如我们有一组连续变量的采样值(x1,x2,…,xn),我们知道这组数据服从正态分布,标准差已知。请问这个正态分布的期望值为多少时,产生这个已有数据的概率最大?
P(Data | M) = ?
根据公式
可得:
对μ求导可得 ,则最大似然估计的结果为μ=(x1+x2+…+xn)/n
由上可知最大似然估计的一般求解过程:
(1) 写出似然函数;
(2) 对似然函数取对数,并整理;
(3) 求导数 ;
(4) 解似然方程
注意:最大似然估计只考虑某个模型能产生某个给定观察序列的概率。而未考虑该模型本身的概率。这点与贝叶斯估计区别。贝叶斯估计方法将在以后的博文中描述
本文参考
http://en.wikipedia.org/wiki/Maximum_likelihood
http://www.shamoxia.com/html/y2010/1520.html
最大后验概率:
最大后验估计是根据经验数据获得对难以观察的量的点估计。与最大似然估计类似,但是最大的不同时,最大后验估计的融入了要估计量的先验分布在其中。故最大后验估计可以看做规则化的最大似然估计。
首先,我们回顾上篇文章中的最大似然估计,假设x为独立同分布的采样,θ为模型参数,f为我们所使用的模型。那么最大似然估计可以表示为:
现在,假设θ的先验分布为g。通过贝叶斯理论,对于θ的后验分布如下式所示:
最后验分布的目标为:
注:最大后验估计可以看做贝叶斯估计的一种特定形式。
举例来说:
假设有五个袋子,各袋中都有无限量的饼干(樱桃口味或柠檬口味),已知五个袋子中两种口味的比例分别是
樱桃 100%
樱桃 75% + 柠檬 25%
樱桃 50% + 柠檬 50%
樱桃 25% + 柠檬 75%
柠檬 100%
如果只有如上所述条件,那问从同一个袋子中连续拿到2个柠檬饼干,那么这个袋子最有可能是上述五个的哪一个?
我们首先采用最大似然估计来解这个问题,写出似然函数。假设从袋子中能拿出柠檬饼干的概率为p(我们通过这个概率p来确定是从哪个袋子中拿出来的),则似然函数可以写作
由于p的取值是一个离散值,即上面描述中的0,25%,50%,75%,1。我们只需要评估一下这五个值哪个值使得似然函数最大即可,得到为袋子5。这里便是最大似然估计的结果。
上述最大似然估计有一个问题,就是没有考虑到模型本身的概率分布,下面我们扩展这个饼干的问题。
假设拿到袋子1或5的机率都是0.1,拿到2或4的机率都是0.2,拿到3的机率是0.4,那同样上述问题的答案呢?这个时候就变MAP了。我们根据公式
写出我们的MAP函数。
根据题意的描述可知,p的取值分别为0,25%,50%,75%,1,g的取值分别为0.1,0.2,0.4,0.2,0.1.分别计算出MAP函数的结果为:0,0.0125,0.125,0.28125,0.1.由上可知,通过MAP估计可得结果是从第四个袋子中取得的最高。
上述都是离散的变量,那么连续的变量呢?假设为独立同分布的,μ有一个先验的概率分布为。那么我们想根据来找到μ的最大后验概率。根据前面的描述,写出MAP函数为:
此时我们在两边取对数可知。所求上式的最大值可以等同于求
的最小值。求导可得所求的μ为
以上便是对于连续变量的MAP求解的过程。
在MAP中我们应注意的是:
MAP与MLE最大区别是MAP中加入了模型参数本身的概率分布,或者说。MLE中认为模型参数本身的概率的是均匀的,即该概率为一个固定值。
标签:
原文地址:http://www.cnblogs.com/Matrix420/p/5140820.html