MLAPP————第五章 贝叶斯统计
第五章 贝叶斯统计
5.1 简介
前面我们已经介绍了很多不同的概率分布,以及如果将这些概率分布与我们的数据进行结合。我们考虑了各种各样的先验,我们学习了MAP去估计参数,从而去判别新的样本,我们学会了用后验的概率分布去进行估计。使用后验分布去总结未知变量是贝叶斯统计的核心,我们这一章将讨论更多的细节。下一章我们将分析频率派统计或者叫经典统计。
5.2 后验分布的总结
对于一个变量来说,如果我们得到了它的后验分布,那么可以说,我们就已经完全了解这个变量了,那么在这一小节中,我们可以去了解一下一些由后验分布得到的统计量,因为这些统计量往往比整个分布更加的直观,也容易理解。
5.2.1 MAP估计
那么对于后验分布来说,由很多的点估计,比如均值,中位数,众数。在5.7中,我们将使用决策论去分析选择哪一种点估计的方法。一般来说,其实均值是一个比较好的方法,尤其是对于连续实值变量来说。但是往往在现实应用中,用的比较多的是众数。因为这就转化为了一个优化问题,就是对后验求最大值,这个往往是有比较好的实现的算法。其实如果用map,就是最大似然的基础上加了一个log先验的正则项。
虽然在计算上这个方法是很吸引人的,但是实际上我们也要指出MAP估计的方法也是有很多的缺陷的。
5.2.1.1 没有对不确定性进行度量
很多点估计的一个很大的问题(包括MAP,均值估计),这是MAP的最大问题,就是对于这个估计值的不确定度进行度量,其实很多时候我们想知道你这个估计值到底有多可靠,可靠性怎么样,但是点估计不会给出。我们在5.2.2中将给出如何从后验分布中得到这样的一个可靠性的测量。(这一点就是比如说你的后验分布是高斯的,当你的高斯分布的均值不变,方差改变时,那么你的MAP估计和后验均值点估计,都是不变的,但是方差很小的可靠性明显要比方差很大的可靠性要高很多,所以这个问题就很严重)
5.2.1.2 使用MAP点估计会导致过拟合
之前其实有提到过,点估计相比于后验分布估计的话,更容易导致过拟合,很多时候我们不仅要考虑模型拟合的准确度,我们还要去分析参数本身的意义,这也是我们为什么引入先验的原因,其实后验估计相比MLE是不太容易过拟合,而采用后验分布估计比MAP更不容易过拟合。因为你使用MAP,就把后验分布所带来的不确定性给忽略了,所以更容易过拟合。
5.2.1.3 众数是一个非典型的点
选择众数作为一个后验分布的总结,往往很多时候是非常差的。对于分布来说,这个点估计其实是不太典型的,它跟均值或者中位数不太一样。书中给了例子:
左边的是双峰的,蓝色是均值点,右边是单调递减的,很明显这两个分布的众数都是一个不好的估计值,不能体现后验分布的特性(比如左边的尖峰有可能是一些噪声引起的,其实它的面积很小,在算均值时影响很小)。那么我们怎么知道我们的这个众数估计出来是否合适呢,那么后面5.7讲决策理论的时候会提到。
5.2.1.4 MAP估计对于再参数化之后并不是不变的*
在MAP估计中,一个更加微妙的问题就是最终的结果跟我们如何参数化这个概率分布相关。从一个表示的形式变到另一种等价的表示形式,结果就会发生改变,这不是很理想的,因为很多的测量下,单位制是任意的。
为了理解这个问题,我们假设已经找到了x的后验,我们定义y=f(x),我们根据公式2.87,得到y的后验分布:,而一般来说左边的MAP与右边是不一样的。举个例子,令,且,其中我们有,我们可以通过monte carlo的方法去生成y的概率分布。将y分成先离散化为密集的区间,然后生成很多x,计算y,然后分配到各自的区间,就可以了。下图给出了最后的结果:
绿色部分就是y的概率分布,红色时x的,很明显,x的MAP,通过f(x)映射过去,并不是y的MAP。
为什么在MAP的环境下就会有这样的问题呢,考虑伯努利分布,这个分布是由均值作为参数,即,其中。假设我们的先验是均匀分布,并且没有数据,那么后验概率密度函数就是先验。那么安照这个先验,我们的是随便取的,那么换一种表达方式呢。
所以说MAP估计依赖于参数的选择。但是MLE就不会有这样的问题,因为MLE是函数,并不是概率分布(公式2.87说明,分布要保证CDF是保持不变的)。贝叶斯推理(这里是否指前面的后验分布估计?)也没有关系,因为他是对整个参数空间的积分。
一个解决办法就是:,其中是关于的Fisher信息矩阵(6.2.2会讲到),但是这个式子的求解很复杂。
5.2.2 可靠区间
对于点估计来说,我们总是希望一个关于信息的测量。那么使用可靠区间,有很多的区间可以选,我们选用中心区间,就是对于后验概率分布找一个连续的区间。如果是中心区间,就是该区间的左右两边是一样的,概率都是。
如果我们的后验分布的函数形式是已知的。那么中心区间就是,F就是后验分布的cdf。比方说后验是高斯分布,,,那么,。
如果我们并不知道后验分布的具体的形式,那么可以使用monte carlo的方法去将区间给找出来。
对于这个可靠区间,比如,那么我们就可以说,变量有95%的概率是在这个区间里的,如果点估计出来的值,不再这个区间里,那么这个估计值就是不可靠的。比如说之前的MAP提到的双峰分布,MAP估计出来的值就是很不可靠的。
关于贝叶斯派的可靠区间(Bayesian credible intervals)和频率派的置信区间(frequentist confidence intervals)是有区别的,这里我自己还没有完全搞清楚,后面6.6.1会详细讲到。
5.2.2.1 后验密度最高的区域 (highest posterior density region)
对于中心分布有一个问题就是,如果两边很不对称,有可能出现如下右图的形式:
右图的中心区间中,左边没有在区间中的边缘其实概率是很高的,右边在区间中的边缘概率是很低的,这样其实并不合理。所以我们又提出了highest posterior density (HPD)region. 这个区域的定义如下:,正如右图所示,它的概率两边都是一样的。
在一维的情况下,HPD区域有时也叫做highest density interval HDI,例如上面的右图就是Beta(3,9)的95%HDI,是(0.04,0.48),很明显HDI比CI要窄,而且HDI的区间内的概率是要高于区间外的。对于单峰的区间,HDI是最窄的包含95%概率的区间。对于多峰的分布而言,HDI并不是一个连续的区间,而是多个区间。
5.2.3 比例差异的推断(不会翻译 Inference for a difference in proportions)
有的时候,我们会有一些变量,但是我们在意的是计算这些变量的一些函数的后验分布。举个例子,假设你想从亚马逊上买个东西,有两个卖家,他们卖的价格是一样的。卖家1有90个好评,10个差评,卖家2有2个好评,没有差评,那么你选择买哪一个。
令是两个卖家我们未知的可靠的程度,由于我们对他们了解的并不多,我们使用均匀的先验分布(我们之前讲过对于二项分布来说,beta分布是共轭先验),那么后验分布就是以及。我们希望得到的是哪一个卖家更可信,,所以我们定义,计算:
这个式子理解上就是求函数的的期望,得到最终的值是。
另一个简单的方法就是利用Monte carlo的方法,因为是独立的后验分布,并且已经知道了,所以可以采用采样的方法去估计的后验分布。
5.3 贝叶斯模型选择
当我们在进行多项式拟合时,我们选用次数比较高的模型,会出现过拟合的现象,我们选用次数比较低的模型,会出现欠拟合的现象。同样在进行选择正则化参数时,参数过大,出现欠拟合的现象,参数过小,出现过拟合的现象。那么在面对问题时,我们总会面对一堆不同复杂度的模型,那么哪一个模型才是最好的呢,这就是模型的选择问题。
一种方法就是使用交叉验证的方法,去计算每一个模型的泛化误差,选最好的那一个。但是这个需要对每一个模型去计算K次,K就是CV块的个数。另一种有效的方法就是计算模型的后验:,那么我们使用MAP估计,,这就叫做贝叶斯模型选择。如果我们使用均匀的先验,即,那么我们就要最大化,这个东西叫做边缘似然,积分似然,或者时模型m的证据。
这一块只给出了一个概念,其实比较的抽象,不过后面应该会讲实际中怎么处理。
5.3.1 贝叶斯奥卡姆的剃刀
肯定有人会想,我们使用去选择模型,往往总是喜欢选那些参数最多的模型。实际上并不是这样,如果我们使用去选择模型的话,是针对模型m,MLE或者MAP的结果,确实是会选择更加复杂的模型。这一点对于MLE而言,更加复杂的模型,在进行MLE拟合时,肯定是能跟数据拟合的很好。对于MAP而言,虽然有先验,但是这个先验是针对参数的,不是模型的,所以理解上还是更加复杂的模型会拟合的更加的好。但是把参数给积分掉了,而不是最大化它,这样我们就自动的避免了过拟合(这里目前我解释不了)。贝叶斯奥卡姆的剃刀就是说,具有更多参数的模型,不一定具有更高的边缘似然。
有两种方式去理解这个准则(这里我写的并不好,自己没完全理解)。第一个就是利用链式法则把边缘似然进行重写,那么有:(为了简单起见,把m省略掉了),这里我们看到,每一个数据的估计都是依赖于前面所有的数据,如果模型过于复杂,前面的例子导致过拟合,可能后面的预测会比较差。
另一个理解贝叶斯奥卡姆剃刀原理的方法是,如果我们将所有可能出现的数据集的概率加起来(假设数据集有D个数据),因此我们有:。所以复杂的模型,它预测的东西会更多,所以它每一个点的概率会更小,相反,简单的模型,它每一个点整体概率会偏大,但是覆盖的范围少。如下图所示:
我们实际观测到的数据是,那么最简单的模型就是M1,但是这个模型过于简单,都没有覆盖。M3是最复杂的模型,也可以看出它覆盖的情况是最多的,但是对于而言,概率并不高,相比而言模型M2就比另外两种更加的合适。
这一块后面讲了一些例子,但是都有些超过目前的内容,并且后面会讲到,但是后面提到一点,对于模型证据的选择有时候会是连续量,并不一定是离散的量,用一些optimization的方法去求。
5.3.2 计算边缘似然
之前我们讲进行参数的推断的时候,我们经常用下面的公式:,后验正比于先验乘以似然。这里会忽视掉归一化常数,因为这个归一化常数和参数是无关的。但是我们在进行模型的比较选择的时候,就是需要这个通过这个边缘似然进行估计。实际上这个边缘似然在计算的时候是比较难的,因为需要进行积分,那么我么如果引入共轭先验的话就会使得计算比较的简单。
为什么这么说,因为共轭先验意味着先验和后验具有相同的形式,如果先验知道了,那么后验我们是能准确知道的,而似然我们又知道,所以通过后验除以先验和似然,得到的必然会是一个与参数无关的常数项,这个就是。令,其中是没有被归一化的项,是先验的归一化常数。令,这个是似然,是所有的常数项。然后最终后验是,是后验的规一化常数,我们有,所以我们得到:
因为是共轭先验,所以这些归一化常数才好得到。后面会举一些具体的例子。
5.3.2.1 Beta-binomial 模型
第三章3.3.1关于有一点没有讲清楚,如果我们观察到的是,且,那么似然就是,但是如果我们观察到的是,那么变量就发生了改变,似然函数就是,其中。
所以这个我们的先验是,那么观察到的数据是,那么我们的后验就是,有,,后验的归一化常数是。因此
所以有。
书中也说了,对于beta-Bernoulli模型的化,就是我上面说的,那么边缘似然就是相差一个比例系数。
5.3.2.2 Dirichlet-multinoulli 模型
这个模型跟beta-Bernoulli很像,我们可以很容易得到边缘似然就是:,其中,所以我们得到最终的结果就是:。
5.3.2.3 Gaussian-Gaussian-Wishart 模型
对于MVN,共轭先验是NIW,令分别是先验和后验的归一化常数,似然的常数项是,所以我们直接将相应的数带进去就有:
5.3.2.4 边缘似然取对数的BIC近似
上面我们讲了用共轭先验额方法去计算5.13,在这里我们提供一个简单但是很流行的方法去近似5.13。这个方法叫做贝叶斯信息准则(Bayesian information criterion)或者BIC。形式如下:(m被省略掉了)。其中是模型的自由度(从我的理解的角度,这里的自由度就是模型中参数的个数)。是最大似然估计的结果。看形式,左边就是似然的log,右边是一个关于模型复杂度的惩罚项。
举一个例子,考虑一个线性回归问题(在7.3中会讲),最大似然估计的结果就是,其中有:。那么log似然就是,BIC就是(D就是模型变量的个数,这里常数项被忽略掉了)。在统计学领域,经常使用另一种的BIC表示方式即BIC-cost,这个方式下是要最小化BIC-cost.,在线性回归中,。以上的公式等等只是给一个直观上的过程,具体的关于线性回归的推导,第七章再进行吧。
BIC方法与最小描述长度或MDL原则密切相关,后者根据模型与数据的吻合程度,减去模型定义的复杂程度,来描述模型的得分。
还有一个与BIC非常相似的表达式叫做赤池信息准则(Akaike information criterion AIC)定义:。
这是由频率论框架推导出来的,不能解释为边缘分布的近似。然而,这个表达的形式与BIC非常相似。我们发现,AIC受到的惩罚比BIC受到的要少。这导致AIC选择更复杂的模型。然而,可能会导致更好的预测准确性。
5.3.2.5 先验的影响
有的时候怎样设置先验并不是很明确。当我们进行后验推理时,先验的细节可能不太重要,因为似然经常对于先验有压倒性的优势。但是在计算边缘似然的时候,先验就重要的多,因为我们把似然分布到了所有可能的参数设定下,用先验来进行加权。
在书中的图5.7和5.8中,就是阐述了一个关于线性回归的模型的选择。我们使用如下的先验:,就是用来控制先验的强度的。直觉上,如果很大,那么就要求权重系数比较小,那么我们就需要用更加复杂的模型去拟合数据。如果很小,那么权重系数就可以很大,那么我们就能用比较简单点的模型来拟合数据。假设我们的是不知道的,那么我们就需要找一个关于超参数的先验,并把这些参数都积分掉,即:。另一种简单的方法就是直接先把给估计出来,,然后。这个方法叫做经验贝叶斯。在这个方法下,是不需要有超参数的先验信息的。
5.3.3 贝叶斯因子
假设我们关于模型的先验是均匀分布的。那么模型的选择就是我们上面说的,最大化边缘似然。我们现在考虑两个模型,一个是虚假设
(null hypothesis),还有一个是备择假设(alternative hypothesis)。那么贝叶斯因子就是边缘似然的比值,即:
,如果,那我们更倾向于模型1,否则我们倾向于模型0。
当然如果只是稍微的比1大一点点,那么我们是没有很大的信息说模型1更好。jeffrey给了一个表来说明这个问题:
我们可以把贝叶斯因子转化为后验,如果,那么我们有,这里用了的这个条件。
5.3.3.1 例子:测试一个硬币是否是均匀的
假设我们观察到了一个硬币的一些投掷实验。我们想要去确定这些数据是否是由一个均匀的硬币,即导致的,或者说是一个有偏差的硬币,其中可以取[0,1]中的任何值。我们将前一个模型叫做,后一个模型叫做。那么第一个模型下的边缘似然就是:
。第二种模型,我们假定先验是Beta分布,这是共轭先验,这个就是5.3.2.1,所以我们有:
。书中给出了N=5的例子,在这种情况下,如果我们观测到了2或者3个正面,那么往往会倾向于选择。但是如果正面比如只有1次,这样极端的情况,那么就会倾向于选择。
后面还给出了关于的BIC近似,从图中看出,形状上是一样的,尺度上则没有很大的关联性。
5.3.4 Jeffreys-Lindley悖论*
当我们在进行模型选择的时候,如果使用不恰当(improper)的先验,那么就会引发一些问题,尽管这样的先验在其它情况下是可以接收的。(这里用个人理解解释一下,首先不恰当的先验就是积分不等于1的先验,那么可能在比如说做MAP估计的时候,我们不关注常数项以及也不需要积分,所以这样的先验也是可以用的,但是这里做模型选择的时候,后面可能会讲到这样的先验会产生什么样的问题)
首先假设我们要测试的两个假设是,那么这个先验就是,下面我们就要说名如果这个先验是不恰当的,就会有一些问题。我们考察后验:
使用不恰当的后验,这里的意思应该是每一个先验都是均匀分布,在各自的域上积分为。将这个结果插入到上面的公式当中,我们就能够得到:
其中我们令,就是边缘似然,同时假设,因此我们就得到了:
,这样我们的先验就可以取任意的值,只要我们调整的值就可以了。(后面的那些话我就看不懂了,希望有大神教一教)
5.4 先验
在贝叶斯统计里面最重要的就是先验,选择不一样的先验会对结果产生不一样的影响,但是现实生活就是这样,我们在做出很多决定时,必须要依赖于对于现实世界的一些假设,那么我们怎么样尽量减少先验的影响,就是说不要做出过分的假设。
5.4.1 无信息的先验
假设我们对于参数了解的并不多,那么我们就最好使用无信息的先验,让数据来说话。
其实优的时候在设计无信息先验的时候会有一点棘手。比方说之前的beta-Bernoulli模型,我们选用的无信息先验是,但是这样的到的后验均值是,跟最大似然MLE估计的结果相比是不一样的。那么有人就说这个先验不是真正的无信息的。(这里为什么不用MAP与MLE比,我觉得是因为Beta(1,1)是均匀分布,它不影响mode,但是其实对于整个似然是加了一个常数,所以它只是将整体值变了相同的量,但是它不是真正的无先验,真正的无先验应该是对似然没有任何影响,应该是加0而不是常数)
显然,通过减少伪数的大小,我们可以减轻先验的影响。所以信息最少的先验应该是:。这个也叫做Haldane prior。但是这个先验的积分并不等于1,所以是improper的。后面还会讲到用先验Beta(0.5,0.5),但是实际上这三个先验的区别是很小的,所以其实我们可以去做一些敏感性的分析,当我们改变先验时,最后的估计到底会有多大的差别。如果对于我们先验的选择,最终的结果并不太敏感,那么我们可以比较相信我们得到的结果,不用去纠结是不是会因为选了不好的先验导致结果变差。
5.4.2 jeffreys 先验
Harold Jefferys 为了建立无信息的先验,设计了一个比较广泛的方法。这个就叫做Jeffreys 先验。这个的主要想法就是如果是无信息的先验,那么它的重新参数化,即应该也是无信息的先验。
如果做了变换之后,我们应该有:,所以一般来说,先验是会发生改变的,但是如果我们选择,其中叫做Fisher information:。这是对数似然曲率的期望的复数。因此,这是一种衡量MLE稳定性的方法,应该是越大越稳定(6.2.2中会讲到)。(这里要说明一点,fisher information可以表示为,也可以表示为)现在,(这里理解成,并不是直接把里面的变成,而是变成。)然后我们得到
所以,我们可以得到改变形式了的先验:,所以说这两个先验都是无信息的先验。
5.4.2.1 例子:伯努利分布和多元分布的jeffreys先验
我们有,对于一个样本来说,似然函数是。那么score function是,observed information是,所以我们可以得到fisher information(费舍尔信息)是,所以jeffreys prior(jeffreys 先验)是。对于多元的分布,Jeffreys prior 是,这个推导我还不会,不过这个先验可能与我们正常的一些想法有点区别,我们可能会认为是这两种形式中的一种。
5.4.2.2 例子:对于位置和尺度参数的Jeffreys prior
对于位置信息,如高斯分布的均值,Jeffreys prior是,为什么是这个呢,因为这个先验不会影响位置信息对于区间[A,B]和[A-c,B-c]是一样的。。在共轭先验中,我们选择高斯分布,所以我们选择作为近似,虽然这个分布是improper的,但是后验是proper的,只要我们观察了至少一个数据。这也很好理解,因为只有你有至少一个数据才能有位置信息。
对于尺度信息,如高斯分布的方差,Jeffreys prior是,同样这个先验不会影响尺度信息,对于区间[A,B]和[A/c,B/c],c>0。,我们有。我们的共轭先验是Gamma分布,所以选择作近似。虽然这个先验本身是improper的,但是只要观察了两个数据以后,后验就是proper的。同样很好理解,只有你观察到了两个数据,才能谈方差。
5.4.3 稳健的先验
在很多情况下,我们对自己的过去不是很有信心,所以我们要确保它不会对结果产生不应有的影响。这可以通过使用稳健的先验来实现,这些先验通常具有较重的尾部,这样的先验有更多的可能性,不会很集中于先验的均值处。我们来看一个例子,假设,如果我们观察到了数据x=5,那么,这是MLE估计的结果。在无信息先验的情况下,后验均值也是。但是如果我们有先验均值为0,并且要求.。我们假设我们的鲜艳是单峰,并且光滑的。如果我们用高斯先验,那么先验就是,那么后验均值是3.43,那么这个结果跟我们的观察相比就差距太大,说明先验过分的影响了。但是如果我们用更加稳健的先验柯西先验,这个也是符合条件的,但是这个先验算出来的后验均值就是4.6,所以这个看上去更加合适一点。这个就是告诉我们在如果你对过去不够自信,先验选重尾分布的,这样数据的话语权会更大。
5.4.4 共轭先验的混合
很多时候,稳健的先验是很有用的,但是往往来说,稳健的先验在计算上会比较的复杂。而共轭先验呢,大大简化了计算,但是它不够稳健,而且有的时候呢也不够准确。所以在这里我们要用共轭先验的混合。并且共轭先验的混合也是共轭的。这一点后面的式子会很直观。这样的先验会在灵活性和计算的方便性上取得一些折中。
假设我们在做投币实验,我们考虑模型即硬币有可能会是比较均匀的,也有可能倾向于更容易出现正面的情况。用一个Beta分布是不能够表示的,所以我们用两个Beta分布的混合,例如,我们可能使用:,那么对于如果有k种分布的混合的话,那么我们的先验就具有:这样的形式。这个就是原来的共轭先验,这个就是权重。所以说根据这个式子,其实我们就很容易看出来利用这个先验得到的后验还是共轭先验的混合,所以这还是共轭的。后验的形式如下:,其中是后验的混合权重,是对于第k个先验模型的边缘似然。证明过程如下:
5.4.4.1 例子
假设我们的混合先验是:,其中以及。我们观察到个正面朝上的,个反面朝上的。那么后验分布就是:。如果,那么我们利用式子5.23,这个可以把边缘似然都算出来,那么就很容易计算出后验分布就是:
,我们可以看下图:
5.5 分层贝叶斯
我们在计算后验分布的时候,那么我们要有先验分布,其中是刻画先验分布的超参数。很多时候我们不知道怎么去刻画这个超参,一种比较贝叶斯的方法就是为我们的先验再刻画一个先验。这在第十章的图模型中会有更深的了解。这个就叫做多层贝叶斯模型。这个理解上还是比较容易的。
5.5.1 例子:癌症率相关的模型
假设我们要去关注若干个城市的癌症的发生率。假设对于每个城市我们观察了个人,那么表示的是患癌症的人数,那么我们有。我们希望去估计这个,如果我们每个城市单独的估计,每个城市的样本数量相对比较的少,癌症的病发率本身就低,所以会出现估计出来偏低的情况。或者说我们假设每个城市的癌症率是一样的,这个叫做这样的话parameter tying。这个的最大似然估计的结果是,但是这个假设太强了,所以,一个折中的选择是假设所有城市的具有一定的相似性。所以我们假设,所以整个的联合概率分布为,其中。
关于的选择其实是至关重要的,如果我们没有这个的任何信息,那么每一个城市就是独立的,如果我们赋予它一定的信息,那么那些数据比较少的城市可以借用数据多的城市的统计信息。
这是两张图,左边这幅图,包括患癌人数,每个城市的人数,MLE估计结果和后验均值的结果。MLE处红色是数据合并的MLE,后验均值处的红线是。在后验均值的图中,我们可以看到,1和20都没有观测到癌症患者,但是20的人口较少,所以它比1更加的接近于population-level line(红线)。
右边这张图表示的则是95的可靠区间。我们看15,数据是最多的,但是后验的不确定性是最弱的,所以很大程度上被它影响了(数据和先验是匹配的),这就说明其他用这个先验的数据很大程度上是借用了15的数据信息。10和19就不一样,似然很大,但是后验的不确定度也很大,说明这个数据与先验信息产生了一些分歧。、
5.6 经验贝叶斯
在多层贝叶斯的框架中,我们是去计算包括超参和模型参数的后验,即。不过在一些情况下,我们想把给积分掉,直接去计算。我们可以直接通过点估计得到。但是有时候其实是维度比较的低,不太容易过拟合,所以对于,我们使用均匀分布的先验,那么。这里说明一下,如果要做到后验和似然的均值都一样的话,均匀估计是不行的,往往,所以均匀分布不是无信息分布,但是对于MAP和MLE的话,是没有问题的。啊这个就叫做经验贝叶斯(empirical bayes or type-Ⅱ maximum likelyhood)
实际上这个是违背了先验应该与数据独立的这样一个原则,但是这样是会简化在进行分层贝叶斯模型推理过程中的复杂的计算。下图进行了一些总结:
5.6.1 例子:beta-binomial 模型
让我们在回到刚才关于癌症的例子,我们有:
那么我们用点估计的方法得到a,b之后,就可以用正常的贝叶斯的方法去做了。这里因为是由整体数据得到的,所以后面在进行估计时,其实是每一个的的估计和整体的数据都是相关的。
5.6.2 例子:高斯-高斯 模型
下面举一个就是似然和先验都是高斯的关于癌症率预测的例子。我们现在假设我们有D个学校,每个学校有个学生,,这里的变量是,表示第j个学校的第i个学生。我们希望去估计每个学校的癌症率。同样我们使用分层贝叶斯,假设所有的都服从相同的分布:。那么联合分布是:,为了简单起见,我们假设是已知的。关于的估计可以用经验贝叶斯(后面会给出具体的证明过程,在这里后面我们都是加一个\hat来表示)。得到之后,那么我们就可以得到:,因为我们之前也提到过,个高斯测量值具有相同的均值和方差,那么就等价于一个高斯测量值,。然后利用4.4.1的公式,A=1,b=0,那么很容易可以推导到:,。
这个在均值上就是用来控制是与先验参数考的近呢,还是跟后面的数据靠的近。
5.6.2.1 例子:预测棒球成绩
假设我们现在有D=18名球员,比了T=45场比赛,那么每一位球员的进球的场数为。假设,那么根据最大似然估计我们就有:,其中。但是我们可以使用经验贝叶斯去做更好的估计。
但是我们需要的是似然函数是高斯的,如果想利用高斯-高斯模型的话,但是上面关于是二项分布的。这里如果我们选用这个作为我们的观测的话,那么我们就可以把这个进球率假想成高斯的。所以,这里由于上面我们假设的是每个学校的样本数量不一样,但是这里我们每个球员都是打了T场比赛,所以方差是一样,并且都是已知的。这样就有服从高斯分布,均值方差为:,。下面使用方差稳定变幻,具体的推导如下:
假设,令,对Y在处进行一阶泰勒展开,,所以有。
根据上面的推导,我们令,那么就有,那么我们可以利用5.86去估计,因为这里假设了所有的方差是一样的。然后。
5.6.2.2 超参数的估计
在这一模块,我们给出一个关于超参数计算的算法,假设我们有,这样才会有闭式表达式。我们根据式子4.126,我们:
,同样是A=1,b=0.所以,那么使用最大似然估计,就有,对于方差同样对于高斯分布使用MLE,那么因为必须为正的,所以。因此上面的shrinkage 因子是。(这里说白了就是求出边缘似然,然后利用最大似然估计)。而当不成立时,是没有闭式表达式的,但是后面会讲到会用EM算法去做。
5.7 贝叶斯决策论
文中就是说我们很多时候利用贝叶斯对现实有了一些更深的了解,但是这不是我们的最终目的,我们的目的是要用这个理解去做出行动(action)。所以才引出了贝叶斯决策论。
那么我们可以假设这就是一个游戏,在这个游戏中,我们观测到了,这些观测有一个真实的结果(状态,参数,标签),但是这些我们是不知道。我们要做的是自己在自己的决策的空间中做出决策a。我们可以通过损失来看我们的决策做的好还是不好,即真实的和估计的差距或者。
因为我们说过,y只有上帝知道,我们不知道,所以我们对于这个y空间进行取期望,希望这个期望能够最小。所以我们的目的就是,在经济学里面可能更喜欢(utility function),那么最小化就变成最大化,即:,这个叫做(maximum expected utility principle)。
那么这个期望到底该怎么个取法,有两种解释。在贝叶斯模型中(我们将在下面讨论),我们指的是已知数据的y的期望值。在频率派的版本中(将在6.3中进行讨论),我们指的是期望在将来看到的y和x的期望值。
在贝叶斯的模型下,我们称之为后验期望损失(posterior expected loss),即我们要去最小化:
,所以贝叶斯估计器,或者也称为贝叶斯决策规则就是:。
这里至于到底这个具体怎么做,我还不是很清楚。看完后面的例子应该理解会更深刻一点
5.7.1 贝叶斯估计器对于常见的损失函数
在本节中,我们将展示对于机器学习中最常见的损失函数,如何去构造贝叶斯估计。
5.7.1.1 MAP估计最小化0-1损失
首先0-1损失定义如下:。这个损失函数在分类问题中很常用,损失矩阵表示为:
,那么后验期望损失就是,这里最后一个应该是.所以这个估计的结果就是,这个就是最终的决策,这个也就是关于a的最大化后验MAP估计。就是说关于0-1损失的后验期望损失最小化其实就等价于最大后验。
5.7.1.2 拒绝选项
在分类问题中,很多时候是非常不确定的。比方说它无论属于哪一个类的概率都差不多,这个时候我们更加的倾向于选择拒绝行为,将这种模棱两可的情况给专家们去处理。这在医学和金融里对于规避风险是非常重要的。比如下图:
对于y=1和y=2的概率都达不到阈值的情况。就认为是处于拒绝区域中的。
我们定义我们的拒绝操作如下,我们令当a= C+1时就执行拒绝操作。而当的时候就表明选择了其中的一个类别。那么损失函数定义如下:
其中就是拒绝选项的操作的代价,而就是替代错误(就是选了类了,但是类别时不同的)的代价。在练习5.3里面表示,如果概率最高的那个类都是小于。要不然的化就是选择概率最高的那个类别。
5.7.1.3 后验均值最小化损失
如果我们面临的不是分类,而是对于连续的量进行估算(比如回归问题),那么比较常用的损失函数是。那么后验期望损失就可以写成:,对于a求导为0,因此进一步我们可以得到:,这个就是最小化均方误差。我们看到后验期望损失估计就是后验均值。
5.7.1.3 后验中位数最小化损失
相比于损失函数,损失函数对于异常值没那么敏感。因为是平方操作,异常值往往比较远,一平方就很大。所以一个比较稳健的损失函数就是,这个后验期望估计就是后验中位数,即:。证明如下:
5.7.1.5 监督学习
考虑一个预测函数,然后代价函数就是,其中是我们估计的,然后y是真实的。我们可以定义如下的损失函数当有一些未知的参数:,这个叫做生成error(之前是把y看作变量,现在则是把作为变量)。我们的目的是最小化后验期望损失:。
5.7.2 假阳性和假阴性的权衡(The false positive vs false negative tradeoff)
在这一小节中,我们关注的于二元决策问题,比如假设检验,二元分类,目标检测问题等。那么我们可以有两种这个错误的判断,分别是:一个叫false positive,表示我们估计的=1,真实的。还有一个叫false negative,这个表示=0,真实的y=1。在0-1损失里,这两种类型产生的error是一样的。然而利用这个我们可以产生如下的更一般的损失矩阵:
其中是false negative 的损失,是false positive 的损失。所以后验期望损失为:因此如果我们要选择,即要求:。作者后面写错了,事实上应该是:
更详细的解释参考:
https://github.com/ArthurZC23/Machine-Learning-A-Probabilistic-Perspective-Solutions/blob/8215e3e2e9cba70c0ae89a6152c2ab7d1d3916f3/5/10.pdf
5.7.2.1 ROC曲线及等等
假设我们正在解决一个二元的决策问题。假设我们有一个有标签的数据集,,令是我们的决策规则,其中是y=1的信息的度量(这个应该跟是单调的相关的,但是它不需要是一个概率密度函数)。就是一个阈值参数。对于某个,我们可以计数得到正确的正例,错误的正例,正确的反例,错误的反例这些数目,就如下图所示的一样:
根据这个表格,可以得到 true positive rate(TPR),也称作sensitivity,recall or hit rate。定义为:,同样我们也可以计算false positive rate(FPR),也叫做false alarm rate或者是type Ⅰ error rate,即:。相关的一些参数在下表中具体表述:
然而相比于针对一个固定的去计算TPR或者是FPR。我们可以去画关于变化的TPR-FPR的图。这个叫做receiver operating characteristic(ROC)曲线。下图:
我们先关注左边,这是两个不同假设分类系统的ROC曲线,当为0,那么必然为1,所以,而当为1时,那么必然为0,所以。对于实际情况来说我们是希望TPR尽量的打,FPR尽量的小,这样的系统是好的。那么我们用什么来评判一个系统的好坏,如果从ROC出发,我们会看在ROC曲线下的面积(area under the curve, AUC)的大小,AUC更大的那个我们认为更好。或者说找equal error rate(EER),即FPR=FNR,其中,其实就是上面左图中的A和B两个点。越低的EER得分表明系统的性能越好。
5.7.2.2 精度和召回率的曲线(precision recall curves)
如果我们尝试去检测一个很少发生的事件,那么否定的(negative)数量是非常高的。那么FPR就会很小,所以ROC曲线上的所有的点就会很靠近左边。所以我们就定义了一个叫precision-recall这样的曲线。其中precision定义为:,recall定义为:。我们有,,那么我们有:,其实在不同的实际例子中对P,R的要求是不一样的,比如关于癌症的检测,那么宁可错误判断了,但是不能漏判,所以R很重要,而有些你宁可漏判了,但是不能错判。那么precision recall curve 如上面的右图,也是关于变化的。对于这幅图,也可以通过面积来刻画性能,面积越大性能越好。或者可以看当有K个recall的时候,精度是多少,通过这个量来刻画性能,这个叫做average precision at K score。
5.7.2.3 F-scores*
对于一个固定的阈值,我们可以计算一个precision参数和recall 参数,但是我们经常往往把这两个参数整合成一个参数,这个叫做F-score或者是F1-score:。把公式5.115带进去,那么就可以详细写成:。那么为什么这里用的是调和平均而不是算术平均()呢。看下面这个例子,假设。那么即使我recall所有的项,即R=1,即我们所有估计的结果都是1,那么,所以如果用算术平均,看起来结果还不错,实际上我们的估计策略是非常糟糕的。但是如果用调和平均,这个显示的结果就很差。
在多个类别的情况下(比如一本书,中文英文,科普文学会有多个分类的方式),这时候的F1-score怎么算呢,有两种方法,第一种是:,把某个类和其它非这个类的作为一组,算C组取平均数。还有一种就是把所有的类都和在一起。
5.7.2.4 错误的发现率*(false discovery rates)
后面这些带*的内容暂时先不写了。
5.7.3 Other topics *
MLAPP————第五章 贝叶斯统计相关推荐
- 贝叶斯统计第二版第五章答案_贝叶斯统计第二部分
贝叶斯统计第二版第五章答案 In this post, I will compare the output of frequentist and Bayesian statistics, and ex ...
- MLAPP————第六章 频率派统计
第六章 频率派统计 6.1 简介 在第五章我们讨论的贝叶斯统计的这套方法,在一些非统计学问题中,比如医疗诊断,垃圾邮件过滤,飞机追踪等问题上,大家都是用贝叶斯的这一套去做.但是在很多统计学问题上,却存 ...
- 王道考研 计算机网络笔记 第五章:传输层
本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...
- 数字图像处理——第五章 图像复原与重建
数字图像处理--第五章 图像复原与重建 文章目录 数字图像处理--第五章 图像复原与重建 写在前面 1 图像退化/复原过程的模型 2 噪声模型 2.1 高斯噪声 2.2 椒盐噪声 3 仅有噪声的复原- ...
- c语言逐步搜索法求有根区间,[C语言第五章.ppt
[C语言第五章 算法举例 基本思想是,根据提出的问题,列举所有可能的情况,并 用问题中给定的条件检验哪些是需要的,哪些是不需要的. 教学进程 列举与试探 列举法常用于解决"是否存在" ...
- 2018-4-8蚁群算法---包子阳《智能优化算法以及Matlab实现》第五章
资料来源: <智能优化算法以及matlab实现>包子阳 余继周 编著 第五章-----蚁群算法 是一种元启发式优化算法(自己理解:就是作为群体的单位个体也就是元,在里面充当着随机的选择搜 ...
- Linux内核分析——第五章 系统调用
第五章 系统调用 5.1 与内核通信 1.系统调用在用户空间进程和硬件设备之间添加了一个中间层,该层主要作用有三个: (1)为用户空间提供了一种硬件的抽象接口 (2)系统调用保证了系统的稳定和安全 ( ...
- 2021 线性代数 第五章 习题课
第5章 实对称矩阵与二次型 5.1 实对称矩阵的对角化(基础部分) 5.1 实对称矩阵的对角化(提高部分) 5.2 二次型及标准形(基础部分) 5.2 二次型及标准形(提高部分) 5.3 正定二次型与 ...
- java十五章_java:第十五章
第十五章 字符串1.字符串(String)的定义 String str="内容"; String str=new String(); //内容为null String str=ne ...
最新文章
- xcode armv6 armv7 armv7s arm64
- HZOJ matrix
- 王爽 汇编 实验10
- leetcode 463. 岛屿的周长(Java版)
- C#LeetCode刷题之#404-左叶子之和​​​​​​​​​​​​​​(Sum of Left Leaves)
- Hadoop MapReduce编程 API入门系列之压缩和计数器(三十)
- Codeforces 216D Spider#39;s Web 树状数组+模拟
- 九号机器人田奇峰_九号公司成功登陆科创板
- (6)二进制文件方式部署Kubernetes高可用集群----------安装Docker Engine
- Linux中的readelf命令
- 使用sklearn处理经纬度的三种距离计算与地图可视化
- 配置NSG限制VM访问Internet
- 男子订民宿被毁约5个家庭漂泊街头 房东:住满了,没办法
- HEVC码率控制代码分析
- Android常用控件有哪些?如何使用?
- jpg转换为word可编辑的怎么转换呢
- FPGA与单片机之间的数据通信
- redis 3.0.7 cluster 集群部署
- Apache Spark处理大数据入门,看这一篇就够了
- Java应用性能优化!宁波java培训班地址