通过观测世界得到了一些数据,我们要从这些数据里面去找出规律来认识世界,一般来说,在概率上我们有一个一般性的操作步骤:
1. 观测样本的存在
2. 每个样本之间是独立的
3. 所有样本符合一个概率模型
我们最终想要得到的是一个概率密度的模型,如果我们已经对观测的对象有了一些认识,对观测的现象属于那种类型的概率密度分布已经了解,只是需要确定其中的参数而已,这种情况就是属于参数估计问题。
如果我们研究观测的对象,很难说这些观测的数据符合什么模型,参数估计的方法就失效了,我们只有用非参数估计的办法去估计真实数据符合的概率密度模型了。
因此,本文主要讨论 参数估计和非参数估计问题
1. 参数估计
在已知观测数据符合某些模型的情况下,我们可以利用参数估计的方法来确定这些参数值,然后得出概率密度模型。这个过程中用到了一个条件,就是概率分布符合某些模型这个事实。在这个事实上进行加工。一般来说,参数估计中,最大似然方法MLE是最重要和最常用的,此外介绍一下最大后验概率估计MAP及贝叶斯估计。
1.1、最大似然估计
回顾一下贝叶斯公式
其中:为先验概率,表示每种类别分布的概率;是条件概率,表示在某种类别前提下,事件X发生的概率;而为后验概率,表示某事发生了,并且它属于某一类别的概率,有了这个后验概率,我们就可以对样本进行分类。后验概率越大,说明某事物属于这个类别的可能性越大,我们越有理由把它归到这个类别下。
这个公式也称为逆概率公式,可以将后验概率转化为基于似然函数和先验概率的计算表达式,即
最大似然估计就是要用似然函数取到最大值时的参数值作为估计值,似然函数可以写做
由于有连乘运算,通常对似然函数取对数计算简便,即对数似然函数。最大似然估计问题可以写成:
这是一个关于的函数,求解这个优化问题通常对求导,得到导数为0的极值点。该函数取得最大值是对应的的取值就是我们估计的模型参数。
对似然函数的理解:
常说的概率是指给定参数后,预测即将发生的事件的可能性。
拿硬币这个例子来说,我们已知一枚均匀硬币的正反面概率分别是0.5,要预测抛两次硬币,硬币都朝上的概率:(H表示头朝上)
= 0.5*0.5 = 0.25.
这种写法其实有点误导,后面的这个其实是作为参数存在的,而不是一个随机变量,因此不能算作是条件概率,更靠谱的写法应该是 p(HH;=0.5)。
而似然概率正好与这个过程相反,我们关注的量不再是事件的发生概率,而是已知发生了某些事件,我们希望知道参数应该是多少。
现在我们已经抛了两次硬币,并且知道了结果是两次头朝上,这时候,我希望知道这枚硬币抛出去正面朝上的概率为0.5的概率是多少?正面朝上的概率为0.8的概率是多少?
如果我们希望知道正面朝上概率为0.5的概率,这个东西就叫做似然函数,可以说成是对某一个参数的猜想(=0.5)的概率,这样表示成(条件)概率就是
L(=0.5|HH) = P(HH|=0.5) = (另一种写法)P(HH;=0.5).
为什么可以写成这样?我觉得可以这样来想:
似然函数本身也是一种概率,我们可以把L(=0.5|HH)写成P(=0.5|HH); 而根据贝叶斯公式:
P(=0.5|HH) = P(=0.5,HH)/P(HH);既然HH是已经发生的事件,理所当然P(HH) = 1,所以:
P(=0.5|HH) = P(=0.5,HH) = P(HH;=0.5).
右边的这个计算我们很熟悉了,就是已知头朝上概率为0.5,求抛两次都是H的概率,即0.5*0.5=0.25。
所以,我们可以safely得到:
L(=0.5|HH) = P(=0.5|HH)= P(=0.5,HH) = P(HH;=0.5)=P(HH|=0.5) = 0.25.
这个0.25的意思是,在已知抛出两个正面的情况下, = 0.5的概率等于0.25。
再算一下: L(=0.6|HH) = P(HH|=0.6) = 0.36.
把pH从0~1的取值所得到的似然函数的曲线画出来得到这样一张图:
可以发现, = 1的概率是最大的。即L( = 1|HH) = 1。在观测到HH的情况下, = 1是最合理的(却未必符合真实情况,因为数据量太少的缘故)。
那么最大似然概率的问题也就好理解了。
最大似然概率,就是在已知观测的数据的前提下,找到使得似然概率最大的参数值。
from: 对似然函数的理解
以扔硬币的伯努利实验为例子,N次实验的结果服从二项分布,参数P(即上面的),设为正面的概率。为了估计P,采用最大似然估计,似然函数可以写作
其中表示实验结果为i的次数。下面求似然函数的极值点,有
得到参数p的最大似然估计值为
可以看出二项分布中每次事件发的概率p就等于做N次独立重复随机试验中事件发生的概率。
如果我们做20次实验,出现正面12次,反面8次,那么根据最大似然估计得到参数值p为12/20 = 0.6。
1.2、最大后验估计MAP
最大后验估计与最大似然估计相似,不同点在于估计的函数中允许加入一个先验概率,也就是说此时不是要求似然函数最大,而是要求由贝叶斯公式计算出的整个后验概率最大,即
这里P(X)与参数无关。与最大似然估计相比,现在需要多加上一个先验分布概率的对数。在实际应用中,这个先验可以用来描述人们已经知道或者接受的普遍规律,先验概率的估计较简单:
1、每个样本所属的自然状态都是已知的(有监督学习);2、依靠经验;3、用训练样本中各类出现的频率估计。
例如在扔硬币的试验中,每次抛出正面发生的概率应该服从一个概率分布(注意这句话讲的是:先验概率的取值也服从一种概率分布),这个概率在0.5处取得最大值,这个分布就是先验分布。先验分布的参数我们称为超参数(hyperparameter)即
当后验概率取得最大值时,我们就得到根据MAP估计出的参数值。给定观测到的样本数据,一个新的值发生的概率是
下面我们仍然以扔硬币的例子来说明,我们期望先验概率分布在0.5处取得最大值,我们可以选用Beta分布作为扔硬币先验概率所服从的分布,即
其中Beta函数展开是
当x为正整数时
Beta分布的随机变量范围是[0,1]。下图给出了不同参数情况下的Beta分布的概率密度函数:
我们取,这样先验分布在0.5处取得最大值,现在我们来求解MAP估计函数的极值点,同样对p求导数我们有
得到参数p的的最大后验估计值为
和最大似然估计的结果对比可以发现结果中多了这样的pseudo-counts,这就是先验概率在起作用。
并且超参数越大,Beta函数越聚集,紧缩在其最大值两侧。为了改变先验分布传递的belief所需要的观察值就越多。
如果我们做20次实验,出现正面12次,反面8次,那么
根据MAP估计出来的参数,得到=16/28 = 0.571,小于最大似然估计得到的值0.6,这也显示了“硬币一般是两面均匀的”这一先验对参数估计的影响。
1.3、贝叶斯估计
贝叶斯估计是在MAP上做进一步拓展,此时不直接估计参数的值,而是允许参数服从一定概率分布。贝叶斯公式:
现在不是要求后验概率最大,这样就需要求,即观察到的evidence的概率,由全概率公式展开可得
当新的数据被观察到时,后验概率可以自动随之调整。但是通常这个全概率的求法是贝叶斯估计比较有技巧性的地方。
如何用贝叶斯估计来做预测呢?如果我们想求一个新值的概率,可以由
最大后验估计(做个对比) : (我的理解是:这个时候已经求出来了,是常数)
注意贝叶斯估计公式里,此时第二项因子在上的积分不再等于1,这就是和MLE及MAP很大的不同点。
(不懂:第二项因子在上的积分不再等于1,这里的第二项因子是指?)
我们仍然以扔硬币的伯努利实验为例来说明。和MAP中一样,我们假设先验分布为Beta分布,但是构造贝叶斯估计时,不是要求用后验最大时的参数来近似作为参数值,而是求满足Beta分布的参数p的期望,有
注意这里用到了公式
根据结果可以知道,根据贝叶斯估计,参数p服从一个新的Beta分布。
回忆一下,我们为p选取的先验分布是Beta分布,然后以p为参数的二项分布,用贝叶斯估计得到的后验概率仍然服从Beta分布,由此我们说二项分布和Beta分布是共轭分布。在概率语言模型中,通常选取共轭分布作为先验,可以带来计算上的方便性。
根据Beta分布的期望和方差计算公式,我们有
可以看出此时估计的p的期望和MLE ,MAP中得到的估计值都不同,此时如果仍然是做20次实验,12次正面,8次反面,那么我们根据贝叶斯估计得到的p满足参数为12+5和8+5的Beta分布,其均值和方差分别是17/30=0.567, 17*13/(31*30^2)=0.0079。可以看到此时求出的p的期望比MLE和MAP得到的估计值都小,更加接近0.5。
综上所述我们可以可视化MLE,MAP和贝叶斯估计对参数的估计结果如下:
从MLE到MAP再到贝叶斯估计,对参数的表示越来越精确,得到的参数估计结果也越来越接近0.5这个先验概率,越来越能够反映基于样本的真实参数情况。
from:文本语言模型的参数估计-最大似然估计、MAP及贝叶斯估计
2、非参数估计
如果产生数据的分布形式已知,参数也已知,那么概率密度函数PDF已知,可以直接计算每一点的概率密度,比如高斯分布。如果参数不知道,那么也可以用数据估计参数,比如最小二乘估计,最大似然估计,贝叶斯参数估计等,如果连产生数据的分布形式都不知道,怎么办求概率密度呢?这就是一个非参数问题了,方法:让数据说话。
我们的目标,求出观测数据的概率密度模型。因此我们就会从概率密度这个定义开始分析。 概率密度,直观的理解就是在某一个区间内,事件发生的次数的多少的问题,比如N(0,1)高斯分布,就是取值在0的很小的区间的概率很高,至少比其他等宽的小区间要高。
我们把所有可能取值的范围分成间隔相等的区间,然后看每个区间内有多少个数据?这样我们就定义出了直方图,因此直方图就是概率密度估计的最原始的模型。直方图我们用的是矩形来表示纵轴,当样本在某个小区间被观测到,纵轴就加上一个小矩形。这样用矩形代表的模型非常粗糙,因此可以用其他的形状来表示,进一步就是核密度估计方法。
2.1、直方图密度估计
直方图是最简单,并且也是最常见的一种的非参数概率密度估计方法为了构造直方图,我们需要把数据取值所覆盖的区间分成相等的小区间,可以叫做“箱子”,每次一个数据值将会掉落在一个特定的小区间中,一个“箱子”宽度的盒子就会垒在数据点的上方。当我们构造直方图的时候,需要考虑两件事情:
第一,“箱子”的宽度,第二,箱子的结束位置。
直方图的特点是简单易懂,但缺点在于以下三个方面:密度函数是不平滑的;密度函数受子区间(即每个直方体)宽度影响很大,同样的原始数据如果取不同的子区间范围,那么展示的结果可能是完全不同的。如下图中,第二个图只是在第一个图的基础上,划分区间增加了0.75,但展现出的密度函数却看起来差异很大;直方图最多只能展示2维数据,如果维度更多则无法有效展示(假设每一维都需要划分成个bin,而且大多数bin的值为0,会造成维度灾难)。
2.2、核密度估计KDE
核密度估计Kernel Density Estimation(KDE)是在概率论中用来估计未知的密度函数,属于非参数检验方法之一,所谓核密度估计,就是采用平滑的峰值函数(“核”)来拟合观察到的数据点,从而对真实的概率分布曲线进行模拟。
假设为独立同分布F的n个样本点,设其概率密度函数为f,核密度估计为以下:
K(.)为核函数(非负、积分为1,符合概率密度性质,并且均值为0)。h>0为一个平滑参数,称作带宽(bandwidth),也叫窗口。
. 为缩放核函数(scaled Kernel)。
基本原理: 核概率密度估计的原理其实是很简单的。在我们知道某一事物的概率分布的情况下。如果某一个数在观察中出现了,我们可以认为这个数的概率密度很大,和这个数比较近的数的概率密度也会比较大,而那些离这个数远的数的概率密度会比较小。
基于这种想法,针对观察中的第一个数,我们都可以用去拟合我们想象中的那个远小近大概率密度。
就是核函数,如高斯分布概率密度函数、均匀分布概率密度函数、三角分布概率密度函数等,当然也可以用其他对称的函数。针对每一个观察中出现的数拟合出多个概率密度分布函数之后。对每一个观察数拟合出的多个概率密度分布函数,取平均。如果某些数是比较重要的,则可以取加权平均。需要说明的一点是,核密度的估计并不是找到真正的分布函数。
Note: 核密度估计其实就是通过核函数(如高斯)将每个数据点的数据+带宽当作核函数的参数,得到N个核函数,再线性叠加就形成了核密度的估计函数,归一化后就是核密度概率密度函数了。
以下面3个数据点的一维数据集为例:5, 10, 15
理论上,所有平滑的峰值函数均可作为KDE的核函数来使用,只要对归一化后的KDE而言(描绘在图上的是数据点出现的概率值),该函数曲线下方的面积和等于1即可。只有一个数据点时,单个波峰下方的面积为1,存在多个数据点时,所有波峰下方的面积之和为1。概而言之,函数曲线需囊括所有可能出现的数据值的情况。
常用的核函数有:矩形、Epanechnikov曲线、高斯曲线等。这些函数存在共同的特点:在数据点处为波峰;曲线下方面积为1。
矩形
Epanechnikov曲线
高斯曲线
Parzen windows
点处的密度估计值,为落在以为中心的超球体的数据点个数。这与我们最开始猜测时的思想一致,只不过将超球体,换成超立方体:
我们用核函数的形式表示了,这里(超体积),,为总的样本数。这种方法本质上和直方图方法没有太大的区别,Parzen windows方法是以数据点为中心,而直方图是我们自己固定好的点为中心。因此,它也会有直方图的一些缺点。比如估计的概率密度不是连续,维度灾难。
Kernel smoothing
很自然的,如果利用的数据量越大,估计出来的值就会越好,因为,我们综合的信息越多,于是我们使用所有数据点估计。采用所有样本估计的话,自然得要用加权的方法,越靠近估计点的数据点权重越大,反之,越是远离数据点,权重越小。
前面已经介绍过具有这样属性的两种核函数。Epanechnikov Kernel和 Normal Kernel,比如,我们使用高斯核,就有:
写不下去了,已经蒙了。
form:https://blog.csdn.net/ttransposition/article/details/38514443
from:https://blog.csdn.net/pipisorry/article/details/53635895