科学网

 找回密码
  注册
科学网 标签 贝叶斯 相关日志

tag 标签: 贝叶斯

相关日志

中国科学院西双版纳热带植物园5至6月培训项目报名通知
lauccy 2020-4-28 17:47
鉴于目前国内新冠疫情逐步得到控制,全国各地逐步复工复产,现将 5-6 月份要举办的 4 个培训班给大家做一个简单介绍,欢迎报名参加。    1. 2020 年 5 月 16 - 17 日 Meta 分析 在线培训(中文授课) XTBG 合办 http://www.xtbgeet.com/?p=38070    详细讲解 meta 分析核心统计原理,结合软件( OpenMEE 和 R )逐步讲解进行 meta 分析的步骤、注意事项,提供真实数据进行练习,组建 qq 群进行培训前预习指导及培训后答疑。    2 . 2020 年 5 月 23 - 24 日 混合效应模型及其贝叶斯实现 在线培训(中文授课) XTBG 合办 http://www.xtbgeet.com/?p=38074    快速总结复习统计分析基础(常见误区、问题与解决方案),深入分析混合效应模型的逻辑原理、优势,介绍如何用 R 进行混合效应模型分析及结果的解读,详细讲解混合效应模型应用(随机效应及其结构的确定、参数估计方法、模型对比,解释度, power 分析等)及混合效应模型的拓展(线性混合模型,广义线性混合模型,非线性模型等)与自动模型选择,参数提取、预测与作图,贝叶斯统计的基本原理介绍,贝叶斯线性模型与广义线性模型,贝叶斯线性混合效应模型和广义线性混合效应模型,贝叶斯 R2 , ICC 与方差分解与贝叶斯 meta 分析,用 R 进行贝叶斯混合模型实际应用案例讲解与重现, 组建 qq 群进行培训前预习指导及培训后答疑。       2. 2020AdvancedStatisticsWorkshop(8-14June, teachinginEnglish)    http://www.xtbgeet.com/?p=38029    Module1:Revisionoflinearmodelsandgeneralisedlinearmodels    Module2:Dealingwithgroupeddata:Linearmixedmodels    Module3:Dealingwithgroupeddata:generalizedlinearmixedmodels    Module4:Dealingwithnon-independentdatathatcannotbegrouped:generalizedleastsquares    Module5:Dealingwithphylogeneticallycorrelateddata    Module6:Exerciseandrevision    4. 2020 年 6 月 23-26 日 物种分布模型及生物多样性热点区域分析培训班 (中文授课) http://www.xtbgeet.com/?p=38215    ArcGIS 基础、 ArcGIS 高级、物种分布模型及生物多样性热点区域分析原理、案例及 Maxent 操作流程
个人分类: 资讯|2027 次阅读|0 个评论
每日翻译20190712
Bearjazz 2019-7-12 07:06
# 编者信息 熊荣川 明湖实验室 xiongrongchuan@126.com http://blog.sciencenet.cn/u/Bearjazz Here, we present a major new version of the molecular evolutionary software package Bayesian Evolutionary Analysis by Sampling Trees (BEAST), updated to version 1.7, and representing a signifcant software advance over that previously described (Drummond and Rambaut 2007). Alongside the primary analysis engine in BEAST, this package also includes a suite of utilities for specifying the analysis design, processing output files, and summarizing and visualizing the results. Taken together, these programs enable Bayesian inference of molecular sequences with an emphasis on time-structured evolutionary models including phylodynamic models, divergence time estimates, multiloci demographic models, gene–/species–tree inference, a range of spatial phylogeographic analyses, and discrete and continuous trait evolution. Implementing Markov chain Monte Carlo (MCMC) algorithms to perform these inferences, the package is intended and used for rigorous statistical inference and hypothesis testing of evolutionary models with joint inference of phylogeny. It is also possible to constrain portions of the phylogenetic model space to known values, including the tree topology, and perform conditional inference if required. 在这里,我们提出了 BEAST 一个重要更新版本( 1.7 版),相较先前介绍的版本( Drummond and Rambaut 2007 )它代表了一个显著的软件进步。除了 BEAST 中的主要分析核心要件外,此软件包还包括一套用于指定分析设置、处理输出文件以及汇总和可视化结果的实用程序。综合起来,这些程序使分子序列的贝叶斯推断成为可能,重点是时间结构进化模型,包括系统动力学模型、分化时间估计、多基因座种群模型、基因 / 物种树推断、空间分布范围系统地理分析,以及离散和连续的特征进化。利用马尔可夫蒙特卡罗( MCMC )算法实现这些推断,并将其应用于系统发育联合推论的进化模型的严格统计推断和假设检验。还可以将系统发育模型空间的一部分限制为已知值,包括树拓扑结构,并在需要时执行条件推断。 Drummond A J , Suchard M A , Xie D , et al. Bayesian Phylogenetics with BEAUti and the BEAST 1.7 . Molecular Biology and Evolution, 2012, 29(8):1969-1973.
个人分类: 翻译作品|1366 次阅读|0 个评论
每日翻译20190711
Bearjazz 2019-7-12 07:04
# 编者信息 熊荣川 明湖实验室 xiongrongchuan@126.com http://blog.sciencenet.cn/u/Bearjazz Molecular sequences, morphological measurements, geographic distributions, and fossil remains all provide a wealth of potential information about the evolutionary history of life on Earth, the dynamics of ancient and modern biological populations, and the emergence and spread of infectious diseases. One of the challenges of modern Evolutionary Biology is the integration of these different data sources to address evolutionary hypotheses over the full range of spatial and temporal scales. The field is witnessing a transition to an increasingly quantitative science. This transformation began first through an explosion of molecular sequence data with the parallel development of mathematical and computational tools for their analysis. However, increasingly, this transformation can be observed in other aspects of Evolutionary Biology where large global databases of complementary sources of information, such as fossils, geographical distributions, and population history, are being curated and made publicly available. 分子序列、形态测量、地理分布和化石遗迹都提供了大量关于地球生命进化史、古代和现代生物种群动态以及传染病出现及传播的潜在信息。现代进化生物学的一个挑战是整合这些不同的数据源,以解决全时空尺度上的进化假设。这一领域见证了一个越来越向定量科学过渡的过程。这种过渡是从分子序列数据爆炸式增长,伴随相应分析的数学和计算工具的开发开始的。然而,这种转变越来越多地可以在进化生物学的其他方面观察到,在这些领域,大量的全球互补信息源数据库(如化石、地理分布和种群历史)正在被建立和公开。 Drummond A J , Suchard M A , Xie D , et al. Bayesian Phylogenetics with BEAUti and the BEAST 1.7 . Molecular Biology and Evolution, 2012, 29(8):1969-1973.
个人分类: 翻译作品|1426 次阅读|0 个评论
每日翻译20190710
Bearjazz 2019-7-12 07:02
# 编者信息 熊荣川 明湖实验室 xiongrongchuan@126.com http://blog.sciencenet.cn/u/Bearjazz Computational evolutionary biology, statistical phylogenetics, and coalescent-based population genetics are becoming increasingly central to the analysis and understanding of molecular sequence data. We present the Bayesian Evolutionary Analysis by Sampling Trees (BEAST) software package version 1.7, which implements a family of Markov chain Monte Carlo (MCMC) algorithms for Bayesian phylogenetic inference, divergence time dating, coalescent analysis, phylogeography, and related molecular evolutionary analyses. This package includes an enhanced graphical user interface program called Bayesian Evolutionary Analysis Utility (BEAUti) that enables access to advanced models for molecular sequence and phenotypic trait evolution that were previously available to developers only. The package also provides new tools for visualizing and summarizing multispecies coalescent and phylogeographic analyses. BEAUti and BEAST 1.7 are open source under the GNU lesser general public license and available at 计算进化生物学、统计系统发育学和基于溯祖理论的群体遗传学正日益成为分析和理解分子序列数据的焦点。我们提出了 BEAST (基于抽样树的贝叶斯进化分析) 1.7 版软件包,该软件包使用马尔可夫链蒙特卡罗( MCMC )算法,实现贝叶斯系统发育推断、分化时间推定、溯祖分析、系统地理学和相关分子进化的一系列分析。软件包包括一个名为 Bayesian 进化分析程序( BEAUti )的图形增强用户界面程序,允许访问分子序列和表型特征进化的高级模型,这些模型以前只供开发人员使用。该包还提供了可视化的综合多物种溯祖分析和系统地理学分析的新工具。 BEAUti 和 BEAST 1.7 是 GNU 标准较低通用公共许可证下的开源软件,可从以下网址下载: http://beast-mcmc.googlecode.com and http://beast.bio.ed.ac.uk . Drummond A J , Suchard M A , Xie D , et al. Bayesian Phylogenetics with BEAUti and the BEAST 1.7 . Molecular Biology and Evolution, 2012, 29(8):1969-1973.
个人分类: 翻译作品|1642 次阅读|0 个评论
[转载]量子贝叶斯资源集合
quantumchina 2018-11-19 18:35
量子贝叶斯资源集合 1,浅谈 量子贝叶斯 http://www.sohu.com/a/139858153_297710 2,概率的烦恼:量子贝叶斯拯救薛定谔的猫(在线免费电子书) https://yuedu.baidu.com/ebook/91596f5bf4335a8102d276a20029bd64783e62e2 \0 \0
个人分类: 量子理论|793 次阅读|0 个评论
德国坦克问题-再谈贝叶斯
热度 7 tianrong1945 2018-3-13 07:30
《概率统计系列 - 结束篇》 本文借一个二战中的概率统计问题“德国坦克问题”,再次将频率学派与贝叶斯学派做一比较,也算是作为间断了一段时间的“概率统计系列”之结束篇。 频率学派和贝叶斯学派最大的差别是在于对物理世界建模时使用的参数的认知。频率学派认为模型的参数是固定的,真实而客观存在的。他们的方法,是使用最大似然( maximum likelihood )以及置信区间( confidence interval ),以便找出这个参数的真实值。而贝叶斯学派恰恰相反,不关心参数的所谓“真实值”,关心的是参数的每一个值的可能性,即参数的概率分布。贝叶斯学派将参数看作是随机变量,每个值都有可能是真实模型使用的值,区别只是概率不同而已 【 1 】 。 在数理统计学中,经常使用似然函数来描述统计模型中的参数,由此函数的最优化来估算参数的方法叫做“最大似然估计”。 似然函数是什么?“似然性”一词与“概率”一词意义相近,都是指某种事件发生的可能性。似然函数与之前介绍过的概率分布函数有关,他们的函数形式有可能相同,但在统计学中,两者在概念上有着明确的区分:概率分布函数是随机变量的函数,参数固定;似然函数是参数的函数,随参数之变化而变化。 从概率的角度看,也可以说,两种方法的差异来自于使用条件概率还是使用边缘概率。如果有两个以上的随机变量,通常用它们的联合概率分布来描述其在多维空间的随机性。如图 1 表示随机变量 X 和 Y 的联合概率分布以及边缘概率。 图 1 :联合概率边缘化 频率学派将模型参数看着是固定的,贝叶斯学派则把参数也看着是随机变量,也符合某种分布,这是两者的根本区别。 贝叶斯学派的想法其实更为自然,这也是为什么贝叶斯学派的产生远早于频率学派,但当电子计算机技术尚未出现时,大大限制了贝叶斯方法的发展。频率学派主要使用最优化的方法,处理起来要方便很多。如今,贝叶斯学派重新回到人们的视线中,日益受到重视。两个学派除了在参数空间的认知上有区别以外,方法论上都是互相借鉴也可以相互转化的。 因为贝叶斯派认为所有的参数都是随机变量,都有分布,因此可以使用一些基于采样的方法(如 MCMC )使得我们更容易构建复杂模型。频率派的优点则是没有假设一个先验分布,因此更加客观,也更加无偏,在一些保守的领域(比如制药业、法律)比贝叶斯方法更受到信任。 贝叶斯派认为参数不确定。有时候,这种不确定性是物体的固有属性,是独立于主观因素的客观存在。比如硬币或骰子,它的物理偏向性如何?某一面出现的概率是多少?是否“公平”?这些都是在物体的制造过程中决定了的,原则上可用频率派多次实验的方法来探索它的概率。但在某些情形,“不确定性”的客观意义并不显而易见,例如在清华对北大的某次篮球赛中,某人预言清华队“赢”的概率,是他的个人观点结合两个球队实力得出的主观猜测,这时候,使用贝叶斯定理逐次更新概率模型的方法更为合适。 图 2 :两学派对参数的不同观点 图 2 表示两大学派从不同角度来看待物理参数:频率学派认为参数值是固定的,使用多次测量来逼近这个固定值。贝叶斯学派从固定的样本区间,考虑参数所有可能值,用实验结果来更新参数取值的概率。 德国坦克问题 — 贝叶斯推断 下面 我们用一个简单的例子:第二次世界大战中的德国坦克问题,来说明 频率学派和贝叶斯学派处理统计推断问题时的区别。 当年,德国佬正在大规模地生产坦克,盟军想要知道他们每个月的坦克产量数。为了了解这个信息,盟军采取了两种方法:一是根据情报人员刺探的消息而得到,另一种是根据盟军发现和截获的德国坦克数据,用统计分析办法得到。根据第一种方法得到的情报,德军坦克每个月的产量大约有 1400辆,但根据概率统计推断的方法,预计的数量只有数百辆。二战之后,盟军对德国的坦克生产记录进行了检查,发现统计方法预测的答案(见表1)令人惊讶地与事实符合 【 2】 ,统计学家们是怎么做到这点的呢? 表1(来自维基百科) 那时候,德国制造的每一辆坦克上都有一个序列号。假设德国每个月生产一批坦克,从 1到最大值N顺序排列,因此,可以把这个最大编号N,当作每个月总的生产量。盟军发现和截获的任何德国坦克上的序列号,都应该是介于1和N之间的一个整数,根据这些截获坦克序列号的数据,如何来猜测总的生产数N?这是当年的战争给数学家们提出的难题。 这是一个统计推断的问题,也就是从观察到的数据样本(序列号),来推断随机变量的某些整体参数( N)。如今思考这个问题,有两种不同的推断方法:经典方法和贝叶斯推断。 经典统计推断包括几个基本原则:最大似然(概率)估计、最小方差、无偏性等等。简单而言,经典统计使用求极值的方法,让选取的某个似然函数最大化,同时也考虑样本平均平方差最小化,而无偏性指的则是尽量使得样本平均值等于整体平均值。 比如说,先考虑最简单的情况:在某个月内,盟军只发现了 1辆德国坦克,其标号为60,那么,你如何来估计德国在这个月生产坦克的总数N?也许读者会说:“你疯了!只有这么1个数据,有什么可估计的?还能使用什么统计方法吗?参数N是任何数值都有可能的,只能随便猜测一个啦!” 不过,你的说法显然不正确。首先, N不可能是任何数,N的值起码要大于或等于60!严肃的统计学家就更不会这么说了,即使对如此少量的数据,他仍然可以进行他的统计推断。 图 3:截获任何一辆坦克的概率vs坦克总数 第一,为了估计真实的总产量数 N 0 ,他需要构造一个概率函数,称其为似然函数。设想:如果这批坦克生产的总数是N的话,根据等概率原则,拦截到1到N中任何一个编号的坦克的可能性都相同,均为1/N。也就是说,截获任一辆坦克的概率是坦克总数N的函数:N越大,即生产的坦克数越多,截获某个编号坦克的概率便越小。概率随N的变化情形,如图3所示的一截双曲线。这个概率分布曲线,便可选作似然函数。 最大似然估计的目标是找出概率最大的点对应的 N 0 ,因为这个问题中,N越小概率越大,所以得到在最大化概率点的N 0 =60,即图3中曲线最左边的起始点。 经典方法的第二个考虑是最小化均方差( MSE)。为此,我们假设总产量N不是刚好等于60,而是乘以一个大于1的因子a。想象盟军看到了N个坦克中所有的坦克,那么,均方差可以按照如下方法计算并最优化,再求最小值。 图 4:将均方差最小化 从上面的计算结果,当坦克总数 N比较大时,相乘的因子a近似为3/2,由此可将N 0 的估计值从60,调节到N 0 (均方差最小) = 60×3/2 = 90。 最后,还得考虑样本的无偏性。如果 N 0 =60的话,这个样本太不符合“无偏”的条件了,既然每一辆坦克被发现的概率都是一样的,凭什么盟军截获了一辆坦克就截到了最后生产的那一辆呢?这听起来太奇怪了,N 0 =90也不符合无偏,最符合无偏条件的就是截获的是序号为中间的那一辆,它的序号使得样本序号的平均值等于整体所有样本序号的平均值。也就是说,无偏的N 0 被估计为60的两倍,N 0 (无偏)=120. 真不愧为数学家,仅仅截获到 1辆坦克,就有这么多的考虑,如果截获了更多呢?我们可以将问题一般化,以上经典学派的思考方式也可以推广到一般的情况,简单叙述如下: 问题:盟军发现了 k辆坦克,序号分别为i 1 ……i k ,最大的序号是m,估计总数N 0 。 经典推断方法的答案: N 0 = m + (m-k)/k。 比如说,盟军发现了 5辆坦克,其序列号分别为215、90、256、248、60,因此,k = 5,m = 256。从以上经典方法的公式,得到坦克未知的总数N 0 = 256 +(256-5)/5 = 306。 贝叶斯推断 【 3】 以上使用的是经典统计推断方法,贝叶斯学派又如何解决德国坦克问题呢? 贝叶斯派的估算方法比频率派的方法更为有趣和更有意思。刚才说过,贝叶斯派有别于频率派的重要差别之一是对“参数”的看法。频率派认为物理参数是固定不变的,比如这儿的参数 N,经典方法的目的是要找出这个N。而按照贝叶斯派的观点,物理参数不一定是固定的,对外部观察者而言,它们也可以被认为是随机变量。因此,贝叶斯推断企图追踪的不是模型参数N本身,而是参数N取各种可能值的分布情况。贝叶斯派解决坦克问题的思想是:未知欲求的生产量N是一个服从某种概率分布的随机变量。随着数据样本的增加,N的概率分布函数不断被更新,贝叶斯推断描述这个更新的过程。 以刚才截获 5辆坦克的具体数据,来说明贝叶斯派的推断过程。 假设盟军截获的第一辆坦克序列号是 215,从前面频率派方法最开始的一段分析可知,对应这1个样本,N可能是从215开始的任何整数,但是,N值越大,概率越小,我们暂时忽略N值大于1000的情况,可以画出N的概率分布是类似于图3的双曲线,不同的是曲线的起始点和形状,图3中的曲线参数N 0 =60,这儿的参数N 0 =215,见图5a中最大值在N 0 =215处的“序列号215分布”曲线(蓝色)。 图 5:贝叶斯推断解决德国坦克问题 现在,我们加上第二辆坦克的信息:序列号 90。因为90小于215,它的出现并不改变似然函数的最大值,但是它却对N的分布曲线有所影响,两个变量的联合分布曲线用图5a中的红线表示,这也是加上第二个数据之后更新了的参数分布。如图可见,序列号90的数据使得概率分布曲线变得更尖锐,说明N的较大数值出现的概率大大降低。 如果再加上后面 3个样本:序列号256、248、60,五个样本的联合分布变得更为尖锐,峰值是256,N=400到1000的概率已经几乎为0,可以忽略不计了,如图5b所示。 在这个具体例子中,最后对 N 0 的估计:频率派的N 0 = 306,与贝叶斯派的N 0 = 256相差不大,难分孰优孰劣。然而,通过该问题,我们简单了解了频率派和贝叶斯派的不同思考方法。 不少学者认为贝叶斯分析的方式和人脑的工作机制有相似之处,这也是为什么近年来将贝叶斯统计方法广泛应用于人工智能研究,特别是机器学习领域的原因之一。当今人工智能技术的崛起,部分归功于计算和统计的联姻,实际上也就是说,归功于计算机和贝叶斯方法的联姻。 参考文献: 【 1 】 Aldous, D. J. (1985). Exchangeability and related topics. Lecture Notes in Mathematics. 1117. pp. 1–1. 1983. 【 2 】 Ruggles, R.; Brodie, H. (1947). An Empirical Approach to Economic Intelligence in World War II. , Journal of the American Statistical Association. 42 (237): 72. 【 3 】 Edwin Thompson Jaynes. Probability Theory: The Logic of Science. , Cambridge University Press, (2003).
个人分类: 系列科普|24622 次阅读|8 个评论
[转载]怎么设置贝叶斯Mrbayes中各种碱基替换模型参数
Bearjazz 2018-1-21 17:42
# 编者信息 熊荣川 明湖实验室 xiongrongchuan@126.com http://blog.sciencenet.cn/u/Bearjazz ##GTR lset applyto=() nst=6 # GTR lset applyto=() nst=6 rates=propinv # GTR + I lset applyto=() nst=6 rates=gamma # GTR + gamma lset applyto=() nst=6 rates=invgamma # GTR + I + gamma ##SYM lset applyto=() nst=6 # SYM prset applyto=() statefreqpr=fixed(equal) lset applyto=() nst=6 rates=propinv # SYM + I prset applyto=() statefreqpr=fixed(equal) lset applyto=() nst=6 rates=gamma # SYM + gamma prset applyto=() statefreqpr=fixed(equal) lset applyto=() nst=6 rates=invgamma # SYM + I + gamma prset applyto=() statefreqpr=fixed(equal) ##HKY lset applyto=() nst=2 # HKY lset applyto=() nst=2 rates=propinv # HKY + I lset applyto=() nst=2 rates=gamma # HKY + gamma lset applyto=() nst=2 rates=invgamma # HKY + I + gamma ##K2P lset applyto=() nst=2 # K2P prset applyto=() statefreqpr=fixed(equal) lset applyto=() nst=2 rates=propinv # K2P + I prset applyto=() statefreqpr=fixed(equal) lset applyto=() nst=2 rates=gamma # K2P + gamma prset applyto=() statefreqpr=fixed(equal) lset applyto=() nst=2 rates=invgamma # K2P + I + gamma prset applyto=() statefreqpr=fixed(equal) ##F81 lset applyto=() nst=1 # F81 lset applyto=() nst=1 rates=propinv # F81 + I lset applyto=() nst=1 rates=gamma # F81 + gamma lset applyto=() nst=1 rates=invgamma # F81 + I + gamma Jukes Cantor lset applyto=() nst=1 # JC prset applyto=() statefreqpr=fixed(equal) lset applyto=() nst=1 rates=propinv # JC + I prset applyto=() statefreqpr=fixed(equal) lset applyto=() nst=1 rates=gamma # JC + gamma prset applyto=() statefreqpr=fixed(equal) lset applyto=() nst=1 rates=incgamma # JC + I + gamma prset applyto=() statefreqpr=fixed(equal) 转载自以下网址 https://gist.github.com/brantfaircloth/895282 注:K80模型设置同 HKY
个人分类: 我的研究|4688 次阅读|0 个评论
Mrbayes出错原因
Bearjazz 2017-7-22 14:38
# 编者信息 熊荣川 明湖实验室 xiongrongchuan@126.com http://blog.sciencenet.cn/u/Bearjazz 有段时间没用Mrbayes建树了,最近再使用时老是出现一个问题: Could not open file DatasetA03.nex.run1.p 使用时老是说无法打开这个文件,我以为是系统问题,便重新安装了好几回Mrbayes,没有解决; 后来读屏幕上的信息发现,这个打不开的文件应该是 Mrbayes自己生成的,可是在文件夹里没有看到呀。 又用英文搜索了错误情况,读到了老外的原因分析,……,简单的说可能就是权限问题,这下才恍然醒悟,我的 Mrbayes是安装在C盘的(C:\Program Files (x86)\mrbayes32),每次往C盘粘贴个什么文件都会跳出一个对话框要求我提供权限…… 于是我重新找到了,我以前安装在D盘的 Mrbayes目录,在其中运行了,成功了。
个人分类: 我的研究|7549 次阅读|0 个评论
检测诊断与贝叶斯公式
热度 15 xying 2017-4-29 08:26
张老师贴个科普概率的帖子,用了贝叶斯公式,联系起仪器性能指标与预测的准确率,它们都可以用概率来表示,却具有不同的含义,人们常把它们混为一谈。张老师的科普意在指出它们虽然不同,但存在着数学关系。质疑者困惑于仪器性能指标与判定概率的巨大反差,作了各类反应。至此楼歪了,质疑者多以无关概率计算的论据来评论这个故事,贝叶斯公式,知者固觉浅显,惘者益加不解,转为娱乐搞笑,科普反而造成吃瓜群众对概率更多的迷惑。 我现在换个方式,看能不能把它讲清楚。人们常用仪器或某种方法检测物品,这检测的只是物品的属性,却用以区别物品的分类。检测对分类的判断总是有误差的,这误差或精确性可以用不同方面的概率数值来表示。例如验尿查红血球,用来判断是否肾癌膀胱癌尿结石这类大病或者不是这些病。当然现在去医院不只查这一项,分类也不止怀疑这些病,医生喜欢一次开了一大堆检查,不用替病家省钱,我们只是用这种简化的例子,来说明几种概率间的关系,强调检测从来只是查属性,并不可能直接知道病类的本身,在血检和判病都是二分时,检测阳性只是预示可能有病,并非能够确定有病。但这个概率估计对你的进一步行动有指导意义。(被计算举例的批判搞怕了,先出一个罗嗦的免责声明,能接受想了解概率计算合理性的人往下看,只谈金标准的可以离席了)。 记 A 为有 x 病的事件, B 为检测到某个相关指标阳性的事件。检测机器的性能用两种指标来表示,有 x 病情况下检查出有关某指标为阳性的概率,称为敏感度( sensitivity ),用概率表示是 P(B|A) ,无 x 病查出阴性的概率,称为特异度( specificity ),为 P(~B|~A) ;检测出阳性被证实有病的概率,称为准确率( precision ),即 P(A|B) ,而检测用来辨识分类的正确率 Acc ,称为检验的精度( accuracy )。它们是模式辨识的标准术语。这四者都用百分比来表示,简称也相近,都是某种精确性的意思,人们常常把它们混淆起来。 一般检测的敏感度和特异度都很高,否则不好用来分类查病,但它们毕竟只是仪器或检测方法上的性能,并不代表着用它们来判断分类的准确率就很高。因为怕吃瓜群众没文化,一般检查都不告诉他们这些指标的概率,查到阳性接着查别的,这些指标留着专业人员看。美国医生常告诉病人,没专业知识不要上网查。要是作死自己上网查,见到 x 病血检阳性失误率只有 1% ,以为这就有 99% 的可能性中标,紧张起来就麻烦了。科学网有人建议,别给愚昧民众多罗嗦,直接告诉他这是两码事,接着查别的打发走就是了。张老师想科普贝叶斯,借医生安慰不安者的剧情,来解说正确的概率计算。这个计算就必须牵涉到群体的患病率 P(A) ,拿俗话来说,检测出阳性者的实际患病率,不仅与检测性能有关,还需要乘上世界人民的患病率。用贝叶斯公式表示如下: P(A|B)=P(A)P(B|A)/(P(A)P(B|A)+ (1-P(A)) (1-P(~B|~A)))) 比如说某种检测的敏感度 P(B|A)=99% ,特异度 P(~B|~A))=99% ,世界人民有 0.1% 得这病,检测判断为阳性事后,被证实确实有病其实只有 P(A|B)=9%. 这下有些人愤怒了,这原来查出阳性的 99% 检测精度,怎么经过计算就变成了 9% 了!这医生该打机器得砸! 张老师为了科普贝叶斯,故事里无意打破了医生忌禁的潜规则。如果不满这一点,说一句就是了。怕会引起群众的误解,就应该多做科普。用反对贝叶斯公式计算,压制群众求知,不是让人更加误解日常中许多的概率说法? 这里的贝叶斯公式改变了什么呢?不是一些人以为的 99% 准确率,经过计算变成了 9% ,而是对患病的估计,从 0.1% 的先验群体患病率,测得阳性指标后,升高到 9% 的后验可能性。那个 99% 是检测机器性能,它测的只是血中一些指标的敏感度和特异度,或者称作是真阳性和真阴性的概率,不是患病可能性。故事中的王宏弄不清它们的区别,科学网里有些人也是如此糊涂的。 从血检性能和群体患病率计算出阳性患病率,不同时期不同群体的患病率是不同的,因此同一个检测结果,对应着阳性患病率也是不同的,例如检测出 PSA 阳性,同一个数值,对男人和女人,对不同年龄段的人,预测前列腺癌的可能性都不一样。同一个阳性指标在平时和役病流行时预测的患病可能性也不同,这些已是常识。但想知道具体的概率数值,你就需要计算,因为检测说明书只能提供那些不随应用情况而变的敏感度和特异度功能性指标。具体应用群体的阳性患病率,必须通过贝叶斯公式来计算。有时对常见的不同群体,检测单位也预先算出列表供给医生和病人参考。但这不意味着机器性能指标和预测准确率没有贝叶斯这个关系。 为什么还要给群众科普?因为现在不实广告,专家误导太多,打官司查骗子,他们数据并非造假,吃瓜群众上当后,欲哭无泪,只怪自己没有文化。看下面例子。 某仪器广告说,它的灵敏度极高,只要有x病,检出率是99%,只卖99元为了扶贫。你很高兴买回来,发现只是个改制的体温计。得x病的有99%发烧,广告检出率数据并没错,得x病时确实有99%,它都显示出阳性。但综合其他数据算出这测有阳性真正患x病的不到2%,这是你自己无知没想到的。 某专家宣称重大发明,他先进的检测方法,只要测出阳性几乎99.9%证实都是癌症。他没造假,只是到了癌症晚期有大量癌细胞时,他的方法才能显示出阳性,这时99.9%确是癌症。你可能没想到,这预测准确性与要评估的检测功能指标是两回事。 有个机器坏了,运行很长时间后,统计发现它的检测正确率反而提高了,从过去还不错的99%,提高到99.9% ,原因是这坏的机器总是给出阴性的报告 ,而它检查那个病只有0.1%的患病率。 有人说这是玩数学游戏。对。但玩这游戏的是那些骗子,不是希望民众了解这些概率真正含义和正确计算方法的科普。 初等概率其实很简单,公式和推理不过是初中的数学,经典的例子不外乎扔钢蹦掷骰子。人人读后都以为懂了,其实很多人糊涂就在于,一开始就没弄清楚这些概率指的是什么。 P.S. 张老师科普故事的原文在假阴性、假阳性上有笔误,说“测试的准确性”比较含糊,但这些都不难从上下文中自己直接纠正。书刊论文都不如教科书那样反复校对,做研究的人通常以理解作者文中真义,而不是低看作者的方式来读顺这些笔误和含糊之处。我的文章一定也会有这类笔误,希望读者指出纠错,但如果讨论只着眼纠缠于这些细处那就没意思了。
个人分类: 科普|17950 次阅读|59 个评论
贝叶斯:99%的背后!
热度 18 xqhuang 2017-4-26 11:17
贝叶斯:99%的背后! 久闻应大侠怜香惜玉、仗义行仁,不想果然如此。 漂洋过海数十载后,张女侠练就了西洋贝叶斯武功秘籍,一时兴起,竟在众人面前炫摆了一番,却被一群叫花子围殴欺负后抱头暗泣。正周游世界的应大侠闻声赶来,用独创的“混沌功”弹出一根救命稻草:《 预测混淆与贝叶斯公式 》,张女侠抓草洒热泪一行:应大侠果然武功盖世,不愧是“天下第二”的逍遥侠,比我强太多了! 贝叶斯套路明显花拳绣腿,应大侠的混沌功粗看有点“无招胜有招”的味道,但仔细观察还是能发现不少BUG。应大侠在江湖以胜率99%得来了“天下第二”的美名,殊不知,这99%的胜率是完全基于对手100%不会武功的前提条件下刷出来的,如果对手中有千分之一会武功,应大侠的胜率将直降到9%,把应大侠扔进100%会武功的人群中,他的胜率只剩下可怜的1%,原来江湖神传99%胜率的逍遥侠不过是裘千丈的角色。 张女侠的贝叶斯99%与应大侠的混沌99%性质完全相同,都是忽悠指数!王宏例子中夺人眼球的99%概率,是仪器对已100%确认为X疾病的检测对象的统计结果,与应大侠99%胜率玩法如出一辙,这样玩出来的贝叶斯概率毫无悬念与疾病的罕见度有关。 与我一样,相信很多读者被张女侠的99%误导带进沟,贝叶斯概率的99%与公众常识的仪器测量准确率99%完全不是一回事,在医生的世界里,99%是可以任意修改的可调参数,只要医生乐意,一番贝叶斯后没病的可以变成有病、有病的可以变成没病,反正有概率当挡箭牌。先举两个发生在身边的真实例子: 例一 、大学同窗Y君,帅得不要不要那款,毕业后一路仕途春风,就在他要换档提速时刻,一次单位的例行体检发现了“大问题”,。。。医生认真地看着他的家属:你要有思想准备、要坚强,根据进口设备的检测数据,Y先生有99%的可能性得了X病,你知道X病目前几乎没治,我们建议从腿根处截肢,这样有99%的概率可以保命。在获悉99%真相后,Y君一夜白了头,下刀的前夜他做出了一生最英明的抉择:逃离医院!后来,Y君又辗转了多家医院,99%奇迹地变成了1%,一场虚惊! 例二 、同事A君,一日闲着忽觉蛋疼,急去医院就诊,整套检查完医生让速通知家属,。。。医生认真地看着他的家属:你要有思想准备、要坚强,A君的那个坏蛋必须立即切除,否则另一个99%的概率不保!希望你不要有心里担忧,“独头蒜更辣”是有科学根据的。家属签字后,A君被忍痛割爱。 几天后,医生的一席话让A君一家彻底奔溃:由于手术感染,A君的另一个蛋也必须摘除,否则99%的概率性命不保!无法面对无精岁月的A君态度非常坚决:要蛋不要命!听说后来换了医生,新医生采取了保守疗法,经过漫长的疗程,终于等来医生的微笑:“一个好消息一个坏消息,先听哪个?”,“好消息吧。”,“剩蛋快乐!”,“坏消息呢?”,“欲练此功,不必自宫!”,“啊!那前面算白宫了?”,。。。 想想这关乎生死的99%顿觉毛孔悚然,有多少无良医生为了利益巧借99%把无辜的人们送上手术台?必须说,张女侠的贝叶斯科普还是有意义的,她告诉我们不要轻信医生的99%, 99%背后是深不可测的医疗陷阱! ********************************** 很多人不理解我为什么要对张女侠的贝叶斯例子说三道四,下面举两个例子,您会接受哪个贝叶斯? 贝叶斯一、小水獭是美女吗? 小水獭是美女吗?爱管闲事的徐晓在科学网进行了网络投票,结果99%选是,于是,徐晓下结论:小水獭是美女。应大侠对此有不同看法,他认为小水獭是否美女是个贝叶斯问题,科学网美女到北京电影学院可能就不是美女,中国美女到世界可能也不是美女,所以,要正确回答小水獭是否美女?必须扯上全世界女人! 贝叶斯二、小水獭是女人吗? 小水獭是女人吗?高山医生利用最先进的生物仪器对小水獭进行了全面的检测,下结论:小水獭99%是女人。张女侠对此有不同看法,她认为小水獭是否女人也是贝叶斯问题,仪器的99%不足以让高医生下结论小水獭是女人,还要考虑女人的“珍稀度”。就是说,同一个小水獭,高医生在出小水獭是否女人的诊断报告时,还要考虑一个重要因素:小水獭是外语系还是物理系?
个人分类: 乱七八糟|7014 次阅读|72 个评论
贝叶斯:XX与YXX,谁当院士的概率更大?
热度 22 xqhuang 2017-4-20 12:29
贝叶斯:XX与YXX,谁当院士的概率更大? “概率”一词,已无孔不入地侵入现代人生活的方方面面,装NB也好、扮SB也罢,就像当年有人喜欢把U盘挂在胸前乱晃,把似懂非懂的“概率”挂在嘴边已成一种时尚。 人生,不过是一场确定性死亡的概率游戏? 这个清明节出了点意外,这么说吧,那一刻有很大的概率要与科学网永远了,上帝保佑!清明思故人,大学同窗可舟兄生前曾感叹:“上帝开了我个天大的玩笑!”,大名鼎鼎的霍金有个中国学生叫吴忠超(霍金科普著作的中译本,几乎都是他的杰作),可舟兄在美国与吴忠超做了N年面对面邻居,M年后,却不幸得了与霍金一模一样的病,以概率的语言,这算中头彩吧? 前些日子,死气沉沉的科学网好似恢复了一丁点人气,XX帮与YXX帮因张天蓉博主的博文《 概率论悖论 》而纠缠厮杀,双方火拼的根本原因是《概率论悖论》中的贝叶斯概率例子: 王宏去医院作验血实验,检查他患上了X疾病的可能性,其结果居然为阳性,把他吓了一大跳,赶忙到网上查询。网上的资料说,实验总是有误差的,这种实验有“百分之一的假阳性率和百分之一的假阴性率”。这句话的意思是说,在得病的人中做实验,有1%的人是假阳性,99%的人是真阳性。而在未得病的人中做实验,有1%的人是假阴性,99%的人是真阴性。于是,王宏根据这种解释,估计他自己得了X疾病的可能性(即概率)为99%。王宏想,既然只有百分之一的假阳性率,那么,百分之九十九都是真阳性,那我已被感染X病的概率便应该是99%。 可是,医生却告诉他,他被感染的概率只有0.09左右。这是怎么回事呢?王宏的思路误区在哪里? 医生说:“百分之九十九?哪有那么大的感染几率啊。99%是测试的准确性,不是你得病的概率。你忘了一件事:这种X疾病的正常比例是不大的,1000个人中只有一个人有X病。” 医生的计算方法是这样的:因为测试的误报率是1%,1000个人将有10个被报为“假阳性”,而根据X病在人口中的比例(1/1000=0.1%),真阳性只有1个。所以,大约11个测试为阳性的人中只有一个是真阳性(有病)的,因此,王宏被感染的几率是大约1/11,即0.09(9%)。 问题:王宏“中枪”的概率到底是99%还是9%? 提到贝叶斯,自然想起黄金时期的科学网和老邪博友。大约是三年前,老邪因一双布鞋而意外成为网红,那段时间老邪写了多篇关于贝叶斯的博文,出于娱乐博眼球,我无脑地跟风了一篇:《 老邪、外国女郎与蕾丝内裤 》,虽然老邪宽宏大量不计小人过,我还是知趣地选择了隐藏博文。今天重读老邪当初的私信留言,仍能感受到他老人家的智慧和独特人格魅力。 写那篇博文,除了娱乐更想表达本人对概率的一贯“偏见”:概率不是严格意义下的科学,概率论在科学研究中的所谓应用,更像是公婆说理、神仙算命,算不清、理还乱,99%与9%之争就是最好的例证。贝叶斯概率乱象的背后一定存在更深层次原因,我认为根源在“条件概率”,本文就试着“摆事实讲道理”,顺便给出一个概率判据:XX与YXX谁更接近真相? “概率”点破了就是一种数学游戏,其基础是游戏玩家可以有意无意地利用“障眼法”实现不确定性,比如暗箱摸球、掷骰子、投硬币等,它们的“概率性”都是人为创造出来的,只要玩家愿意,这些“概率”都是确定性地可调可控,本文就不具体展开讨论了。 下面我将利用投硬币讲解“条件概率”,所谓“条件概率”(或后验概率),就是指在事件B已经发生的前提条件下,再发生事件A的概率,数学上用P(A|B)来表示,它满足:P(A|B)=P(AB)/P(B),其中P(AB)代表A和B事件同时发生的概率、P(B)代表B事件独立发生的概率(或先验概率)。 问题一(无条件概率): 如上图(a),一枚硬币随机投2次(第一次用B记、第二次用A记),问:二次全是正面的概率是多少?答:P(AB)=1/4; 问题二(条件概率): 如上图(b),已知第一次投币是正面(相应的先验概率P(B)=1/2),问:第二次也是正面的概率(条件概率)是多少?答:P(A|B)=P(AB)/P(B)=(1/4)/(1/2)=1/2。大家不难看出,无条件概率与条件概率的本质差异,前者是双随机事件、后者已退化为单随机事件。 谨记:先验概率与对应的条件概率(后验概率)之间是存在严格的因果关系,或它们是关联配对纠缠的,切莫乱点鸳鸯谱。 贝叶斯定理可以用公式表示为: 科学网有多篇博文对上式的“科学价值”进行过专业解读,反正我是似懂非懂,在《概率论悖论》一文,张天蓉博主利用它研究了王宏的“中枪率”,作为普通大众我同样困惑:先进仪器锁定的99%可能性的疑似X病王宏,为什么要扯上毫无关系的全世界人民 ?本人的观点:这是胡扯!理由:X病在公众的发病率与仪器测试的准确率之间不存在任何因果关联,两者不能建立条件概率关系。 举例证明,假设XX与YXX博主同时参加院士竞选并成功杀入最后一轮,根据历史统计数据,他们能最终当选的概率为80%,显然,如果不考虑其它因素(是否海龟?是否985?是否院士弟子?是否有NSC论文?是否有国家大奖?。。。),XX与YXX都有80%的可能性最后当选。张天蓉博主肯定不同意这个结论,以张博主的思维:XX与YXX最后当选院士的概率要远低于80%,因为必须考虑,在全国人民中院士人数仅占百万分之一的事实。张博主,被概率是统计局的把戏,请不要乱借全国人民的名义,这事与人民无关! 作为最基本的科学素养,玩科研首先要明确研究对象,否则就是瞎玩。如果一定想对院士评选玩条件概率,第一、必须明确院士(已投硬币)和准院士(将投还未投的硬币)才是研究对象;第二、在已当选的院士中寻找有参考意义的先验概率(相当于已投出并确定正反面的硬币),比如,当选院士的海龟65%、985毕业85%、有国家大奖90%、男性98%、年龄60岁以下75%、。。。;第三、在院士与准院士之间建立条件概率关系。同理,王宏的贝叶斯可以这么玩,第一、已确认X病患者和疑似X病患者为研究对象;第二、在确认X病患者中寻找先验概率,比如,X病患者中XX染色体的中枪率为20%、YXX染色体的中枪率为80%;。。。 XX与YXX,谁当院士的概率更大?很多人以为评院士也是一个概率问题,其实,不过也是一场确定性结果的概率游戏。
个人分类: 乱七八糟|9252 次阅读|97 个评论
贝叶斯公式导向的生活经验——打电话与工作忙
热度 1 mineralter 2016-12-6 12:23
定义基本概率事件 P(A) :与家人通电话的概率; P(B) :工作很忙的概率; P(A|B) :在工作很忙的时候,还和家里人打电话的概率; P(B|A) :一打电话那会儿,工作正忙的概率。 为了少于家人聊天,避免家里人老是影响自己的工作事业,我们要让他们认为每次打电话,都是工作繁忙期间。于是就要增大 P(B|A) 。 根据贝叶斯公式: P(B|A)= P(A|B) P(B) /P(A). 增大 P(A|B) :在工作时间段的时候,才接受家里面人打电话.而且每次打电话 只聊工作上的事情 , 都求助一些特別重要的事情(比如方法失敗、资金流轉出現問題)。 增大 P(B) :充实自己的工作时间,给自己时刻都留足工作繁忙的聊天内容。也可以让自己在外观上有所表现(就是工作繁忙的表现,每个人每种工作都有自己的表达形式)。 减小 P(A) :不要天天连通电话,把频率降低。 为了和某些人多通电话,我们应该减小 P(B|A) 。这类人是谁,你懂得,方法你可以自寻。 或者为了表现孝心,我们要让他们觉得这是在工作繁忙的情况下,给他们通的电话。于是就增大 P(A|B) 。 根据贝叶斯公式: P(A|B)= P(B|A) P(A) / P(B). 增大 P(B|A) :每次打电话的时候,多给家里面的人抱怨工作繁忙,目的是让他们觉得这会儿你很忙。 增大 P(A) :多和家里人打电话,在频率和时间上增加。 减小 P(B) :减小自己的工作时间,多给自己放松的时间。做些其他业余的事情,比如谈朋友,谈人生等等,积累聊资。那么在聊的时候,就让他们觉得你的工作时间不多,剩下的时间在考虑和他们有关的事情。而且专门挑只在工作忙的时候给他们打电话,小投资大回报----平时闲的要死,我一工作就定时给你们打电话.还要给他们造成一种假象,我平时闲的很. 就最近才忙起来( 嘿嘿嘿 ,我就只在这会儿给你们打)... 有感:任何生活经验做法,有人只能用文字叙述,无法抽象成统一的数学语言或者一般性规律的东西,缺乏理论依据。对于这类事件,我往往不太容易相信。但是贝叶斯公式的出现代表了一类方法原则 。 从《 思考 的乐趣 matrix67 数学笔记》获得的数学笔记。
个人分类: 无聊八卦|962 次阅读|1 个评论
Tree-ring Research Express 20160203
zhuhf 2016-2-3 11:38
1. European summer temperatures since Roman times Luterbacher et al., 2016 ERL The spatial context is critical when assessing present-day climate anomalies, attributing them to potentialforcings and making statements regarding their frequency and severity in a long-term perspective. Recentinternational initiatives have expanded the number of high-quality proxy-records and developed newstatistical reconstruction methods. These advances allow more rigorous regional past temperaturereconstructions and, in turn, the possibility of evaluating climate models on policy-relevant, spatiotemporalscales. Here we provide a new proxy-based, annually-resolved, spatial reconstruction of theEuropean summer(June – August)temperature fields back to 755 CE based on Bayesian hierarchicalmodelling (BHM), together with estimates of the European mean temperature variation since 138 BCEbased on BHM and composite-plus-scaling (CPS). Our reconstructions compare well with independentinstrumental and proxy-based temperature estimates, but suggest a larger amplitude in summertemperature variability than previously reported. Both CPS and BHM reconstructions indicate that themean 20th century European summer temperature was not significantly differentfrom some earliercenturies, including the 1st, 2nd, 8th and 10th centuries CE. The 1st century (in BHM also the 10thcentury) may even have been slightly warmer than the 20th century, but the difference is not statisticallysignificant. Comparing each 50 yr period with the 1951 – 2000 period reveals a similar pattern. Recentsummers, however, have been unusually warm in the context of the last two millennia and there are no30 yr periods in either reconstruction that exceed the mean average European summer temperature of thelast 3 decades(1986 – 2015 CE). A comparison with an ensemble of climate model simulations suggeststhat the reconstructed European summer temperature variability over the period 850 – 2000 CE reflectschanges in both internal variability and external forcing on multi-decadal time-scales. For pan-European temperatures we find slightly better agreement between the reconstruction and the model simulationswith high-end estimates for total solar irradiance. Temperature differences between the medieval period,the recent period and the Little Ice Age are larger in the reconstructions than the simulations. This mayindicate inflated variability of the reconstructions, a lack of sensitivity and processes to changes in externalforcing on the simulated European climate and/or an underestimation of internal variability oncentennial and longer time scales.
个人分类: Tree-Ring Research Express|1711 次阅读|0 个评论
系统发育重建中主流算法的未来走向
热度 6 hypermarket 2015-12-13 12:33
系统发育重建中会被使用到的算法大体包括最大简约法(maximum parsimony, MP),非加权组平均法(unweighted pair-group method with arithmetic means, UPGMA),邻接法(neighbor-joining method, NJ),最小进化法(minimum evolution, ME),最大似然法(maximum likelihood, ML),贝叶斯推断(Bayesian inference, BI)。这其中,UPGMA、NJ、ME都属于距离算法(distance method),从根本上讲属于数值分类学派-遗传距离思想的衍生产物。虽然说今天的分类学研究中,分支分类、数值分类、进化分类三者之间的竞争远不像曾经的那样激烈,而是各取所长融合而成,但是各派的主要贡献内容还是比较分明的。分支分类学派主要贡献了对于类群间关系和特征类型的精确定义,数值分类学派主要贡献了对于大数据量、多位点、量化建模的强调,进化分类学派主要贡献了对于进化支长、分歧时间等方面的重视。由于UPGMA、NJ、ME都从遗传距离而不是特征状态出发,与分支分类学的基本思想存在本质区别,再加上在系统发育研究实践中的表现普遍不佳(主要是在高级阶元问题上),因而并未被分类学家普遍采用。 从表面上看,ML在实践中似乎与NJ和ME很相似,都会使用分子进化模型,但是那是因为一般的研究者在使用软件进行系统发育重建的过程中体会不到“基于距离”与“基于特征”这样隐藏的却同时也很本质的区别。也就是说,ML是融合了分支分类学派“基于特征”和数值分类学派“量化建模”优点的一种算法,并且在结果中也能很好地体现进化分类学派所强调的进化支长。BI与ML在计算流程上虽然有区别,但是在本质上也是以似然值作为评价树的标准,只不过不是强调似然值最优的树,而是强调包括似然值最优树在内的一个树的集合的总体表现(集合中的非最优树与最优树的似然值差异不显著,也就是所谓“收敛”的结果)。在计算效率上,BI曾一度占优(2003-2013),但是面对组学大数据时,在与RAxML的竞争中处于弱势(可能与树形空间扁平化导致收敛效率减低有关)。因此从目前各方面综合来看,ML明显占优。 但是,不同算法表现差异这个事情的真相是否已经大体揭晓?这个时候,我们应该意识到,上述讨论中其实尚未涉及一个更为基本的问题,那就是数据本身。在“目前分子系统发育研究中的两点局限性”一文中( http://blog.sciencenet.cn/blog-1292052-923288.html ),曾经提及类群选取、序列比对、基因筛选、位点筛选、数据类型、算法选择、模型选择等都有可能影响系统发育重建的结果,其中“类群选取、序列比对、基因筛选、位点筛选、数据类型”都可以被划归为数据本身的问题,如果再加上基因数量、序列总长,那么不难看出其实相较于算法而言,数据本身可能存在问题的方面是更多、更复杂的。通过完备的类群选取减弱系统误差、通过足够总长的序列减弱随机误差、通过校正比对提高碱基或氨基酸位置同源性的准确性、通过对位点进行筛选事先剔除部分噪音,这些都是提高数据质量的重要保证,是使得系统发育重建具有良好效果的前提。如果系统发育信号足够强,完全可以做到MP、ML、BI有大体一致的系统发育推断结果,这在Cladistics期刊的一些研究中有比较明显的表现;如果序列错拼、数据漏洞较多,那么就算是大数据研究,也不能确保ML就能给出正确答案。简而言之,就是数据本身比算法选择更为重要。 看完数据与算法之间的基本关系框架,如果我们再回到对于算法的讨论上,那么ML(或者加上BI一起)会持续占优么,MP还有希望么?或者换句话说,还有什么是ML做不到的么?对于这个问题,这里无法给出最终答案,但是可以给出一些思考方向和个人观点。首先,我们不防在脑海中简单回顾一下各种基于进化模型的算法和相关软件的改进过程,不难发现算法和软件的主要进步都是一直在对各种bias进行各种建模纠偏。这说明数据中存在各种各样的异质性,而基于进化模型的ML和BI一直在这方面进行持续努力。然后,我们不妨看一下MP和ML在处理数据时,有什么基本特点(表1)。 表1 不同原则下算法的特点(谢强 等,2012) 简约 似然 对单一特征形成模型的能力 有 无 对整体形态特征形成模型的能力 - - 对整体序列特征形成模型的数量 单一 多样 特征数量对于建立模型的影响 较小 较大 从这个表中可以看到,其实简约法也是有隐藏的进化模型的,并且和似然法存在较大区别。其实ML、BI中所使用的不同的分子进化模型就是不同的进化假设。MP对简约的追求可能给人以生硬、刻板、过于理想化的感觉,但是那其实是表象。在理论层面,MP与其他所有算法的根本区别在于MP不仅关心建树本身,还关心特征演化,这是优点;在实践层面,MP对于多重替换的考量比较薄弱,这是缺点。不过另一方面,ML虽然在过去十几年中依靠模型的不断完善在整体表现上优于MP,但是近年来在面对组学数据时也备受数据异质性的困扰,因而在实践中会在前期常规性地先对数据本身进行一些处理。也就是说,就算是ML,如果忽视数据本身的质量问题,那么模型能起到的作用极为有限。 总的来说,简约法可以对数据进行更为个性化和具有针对性的处理,而似然法倾向于用参数定义特定的模型进行统一的处理。如果简约法的个性化特点和数据的异质性特点能够有效对接,这或许是未来MP重新迎来辉煌的转机。 参考文献 谢强. 2012. 分子系统学的建树原则与算法. in: 现代动物分类学导论. 谢强, 卜文俊, 于昕, 郑乐怡 编著. 第13章,第176页. 北京: 科学出版社.
6772 次阅读|8 个评论
概率论基本概念之贝叶斯公式时间离散化经典应用例子1
linzhiheng 2015-1-27 18:08
贝叶斯公式: 一个时间离散化的经典应用的例子: 某人下午5:00下班,他所积累的资料表明: 到家时间 5:35-5:39 5:40-5:44 5:45-5:49 5:50-5:54 迟于5:54 乘地铁 的概率 0.10 0.25 0.45 0.15 0.05 乘汽车 的概率 0.30 0.35 0.20 0.10 0.05 某日他抛一枚硬币来决定乘地铁还是乘汽车,结果他是5:47到家的。试求他是乘地铁回家的概率。 解: 令事件A 1 表示“乘地铁回家”, 事件A 2 表示“乘汽车回家”, 因为此人是抛硬币决定乘地铁还是汽车,故有 , 再令事件B表示“此人5:47到家”,由题意可知, 因此由贝叶斯公式可知, 所求事件的概率为 ,其中, 事件B(5:47回到家)发生有两种方式:A 1 (乘地铁回家)、A 2 (乘汽车回家), 因此事件B的发生概率为 =0.5*0.45+0.5*0.20 因此,此人5:47到家乘坐地铁的概率为: =0.5*0.45/( 0.5*0.45+0.5*0.20 )= 。 总结: 贝叶斯公式实质就是假设某事件B的发生有多种方式,那么要求的就是某种方式A i 的发生率是多少. 贝叶斯公式 就是求事件B发生的某种 方式A i 占 该事件所有方式集合A( )的比率。
3384 次阅读|0 个评论
与黄老邪网络互动大略
热度 9 xcfcn 2015-1-12 10:32
与黄老邪网络互动大略 与黄老邪素未谋面,但最后见他一面却将是在他的八宝山遗体告别仪式上。 最早,黄老邪以游客“ lix ”面目出现在科学网的,而我也是以游客“傻傻笑”身份出现在科学网。大概活跃了若干个月,我们都成了博主。这段时间我们应该没啥交集。 成为博主后,我貌似比较积极在他博文下评论,互动大体是和谐的,有时候可能他觉得我尾巴有点翘,也会略略打击一下我。但具体互动我早已经忘了,也懒得再去翻看原始记录了。 后来我偶然知道,他是院士,我查看了一下他的简历,发现他还真的是个牛人。但我同时知道,他是要求甚至刻意以普通网友身份出现在科学网上的,所以我还是没大没小的跟他互动,没有对他见外乃至生分。 老邪的博文古怪精灵,评论则是一针见血。但我印象深刻的是老邪知识的广博。大概 2008 年 12 月,我写了一篇文章介绍我的家乡江西崇义县,顺便扯了一下崇义跟邓小平的渊源,结果老邪看到后,纠正了我的错误,并特意写了一篇博文介绍了这段“ 新政委崇义作逃兵 ”的轶事。 邓小平三下三上,每次“下”都有人拿这个说事。污陷小平同志是敌军夜袭崇义时才跑的。好在第一次“下”时,许卓还没有牺牲,这事有人证。记录在案,否则后两次下时,李明瑞、许卓都已牺牲,就更说不清了。 2009 年 5 月份左右,有个博主陈应泉对“科技评价体系研究”很热心。黄老邪也积极介入。不知怎的,老邪居然把我拉进来,我们甚至成立了研究小组,黄老邪还说,如果调研需要钱的话,他会想办法。可惜通了一段时间邮件后,此事就无疾而终,我也忙着毕业找工作了。前段时间,李侠提议科技人员排名引起科学网轩然大波,我如果不是刚才翻看邮件,我都一点都想不起来,我居然曾经对此事介入那么深。 大概是 2010 年 3 月,自己混的很差,老父又脑溢血,我非常冒昧的在科学网给老邪发短信息借 1 万块钱,这大概是从出生到当时我所借过的最大一笔钱,而且是向一个从未见过面的人。老邪二话不说,就叫我给他账号,并让师母吴老师给我打过来。可这事我已经再也不能当面感谢啦。 老邪的博文,只要不是太专业,我都会瞄上一眼,我也会暗中关心他的身体,也关注他的“布鞋院士”事件。但我刻意不直接跟他互动。 2013 年 8 月份开始,我跟随 CY 开始休博半年。期间看到老邪发文说 看不懂 Nate Silver 的《信号与噪声》(中文版)的某个图 ,我看后找来英文版,并截图给他看。我知道 老邪一直对贝叶斯非常感兴趣 。然后老邪趁机写了一篇幽默风趣的博文( CY 呼唤肖子:蕾丝短裤之谜 )叫我回来写博,其中博文写道: 在求教:贝叶斯定理(乳腺癌例) 评论4,王春艳 说:“我都回来了,肖子还端着不下来。很感兴趣老邪的问题,可惜手头上没书,以后也弄本翻翻,要是肖子能赏脸耗力帮大家把问题整理出来讨论,那是要非常感谢滴”。 感谢肖子,及时解答了老邪的疑问。希望响应CY妹妹的呼唤,接着回答老邪的疑问:怎么样讲贝叶斯定理,最容易被同学理解无误。 可惜我当时非常傲娇的没有理他,虽然我后来很快又写博了。这大概是我最后跟老邪的互动,今年暑假去过一次北京,但没有敢去打扰他。总觉得后会有期,但却是后会无期。 老邪老了有科学网这个玩具,我想他老人家应该是幸福的。我相信天堂一定是有科学网的镜像,否则他不会那么匆匆离去,而不管不顾他心爱的玩具和玩伴。
个人分类: 杂论|9688 次阅读|9 个评论
用贝叶斯评估食品安全
热度 1 andydong 2014-11-23 22:31
贝叶斯是 18 世纪的英国数学家,他的思想是概率论的精髓之一,简单的说就是“逆概”。 2013 年是贝叶斯提出 250 年,国际贝叶斯学会有专门的庆祝活动,被称为“永不会灭亡的理论”,应用非常广泛,比如最近寻找马航失联的坠机,就有国外的数学家应用这一理论方法成功推算出准确的失事地点。 食品风险评估体系是被写进我国食品安全法的,评估食品风险有很多方法,贝叶斯也可以用到这一研究领域中。举个例子:控制食品低温有利于食品保藏,据统计 80% 的家庭都用低温冰箱冷藏食品,经过冷藏后食品的安全性可以达到 85% ,不经过冷藏安全性只有 75% ,假设有一天冰箱控温坏了,低温变高温了,那么吃后的食品安全性从 85% 降到了 75% ;反之,如果我们想知道没有吃坏肚子的前提下,冰箱失控了,有多少低温食品变成了高温食品?这是现代食品安全中过程控制( Process Control )的常见科学思路之一。 我们用贝叶斯的思路来简单推测下,假设食品就只按照两类方式进行保藏:低温和高温,比例分别为 80% 和 20% ,这其实是根据我们的先验知识确定的,简记为 P(LT)=0.8 , P(HT)=1-P(LT)=0.2 ,低温和高温食品的安全性分别简记为 P(Safe|LT)= 0.85 和 P(Safe|HT)= 0.75 ,那么总的食品安全性可计算为: P(Safe)=P(LT)*P(Safe|LT)+P(HT)*P(Safe|HT)=0.8*0.85+0.2*0.75=0.83 保证安全性的前提下高温食品的比例 P(HT|Safe) 应为高温食品的比例 P(HT) 乘以高温食品的安全性 P(Safe|HT) 再除以上面总的食品安全性,即 P(Safe) ,写成公式即是: P(HT|Safe)= P(HT)* P(Safe|HT)/P(Safe) = 0.2*0.75/0.83=0.18 这就是吃冰箱坏了,还没吃坏肚子的食品中可能是高温食品的比例。如果我们再把上面的写法简化下, A=Safe, B=HT , B~=LT 那么 P(B|A)=P(B)*P(A|B)/P(A)= P(B)*P(A|B)/ 大学学过概率论的都会明白上式的含义,这就是经典的贝叶斯公式。 下面再举个与食品安全有关的简单例子,通常情况下,致病菌( A )可以导致食物中毒( B ),假设某菌在 4 个对数菌落单位以下导致食物中毒的概率为 0.2 ,而在超过 4 个对数菌落单位导致食物中毒的概率为 0.89 ,那么根据贝叶斯理论,有如下结论成立(具体计算略去,有很多软件可以自动计算理论值): 当检测 100 个样品中有 1 个样品都高于 4 个对数菌落单位时,导致食物中毒的概率为 0 ; 当检测 100 个样品中有 5 个样品都高于 4 个对数菌落单位时,导致食物中毒的概率为 0.23 ; 当检测 100 个样品中有 95 个样品都高于 4 个对数菌落单位时,导致食物中毒的概率为 0.86 ; 如果有 100 个样品中有 99 个样品都高于 4 个对数菌落单位时,导致食物中毒的概率为 1 ; 因此可以根据上述推测采取相应的食品安全监管措施。当然,以上都是最简单的形式,实际的食品生产链节点变量更多,影响因素更复杂,要真正实现可追溯性,可采用贝叶斯网络的形式进行食品风险评估和预警。
1697 次阅读|2 个评论
老邪、外国女郎与蕾丝内裤
热度 13 xqhuang 2014-4-24 11:04
老邪、外国女郎与蕾丝内裤 自从老邪一“脱”走红,小邪就被娱记们盯上了,希望能披露一些关于老邪的“麻辣故事”,迫于生计,无情地把老邪出卖了。哥,算不算,您说了算! ******************************************** 不久前,有好友QMe: 小邪,老邪中邪了! 还有这事?老英雄他中什么邪? 桃花! 花粉过敏? 不是,是内裤过敏! 化纤内裤? 蕾丝内裤! 哈,老邪还有这等嗜好? 告诉你吧,老邪迷上一位穿蕾丝内裤的外国女郎,她叫贝叶斯。 英雄难过美人关,更何况是洋美人。 。。。。。。 晚上偶过老邪的“办公室”,抬头望见房间的灯还亮着,隐隐约约一个“女人”的身影在窗前晃动,传说中的“贝叶斯”?去见识一下!上楼正欲敲门,屋内传来老邪低沉的声音: 正等着小邪和我掐架呢 。真邪门,老邪能掐会算?犹豫了一下,心里话小邪还真不惧与老邪过招,担心的是江湖险恶,若有人捕风捉影:老邪与小邪为一女人打起来了!到时跳进黄河也洗不清啊。 科学网朋友都知道,老邪比较“花心”,表现在兴趣广泛,这回移情“贝叶斯”,也算情理之中。关于美女贝叶斯的故事,小邪虽早有耳闻,因她不是我的菜,所以不是特别关注。贝叶斯,全名 托马斯·贝叶斯,二百多年前,他提出了被后人称为贝叶斯定理的概率关系式: P(A|B)=P(B|A)*P(A)/P(B) 上式中,A和B代表两个随机事件,P(A)是单独发生A事件的概率;P(B)是单独发生B事件的概率;P(B|A)是A事件出现的前提下,再发生B事件的概率;P(A|B)是B事件出现的前提下,再发生A事件的概率。关于贝叶斯定理的理解与解读,有兴趣的朋友可以翻翻书,或放狗拜读一下。 CY说:我是大约明白贝叶斯的,以前学的时候做题带公式也没问题,只是直觉上总觉得别扭。相信与CY有类似感觉的不止她一人,小邪对“贝叶斯”也一直没啥感觉,老邪试图通过给贝叶斯穿蕾丝短裤以增加其吸引力,此举无疑是彻底失败了。 概率是对随机事件发生的可能性的度量,概率统计早已融入到现代科学的所有学科领域,也无孔不入地渗透进人们生活的方方面面:马航飞到何处去?中国、美国打起来的可能性多大?房价什么时候开始跌?刚买的彩票能中奖吗?股市什么时候涨呀?今年的基金申请会中吗?研究生能找到好导师、导师能选到好学生吗?心中的女神会接受屌丝的爱吗?。。。 概率统计看上去像科学,其实就是街头八字算命,总有蒙对的时候,用“蒙”有人肯定不爽,不过这绝对是实话实说。就像迷信一样,概率统计生存的基础,是人们对概率事件发生的本质和原因不了解或不想深入了解,一旦弄清事件的本质,所谓的概率统计结果都将被破坏,例如: 1、抛一枚硬币,理论上出现正反面的可能性各为1/2。而一名专业的抛币者(或把银币变大),却能完全控制正面或反面,掷骰子也一样,它们的规律都是可以人为掌控的。 2、生男生女,以前认为是上帝安排的随机事件。到了能控制精子、卵子这个层面,随机性就被彻底破坏。 3、花2元钱买一注彩票,你就有机会中千万大奖,卖彩票的都这么忽悠,事实上,让谁中头奖,摇奖人说了算。 。。。。。。 现实生活中(科研也一样),很多人陷入概率的陷阱而不能自拔,概率统计的先验结果在宏观集体上有一定的指导和参考意义,但对判断个体的行为是毫无意义的。就比如,老邪吸没吸毒?老邪出没出轨?。。。,算出概率为99.9%或0.1%,有何差异?因为真相只能是1(有)或0(没有),99.9%可能是0,而0.1%却可能是1。事实上,老邪脑子无比清楚,99.9%仅仅代表老邪很值得怀疑,只要不是100%的铁证(比如捉奸在床),司法上就是证据链不完整,不可以骤下毒手抓人,你还得“补充侦查”。 最后讲一段老邪与蕾丝内裤的八卦故事,也算作与老邪的一架吧。 老邪做任何事情,总是全身心地投入,大冬天讲课也能汗流浃背,所以,手帕是他的随身必带品。春节刚过,陈安研究员请老邪做一场学术报告,题目是《 关于国家重点实验室开放基金 》,科学网博主武夷山、王德华、孤魂、老蒋、YC、CY、LL、吕秀齐、迟菲、王海辉、赵明等悉数到场捧场。 老邪是典型的人来疯,听众越多表演欲就越强,一会儿功夫就汗如雨下,他习惯性地从电脑包摸出“手帕”揩汗,突然,听众轰地一声笑开,老邪很淡定地说:“我不穿袜子,喜欢用袜子擦汗,吸汗效果好,...”老邪边说边继续擦汗,还幽默地地把“手帕”放在鼻子上闻了闻:味道真不好!此时此刻,听众已经笑倒一半。 CY终于忍不住了:老邪,看看您手里是什么?蕾丝内裤!老邪定睛一看,喊了一小声:啊!。。。老邪不愧为江湖老将,转眼就面带微笑:应LL教授之邀,后天我要到清华大学做报告,题目是《 蕾丝短裤之谜 》,这是道具,欢迎各位届时继续捧场!说着瞟了一眼坐在第一排、手足无措的陈安,心里说:望你安好,应急靠我! 老邪正为自己的灵机一动得意着,听众席中突然站起一年轻女子:老邪,瞧你装的,那不是你的女研究生贝叶斯的内裤吗!闲话少说,虽然陈安采取了一系列应急措施, 老邪走桃花运 的消息,还是第一时间传进老邪夫人的耳朵。 夫人:听说最近桃花盛开? 老邪:春天终于来了! 夫人:第二春? 老邪:春来春去,几度风雨几度春秋? 夫人:装,继续装!蕾丝短裤是怎么回事? 老邪:夫人,不要听信谣言。 夫人:谣言?你最近不是在研究贝叶斯吗,算一算你出轨的概率。 老邪:这根本就没法算。 夫人:薛宇不是算出来29.41%。 老邪:他还算出67.57%。 夫人:这不更能说明你有问题。 老邪:这只能说明,所谓的概率预测是胡说八道。 夫人:难道一定要“捉奸在床”。 老邪:当然,司法上就是证据链完整。 夫人:CY说得好,狡辩的男人总能想出千奇百怪的理由来糊弄女人。 老邪:不然你去问问你的偶像陈安。 夫人:陈安是你的死党。你不是还说过,有陈安,不平安。 老邪:陈安是研究应急的,不平安才需要应急,有应急事件必有陈安,比如昆明、马航。 夫人:算了,我还是去找你的死敌小邪。 老邪:随便,身正不怕影斜,人正还怕小邪? *************************** 师母:小邪,听说过老邪的事? 小邪:蕾丝短裤?有所耳闻。 师母:唉,想不到呀!555555... 小邪:师母勿要伤心。 师母:你说得倒很轻巧,这回我决不能饶他!有人建议我到科学网开博,也有人建议找方舟子,还有人建议直接到《中国科学院学部科学道德建设委员会》进行举报,你认为哪个效果好? 小邪:哪个效果都不好!师母请冷静!此事必有蹊跷。 师母:怎讲?老邪一直夸你能掐会算,老邪出轨的概率多少? 小邪:概率,让人不明觉厉,其实都是为了隐瞒真相! 师母:我也觉得不靠谱,玩概率就像玩暧昧。 小邪:言归正传,我认为老邪是清白的。 师母:理由? 小邪:1、老邪真出轨,有必要收藏内裤吗?2、收藏内裤,会放在电脑包里?3、那天报告会上的女子,显然是有备而来的。4、出事后,为什么有那么多人为你出谋划策?目的昭然若揭,要置老邪于死地而后快。。。 师母:听起来很有道理,是阴谋? 小邪:老邪以快人快语而闻名江湖,这难免得罪身边的某些人,。。。 师母:谢谢小邪,我懂了! 小邪:不客气,顺便转告老邪,不要再迷恋贝叶斯,那只是传说。 。。。。。。 有人把描述微观世界的物理学玩成了概率统计,认为上帝是掷骰子,借李总理的一句话:开什么玩笑!
个人分类: 乱七八糟|4481 次阅读|30 个评论
[转载]狐狸,贝叶斯与大数据的思维方式
sheep021 2014-4-3 20:22
狐狸,贝叶斯与大数据的思维方式 假设掷出一枚硬币,正面朝上的概率是 50% ,如果连续 99 次投掷硬币都是正面朝上落地,那么下一次投掷硬币正面朝上落地的概率是多少?这是 Taleb 在《黑天鹅》一书中给出的一个假想的问题。在 Taleb 的书中,受过正统教育的约翰博士给出了教科书教给我们的标准回答,下一次投掷硬币正面朝上落地的概率仍然为 50% ,因为下一次硬币朝向与之前投掷的结果无关。而教育背景没有那么光鲜的胖托尼则认为下一次投掷硬币正面朝上的概率为 99% 。孰对孰错?我和读者都不妨给出自己的判断。而如果一定要为自己的答案下一万块钱的赌注的话,我和 Taleb 一样,更倾向于与不是那么教条的胖托尼保持一致,更倾向于相信下一次硬币正面朝上的几率为 99% ,更倾向于相信我之前的有关正面朝上落地的概率是 50% 的假设是错误的。 2012 年, “ 大数据 ” 是一个抓住了上到国家政要下到普通老百姓眼球的热词。随着技术的进步,数据获取成本、数据存储与处理成本都在以指数的速度迅速下降,普通老百姓都能感觉到数据将对人们的生活产生至关重要的影响。虽然,人们谈大数据时往往都会谈及利用 Hadoop 等新兴技术对海量数据处理等技术问题,也会谈及 Facebook 、 Google 等公司所处理的 PB 级别数据的问题。但是,正如周涛教授所言, 大数据的核心问题在于预测 。电子商务网站通过数据预测顾客是否会购买推荐的产品;信贷公司通过数据预测借款人是否会违约;执法部门用大数据预测特定地点发生犯罪的可能性;交通部门利用数据预测交通流量。 但是,预测不是大数据时代才有的新问题,它是人类本能的一部分 。心理学家认为,对世界一致性观点的需求以及对环境控制力的需求是人类的两个基本需求,而在此基本需求驱动下,人类像 “ 朴素的科学家 ” ( naive scientist )一样行为,理性地合乎逻辑地验证自己关于世界的假设。即使原始人通过他的切身体会也可以知道,如果将手伸到火中将会被烫伤。这样,原始人根据其直接经验可以构建关于火与烫伤之间关系的关联模型。数字是人类直接感觉的延伸,正如麦克卢汉所说, “ 数字是我们最亲密的、相互关系最密切的(触觉)的延伸与分离 …… 古代世界不可思议地将数字与物质实体的性质联系在一起,与事物的因果关系联系在一起 …… 科学始终倾向于将一切客体量化 …… (数字是)我们的中枢神经系统在电力时代的延伸。 ” 而未来无所不在的传感器将构成地球的中枢神经系统( Central Nervous System for the Earth CeNSE )。这个地球的中枢神经系统使得人们能够超越其直接体验,感知到来自地球每个角落的讯息,这些形式多样的、海量的、快速的( Variety 、 Volume 、 Velocity )信息流将构成大数据时代的主要特征。而人们将基于这些信息理解世界,构建与验证关于世界的新的假设,并以此为基础进行预测,并采取行动。 但是,与科学研究中以求真为目的的构建模型不同,大数据时代的模型构建将更加以务实为目的,即遵循统计学家 George E. P. Box 的观点 “ 本质而言,所有模型都是错误的,只是有些模型更有用 ” ( Essentially, all models are wrong, but some are useful )。大数据时代的很多模型都是为了指导商业决策而设的,而商业决策通常会影响决策者的利益。所以,一个模型是否正确不是最重要的,重要的是决策者对这个模型有多大的把握,决策者能否从这个模型中获利。所以, 大数据时代中最为关键的应该是基于数据的模型能否说服决策者据此进行决策,并且帮助决策者改善决策赚取相应的利润 。前者表现为决策者愿意将多少钱押在这个模型上,而后者表现为这个模型在现实中的表现如何。所以,如果让读者你参加本文开始所设计的假想赌局,无论约翰博士看起来多么专业也不能阻止读者更相信胖托尼的模型,因为毕竟这涉及到真金白银。胖托尼也许在最初和约翰博士一样,相信硬币正反面朝上面落地的概率各是 50% 。既然所有模型都是错的,但是胖托尼能够利用他所观察到的硬币一次次正面朝上落地的事实修订他的模型,使其越来越接近真实情况。而约翰博士仍然抱残守缺,固守着他的 50% 的最初假设。 以赛亚 * 伯林( Isaish Berlin )曾经援引古希腊诗人的残简 “ 狐狸多知而刺猬有一大知 ” 将知识分子分为狐狸和刺猬两类。 刺猬用一个宏大的概念解释所有现象,如约翰博士一般;狐狸知道很多事情,用多元化的甚至相互矛盾的视角看待问题,狐狸也愿意包容新的证据以使得自己的模型与之相适应,如胖托尼一般 。 Tetlock 等人的研究表明,在现实的预测中,狐狸的表现要优于刺猬。在大数据时代,人们能够接触越来越多的信息,这些信息能否修订决策者已有的观念,对决策者的决策产生影响,这是大数据能否发挥价值的关键所在。有些刺猬类决策者,他们可能会有意无意忽略与其观念相左数据而只保留那些能够证明其想法的数据,在这里无论系统处理了什么规模的数据,这些系统投资也只是粉饰太平的装饰,没有太大意义。 很多人都知道亚当斯密( Adam Smith )在《国富论》中所描述的市场中的 “ 看不见的手 ” 。在市场中,没有人掌握有关生产和消费的全局信息,但是人们通过市场交易对供需的行为作出反应,从而逐步更新价格,进而达到平衡。与亚当斯密同时代且同在苏格兰接受教育的 Thomas Bayes 的贝叶斯定理( Bayesian's Theorem )也和亚当斯密的 “ 看不见的手 ” 有相通之处。贝叶斯理论允许每个人拥有有关世界的先验的信念,胖托尼也许最初认为硬币正面朝上的概率是 1/2 ,如果他看到了 99 次投掷硬币的结果中有 50 次是正面朝上,他会认为这个硬币正面朝上的概率是 51/101 ,大致可以确信硬币正面朝上的概率是 50% 。而当他看到了连续 99 次的硬币正面朝上落地,则他不断利用数据修改其信念,认为这个硬币可能有问题,正面朝上的概率应为 100/101 ,即本文开始部分所预测的 99% 。当然,你也可以如约翰博士一样固守自己最初 50% 的教科书般的假设,而这样的结果是你输掉了一次又一次的赌博,直到出局。 利用新的数据与新的证据不断修订对世界的假设是狐狸式的思维方式也是贝叶斯思维方式的基本理念,这也应当是大数据时代思维的基本理念 。随着互联网及云计算的普及,在大数据时代,人们有机会从多个渠道、多个角度获得对事物的知识。贝叶斯的 “ 看不见的手 ” 利用这些知识逐步修订人们对事物的假设,而人们基于这些假设进行的决策通过亚当斯密的市场的 “ 看不见的手 ” 被评估与选择,从而形成相应的社会秩序。无论人们最初关于事物的认识存在什么样的差异,在贝叶斯与亚当斯密两重 “ 看不见的手 ” 的作用下, “ 随着越来越多的证据的出现,我们的信念将趋于一致,并且趋于真相 …… 即使我们最初拥有有误的甚至是错得离谱的先验认识,最终也将趋于真相。 ” --------------------------------------------------PS: 英国哲学家艾赛亚·柏林,把一句古希腊谚语“狐狸多技巧,刺猬仅一招”发挥成关于两种类型的思想家之差异的深刻比喻:一类是追求一元论的思想家,他们力图找出唯一绝对的真理,并将它应用于万事万物,恰如刺猬遇到危险总是使用相同的招数枣竖起满身倒刺;另一类则是承认多元论的思想家,他们体察世间万物之复杂微妙,没有不变应万变的宗旨,因此宁可自己思想矛盾,亦不强求圆融统一之理,恰如狐狸遇事之灵活、机智。 看来,东方思想更像是刺猬,一套阴阳五行理论,解释了天地人,乃至世间万物。而现代科学则是狐狸,每门科学都有自己的理论,甚至,同一学科的不同领域都自成体系,乃至“自相矛盾” ,如现代物理学,至今没有建立起所谓的:宇宙大统一理论。 狐狸和刺猬的知识无所谓哪个更“伟大”,一个有宽度,一个有深度,各有千秋,相得益彰。
个人分类: 智慧城市|1409 次阅读|0 个评论
[转载]CNN科普-帮助搜索失联航班的贝叶斯理论
josh 2014-3-19 23:43
http://video.sina.com.cn/p/news/w/v/2014-03-19/123863636657.html 祈福。
个人分类: 科普|2409 次阅读|0 个评论
我的二胎会生儿子吗?
热度 6 andydong 2014-3-7 17:39
如果我们有了一个女儿,再生一个的话,生男孩的概率有多少? 你肯定会说,很无聊的问题,因为生男生女的概率是根据男性的性染色体 (XY) 决定的,如果与女性( XX )结合后,是 XX 就是女孩,是 YX 就是男孩,所以我们的二胎生男或生女的概率应该相同,也就是各占 50% 。 事实果真如此吗? 说一个 1959 年被一个美国人提出来的生男生女著名悖论:假设我们有了两个孩子,总共有四种组合(男孩 B ,女孩 G ): BB , GG , BG , GB 假设我们知道了有一个是女孩,所以第一种情况 BB 可以淘汰,剩下的三种概率相同,所以另一个是男孩的概率应该是 1/3+1/3=2/3 ,即 66.7% ,而不是上面说的 50% 。 意思就是说,如果我们生了一个女儿,第二个是男孩的概率将高达 66.7% 。 到底哪一个是正确的呢?看似简单,其实有很多逻辑性问题。 事实上,上一个悖论用传统的概率论(即用频率代表概率)是很难算出来的,如果用贝叶斯的思路,就非常简单。 今年是贝叶斯提出 250 年,国际贝叶斯学会有专门的庆祝活动,因为频率论和贝叶斯论争执了足足一百年,还没有休止。 下面说说贝叶斯是怎么解决这一问题的: 因为 GG, BB, GB, BG 的概率都是 1/4=0.25 ,我们记为: P ( GG ) =P ( BB ) =P ( GB ) =P ( BG ) =0.25 另外,其中一个是男孩的概率和一个是女孩的概率,也就是说两个孩子肯定不同性别,这时概率是 0.50 ,记为: P ( G.B ) =P(GB)+P(BG) = 0.50 (以上这些在贝叶斯理论里被称为先验概率,就是说根据专家意见或者积累经验形成的认识,这一点是被频率论极为指责的,看不懂,可以忽略这些) 现在的难题是,至少一个是男孩的概率是多少?(基于我们想要个男孩的愿望) 我们把一个已知是男孩,另一个也是男孩的概率记为: P ( BB|B ) —— 意为在 B 的条件下, BB 的概率。 根据贝叶斯经典公式(推论过程你不需懂了,这个有 N 多专著在证明下式是成立的): P(BB|B) = P(B|BB) · P(BB) / P(B) = 1 · 1/4 / (3/4) = 1/3 上式中, P(B|BB) 表示在两个都是男孩( BB )的条件下,其中一个是男孩( B )的概率(这是显而易见是肯定存在的,所以此值等于 1 );而 P ( BB )是两个都是男孩,如前面定义的等于 1/4 ;比较特殊的至少一个是男孩的概率 P ( B )为什么等于 3/4? 因为至少一个是男孩的概率 P ( B )应该等于两个都是男孩的概率 P ( BB )加上两个孩子不同性别的概率 P ( G.B ),所以: P ( B ) = P ( BB ) +P ( G.B ) =1/4 + 1/2 = 3/4 现在我们可以放心的说,如果一个已知是男孩,另一个也是男孩的概率是比较低的,只有 1/3 ,即只有 33% ;换言之,我们有了一个女儿,再生一个还是女儿的概率只有 33% ,所以再生一个男孩的概率会非常高。 这么说你肯定高兴了,生二胎,生儿子! 先别高兴太早,我们接着分析,我们的结果还是和常识不一致啊,生男生女就应该是各有 50% 才对啊? 我们仔细来说这个问题,有两种表述: ( 1 )董先生和吴小姐的第一个孩子是女孩, 生第二个孩子 ,也是女孩的概率是多少? ( 2 )董先生和吴小姐可以生两个孩子, 至少一个是女孩 ,两个都是女孩的概率是多少? 你仔细想想上面两个表述一样吗? 这是 1959 年美国人的原始问题改述。 其实前面的分析是偷换概念了,我们明明分析的是第二个问题,而不是第一个问题! 第一个问题的答案还是 1/2 ,而第二个问题的答案按照分析是 1/3. 看来我们二胎生男孩的概率又回到了 1/2 ,失望了吧! 别急,我们接着分析。 第二个问题的结果肯定是 1/3 吗? 不一定。 首先,我们认识问题是非常模糊的,你说 “ 至少一个是女孩 ” 你有什么依据?基于确切的文字和可能的假设,其实都是模糊的,模糊性已被 2004 年 Nickerson 的专著,中文译为 “ 认知和机会:概率推理的心理学 ” 一书所证明,还有最近更多文献在讨论这个模糊性。在此不论。 再次,第二个问题什么时候和第一个问题是等价的呢?只要我们在第二个问题定义时,说 “ 至少一个是女孩 ” ,我们就指定第一个必须是女孩。此时,两个问题其实是同一个问题。第二个问题的答案应该还是 1/2 ,而不是 1/3. 最后,还有一个随机取样的问题,这又是概率论上另一个大的领域,到底有没有真随机?很多大科学家是倾向于没有真随机(比如牛顿,逝世前用了 10 多年要证明上帝是存在的,没有证明完就去世了,很可惜),他们认为只有伪随机的(我们做风险评估的,都是用的伪随机,比如蒙特卡罗取样,我是坚决认为世界上存在真随机的,毕竟我从事的是实证科学,要否定上帝的存在),他们认为世界是由上帝置骰子决定的,这是科学和哲学(或者更高的神学、玄学之争),在此不展开,我们用两种表述随机性来说明第二个问题: ( 1 )在所有有两个孩子的家庭中,每个家庭中至少一个是女孩, 家庭的选择是随机的 ,那么第二个问题的答案就是 1/3. ( 2 )在所有有两个孩子的家庭中, 孩子的选择是随机的 ,其中一个孩子的性别是指定的(女孩),那么第二个问题的答案就是 1/2. 你仔细想下,上面两个表述是不同的。 但是也有很多学者认为上面两种定义随机性的表述也是模糊的(证明没有找到),他们的理由我来通俗的翻译: 你到有两个孩子的家庭里,看见一个是女孩,另一个躲起来了,你不知道男女。这个时候,这种情况其实就是第二个问题说的 “ 至少一个是女孩 ” 。但是不一定符合第一个问题,因为你看不到第二个孩子,如果你看到第二个孩子是男孩,就不匹配第一个问题了。 所以说,你看到第一个是女孩,其实是命题的充分条件,而非必要条件。 (补充下数学知识,如果 A 成立,导致 B 成立, A 叫做 B 的充分条件, B 叫做A的必要条件;如果 A 成立导致 B 成立,同时 B 成立也导致 A 成立, A 叫做 B 的充分必要条件) 争议的来源其实主要来源于我们表达的 “ 至少 ” ,人类语言受限,什么叫 “ 至少 ” ?你到别人家里看见一个女孩,确定她是个女孩,这叫 “ 至少 ” 一个女孩吗?如果从取样的角度说:是以下哪种情况:是从一个群体中,发现一个女孩,而后把她 “ 取 ” 走,再替换一个新人,这叫 “ 至少 ” ;还是从群体中发现一个女孩,不 “ 取走 ” 她,继续再在这个整体中寻找发现(有可能还发现是同一个女孩),这叫 “ 至少 ” 。 以上两种情况,以我做风险评估的理解,所谓取样应该是第一个解释是对的。 下面我们再用贝叶斯理论来解释刚才这个说明,你就会知道贝叶斯是多么伟大了,为什么被 SCIENCE 期刊称为 “ 永不会灭亡的理论 ” 。 按照前一封邮件的贝叶斯方法,我们把表述 “ 这个孩子是男孩 ” 记为 b ,那么仍然根据贝叶斯经典公式,下式是必然成立的: P(BB|b) = P(b|BB) · P(BB) / P(b) = 1 · 1/4 / 1/2 = 1/2 . 意义同前。唯一不同的是 P(b) 是何意?我们把它看做是从所有可能的情形中取样,发现是男孩的概率(注意这里没有说 “ 至少 ” ),此时肯定的是 P(b) = 1/2 贝叶斯巧妙的绕过了人类语言中 “ 至少 ” 这一模糊性,利用先验概率(还记得前面提到的这个概念吗?),我们来个预先可以肯定的共识(或者是公理吧),即两个孩子都是男孩、都是女孩、或者一男一女的概率各为 1/3 ,用数学式表达就是: P(GG) = P(BB) = P(G.B) = 1/3. 那么在这种情况下, “ 至少 ” 这一假设产生的结果就是 P(BB|B) = 1/2 (差不多可以对应上面说的第二个问题的第二种表述 “ 孩子的选择是随机的 ” ) 同时,在这一情况下,取样假设后的结果是 P(BB|b)=2/3. 我们把刚才的问题扩展一下,假设你来投资下赌注。 你投资 1 块钱,假设别人家生了两个孩子,如果两个都是男孩,你就会赢 4 块钱来。 下面两种情况,哪一种你会更开心: ( 1 )知道其中一个是男孩。 ( 2 )知道其中至少是一个男孩(呵呵,又是 “ 至少 ” )。 毋庸置疑,按照常识,第二种的概率更低。其实上面两种情况正好对应着前面的两个问题,结果当然是不同的。 下面换为数字,如果我们赌其中一个孩子是男孩,并且赢了,投资就会翻倍(即赢 2 块钱来);再赌第二个孩子是男孩,如果能赢,投资再翻倍,就会赢 4 块钱了,所以赢的概率,应该叫赔率 1:2. 第二种情况,如果我们知道其中至少是一个男孩,我们的投资会追加,因为我们有一定把握了,我们目前的 1 块钱,实际 “ 身价 ” 已经是 4/3 块钱了,要真正赢回 4 块钱,我们必须增加财富的 3 倍(即 4/3 乘以多少等于 4 块钱?),所以,赔率是 1:3. 以上分析,不是我原创的,它叫 Martingale 分析法。 来继续挑战下思维吧。 我们把问题再变化下: 假设我们有了两个孩子,有一天我带女儿路上遇见我大学同学,这时我自豪的对他说,这是我的女儿,问题:我的另一个孩子也是女孩的概率是多少? 这个问题的答案当然和前面是一样的,概率是 1/2. 但是,这和前面的问题是不同的,在我带女儿路上遇见大学同学前,同学是知道我有两个孩子的,但并不知道是两个男孩( BB )、两个女孩( GG ),还是一男一女( BG 或 GB )。所以我大学同学知道我有两个女儿的概率是 1/4 ,这时经我介绍我的女儿后,他知道我有一个女儿了,会把两个男孩( BB )的可能给直接排除掉了,我只可能在剩余的三种情况里选择:两个女孩( GG ),或者老大男孩、老二是女孩( BG ),或者老大女孩、老二是男孩( GB )。那么,我有两个女孩的概率只能是上述三种情况的一种,即 1/3. 为什么又出现了上面说到的两个答案不一样? 首先我们要做个假设,我们有两个孩子,带谁出门是随机的。那么如果我带出来的孩子是女儿,此时我有两个女孩( GG )的概率应该是一男一女( GB 或 BG )的两倍,此时因为我已经带出来是女孩了,我有两个男孩的概率降为 0 ,可以排除这种情况。我带出来女儿,另一个是男孩,或者另一个是女孩,这两种可能性相等,各占 1/2. 再次,我们来做个假设,我当爸爸的就愿带女儿出门(女儿是爸爸上辈子情人吗,呵呵),因此带女儿出门的概率提高,在这种情况下,我不管是有两个女孩( GG ),还是一男一女( BG 或 GB ),都会倾向于带女儿出门遇见大学同学,这时我另一个孩子是女儿的概率也是 1/3. 看吧,上面两种情况是不是正好对应前面说的两个问题? 当然以上的问题也不是我首先想到的,是两个人 Bar-Hillel 和 Falk 在 1982 年提出来的。 再来看另外一个经典问题,是 Vos Savant 在 1996 年首先想到的: 有一个女人和一个男人(两人不认识,生活也没有交叉),他们各有两个孩子,我们已知女人至少有一个是男孩,而男人家老大是个男孩。问题是:女人家有两个男孩,和男人家有两个男孩的的概率相等吗? 如果你理解了上面的各种情况,你会立刻知道答案应该是女人家 1/3 ,男人家 1/2. 为了验证, Vos Savant 居然真的调研了 17946 个有两个孩子的女人,发现至少有一个是男孩,另一个也是男孩的比例是 35.9% ,非常惊人的接近 1/3 !(其实按照数学极限理论,这和抛硬币是一样的道理,样品越多,越接近总体,即越接近理论极限值)。 但是,我们必须明白,我们以上的计算都是基于男女性别是独立的,即男女出现的概率相同(和贝叶斯的先验一样),但是实际上,按照中国传统,男孩比女孩更受欢迎,导致男女性并不独立,或者说二胎的性别并不独立于一胎的性别。如果调研来验证,会出现极大的偏差。 根据前面的分析,我们发现数学都是 “ 冷冰冰 ” 的,一点都不温情。似乎是没有正确答案。 这个生男生女的悖论问题还引起很多心理学专业的思考,比如 Fox 和 Levav 在 2004 年用两种表述来测试看人们怎么 “ 估计 ” 概率: ( 1 )我有两个孩子,其中至少一个是女孩。另一个也是女孩的概率是多少? ( 2 )我有两个孩子,但是不会是两个都是男孩。我两个孩子都是女孩的概率是多少? 那么,这两种表述其实是给人有心理暗示的,第一个表述似乎是暗示读者只有两种可能结果(要么男孩、要么女孩),因为我问的是 “ 另一个 ” ,只能二选一,这是一种误导;第二种给人的印象是一下子就跳到了四种可能性,一种已经排除了(都是男孩),剩下有三种,所以只能三选一。 Fox 和 Levav 实际调研后发现 85% 的读者会认为第一个问题答案是 1/2 ,而仅有 39% 的读者会认为第二个问题答案也是 1/2. 所以心理学解释是这属于先入为主的诱导式问题,让你自然向目标答案靠近。 以上我主要根据英文维基、概率论教材等材料写成,以及自己的一些思考认识,因为非数学、统计学专业,理解不对的地方请专业人士指正。
5825 次阅读|15 个评论
贝叶斯定理:关于隐藏博文的歉意和说明
热度 4 lix 2014-3-4 23:00
贝叶斯定理哲学上的意义之一,就是除了和我们关心的集合 A 和 B 之外,还有一些事件,它们与集合 A 和 B 之间,可能没有关系,也可能有关系但尚未发现或者尚未想到,我们先把他们归类为( -A + -B ),留待抽丝剥茧。 上一篇博文,讲应急反应的,没有得罪安哥拉、也没有踩科学网红线。但是毕竟有了没有想到的负面响应。所以主动隐藏了。这样有点对不起发表评论的网友们。抱歉!冷一段时间,修理修理,争取修复吧。这个负面响应真的属于( -A + -B )。 再举一个例子: 刘杜鹏 博主 · 在转基因问题上我为什么给方舟子站台 文章不错。但他的博客名: pengduliu 是怎么回事?从他的博文看起来,他不知道姓名中译英习惯的可能性很小;闹不清楚他自己究竟该姓什么的可能性更小。运用贝叶斯定理,老邪算出他双亲分别姓刘和杜的可能性大于其它可能。其中,父亲姓刘的可能性大于母亲姓刘的可能性。 没有冒犯的意思,只希望 刘杜鹏 博主证实一下老邪的贝叶斯定理用错了没有。
个人分类: 怪哉虫儿|6373 次阅读|5 个评论
[转载]【转载】数学之美番外篇:平凡而又神奇的贝叶斯方法
guisongtao 2013-11-11 20:39
无意中发现了一篇好文章,浅显易懂,生动有趣, 来自刘未鹏先生的博客,转载请注明原博客地址: http://mindhacks.cn/2008/09/21/the-magical-bayesian-method/ —————————————————————————————————————————————————————— 概率论只不过是把常识用数学公式表达了出来。 ——拉普拉斯 记得读本科的时候,最喜欢到城里的计算机书店里面去闲逛,一逛就是好几个小时;有一次,在书店看到一本书,名叫贝叶斯方法。当时数学系的课程还没有学到概率统计。我心想,一个方法能够专门写出一本书来,肯定很牛逼。后来,我发现当初的那个朴素归纳推理成立了——这果然是个牛逼的方法。 ——题记 目录 0. 前言 1. 历史 1.1 一个例子:自然语言的二义性 1.2 贝叶斯公式 2. 拼写纠正 3. 模型比较与贝叶斯奥卡姆剃刀 3.1 再访拼写纠正 3.2 模型比较理论(Model Comparasion)与贝叶斯奥卡姆剃刀(Bayesian Occam’s Razor) 3.3 最小描述长度原则 3.4 最优贝叶斯推理 4. 无处不在的贝叶斯 4.1 中文分词 4.2 统计机器翻译 4.3 贝叶斯图像识别,Analysis by Synthesis 4.4 EM 算法与基于模型的聚类 4.5 最大似然与最小二乘 5. 朴素贝叶斯方法(又名“愚蠢者的贝叶斯(idiot’s bayes)”) 5.1 垃圾邮件过滤器 5.2 为什么朴素贝叶斯方法令人诧异地好——一个理论解释 6. 层级贝叶斯模型 6.1 隐马可夫模型(HMM) 7. 贝叶斯网络 0. 前言 这是一篇关于贝叶斯方法的科普文,我会尽量少用公式,多用平白的语言叙述,多举实际例子。更严格的公式和计算我会在相应的地方注明参考资料。贝叶斯方法被证明是非常 general 且强大的推理框架,文中你会看到很多有趣的应用。 1. 历史 托马斯·贝叶斯(Thomas Bayes)同学的详细生平在 这里 。以下摘一段 wikipedia 上的简介: 所谓的贝叶斯方法源于他生前为解决一个“逆概”问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝叶斯写这篇文章之前,人们已经能够计算“正向概率”,如“假设袋子里面有N个白球,M个黑球,你伸手进去摸一把,摸出黑球的概率是多大”。而一个自然而然的问题是反过来:“如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测”。这个问题,就是所谓的逆概问题。 实际上,贝叶斯当时的论文只是对这个问题的一个直接的求解尝试,并不清楚他当时是不是已经意识到这里面包含着的深刻的思想。然而后来,贝叶斯方法席卷了概率论,并将应用延伸到各个问题领域,所有需要作出概率预测的地方都可以见到贝叶斯方法的影子,特别地,贝叶斯是机器学习的核心方法之一。这背后的深刻原因在于,现实世界本身就是不确定的,人类的观察能力是有局限性的(否则有很大一部分科学就没有必要做了——设想我们能够直接观察到电子的运行,还需要对原子模型争吵不休吗?),我们日常所观察到的只是事物表面上的结果,沿用刚才那个袋子里面取球的比方,我们往往只能知道从里面取出来的球是什么颜色,而并不能直接看到袋子里面实际的情况。这个时候,我们就需要提供一个猜测(hypothesis,更为严格的说法是“假设”,这里用“猜测”更通俗易懂一点),所谓猜测,当然就是不确定的(很可能有好多种乃至无数种猜测都能满足目前的观测), 但也绝对不是两眼一抹黑瞎蒙——具体地说,我们需要做两件事情:1. 算出各种不同猜测的可能性大小。2. 算出最靠谱的猜测是什么。第一个就是计算特定猜测的后验概率,对于连续的猜测空间则是计算猜测的概率密度函数。第二个则是所谓的模型比较,模型比较如果不考虑先验概率的话就是最大似然方法。 1.1 一个例子:自然语言的二义性 下面举一个自然语言的不确定性的例子。当你看到这句话: The girl saw the boy with a telescope. 你对这句话的含义有什么猜测?平常人肯定会说:那个女孩拿望远镜看见了那个男孩(即你对这个句子背后的实际语法结构的猜测是:The girl saw-with-a-telescope the boy )。然而,仔细一想,你会发现这个句子完全可以解释成:那个女孩看见了那个拿着望远镜的男孩(即:The girl saw the-boy-with-a-telescope )。那为什么平常生活中我们每个人都能够迅速地对这种二义性进行消解呢?这背后到底隐藏着什么样的思维法则?我们留到后面解释。 1.2 贝叶斯公式 贝叶斯公式是怎么来的? 我们还是使用 wikipedia 上的一个例子: 一所学校里面有 60% 的男生,40% 的女生。男生总是穿长裤,女生则一半穿长裤一半穿裙子。有了这些信息之后我们可以容易地计算“随机选取一个学生,他(她)穿长裤的概率和穿裙子的概率是多大”,这个就是前面说的“正向概率”的计算。然而,假设你走在校园中,迎面走来一个穿长裤的学生(很不幸的是你高度近似,你只看得见他(她)穿的是否长裤,而无法确定他(她)的性别),你能够推断出他(她)是男生的概率是多大吗? 一些认知科学的研究表明(《决策与判断》以及《 Rationality for Mortals 》第12章:小孩也可以解决贝叶斯问题),我们对形式化的贝叶斯问题不擅长,但对于以频率形式呈现的等价问题却很擅长。在这里,我们不妨把问题重新叙述成:你在校园里面 随机游走 ,遇到了 N 个穿长裤的人(仍然假设你无法直接观察到他们的性别),问这 N 个人里面有多少个女生多少个男生。 你说,这还不简单:算出学校里面有多少穿长裤的,然后在这些人里面再算出有多少女生,不就行了? 我们来算一算:假设学校里面人的总数是 U 个。60% 的男生都穿长裤,于是我们得到了 U * P(Boy) * P(Pants|Boy) 个穿长裤的(男生)(其中 P(Boy) 是男生的概率 = 60%,这里可以简单的理解为男生的比例;P(Pants|Boy) 是条件概率,即在 Boy 这个条件下穿长裤的概率是多大,这里是 100% ,因为所有男生都穿长裤)。40% 的女生里面又有一半(50%)是穿长裤的,于是我们又得到了 U * P(Girl) * P(Pants|Girl) 个穿长裤的(女生)。加起来一共是 U * P(Boy) * P(Pants|Boy) + U * P(Girl) * P(Pants|Girl) 个穿长裤的,其中有 U * P(Girl) * P(Pants|Girl) 个女生。两者一比就是你要求的答案。 下面我们把这个答案形式化一下:我们要求的是 P(Girl|Pants) (穿长裤的人里面有多少女生),我们计算的结果是 U * P(Girl) * P(Pants|Girl) / 。容易发现这里校园内人的总数是无关的,可以消去。于是得到 P(Girl|Pants) = P(Girl) * P(Pants|Girl) / 注意,如果把上式收缩起来,分母其实就是 P(Pants) ,分子其实就是 P(Pants, Girl) 。而这个比例很自然地就读作:在穿长裤的人( P(Pants) )里面有多少(穿长裤)的女孩( P(Pants, Girl) )。 上式中的 Pants 和 Boy/Girl 可以指代一切东西,所以其一般形式就是: P(B|A) = P(A|B) * P(B) / 收缩起来就是: P(B|A) = P(AB) / P(A) 其实这个就等于: P(B|A) * P(A) = P(AB) 难怪拉普拉斯说 概率论只是把常识用数学公式表达了出来 。 然而,后面我们会逐渐发现,看似这么平凡的贝叶斯公式,背后却隐含着非常深刻的原理。 2. 拼写纠正 经典著作《人工智能:现代方法》的作者之一 Peter Norvig 曾经写过一篇介绍如何写一个拼写检查/纠正器的文章(原文在 这里 ,徐宥的翻译版在 这里 ,这篇文章很深入浅出,强烈建议读一读),里面用到的就是贝叶斯方法,这里我们不打算复述他写的文章,而是简要地将其核心思想介绍一下。 首先,我们需要询问的是:“ 问题是什么? ” 问题是我们看到用户输入了一个不在字典中的单词,我们需要去猜测:“这个家伙到底真正想输入的单词是什么呢?”用刚才我们形式化的语言来叙述就是,我们需要求: P( 我们猜测他想输入的单词 | 他实际输入的单词) 这个概率。并找出那个使得这个概率最大的猜测单词。显然,我们的猜测未必是唯一的,就像前面举的那个自然语言的歧义性的例子一样;这里,比如用户输入: thew ,那么他到底是想输入 the ,还是想输入 thaw ?到底哪个猜测可能性更大呢?幸运的是我们可以用贝叶斯公式来直接出它们各自的概率,我们不妨将我们的多个猜测记为 h1 h2 .. ( h 代表 hypothesis),它们都属于一个有限且离散的猜测空间 H (单词总共就那么多而已),将用户实际输入的单词记为 D ( D 代表 Data ,即观测数据),于是 P( 我们的猜测1 | 他实际输入的单词) 可以抽象地记为: P(h1 | D) 类似地,对于我们的猜测2,则是 P(h2 | D)。不妨统一记为: P(h | D) 运用一次贝叶斯公式,我们得到: P(h | D) = P(h) * P(D | h) / P(D) 对于不同的具体猜测 h1 h2 h3 .. ,P(D) 都是一样的,所以在比较 P(h1 | D) 和 P(h2 | D) 的时候我们可以忽略这个常数。即我们只需要知道: P(h | D) ∝ P(h) * P(D | h) (注:那个符号的意思是“正比例于”,不是无穷大,注意符号右端是有一个小缺口的。) 这个式子的抽象含义是:对于给定观测数据,一个猜测是好是坏,取决于“这个猜测本身独立的可能性大小(先验概率,Prior )”和“这个猜测生成我们观测到的数据的可能性大小”(似然,Likelihood )的乘积。具体到我们的那个 thew 例子上,含义就是,用户实际是想输入 the 的可能性大小取决于 the 本身在词汇表中被使用的可能性(频繁程度)大小(先验概率)和 想打 the 却打成 thew 的可能性大小(似然)的乘积。 下面的事情就很简单了,对于我们猜测为可能的每个单词计算一下 P(h) * P(D | h) 这个值,然后取最大的,得到的就是最靠谱的猜测。 一点注记 :Norvig 的拼写纠正器里面只提取了编辑距离为 2 以内的所有已知单词。这是为了避免去遍历字典中每个单词计算它们的 P(h) * P(D | h) ,但这种做法为了节省时间带来了一些误差。但话说回来难道我们人类真的回去遍历每个可能的单词来计算他们的后验概率吗?不可能。实际上,根据认知神经科学的观点,我们首先根据错误的单词做一个 bottom-up 的关联提取,提取出有可能是实际单词的那些候选单词,这个提取过程就是所谓的基于内容的提取,可以根据错误单词的一些模式片段提取出有限的一组候选,非常快地缩小的搜索空间(比如我输入 explaination ,单词里面就有充分的信息使得我们的大脑在常数时间内把可能性 narrow down 到 explanation 这个单词上,至于具体是根据哪些线索——如音节——来提取,又是如何在生物神经网络中实现这个提取机制的,目前还是一个没有弄清的领域)。然后,我们对这有限的几个猜测做一个 top-down 的预测,看看到底哪个对于观测数据(即错误单词)的预测效力最好,而如何衡量预测效率则就是用贝叶斯公式里面的那个 P(h) * P(D | h) 了——虽然我们很可能使用了 一些启发法来简化计算 。后面我们还会提到这样的 bottom-up 的关联提取。 3. 模型比较与奥卡姆剃刀 3.1 再访拼写纠正 介绍了贝叶斯拼写纠正之后,接下来的一个自然而然的问题就来了:“ 为什么? ”为什么要用贝叶斯公式?为什么贝叶斯公式在这里可以用?我们可以很容易地领会为什么贝叶斯公式用在前面介绍的那个男生女生长裤裙子的问题里是正确的。但为什么这里? 为了回答这个问题,一个常见的思路就是想想: 非得这样吗? 因为如果你想到了另一种做法并且证明了它也是靠谱的,那么将它与现在这个一比较,也许就能得出很有价值的信息。那么对于拼写纠错问题你能想到其他方案吗? 不管怎样,一个最常见的替代方案就是,选择离 thew 的 编辑距离 最近的。然而 the 和 thaw 离 thew 的编辑距离都是 1 。这可咋办捏?你说,不慌,那还是好办。我们就看到底哪个更可能被错打为 thew 就是了。我们注意到字母 e 和字母 w 在键盘上离得很紧,无名指一抽筋就不小心多打出一个 w 来,the 就变成 thew 了。而另一方面 thaw 被错打成 thew 的可能性就相对小一点,因为 e 和 a 离得较远而且使用的指头相差一个指头(一个是中指一个是小指,不像 e 和 w 使用的指头靠在一块——神经科学的证据表明紧邻的身体设施之间容易串位)。OK,很好,因为你现在已经是在用最大似然方法了,或者直白一点,你就是在计算那个使得 P(D | h) 最大的 h 。 而贝叶斯方法计算的是什么?是 P(h) * P(D | h) 。多出来了一个 P(h) 。我们刚才说了,这个多出来的 P(h) 是特定猜测的先验概率。为什么要掺和进一个先验概率?刚才说的那个最大似然不是挺好么?很雄辩地指出了 the 是更靠谱的猜测。有什么问题呢?既然这样,我们就从给最大似然找茬开始吧——我们假设两者的似然程度是一样或非常相近,这样不就难以区分哪个猜测更靠谱了吗?比如用户输入tlp ,那到底是 top 还是 tip ?(这个例子不怎么好,因为 top 和 tip 的词频可能仍然是接近的,但一时想不到好的英文单词的例子,我们不妨就假设 top 比 tip 常见许多吧,这个假设并不影响问题的本质。)这个时候,当最大似然不能作出决定性的判断时,先验概率就可以插手进来给出指示——“既然你无法决定,那么我告诉你,一般来说 top 出现的程度要高许多,所以更可能他想打的是 top ”)。 以上只是最大似然的一个问题,即并不能提供决策的全部信息。 最大似然还有另一个问题:即便一个猜测与数据非常符合,也并不代表这个猜测就是更好的猜测,因为这个猜测本身的可能性也许就非常低。比如 MacKay 在《Information Theory : Inference and Learning Algorithms》里面就举了一个很好的例子:-1 3 7 11 你说是等差数列更有可能呢?还是 -X^3 / 11 + 9/11*X^2 + 23/11 每项把前项作为 X 带入后计算得到的数列?此外曲线拟合也是,平面上 N 个点总是可以用 N-1 阶多项式来完全拟合,当 N 个点近似但不精确共线的时候,用 N-1 阶多项式来拟合能够精确通过每一个点,然而用直线来做拟合/线性回归的时候却会使得某些点不能位于直线上。你说到底哪个好呢?多项式?还是直线?一般地说肯定是越低阶的多项式越靠谱(当然前提是也不能忽视“似然”P(D | h) ,明摆着一个多项式分布您愣是去拿直线拟合也是不靠谱的,这就是为什么要把它们两者乘起来考虑。),原因之一就是低阶多项式更常见,先验概率( P(h) )较大(原因之二则隐藏在 P(D | h) 里面),这就是为什么我们要用 样条 来插值,而不是直接搞一个 N-1 阶多项式来通过任意 N 个点的原因。 以上分析当中隐含的哲学是,观测数据总是会有各种各样的误差,比如观测误差(比如你观测的时候一个 MM 经过你一不留神,手一抖就是一个误差出现了),所以如果过分去寻求能够完美解释观测数据的模型,就会落入所谓的数据 过配(overfitting) 的境地,一个过配的模型试图连误差(噪音)都去解释(而实际上噪音又是不需要解释的),显然就过犹不及了。所以 P(D | h) 大不代表你的 h (猜测)就是更好的 h。还要看 P(h) 是怎样的。所谓 奥卡姆剃刀 精神就是说:如果两个理论具有相似的解释力度,那么优先选择那个更简单的(往往也正是更平凡的,更少繁复的,更常见的)。 过分匹配的另一个原因在于当观测的结果并不是因为误差而显得“不精确”而是因为真实世界中对数据的结果产生贡献的因素太多太多,跟噪音不同,这些偏差是一些另外的因素集体贡献的结果,不是你的模型所能解释的——噪音那是不需要解释——一个现实的模型往往只提取出几个与结果相关度很高,很重要的因素(cause)。这个时候观察数据会倾向于围绕你的有限模型的预测结果呈 正态分布 ,于是你实际观察到的结果就是这个正态分布的 随机取样 ,这个取样很可能受到其余因素的影响偏离你的模型所预测的中心,这个时候便不能贪心不足地试图通过改变模型来“完美”匹配数据,因为那些使结果偏离你的预测的贡献因素不是你这个有限模型里面含有的因素所能概括的,硬要打肿脸充胖子只能导致不实际的模型,举个教科书例子:身高和体重的实际关系近似于一个二阶多项式的关系,但大家都知道并不是只有身高才会对体重产生影响,物理世界影响体重的因素太多太多了,有人身材高大却瘦得跟稻草,有人却是横长竖不长。但不可否认的是总体上来说,那些特殊情况越是特殊就越是稀少,呈围绕最普遍情况(胖瘦适中)的正态分布,这个分布就保证了我们的身高——体重相关模型能够在大多数情况下做出靠谱的预测。但是——刚才说了,特例是存在的,就算不是特例,人有胖瘦,密度也有大小,所以完美符合身高——体重的某个假想的二阶多项式关系的人是不存在的,我们又不是欧几里德几何世界当中的理想多面体,所以,当我们对人群随机抽取了 N 个样本(数据点)试图对这 N 个数据点拟合出一个多项式的话就得注意,它肯定得是二阶多项式,我们要做的只是去根据数据点计算出多项式各项的参数(一个典型的方法就是最小二乘);它肯定不是直线(我们又不是稻草),也不是三阶多项式四阶多项式.. 如果硬要完美拟合 N 个点,你可能会整出一个 N-1 阶多项式来——设想身高和体重的关系是 5 阶多项式看看? 3.2 模型比较理论(Model Comparasion)与贝叶斯奥卡姆剃刀(Bayesian Occam’s Razor) 实际上,模型比较就是去比较哪个模型(猜测)更可能隐藏在观察数据的背后。其基本思想前面已经用拼写纠正的例子来说明了。我们对用户实际想输入的单词的猜测就是模型,用户输错的单词就是观测数据。我们通过: P(h | D) ∝ P(h) * P(D | h) 来比较哪个模型最为靠谱。前面提到,光靠 P(D | h) (即“似然”)是不够的,有时候还需要引入 P(h) 这个先验概率。奥卡姆剃刀就是说 P(h) 较大的模型有较大的优势,而最大似然则是说最符合观测数据的(即 P(D | h) 最大的)最有优势。整个模型比较就是这两方力量的拉锯。我们不妨再举一个简单的例子来说明这一精神:你随便找枚硬币,掷一下,观察一下结果。好,你观察到的结果要么是“正”,要么是“反”(不,不是少林足球那枚硬币:P ),不妨假设你观察到的是“正”。现在你要去根据这个观测数据推断这枚硬币掷出“正”的概率是多大。根据最大似然估计的精神,我们应该猜测这枚硬币掷出“正”的概率是 1 ,因为这个才是能最大化 P(D | h) 的那个猜测。然而每个人都会大摇其头——很显然,你随机摸出一枚硬币这枚硬币居然没有反面的概率是“不存在的”,我们对一枚随机硬币是否一枚有偏硬币,偏了多少,是有着一个先验的认识的,这个认识就是绝大多数硬币都是基本公平的,偏得越多的硬币越少见(可以用一个 beta 分布 来表达这一先验概率)。将这个先验正态分布 p(θ) (其中 θ 表示硬币掷出正面的比例,小写的 p 代表这是 概率密度函数 )结合到我们的问题中,我们便不是去最大化 P(D | h) ,而是去最大化 P(D | θ) * p(θ) ,显然 θ = 1 是不行的,因为 P(θ=1) 为 0 ,导致整个乘积也为 0 。实际上,只要对这个式子求一个导数就可以得到最值点。 以上说的是当我们知道先验概率 P(h) 的时候,光用最大似然是不靠谱的,因为最大似然的猜测可能先验概率非常小。然而,有些时候,我们对于先验概率一无所知,只能假设每种猜测的先验概率是均等的,这个时候就只有用最大似然了。实际上,统计学家和贝叶斯学家有一个有趣的争论,统计学家说:我们让数据自己说话。言下之意就是要摒弃先验概率。而贝叶斯支持者则说:数据会有各种各样的偏差,而一个靠谱的先验概率则可以对这些随机噪音做到健壮。事实证明贝叶斯派胜利了,胜利的关键在于所谓先验概率其实也是经验统计的结果,譬如为什么我们会认为绝大多数硬币是基本公平的?为什么我们认为大多数人的肥胖适中?为什么我们认为肤色是种族相关的,而体重则与种族无关?先验概率里面的“先验”并不是指先于一切经验,而是仅指先于我们“当前”给出的观测数据而已,在硬币的例子中先验指的只是先于我们知道投掷的结果这个经验,而并非“先天”。 然而,话说回来,有时候我们必须得承认,就算是基于以往的经验,我们手头的“先验”概率还是均匀分布,这个时候就必须依赖用最大似然,我们用前面留下的一个自然语言二义性问题来说明这一点: The girl saw the boy with a telescope. 到底是 The girl saw-with-a-telescope the boy 这一语法结构,还是 The girl saw the-boy-with-a-telescope 呢?两种语法结构的常见程度都差不多(你可能会觉得后一种语法结构的常见程度较低,这是事后偏见,你只需想想 The girl saw the boy with a book 就知道了。当然,实际上从大规模语料统计结果来看后一种语法结构的确稍稍不常见一丁点,但是绝对不足以解释我们对第一种结构的强烈倾向)。那么到底为什么呢? 我们不妨先来看看 MacKay 在书中举的一个漂亮的例子: 图中有多少个箱子?特别地,那棵书后面是一个箱子?还是两个箱子?还是三个箱子?还是.. 你可能会觉得树后面肯定是一个箱子,但为什么不是两个呢?如下图: 很简单,你会说:要是真的有两个箱子那才怪了,怎么就那么巧这两个箱子刚刚好颜色相同,高度相同呢? 用概率论的语言来说,你刚才的话就翻译为:猜测 h 不成立,因为 P(D | h) 太小(太巧合)了。我们的直觉是:巧合(小概率)事件不会发生。所以当一个猜测(假设)使得我们的观测结果成为小概率事件的时候,我们就说“才怪呢,哪能那么巧捏?!” 现在我们可以回到那个自然语言二义性的例子,并给出一个完美的解释了:如果语法结构是 The girl saw the-boy-with-a-telecope 的话,怎么那个男孩偏偏手里拿的就是望远镜——一个可以被用来 saw-with 的东东捏?这也忒小概率了吧。他咋就不会拿本书呢?拿什么都好。怎么偏偏就拿了望远镜?所以唯一的解释是,这个“巧合”背后肯定有它的必然性,这个必然性就是,如果我们将语法结构解释为 The girl saw-with-a-telescope the boy 的话,就跟数据完美吻合了——既然那个女孩是用某个东西去看这个男孩的,那么这个东西是一个望远镜就完全可以解释了(不再是小概率事件了)。 自然语言二义性很常见,譬如上文中的一句话: 参见《决策与判断》以及《 Rationality for Mortals 》第12章:小孩也可以解决贝叶斯问题 就有二义性:到底是参见这两本书的第 12 章,还是仅仅是第二本书的第 12 章呢?如果是这两本书的第 12 章那就是咄咄怪事了,怎么恰好两本书都有第 12 章,都是讲同一个问题,更诡异的是,标题还相同呢? 注意,以上做的是似然估计(即只看 P(D | h) 的大小),不含先验概率。通过这两个例子,尤其是那个树后面的箱子的例子我们可以看到,似然估计里面也蕴含着奥卡姆剃刀:树后面的箱子数目越多,这个模型就越复杂。单个箱子的模型是最简单的。似然估计选择了更简单的模型。 这个就是所谓的 贝叶斯奥卡姆剃刀(Bayesian Occam’s Razor) ,因为这个剃刀工作在贝叶斯公式的似然(P(D | h) )上,而不是模型本身( P(h) )的先验概率上,后者是传统的奥卡姆剃刀。关于贝叶斯奥卡姆剃刀我们再来看一个前面说到的曲线拟合的例子:如果平面上有 N 个点,近似构成一条直线,但绝不精确地位于一条直线上。这时我们既可以用直线来拟合(模型1),也可以用二阶多项式(模型2)拟合,也可以用三阶多项式(模型3),.. ,特别地,用 N-1 阶多项式便能够保证肯定能完美通过 N 个数据点。那么,这些可能的模型之中到底哪个是最靠谱的呢?前面提到,一个衡量的依据是奥卡姆剃刀:越是高阶的多项式越是繁复和不常见。然而,我们其实并不需要依赖于这个先验的奥卡姆剃刀,因为有人可能会争辩说:你怎么就能说越高阶的多项式越不常见呢?我偏偏觉得所有阶多项式都是等可能的。好吧,既然如此那我们不妨就扔掉 P(h) 项,看看 P(D | h) 能告诉我们什么。我们注意到越是高阶的多项式,它的轨迹弯曲程度越是大,到了八九阶简直就是直上直下,于是我们不仅要问:一个比如说八阶多项式在平面上随机生成的一堆 N 个点偏偏恰好近似构成一条直线的概率(即 P(D | h) )有多大?太小太小了。反之,如果背后的模型是一条直线,那么根据该模型生成一堆近似构成直线的点的概率就大得多了。这就是贝叶斯奥卡姆剃刀。 这里只是提供一个关于贝叶斯奥卡姆剃刀的科普,强调直观解释,更多理论公式请参考 MacKay 的著作 《Information Theory : Inference and Learning Algorithms》第 28 章。 3.3 最小描述长度原则 贝叶斯模型比较理论与信息论有一个有趣的关联: P(h | D) ∝ P(h) * P(D | h) 两边求对数,将右式的乘积变成相加: ln P(h | D) ∝ ln P(h) + ln P(D | h) 显然,最大化 P(h | D) 也就是最大化 ln P(h | D)。而 ln P(h) + ln P(D | h) 则可以解释为模型(或者称“假设”、“猜测”)h 的编码长度加上在该模型下数据 D 的编码长度。使这个和最小的模型就是最佳模型。 而究竟如何定义一个模型的编码长度,以及数据在模型下的编码长度则是一个问题。更多可参考 Mitchell 的 《Machine Learning》的 6.6 节,或 Mackay 的 28.3 节) 3.4 最优贝叶斯推理 所谓的推理,分为两个过程,第一步是对观测数据建立一个模型。第二步则是使用这个模型来推测未知现象发生的概率。我们前面都是讲的对于观测数据给出最靠谱的那个模型。然而很多时候,虽然某个模型是所有模型里面最靠谱的,但是别的模型也并不是一点机会都没有。譬如第一个模型在观测数据下的概率是 0.5 。第二个模型是 0.4 ,第三个是 0.1 。如果我们只想知道对于观测数据哪个模型最可能,那么只要取第一个就行了,故事到此结束。然而很多时候我们建立模型是为了推测未知的事情的发生概率,这个时候,三个模型对未知的事情发生的概率都会有自己的预测,仅仅因为某一个模型概率稍大一点就只听他一个人的就太不民主了。所谓的最优贝叶斯推理就是将三个模型对于未知数据的预测结论加权平均起来(权值就是模型相应的概率)。显然,这个推理是理论上的制高点,无法再优了,因为它已经把所有可能性都考虑进去了。 只不过实际上我们是基本不会使用这个框架的,因为计算模型可能非常费时间,二来模型空间可能是连续的,即有无穷多个模型(这个时候需要计算模型的概率分布)。结果还是非常费时间。所以这个被看作是一个理论基准。 4. 无处不在的贝叶斯 以下我们再举一些实际例子来说明贝叶斯方法被运用的普遍性,这里主要集中在机器学习方面,因为我不是学经济的,否则还可以找到一堆经济学的例子。 4.1 中文分词 贝叶斯是机器学习的核心方法之一。比如中文分词领域就用到了贝叶斯。Google 研究员吴军在《数学之美》系列中就有一篇是介绍中文分词的,这里只介绍一下核心的思想,不做赘述,详细请参考吴军的文章( 这里 )。 分词问题的描述为:给定一个句子(字串),如: 南京市长江大桥 如何对这个句子进行分词(词串)才是最靠谱的。例如: 1. 南京市/长江大桥 2. 南京/市长/江大桥 这两个分词,到底哪个更靠谱呢? 我们用贝叶斯公式来形式化地描述这个问题,令 X 为字串(句子),Y 为词串(一种特定的分词假设)。我们就是需要寻找使得 P(Y|X) 最大的 Y ,使用一次贝叶斯可得: P(Y|X) ∝ P(Y)*P(X|Y) 用自然语言来说就是 这种分词方式(词串)的可能性 乘以 这个词串生成我们的句子的可能性。我们进一步容易看到:可以近似地将 P(X|Y) 看作是恒等于 1 的,因为任意假想的一种分词方式之下生成我们的句子总是精准地生成的(只需把分词之间的分界符号扔掉即可)。于是,我们就变成了去最大化 P(Y) ,也就是寻找一种分词使得这个词串(句子)的概率最大化。而如何计算一个词串: W1, W2, W3, W4 .. 的可能性呢?我们知道,根据 联合概率 的公式展开:P(W1, W2, W3, W4 ..) = P(W1) * P(W2|W1) * P(W3|W2, W1) * P(W4|W1,W2,W3) * .. 于是我们可以通过一系列的条件概率(右式)的乘积来求整个联合概率。然而不幸的是随着条件数目的增加(P(Wn|Wn-1,Wn-2,..,W1) 的条件有 n-1 个), 数据稀疏问题 也会越来越严重,即便语料库再大也无法统计出一个靠谱的 P(Wn|Wn-1,Wn-2,..,W1) 来。为了缓解这个问题,计算机科学家们一如既往地使用了“天真”假设:我们假设句子中一个词的出现概率只依赖于它前面的有限的 k 个词(k 一般不超过 3,如果只依赖于前面的一个词,就是2元 语言模型 (2-gram),同理有 3-gram 、 4-gram 等),这个就是所谓的“有限地平线”假设。虽然这个假设很傻很天真,但结果却表明它的结果往往是很好很强大的,后面要提到的朴素贝叶斯方法使用的假设跟这个精神上是完全一致的,我们会解释为什么像这样一个天真的假设能够得到强大的结果。目前我们只要知道,有了这个假设,刚才那个乘积就可以改写成: P(W1) * P(W2|W1) * P(W3|W2) * P(W4|W3) .. (假设每个词只依赖于它前面的一个词)。而统计 P(W2|W1) 就不再受到数据稀疏问题的困扰了。对于我们上面提到的例子“南京市长江大桥”,如果按照自左到右的贪婪方法分词的话,结果就成了“南京市长/江大桥”。但如果按照贝叶斯分词的话(假设使用 3-gram),由于“南京市长”和“江大桥”在语料库中一起出现的频率为 0 ,这个整句的概率便会被判定为 0 。 从而使得“南京市/长江大桥”这一分词方式胜出。 一点注记 :有人可能会疑惑,难道我们人类也是基于这些天真的假设来进行推理的?不是的。事实上,统计机器学习方法所统计的东西往往处于相当表层(shallow)的层面,在这个层面机器学习只能看到一些非常表面的现象,有一点科学研究的理念的人都知道:越是往表层去,世界就越是繁复多变。从机器学习的角度来说,特征(feature)就越多,成百上千维度都是可能的。特征一多,好了, 高维诅咒 就产生了,数据就稀疏得要命,不够用了。而我们人类的观察水平显然比机器学习的观察水平要更深入一些,为了避免数据稀疏我们不断地发明各种装置(最典型就是显微镜),来帮助我们直接深入到更深层的事物层面去观察更本质的联系,而不是在浅层对表面现象作统计归纳。举一个简单的例子,通过对大规模语料库的统计,机器学习可能会发现这样一个规律:所有的“他”都是不会穿 bra 的,所有的“她”则都是穿的。然而,作为一个男人,却完全无需进行任何统计学习,因为深层的规律就决定了我们根本不会去穿 bra 。至于机器学习能不能完成后者(像人类那样的)这个推理,则是人工智能领域的经典问题。至少在那之前, 声称统计学习方法能够终结科学研究 ( 原文 )的说法 是纯粹外行人说的话 。 4.2 统计机器翻译 统计机器翻译因为其简单,自动(无需手动添加规则),迅速成为了机器翻译的事实标准。而统计机器翻译的核心算法也是使用的贝叶斯方法。 问题是什么?统计机器翻译的问题可以描述为:给定一个句子 e ,它的可能的外文翻译 f 中哪个是最靠谱的。即我们需要计算:P(f|e) 。一旦出现条件概率贝叶斯总是挺身而出: P(f|e) ∝ P(f) * P(e|f) 这个式子的右端很容易解释:那些先验概率较高,并且更可能生成句子 e 的外文句子 f 将会胜出。我们只需简单统计(结合上面提到的 N-Gram 语言模型)就可以统计任意一个外文句子 f 的出现概率。然而 P(e|f) 却不是那么好求的,给定一个候选的外文局子 f ,它生成(或对应)句子 e 的概率是多大呢?我们需要定义什么叫 “对应”,这里需要用到一个分词对齐的平行语料库,有兴趣的可以参考 《Foundations of Statistical Natural Language Processing》第 13 章,这里摘选其中的一个例子:假设 e 为:John loves Mary 。我们需要考察的首选 f 是:Jean aime Marie (法文)。我们需要求出 P(e|f) 是多大,为此我们考虑 e 和 f 有多少种对齐的可能性,如: John (Jean) loves (aime) Marie (Mary) 就是其中的一种(最靠谱的)对齐,为什么要对齐,是因为一旦对齐了之后,就可以容易地计算在这个对齐之下的 P(e|f) 是多大,只需计算: P(John|Jean) * P(loves|aime) * P(Marie|Mary) 即可。 然后我们遍历所有的对齐方式,并将每种对齐方式之下的翻译概率 ∑ 求和。便可以获得整个的 P(e|f) 是多大。 一点注记 :还是那个问题:难道我们人类真的是用这种方式进行翻译的?highly unlikely 。这种计算复杂性非常高的东西连三位数乘法都搞不定的我们才不会笨到去使用呢。根据认知神经科学的认识,很可能我们是先从句子到语义(一个逐层往上(bottom-up)抽象的 folding 过程),然后从语义根据另一门语言的语法展开为另一门语言(一个逐层往下(top-down)的具体化 unfolding 过程)。如何可计算地实现这个过程,目前仍然是个难题。(我们看到很多地方都有 bottom-up/top-down 这样一个对称的过程,实际上有人猜测这正是生物神经网络原则上的运作方式,对视觉神经系统的研究尤其证明了这一点,Hawkins 在 《On Intelligence》 里面提出了一种 HTM (Hierarchical Temporal Memory)模型正是使用了这个原则。) 4.3 贝叶斯图像识别,Analysis by Synthesis 贝叶斯方法是一个非常 general 的推理框架。其核心理念可以描述成:Analysis by Synthesis (通过合成来分析)。06 年的认知科学新进展上有一篇 paper 就是讲用贝叶斯推理来解释视觉识别的,一图胜千言,下图就是摘自这篇 paper : 首先是视觉系统提取图形的边角特征,然后使用这些特征自底向上地激活高层的抽象概念(比如是 E 还是 F 还是等号),然后使用一个自顶向下的验证来比较到底哪个概念最佳地解释了观察到的图像。 4.4 EM 算法与基于模型的聚类 聚类 是一种 无指导的机器学习 问题,问题描述:给你一堆数据点,让你将它们最靠谱地分成一堆一堆的。聚类算法很多,不同的算法适应于不同的问题,这里仅介绍一个基于模型的聚类,该聚类算法对数据点的假设是,这些数据点分别是围绕 K 个核心的 K 个正态分布源所随机生成的,使用 Han JiaWei 的《Data Ming: Concepts and Techniques》中的图: 图中有两个正态分布核心,生成了大致两堆点。我们的聚类算法就是需要根据给出来的那些点,算出这两个正态分布的核心在什么位置,以及分布的参数是多少。这很明显又是一个贝叶斯问题,但这次不同的是,答案是连续的且有无穷多种可能性,更糟的是,只有当我们知道了哪些点属于同一个正态分布圈的时候才能够对这个分布的参数作出靠谱的预测,现在两堆点混在一块我们又不知道哪些点属于第一个正态分布,哪些属于第二个。反过来,只有当我们对分布的参数作出了靠谱的预测时候,才能知道到底哪些点属于第一个分布,那些点属于第二个分布。这就成了一个先有鸡还是先有蛋的问题了。为了解决这个循环依赖,总有一方要先打破僵局,说,不管了,我先随便整一个值出来,看你怎么变,然后我再根据你的变化调整我的变化,然后如此迭代着不断互相推导,最终收敛到一个解。这就是 EM 算法。 EM 的意思是“Expectation-Maximazation”,在这个聚类问题里面,我们是先随便猜一下这两个正态分布的参数:如核心在什么地方,方差是多少。然后计算出每个数据点更可能属于第一个还是第二个正态分布圈,这个是属于 Expectation 一步。有了每个数据点的归属,我们就可以根据属于第一个分布的数据点来重新评估第一个分布的参数(从蛋再回到鸡),这个是 Maximazation 。如此往复,直到参数基本不再发生变化为止。这个迭代收敛过程中的贝叶斯方法在第二步,根据数据点求分布的参数上面。 4.5 最大似然与最小二乘 学过线性代数的大概都知道经典的最小二乘方法来做线性回归。问题描述是:给定平面上 N 个点,(这里不妨假设我们想用一条直线来拟合这些点—— 回归 可以看作是 拟合 的特例,即允许误差的拟合),找出一条最佳描述了这些点的直线。 一个接踵而来的问题就是,我们如何定义最佳?我们设每个点的坐标为 (Xi, Yi) 。如果直线为 y = f(x) 。那么 (Xi, Yi) 跟直线对这个点的“预测”:(Xi, f(Xi)) 就相差了一个 ΔYi = |Yi – f(Xi)| 。最小二乘就是说寻找直线使得 (ΔY1)^2 + (ΔY2)^2 + .. (即误差的平方和)最小,至于为什么是误差的平方和而不是误差的绝对值和,统计学上也没有什么好的解释。然而贝叶斯方法却能对此提供一个完美的解释。 我们假设直线对于坐标 Xi 给出的预测 f(Xi) 是最靠谱的预测,所有纵坐标偏离 f(Xi) 的那些数据点都含有噪音,是噪音使得它们偏离了完美的一条直线,一个合理的假设就是偏离路线越远的概率越小,具体小多少,可以用一个正态分布曲线来模拟,这个分布曲线以直线对 Xi 给出的预测 f(Xi) 为中心,实际纵坐标为 Yi 的点 (Xi, Yi) 发生的概率就正比于 EXP 。(EXP(..) 代表以常数 e 为底的多少次方)。 现在我们回到问题的贝叶斯方面,我们要想最大化的后验概率是: P(h|D) ∝ P(h) * P(D|h) 又见贝叶斯!这里 h 就是指一条特定的直线,D 就是指这 N 个数据点。我们需要寻找一条直线 h 使得 P(h) * P(D|h) 最大。很显然,P(h) 这个先验概率是均匀的,因为哪条直线也不比另一条更优越。所以我们只需要看 P(D|h) 这一项,这一项是指这条直线生成这些数据点的概率,刚才说过了,生成数据点 (Xi, Yi) 的概率为 EXP 乘以一个常数。而 P(D|h) = P(d1|h) * P(d2|h) * .. 即假设各个数据点是独立生成的,所以可以把每个概率乘起来。于是生成 N 个数据点的概率为 EXP * EXP * EXP * .. = EXP {- } 最大化这个概率就是要最小化 (ΔY1)^2 + (ΔY2)^2 + (ΔY3)^2 + .. 。 熟悉这个式子吗? 5. 朴素贝叶斯方法 朴素贝叶斯方法是一个很特别的方法,所以值得介绍一下。我们用朴素贝叶斯在垃圾邮件过滤中的应用来举例说明。 5.1 贝叶斯垃圾邮件过滤器 问题是什么?问题是,给定一封邮件,判定它是否属于垃圾邮件。按照先例,我们还是用 D 来表示这封邮件,注意 D 由 N 个单词组成。我们用 h+ 来表示垃圾邮件,h- 表示正常邮件。问题可以形式化地描述为求: P(h+|D) = P(h+) * P(D|h+) / P(D) P(h-|D) = P(h-) * P(D|h-) / P(D) 其中 P(h+) 和 P(h-) 这两个先验概率都是很容易求出来的,只需要计算一个邮件库里面垃圾邮件和正常邮件的比例就行了。然而 P(D|h+) 却不容易求,因为 D 里面含有 N 个单词 d1, d2, d3, .. ,所以P(D|h+) = P(d1,d2,..,dn|h+) 。我们又一次遇到了数据稀疏性,为什么这么说呢?P(d1,d2,..,dn|h+) 就是说在垃圾邮件当中出现跟我们目前这封邮件一模一样的一封邮件的概率是多大!开玩笑,每封邮件都是不同的,世界上有无穷多封邮件。瞧,这就是数据稀疏性,因为可以肯定地说,你收集的训练数据库不管里面含了多少封邮件,也不可能找出一封跟目前这封一模一样的。结果呢?我们又该如何来计算 P(d1,d2,..,dn|h+) 呢? 我们将 P(d1,d2,..,dn|h+) 扩展为: P(d1|h+) * P(d2|d1, h+) * P(d3|d2,d1, h+) * .. 。熟悉这个式子吗?这里我们会使用一个更激进的假设,我们假设 di 与 di-1 是完全条件无关的,于是式子就简化为 P(d1|h+) * P(d2|h+) * P(d3|h+) * .. 。这个就是所谓的 条件独立假设 ,也正是朴素贝叶斯方法的朴素之处。而计算 P(d1|h+) * P(d2|h+) * P(d3|h+) * .. 就太简单了,只要统计 di 这个单词在垃圾邮件中出现的频率即可。关于贝叶斯垃圾邮件过滤更多的内容可以参考 这个条目 ,注意其中提到的其他资料。 一点注记 :这里,为什么有这个数据稀疏问题,还是因为统计学习方法工作在浅层面,世界上的单词就算不再变多也是非常之多的,单词之间组成的句子也是变化多端,更不用说一篇文章了,文章数目则是无穷的,所以在这个层面作统计,肯定要被数据稀疏性困扰。我们要注意,虽然句子和文章的数目是无限的,然而就拿邮件来说,如果我们只关心邮件中句子的语义(进而更高抽象层面的“意图”(语义,意图如何可计算地定义出来是一个人工智能问题),在这个层面上可能性便大大缩减了,我们关心的抽象层面越高,可能性越小。单词集合和句子的对应是多对一的,句子和语义的对应又是多对一的,语义和意图的对应还是多对一的,这是个层级体系。神经科学的发现也表明大脑的皮层大致有一种层级结构,对应着越来越抽象的各个层面,至于如何具体实现一个可放在计算机内的大脑皮层,仍然是一个未解决问题,以上只是一个原则(principle)上的认识,只有当 computational 的 cortex 模型被建立起来了之后才可能将其放入电脑。 5.2 为什么朴素贝叶斯方法令人诧异地好——一个理论解释 朴素贝叶斯方法的条件独立假设看上去很傻很天真,为什么结果却很好很强大呢?就拿一个句子来说,我们怎么能鲁莽地声称其中任意一个单词出现的概率只受到它前面的 3 个或 4 个单词的影响呢?别说 3 个,有时候一个单词的概率受到上一句话的影响都是绝对可能的。那么为什么这个假设在实际中的表现却不比决策树差呢?有人对此提出了一个理论解释,并且建立了什么时候朴素贝叶斯的效果能够等价于非朴素贝叶斯的充要条件,这个解释的核心就是:有些独立假设在各个分类之间的分布都是均匀的所以对于似然的相对大小不产生影响;即便不是如此,也有很大的可能性各个独立假设所产生的消极影响或积极影响互相抵消,最终导致结果受到的影响不大。具体的数学公式请参考 这篇 paper 。 6. 层级贝叶斯模型 层级贝叶斯模型 是现代贝叶斯方法的标志性建筑之一。前面讲的贝叶斯,都是在同一个事物层次上的各个因素之间进行统计推理,然而层次贝叶斯模型在哲学上更深入了一层,将这些因素背后的因素(原因的原因,原因的原因,以此类推)囊括进来。一个教科书例子是:如果你手头有 N 枚硬币,它们是同一个工厂铸出来的,你把每一枚硬币掷出一个结果,然后基于这 N 个结果对这 N 个硬币的 θ (出现正面的比例)进行推理。如果根据最大似然,每个硬币的 θ 不是 1 就是 0 (这个前面提到过的),然而我们又知道每个硬币的 p(θ) 是有一个先验概率的,也许是一个 beta 分布。也就是说,每个硬币的实际投掷结果 Xi 服从以 θ 为中心的正态分布,而 θ 又服从另一个以 Ψ 为中心的 beta 分布。层层因果关系就体现出来了。进而 Ψ 还可能依赖于因果链上更上层的因素,以此类推。 6.1 隐马可夫模型(HMM) 吴军在数学之美系列里面介绍的 隐马可夫模型 (HMM)就是一个简单的层级贝叶斯模型: 那么怎么根据接收到的信息来推测说话者想表达的意思呢?我们可以利用叫做“隐含马尔可夫模型”(Hidden Markov Model)来解决这些问题。以语音识别为例,当我们观测到语音信号 o1,o2,o3 时,我们要根据这组信号推测出发送的句子 s1,s2,s3。显然,我们应该在所有可能的句子中找最有可能性的一个。用数学语言来描述,就是在已知 o1,o2,o3,…的情况下,求使得条件概率 P (s1,s2,s3,…|o1,o2,o3….) 达到最大值的那个句子 s1,s2,s3,… 吴军的文章中这里省掉没说的是,s1, s2, s3, .. 这个句子的生成概率同时又取决于一组参数,这组参数决定了 s1, s2, s3, .. 这个马可夫链的先验生成概率。如果我们将这组参数记为 λ ,我们实际上要求的是:P(S|O, λ) (其中 O 表示 o1,o2,o3,.. ,S表示 s1,s2,s3,..) 当然,上面的概率不容易直接求出,于是我们可以间接地计算它。利用贝叶斯公式并且省掉一个常数项,可以把上述公式等价变换成 P(o1,o2,o3,…|s1,s2,s3….) * P(s1,s2,s3,…) 其中 P(o1,o2,o3,…|s1,s2,s3….) 表示某句话 s1,s2,s3…被读成 o1,o2,o3,…的可能性, 而 P(s1,s2,s3,…) 表示字串 s1,s2,s3,…本身能够成为一个合乎情理的句子的可能性,所以这个公式的意义是用发送信号为 s1,s2,s3…这个数列的可能性乘以 s1,s2,s3.. 本身可以一个句子的可能性,得出概率。 这里,s1,s2,s3…本身可以一个句子的可能性其实就取决于参数 λ ,也就是语言模型。所以简而言之就是发出的语音信号取决于背后实际想发出的句子,而背后实际想发出的句子本身的独立先验概率又取决于语言模型。 7. 贝叶斯网络 吴军已经对贝叶斯网络作了科普,请直接跳转到 这里 。更详细的理论参考所有机器学习的书上都有。 参考资料 一堆机器学习,一堆概率统计,一堆 Google ,和一堆 Wikipedia 条目,一堆 paper 。 部分书籍参考 《机器学习与人工智能资源导引》 。
1477 次阅读|0 个评论
泡妞概率论及其他
热度 5 andydong 2013-11-5 01:23
最近崇拜的一个人是贝叶斯,此君是 18 世纪的英国数学家,非常 NB ,不要想歪,我说的 Networks of Bayes (NB) ,可以尊称贝爷,呵呵,满清正黄旗。 他的思想是概率论的精髓之一,简单的说就是“逆概”,举个例子,我的同室小夏是个高富帅,据统计追中国女孩子十之八九都能成功,追英国女孩子十之七八都能成功,如果我们知道了小夏身边分别有多少中国和英国的女孩子,下次碰见女孩子,只要知道她的国籍,大约就能算出来小夏追求成功的概率;而反之就是“逆概”了,比如这个周末小夏去夜店彻夜狂欢万圣节,同时随机“把妹”成功了 N 个人(中英通吃),问这 N 个人中可能有多少中国人,多少英国人? 我们来用贝叶斯的思想来算一算:假设小夏身边女孩子的中英比例为 2:8 ,简记为 P(China)=0.2 , P(UK)=1-P(China)=0.8 ,小夏追求中国和英国女孩的成功率分别简记为 P(Success|China)= 0.85 和 P(Success|UK)= 0.75 (都取中值),那么小夏成功的总的概率为 P(Success)=P(China)* P(Success|China)+ P(UK)* P(Success|UK)=0.2*0.85+0.8*0.75=0.77 ,夜店中的小夏成功追到的中国女孩概率应为 P(China)* P(Success|China) 除以上面总的概率,即 P(Success|China)= P(China)* P(Success|China)/P(Success)=0.2*0.85/(0.2*0.85+0.8*0.75)=0.22 ,这就是 N 个女孩中中国妹的比例。 我们再把上面的写法简化下, A=Success, B=China ,那么 P(B|A)= P(A|B) * P(B) / P(A) 大学学过概率论的朋友熟悉上式吗?这就是经典的贝叶斯公式。事实上,这个公式太强大了,除了泡妞用,只要是理工科的领域,基本上都能用到这个简单而深刻的理论。 下面举个与食品安全有关的简单例子,通常情况下,致病菌( A )可以导致食物中毒( B ),假设某菌在 4 个对数菌落单位以下导致食物中毒的概率为 0.2 ,而在超过 4 个对数菌落单位导致食物中毒的概率为 0.89 ,那么根据贝叶斯理论,有如下结论成立(具体计算略去,有很多软件可以自动计算理论值): 当检测 100 个样品中有 1 个样品都高于 4 个对数菌落单位时,导致食物中毒的概率为 0 ; 当检测 100 个样品中有 5 个样品都高于 4 个对数菌落单位时,导致食物中毒的概率为 0.23 ; 当检测 100 个样品中有 95 个样品都高于 4 个对数菌落单位时,导致食物中毒的概率为 0.86 ; 当检测 100 个样品中有 99 个样品都高于 4 个对数菌落单位时,导致食物中毒的概率为 1 ; 以上是最简单的形式,实际的节点变量更多,影响因素更复杂,可采用网络的形式进行风险控制。小伙伴们是不是很有趣? (以上参考了很多经典教材和网站内容,经过了适当改写,恕不一一标注,在此致谢)
2590 次阅读|5 个评论
贝叶斯法重建系统发育关系
raindyok 2013-9-19 15:20
不多言,直接上图和附件,分享给有需要的科学网战友。 相关软件及教程,可以访问我的网盘下载:http://raindy.ys168.com 本文首发于本人QQ空间(http://user.qzone.qq.com/58001704),转载烦请保留作者信息,谢谢! 建树过程中,如果任何问题,欢迎加入生物软件群(群号:323809849)交流! 祝大家中秋快乐! 系统发育分析之BI篇(By Raindy).pdf
个人分类: 软件教程|10111 次阅读|0 个评论
等邮件的数学模型
热度 12 xying 2013-8-30 08:01
董明提出一个很有意思的数学模型问题 ,说网购了几本书,收到发货通知后,儿子天天问“今天书会不会到”。刚开始他回答:“可能,机会比昨天大一点。”心中想的是每一天到货的概率分布,这概率密度是类似于正态分布的曲线。按照这个模型,前几天没收到书,今天收到书的概率会越来越大,最后儿子问:“要是一直不来,那十年后,可能性是不是就大得不得了?”他回答:“那书可能就再也来不了,寄丢了。” 问题是:什么样的数学模型可以用来描述这个现象? 这显然可以用一个概率的模型来回答,但它的挑战不在于如何得出准确的曲线,这不难通过统计实验来得到。真正的问题应该是:怎样通过分析,用已有的知识来构造这个数学模型?它首先能定性地解答心中的疑惑,需要时可以细化,定量地给出预测。这功力在于对数学概念的理解和演绎推理的应用,而不是把整个问题不加分析地推给实验来解答。 问题的核心是怎样把正常邮递和丢失情况综合起来,用数学模型反映出,还没收到邮件等待时,对当天收到邮件的预测。 这可以由两个概率子模型组成,一个是在正常邮递时(事件 A ),从得到通知之日起,至今 n 天没有收到邮件(事件 n ),但今天(第 n+1 天)收到了邮件(事件 $D_n$ )的概率 $P(D_n|A,n)$ ;另一个是,前 n 天没有收到邮件,还是正常邮递的可能性 $P(A|n)$ ;因为寄丢了情况(事件 B )是不可能收到邮件的, $P(D_n|B)=0$ ,那么前 n 天没有收到邮件,今天收到的概率则是: $P(D_n|n)=P(D_n|A,n)P(A|n)$ 。它就是这个问题模型的公式了。 对于正常邮递情况下,哪一天收到邮件的概率,是以通知中的预测到达日期为峰值,类似于正态分布离散的钟形曲线 $f(D_n)$ 。由此不难得知 $P(D_n|A,n)$ 是随着 n 增大趋近于 1 的曲线。 $P(A|n)$ 的含义是前 n 天没有收到邮件,不是寄丢了的概率,凭经验就可以知道这是个随 n 增加而趋近于 0 的曲线。综合这两者,不需要进一步的研究,就可以定性地解答等待邮件的问题了。 有人说,这只不过把常识藏在数学式子里,没什么意义! 这是没学好数学的人,对于数学应用的理解。数学模型首先是平凡的,必须符合实践中的事实,它把实践中的问题分解成数学上已知的问题,需要时可以进一步细化求解。 比如说这不是个人邮购等书了,而是重大事件或者是商业运行环节,值得细化研究其定量结果。我们来看怎么用这个数学模型进行细化计算。 对于正常邮递,邮件到达的概率分布已经有很多的研究,这不是关注的重点。函数 $f(D_n)$ 是可以从其他地方可以抄来,或自己推算的先验概率 ,按定义有 $P(D_n|A)=f(D_n)$ ,从已知的事件从这个先验的概率算出后验的概率,用贝叶斯公式来计算,注意到事件 $D_n$ 和 n 的含义,有 $ P(n|D_i)=0$ if $in$ otherwise $ P(n|D_i)=1$ ,得到公式 : $P(D_n|A,n)=P(D_n|A)P(n|D_n)/\sum_{i=0}^{\infty}P(D_i|A)P(n|D_i)=f(D_n)/\sum_{i=n}^{\infty}f(D_i)$ 从估计会正常邮递到丢失了的认知过程,是由概率$P(A|n)$ 来反映,我们知道 $P(A|n)$ 的含义是:前 n 天没有收到邮件,还是正常邮递情况的可能性。从贝叶斯公式: $P(A|n)= P(n|A)P(A)/ (P(n|A)P(A)+ P(n|B)P(B))$ $P(A)$ 是正常邮递的先验概率,比如说0.99, $P(B)=1-P(A)$ 和 $P(n|B)=1$ ,我们有: $ P(A|n)= P(n|A)P(A)/(P(n|A))P(A)+1-P(A))$ 这里 $P(n|A)=\prod_{i=0}^{n-1}(1-f(D_i))$ (注:这个等式不精确,见【后记】) 可以看出正常邮递的概率是随着没收到邮件的日子增加趋近于 0 的曲线。 这样得出了公式。前 n 天没有收到邮件,今天收到的概率是: (注:纠错后这公式可以化简,见【后记】) $P(D_n|n)=(f(D_n)/\sum_{i=n}^{\infty}f(D_i))\prod_{i=0}^{n-1}(1-f(D_i))P(A)/(\prod_{i=0}^{n-1}(1-f(D_i))P(A)+1-P(A))$ 这是随着时间先上升,过了通知中的预测到达日期后不久下滑趋近于 0 的曲线。你在等待的过程中,可以用它来估算当天收到包裹的概率。 你也许会问:这个概率的密度曲线是什么?这能有吗?想不通的,查一下定义。 【后记】贴于评论 12 ,点击 2284 后 写这篇博文意在于例示建立数学模型的思路、细化和用途。贴出后,徐晓指出计算 $P(n|A)=\prod_{i=0}^{n-1}(1-f(D_i))$ 有问题,这里 $(1-f(D_i))$ 不是独立的,不能用在连乘,正确的计算应该是 $P(n|A)=1-\sum_{i=0}^{n-1}f(D_i)$ ,也即是博文在计算 $P(D_n|A,n)$ 的式子中的 $\sum_{i=n}^{\infty}f(D_i)$ ,这也可以从 $P(D_n|A,n)=P(D_n|A)/P(n|A)$ 中看到 。将这个纠错后的式子代入综合的公式后,约减后的结果与徐晓的结果一样,它是: $P(D_n|n)=f(D_n)P(A)/(1- P(A)(\sum_{i=0}^{n-1}f(D_i))$ 徐晓推算这个式子时,直接应用形式推理,非常简洁漂亮,建议对这问题有兴趣的读者,看他的博文 《与应行仁老师探讨:邮件问题》 。 对于正确建立数学模型,合理的抽象是个关键,在这里是事件 A , n 和 $D_n$ 的定义,有了它们后 $P(D_n|n)$ 便是描述问题的数学模型,后面的只是数学计算。把它分解成 $P(D_n|A,n)P(A|n)$能 让这模型的结构更直观,也针对董明的疑惑,借用常规的概率问题的结果,不需要深入研究它们的细节就可以定性地解答。如果不加分解直接对这个数学模型计算,注意到事件 $D_n$ 蕴含着事件 A 和 n ,就有: $P(D_n|n)=P(D_n,n)/P(n)=P(D_n)/P(n)=P(D_nA)/P(n)=P(D_n|A)P(A)/P(n)$ 这个思路和徐晓的一样,代入 $P(D_n|A)=f(D_n)$ 和 $P(n)=P(A)P(n|A)+1-P(A)$ 的表达式就能得出上述的结果。 为什么分解式 $P(D_n|n)=P(D_n|A,n)P(A|n)$ 也会得出一样的结果呢? 这分解式是直接从概率的概念出发在 n 约束环境下的条件概率式子,在形式推理里: $P(D_n|n)=P(D_n,n)/P(n)=P(D_n,A,n)/P(n)=P(D_n|A,n)P(A,n)/P(n)=P(D_n|A,n)P(A|n)$ 学习数学时,掌握概念和推理是同等的重要,当你数学概念的想象和形式推理一致时,才算正确地掌握了概念,能够同时应用概念的想象和形式推理就是到达了自由王国。 谢谢徐晓纠正 $P(n|A)$ 式子的错误!
个人分类: 科普|10000 次阅读|26 个评论
贝叶斯资料汇总
xcfcn 2013-5-20 20:56
数学之美番外篇:平凡而又神奇的贝叶斯方法 http://blog.sciencenet.cn/home.php?mod=spaceuid=397960do=blogid=669638 Bayesian公式:破解思想的钥匙 贝叶斯统计与转化医学 临震预报的贝叶斯框架 临震预报的贝叶斯框架--宁效管鲍分金,莫学孙庞斗智 贝叶斯网络“解去”(explaining away) 临震预报的贝叶斯框架(2)
个人分类: 杂论|3 次阅读|0 个评论
机器学习 --- 3. 贝叶斯怎么想
热度 14 ppn029012 2013-5-13 08:37
“ 贝叶斯公式是可以支配一切知识,一切信息的法则 ”. --- Christoph Fuchs 1. 我们是怎么推测未知事物的 贝叶斯公式我们都学过(如果没学过,请了解一下条件概率”),就是一个条件概率的转换公式,如下 这么的一个简单的公式为什么能引起科学上的革命? 这是一个统计学上的公式,但是却被证明是人类唯一能够运用自如的东西。伯克利大学心理学家Alison Copnik早在2004年就证明”Bayesian统计法是儿童运用的唯一思考方法,其他方法他们似乎完全不会”。 贝叶斯式的思考是什么样的? 举个例子, 你在北京798艺术区远远地看到一个人在地上爬,你很奇怪那到底是什么。于是你的大脑 可能联想产生了3种假想 ( 大脑真的就是那么工作的) , h1 = 那是疯子 h2 = 那是狗 h3 = 那是艺术家 那么这三种假想哪个更有可能? 更准确地说就是,在 给出了 事实(Evidence) {某人在798上爬}的情况下,哪种假想更有可能? P(h1|E), P(h2|E), P(h3|E).哪个更大些? 于是你的脑子开始启动贝叶斯程序, 计算比较这三个的概率到底哪个更大. 因为P(E)对于三个式子来说都是一样的,所以贝叶斯公式可以看成 先看看P(h)是什么? P(h)在这个公式里被叫做 先验概率 ,描述的是你对某个假想h的致信程度.(不用考虑当前的事实是什么) P(h1) = 出现疯子的可能性,(根据你的经历, 你很少在北京街头看到疯子) 可能性: 较 小 P(h2) = 在798艺术区出现一条狗的概率,(老看到有人溜狗) 可能性: 高 P(h3) = 在798出现艺术家的概率,(798里应该总能看到) 可能性: 高 P(E|h)是什么呢?它表达的是,你的 假想 产生 这个 事实 的可能性有多大? P(E|h1) = 人疯了( 假设假想h1成立 )可能会在798爬来爬去的概率. 可能性: 高 P(E|h2) = 假如那就是一条狗, 你却能看成一个人在地上爬的景象 可能性: 0 (极低) P(E|h3) = 假如那个人就是艺术家, 他在地上爬进行行为艺术的可能 可能性: 高 最后把两个概率相乘就能得到三个假想在当前事实面前发生的概率。 P(h1 | E ) = 小 (你的设想(出现疯子)发生的概率太 小 了,虽然疯子很有可能在这爬来爬去,所以最后总的概率还是很小) P(h2 | E ) = 小 (你的假想(出现狗)发生的概率还挺大,但是你没法否认眼前看到的是人这个事实, 所以概率又变得很小) P(h3 | E ) = 高 (你的假想(出现艺术家)的概率挺大,而且艺术家干这种事还是能干得出来的,所以总的概率并不小) 所以人在利用贝叶斯公式进行推测一件事情的时候,其实就是在权衡你脑中 产生假设本身的可能性 和这种假设可能产生眼前的事实可能性之间的关系,如果两种可能都很大,那么这件事才会让自己信服。 这些P(h), P(h | E)都是我们从平时经历的事情中总结得到的结果( 经验) ,而且甚至非常因人而异,比如P(h1) 在疯人院的职工看来,他们对出现疯子这件事情见怪不怪,所以P(h1)在他们的脑里可以是个很大的值。 而P(E | h3) 在某些老人的眼里,艺术家都是那种很正常,每天唱红歌的那种人,所以艺术家很少可能会在街上爬啊爬,所以这些时候,他们更相信眼前出现的人是个疯子。 总而言之 ,贝叶斯做为一种统计法,善于统计和利用 历史的 经验,来对 未遇到 过的情况做出推测。你可以使用你历史的记忆的碎片 组合 成新的情况。就像你未必见过艺术家在798里匍匐前进,但是你却在798见过艺术家,而且从别的地方(电视上)看到过艺术家一些匪夷所思的艺术行为,所以你真的遇到这种场景的时候,就能够利用联想,并用经验去验证联想的结果,推断出这是一个艺术家的行为。 2. 什么是违反你直觉的? 上一部分介绍的是人们怎么利用一些经验和贝叶斯去解决一些生活中的问题。但是有些问题会使你产生直觉上的错误, 这时候,贝叶斯更能去帮助你 纠正 这些直觉上的错误。 问题: http://yudkowsky.net/rational/bayes 里的一个问题,某地区有一台 乳腺癌检测仪 : 一个地区的女性乳腺癌发病率为1%. 已经患乳腺癌的人里面会有80%会被仪器正确地检测出”某指数”呈 阳性 . 但有9.6%的正常人也被检测出”某指数”成 阳性 . 此地区一妇女去体检,很不幸被检测出了”某指数”呈 阳性 。你做为一个医生,你觉得这名女性患乳腺癌的概率是多少? 很多人会 第一时间 地认为,既然80%的患者能被正确的检测出来,那么这台机器的准确率也就是80%. 那么既然已经被检测出患病,那么她患病的概率应该为80%左右。即使有9.6%的正常人的误检率,那么患病率的也应该不低于 70%. (其实有85%的医生也是这么认为的,如果我去看病我肯定自杀了...) 事实真的是这样吗? 让我们用贝叶斯计算一下, 天呐,才7.76% ,为什么这么低?我们的直觉为什么出错了? 如果我 换一种说法 ,这个问题就不容易产生错觉。 有1000人去体检,有10人真的患病, 这10个人里有8个能被检测出 阳性 . 还有剩下的990个正常人里, 有95个人也被误检测呈 阳性 。 现在再问你,有一妇女被检测出了 阳性 , 那么你觉得这个结果准确的概率是多少? 这时候,你做出判断时就会更加谨慎。你会觉得103个被检测出阳性的人里面,只有8个人真正地得了病,那么这位妇女患病的几率其实并不是太高的。 我们直觉出错的原因在于,我们把 先验概率 忽略了。虽然只有9.7%的正常人被误检成阳性了,但是正常人的数量是患者数量的90倍有余,那么误检的人就有很多很多。其数量远远大于80%的患者。 所以这件事情再次告诉我们,如果你在制造一台检测仪的话,不仅要提高 对患者的检测率 ,而且也需要提高对正常人的 排查率 ,这样才能使得这台机子的结果让人信服。 再次总而言之,这个部分又告诉了我们一个重要的事实,我们不能对一件事情 因果倒置,两件事不能混为一谈 。原因产生结果,但是结果往往是不能对原因起直接作用的。表现在这里,就是因果倒置的概率发生了剧烈的变化。 3. 贝叶斯与因果 假如两件事之间存在因果关系,我们能不能用贝叶斯来分析这两件事情之间相互影响的程度呢?当然可以, 条件概率 就能说明他们之间的 影响程度 。 例如,患病会引起某项指数呈阳性。通过条件概率,就可以知道患病的人,有多少会造成某指数阳性. 那么可以求 P(阳性 | 患病) 相反,引起阳性的众多原因中,想知道患病占多少,于是我们就可以通过求  P(患病 | 阳性) 下图就是分析在产生阳性的原因中,患病产生阳性的比重是多少。 3.1 能不能从概率中推导出因果关系? 有时候因为因果互换以后的条件概率变化非常大,那么是不是能从统计的概率中就得到这两件事情之间的关系? 很遗憾,概率只能间接地表现因果关系,但是很难从概率中得到准确的关系图表。
12285 次阅读|25 个评论
蒙提霍尔问题(3)——主观和客观
热度 11 xying 2013-3-16 06:16
上篇考察 vos Savant 标准问题中举例说的具体的场景【 1 】【 2 】 在三扇分别藏有一辆车两只羊门的猜测中,参赛人选了 1 号门,主持人打开 3 号门里面是羊,问:改选 2 号是不是有更大机会选到车?【场景 1 】 用贝叶斯公式计算出这个场景下的条件概率 P (车在 2 号门 | 选 1 号门,打开 3 号门) = 1/ ( P (打开 3 号门 | 选 1 号门,车在 1 号门) + 1 ) 发现这时 2 号门有车的概率是在 1/2 到 1 之间,依主持人的心念而定。【 2 】【 3 】当然主持人是仍然要遵照 vos Savant 标准问题的规定,即主持人必须在参赛人选择的门之外,打开一扇有羊的门,然后让参赛人做第二次选择。 那么已经折服了大众的实验统计及 vos Savant 的样本空间证明【说法 3 】,和这贝叶斯公式的计算相异,到底哪个对? 让我们细考一下这个 vos Savant 的样本空间证明 1 号门 2 号门 3 号门 不换的结果 换的结果 赛局 1 车 羊 羊 赢 输 赛局 2 羊 车 羊 输 赢 赛局 3 羊 羊 车 输 赢 这个样本空间是针对 vos Savant 标准问题的总体而言,即不加区分主持人打开是哪个门,只要必须打开有羊的门的情况。 Vos Savant 从中计算出她 2/3 概率的结论。实验不外乎按照这个理解,将这些样本随机产生出来,再加以统计。这相当于主持人在还没确定打开哪个门之前问这问题,这打开的门可能是 3 号,也可能是 2 号。这时你可以算出主持人没有打开的另一扇门的概率是 2/3 。而上述的条件概率计算则是说:当主持人打开了 3 号门,让你看到了并不意外的事实后,你就不能确定另一扇门的概率了! 让我们验证一下这个情况。这个具体的例子【场景 1 】中主持人打开有羊的 3 号门,这只能包含赛局 1 和 2 这两种样本。按照规定,主持人在赛局 2 他是没有选择地打开有羊的 3 号门;在赛局 1 时,他可以按照自己的心中的任何规则来选择 2 或 3 号门,而不违反规定。如果主持人自己的规则是,总打开 3 号门,那赛局 1 和 2 样本有均等机会出现在 3 号门被打开的场景中,其 2 号门有车的概率是 1/2 ;反之,如果这时他的规则是,总是打开 2 号门,而这里打开的却是 3 号门,那赛局 1 就不可能出现在这场景中,只有赛局 2 才有可能,其 2 号门有车的概率是 1 ;如果这时他是平均在 2 和 3 号门中选,赛局 1 样本在 3 号门被打开时出现的概率是赛局 2 的一半,这时 2 号门有车的概率是 2/3 。主持人在赛局 1 的情况,按不同的频率的规则打开 3 号门, 2 号门有车的概率从 1/2 到 1 之间都有可能。这验证了按贝叶斯公式导出的条件概率的公式。 人人以为实验的结果是最客观的,其实实验的数据该怎么统计,却是决定它的结果。如果我们用统计实验来验证这个具体的场景,统计只能计算符合这场景的样本,而不是全部的数据,这时候实验中主持人开门的不同规则,就显示出不同的结果。 在这个之前,样本空间的证明和实验的统计是不加区分地对所有可能的场景而言,主持人在赛局 1 不同的开门偏好造成了每个场景中另一个门有车的不同概率,但是所有场景的总体,或者说对于所有场景计算出来的另一个门有车概率的平均值却是 2/3 ,如同 vos Savant 的直观证明、样本空间的证明和实验的统计出来的结论一样。所以 vos Savant 对于不只是针对 3 号门被打开的具体场景,而是一般的情况,并不是没有道理的。 至此,我们似乎可以得出结论: vos Savant 的 2/3 概率结论适合于不加区分主持人打开哪扇门的总体情况。在主持人打开门后,在这个具体的场景中,另一扇门的概率是 1/2 到 1 之间的一个数,依主持人的开门规则而定。在 1991 年后的近二十年中, Wiki 和大部分介绍文章都认同这个结论。这也是对简单地认为 vos Savant 的 2/3 概率是正确答案的否定。 面对着一个具体的场景,同样是主持人打开一扇有羊的门,仅仅是主持人的动机不同,同样的事件造成另一扇门有车的概率不同。也就是说主持人只是自己心里想的,将来的事还没做,这就影响到了另一扇现在的概率。原来有比较确定概率的总体,被事实揭露后进入一个场景反而更不能确定它的概率。这让很多人感到困惑和哲学上的深思。人们很快会联想到量子的不确定,坍缩和量子纠缠等等。 这似乎很玄妙。到底这个概率是多少,我们可以通过事后观察统计来得到。这个概率叫“客观概率(频率概率)”由频率方法来定义。我们在事后的观察统计中,已经包含了主持人在他的规则下的具体行动的后果。 读者和参赛人事先能够推算出这个概率吗?能,只要我们知道这个观察统计实验中所有的选择规则。这样推算出来的概率叫“主观概率(贝叶斯概率)”由推算者掌握的信息来计算。如果我们知道主持人是按照什么规则来开门,那么得出的就是上述贝叶斯公式计算出来的条件概率。它一定符合用相同规则实验统计出来的客观概率。如果不知道这个潜规则,那么对于主持人打开 3 号没有羊门的事件就无法用来修正先验的信息。 从这个观点来回顾蒙提霍尔问题的争论就豁然开朗,问题中概率用贝叶斯公式来推算。最初,只知道车子的放置和参赛人的选择都是完全随机的,这确定各个门有车的先验概率是 1/3 。当我们知道主持人打开一扇有羊的门时,这个排除一扇门和一只羊的信息,将这先验概率修正为 1/2 。这就是大众的推测。当我们知道主持人必须打开一扇有羊的门时,这更丰富的信息,保持了 1 号门后验的概率不变,仍然关着那扇门后验概率则变为 2/3 。如果我们知道具体主持人打开了哪扇门并知道他的开门规则,我们就能算出仍然关着那扇门的后验概率。所有这些推算都是主观概率,具体数值依所知多少开门规则的知识而定。各方所推测的概率数值,依照他们所理解的开门信息,得出的结果都是对的。争论在于不了解对方所根据的信息,缺乏对概率概念的深刻理解,把自己的主观概率当作客观概率。实际上,不是基于实验的数据,能够被推理论推算的概率,都是主观概率,这个问题问的也是主观概率。所不同的是你能在这故事中挖掘出来多少有用的信息得出最准确的后验概率。 在这个具体的【场景 1 】中,如果不知道主持人在赛局 1 的开门规则,我们能够得出与客观概率相同的主观概率吗?不能。我们还是只能推算出 2/3 的结果,这已经是最大限度地利用已知的信息。这这个观点来看, Morgan 等四位教授论文【 3 】中反对 vos Savant 的结论是错的。这个错误一直等到 20 年后才被人指出【 4 】。 如果我们就像在实际的蒙提霍尔游戏节目中面对着这样的场景:初选 1 号门,主持人打开有羊的 3 号门,并不知道他按照什么规则来选择的,甚至不知道会不会打开有车的门,这时问:是不是换 2 号门更有利?我们能够用概率来确定改换的好处吗?不能。用贝叶斯公式不难推算出,这时 2 号门有车的概率从 0 到 1 任何一种皆有可能。最后的结果不是由概率计算就能确定的,它是由主持人和参赛者各自的决策所共同决定的。这不是一个概率的问题,是博弈的问题【 4 】。我们应该用博弈的模型来解决。 许多人应用数学解决实际问题时,发现事实与计算的不一样,就把它归结为数学的局限,其实更应该检查的是:自己有没有用对了数学的模型。 如果你在读这三篇连载时,你的结果与这最后的答案是相同或者相异,这都不重要。重要的是,这辩驳的理由和推理有没有在你心中想过,这决定了你对概率的理解有没有新的收获。 同一个故事,同一个问题,可以从不同方面来解读,也就有不同的体会。有人觉得无聊,有人急于知道答案,有的从争执方的动机来猜测对错。但如果想有最大的收获,读这个故事时,就要把其中人物的动机和胜负得失,以及自己答案的对错撇开,集中于概率问题的思考。真实世界上的人行事都有其动机,不管动机是否纯洁,只要他们的解答是符合逻辑的,就值得思考,客观地思考是一个学习的过程。数学的对错无关动机,只凭逻辑。这个问题和各方的答案,能有这么多人长时间地在学术刊物上争论,就说明不是个很简单的问题。如果把它看简单了,那就说明自己的思考还不全面,也没有深入到细节,还不能够清晰地分辨各种理由逻辑中的误区。如果你跟了故事里不同观点来思考,那便是一个很好学习概率概念的过程。 【参考资料】 【1】 科学网博文“蒙提霍尔问题——直觉与计算” http://blog.sciencenet.cn/home.php?mod=spaceuid=826653do=blogid=669134 【2】 科学网博文“蒙提霍尔问题——折服和逆袭” http://blog.sciencenet.cn/home.php?mod=spaceuid=826653do=blogid=670132 【3】 Morgan, J. P., Chaganty, N. R., Dahiya, R. C., Doviak, M. J. (1991). "Let's make a deal: The player's dilemma," American Statistician 45: 284–287. http://www.its.caltech.edu/~ilian/ma2a/monty1.pdf 【4】 Gill, Richard (2011) The Monty Hall Problem is not a probability puzzle (it's a challenge in mathematical modelling). Statistica Neerlandica 65(1) 58–71, February 2011. http://arxiv.org/pdf/1002.0651v3.pdf
个人分类: 科普|9891 次阅读|18 个评论
蒙提霍尔问题(2)——折服和逆袭
热度 8 xying 2013-3-14 06:33
早在 1975 年, UC Berkeley 生物统计学教授 Steve Selvin 寄给 American Statistician 期刊在题为“ A Problem in Probability ”上就提出了这个蒙提霍尔问题( Monty Hall problem )【 1 】,他借用美国电视比赛主持人蒙提霍尔的节目《 Let ’ s Make a Deal 》说这故事。在后续的文章中他用条件概率给出一个简单的证明【 2 】,但这两篇通讯都没有说服反对的学者。 1987 年 Nalebuff 在“ The Journal of Economic Perspectives ”难题的栏目, 1989 年 Phillip Martin 在“ Bridge Today ”的文章把这问题也归结为概率的计算。 1990 年 Marilyn vos Savant 【 3 】在“ Ask Marilyn ”专栏将这问题略加规范来讨论,引起了广泛的注意。自此以后,有很多的论文以此为题,并在概率和统计课堂和教科书上介绍。 Vos Savant 在专栏解释之中澄清了一些含糊之处,规定:主持人必须在你选择的门之外,打开一扇有羊的门,然后让你做第二次选择。当然,车子的放置和参赛人的选择都是完全随机的。大家对这个澄清少有异议,人们关心的是真正有意义的问题,而不是其他无争议的变种。 这个 vos Savant 标准化的问题重述如下。 让你在三扇关着门中自由选择,知道一扇后面是车,其他俩都是羊。当你选择后告诉他,比如说 1 号,主持人知道车在什么地方, 他必须在你选的门之外打开一扇有羊的门 ,比如说 3 号。然后问你,要不要改主意选 2 号。问:改选是否对选到车更有利?【问题 1 】 面对着上万个无法说服的读者, vos Savant 在全国学校的数学课里组织一个统计实验,所有学校的实验结果都吻合她的结论,接着有几百个人以不同的方法,用计算机做仿真实验,有 97% 的结果同意改选是更有利的。至此,绝大多数人都被说服,同意了她的观点。决策研究学者 Andrew Vazsonyi 报道说:著名的数学家 Paul Erdős 直到这时才被说服了。 Vos Savant 大获全胜,对于不符合她结论和实验结果的论断,都归结为不符合她标准问题的变种。那是另外一个问题的答案。但是对于喜欢思考的人,这还不够。我们要明白,反对的说法错在什么地方?结论对的,论证的逻辑也对吗?先看反对 1 号门概率不变,基于贝叶斯公式的推导。 【说法 2 】 假如事件 $A$ 表示车子在 1 号门,车子可能在任意一扇门后,所以它的概率 $P(A)=1/3$;$H$ 表示主持人打开有山羊的门的事件,三扇门中两扇门后有山羊,概率 $P(H)=2/3$ ; $P(AH)$ 是车子在 1 号门后而且主持人打开了有羊的门的概率;已知车子在 1 号门打开有羊门的条件概率 $P(H|A)=1$ ,不难看出 $P(AH)=P(H|A)P(A)=1/3$ ;那么主持人打开有羊的门后, 1 号门后面有车子是条件概率 $P(A|H)=P(AH)/P(H)=(1/3)/(2/3)=1/2$ ,这和大家的直观一样,那没打开的那扇门( 2 号)有车的概率也是 1/2 ,所以换不换都一样。 这说法错误在于,式子 $P(H)=2/3$ 是主持人随机打开 2 号或 3 号门的概率。这就不能保证打开的门后面总是羊。这不符合标准问题的题意。按规定主持人必须打开有羊的门,这时应该是 $P(H)=1$ ,条件概率 $P(A|H)= P(AH)/P(H)=1/3$ ,也就是说,在这规定下 1 号门的概率不变,那剩下那个门有车的概率就是 1 - 1/3 = 2/3 。这证实了 vos Savant 的说法。反过来,如果主持人不是有意打开有羊的门,而是随意打开一扇,这个场景碰巧里面是羊,那大家的直觉对, vos Savant 就错了。但这不符合标准问题的规定,是变种的问题了。 我们现在来看维基百科上的逆向思维解释【 4 】: 【说法 4 】无论参赛者开始的选择如何,在被主持人问到是否更换时都选择更换。如果参赛者先选中山羊,换之后百分之百赢;如果参赛者先选中汽车,换之后百分之百输。而选中山羊的概率是 2/3 ,选中汽车的概率是 1/3 。所以不管怎样都换,相对最初的赢得汽车仅为 1/3 的机率来说,转换选择可以增加赢的机会。 这结论符合实验和 vos Savant 的结果,但这推断中没有包含主持人是怎样的选择。从【说法 2 】分析中知道,主持人是有意还是随意打开恰巧是有羊门的情况,这两者的结论是不同的。所以这个说法是糊里糊涂地蒙事了。 那 vos Savant 最初的说法也是非常简洁和直观的,这回答有问题吗?她这说法可以改写得更明确一点: 【说法 1 】 1 号门有车的可能性是 1/3 ,其他两个一共有 2/3 。主持人打开没有车的那扇门,给你机会改选另一扇门,等价于给你机会改选 2 号和 3 号联合在一起的两扇门,他实际上帮助你拿掉了没有车子的那扇门,让大家觉得只是选另一扇。 在这个说法里,确实必须有“主持人必须打开没车的门”这个规定才能成立。因为 2 号和 3 号之中至少有个是羊,是已知的事实,主持人揭示这事实的事件,并没有为它们之外的 1 号门提供新的信息。所以不改变了原来 1 号门的概率。它只改变 2 号和 3 号之间的概率分配。反之,如果主持人是随机的选择,他有打开是车的门的可能性,所以它并不单纯地揭露了这个事实。如果他是在 3 扇门之间的随机选择,这事件也给他选择范围中的 1 号门,提供了新的信息,改变了它的概率。这就能解释随机选择的结论。 主持人即使必须只在 2 号和 3 号之中打开一扇有羊的门,也改变了 2 号和 3 号之间的概率分配。这个认知,让我们觉得这和具体的场景有关系,有必要重新审视一遍这个问题。考虑【问题 1 】举例说明的这个具体场景: 参赛人选择了 1 号门,主持人打开 3 号门里面是羊,问:要不要改选 2 号? 不难用贝叶斯公式计算这个条件概率。记事件 S 为参赛人选择 1 号门, Z 为主持人打开有羊的 3 号门, A 、 B 、 C 分别为车子在 1 、 2 、 3 号门,在这个场景下 2 号门有车的条件概率可以写成: P( 车子在 2 号门 | 主持人打开了有羊的 3 号门,参赛人选择 1 号门 ) ,即 $P(B|ZS)=P(BZ|S)/P(Z|S)$ $=P(Z|BS)P(B|S)/(P(Z|AS)P(A|S)+P(Z|BS)P(B|S)+P(Z|CS)P(C|S))$ 因为车子所在及参赛人选择都是完全随机的,条件概率 $P(A|S)=P(B|S)=P(C|S)=1/3$ ;主持人必须在 1 号门之外打开一扇有羊的门,意味着条件概率 $P(Z|BS)=1,P(Z|CS)=0$ ;这时候我们有: $P(B|ZS)=1/(P(Z|AS)+1)$ ,这里 $P(Z|AS)$ 是参赛人选择 1 号门车子也在 1 号门时,主持人打开 3 号门的概率。 在这种情况 2 和 3 号门后都是山羊,主持人任何选择都符合题意,他如果完全随机在它们间选择, $P(Z|AS)=1/2$ , 2 号门有车的概率是 2/3 ,同于 vos Savant 的答案;如果这时他总是选 3 号, $P(Z|AS)=1$ ,则 2 号门概率为 1/2 ,相同于大众的答案;如果这情况不选 3 号, $P(Z|AS)=0$ ,则概率为 1 ,这是因为主持人只有车子在 2 号门才不得不打开 3 号门的情况。 这是 Morgan 等四位美国数学和统计系的教授在《 American Statistician 》 1991 年论文【 7 】中基本逻辑的简述。用贝叶斯推断来考察这个具体例子,说明了即使是 vos Savant 的标准问题,大家的答案也都有道理,到底是哪一个答案对,取决于主持人选择时的一念之间。这是学术界形式逻辑派的绝地反攻,对 Vos Savant 的逆袭! 那么实验统计和 Vos Savant 的样本空间证明【说法 3 】又错在哪里? (待续) 【参考资料】 【1】 Selvin, Steve (February 1975), "A problem in probability (letter to the editor)", American Statistician 29 (1): 67 http://www.jstor.org/discover/10.2307/2683689?uid=3737864uid=2uid=4sid=21101099694733 【2】 Selvin, Steve (August 1975), "On the Monty Hall problem (letter to the editor)", American Statistician 29 (3): 134 http://montyhallproblem.com/as.html 【3】 Wikipedia , Marilyn vos Savant http://en.wikipedia.org/wiki/Marilyn_vos_Savant 【4】 维基百科,蒙提霍尔问题 http://zh.wikipedia.org/wiki/%E8%92%99%E6%8F%90%E9%9C%8D%E7%88%BE%E5%95%8F%E9%A1%8C 【5】 Wikipedia , Monty Hall problem http://en.wikipedia.org/wiki/Monty_Hall_problem 【6】 vos Savant, Marilyn (1991a). "Ask Marilyn" column, Parade Magazine p. 12 (17 February 1991). http://marilynvossavant.com/game-show-problem/ 【7】 Morgan, J. P., Chaganty, N. R., Dahiya, R. C., Doviak, M. J. (1991). "Let's make a deal: The player's dilemma," American Statistician 45: 284–287. http://www.its.caltech.edu/~ilian/ma2a/monty1.pdf
个人分类: 科普|10805 次阅读|26 个评论
蒙提霍尔问题(1)——直觉与计算
热度 29 xying 2013-3-11 07:00
概率的概念就像信念一样,存在于人们朦胧的直觉中,经过学校教育,表面上以为了解了,常常又与不同角度出发的直觉冲突矛盾,必须经过更深入的考察思索才能够理解。 蒙提霍尔问题的热议,便是一个例子。还没有一个简单的概率问题,长时间地迷惑着这么多的民众和学者,越是深入思考越发现问题。自 1990 , 1991 年纷起热议之后到了 2000 年,有超过 75 篇关于这个问题的论文发表在 40 多种学术和公众刊物上。两种结论反复交锋,不同观点一直纠缠,英文 Wiki 被双方不断更新资料的编辑之战折腾着。有的错误一直到了现在才发现。二十多年过去了,至今还偶尔在论文、书刊和电视上讨论。在公众书刊和百科中混杂着许多简单化似是而非的介绍。 我不想重述争议的细节和对错的结论,只是通过剖析典型的说法和认知的反复,来促进对概率概念和数学模型的理解。 蒙提霍尔问题( MontyHallproblem )【 1 】是一个概率猜谜游戏。 1990 年 9 月 CraigF.Whitaker 给《 Parade 》杂志“ AskMarilyn ”专栏提了一个问题: 在蒙提霍尔游戏节目中,让你在三扇关着的门中选择,知道一扇门后面是跑车,其他俩都是山羊,当然希望选中赢的是跑车。当你选择后告诉他,比如说 1 号,主持人知道车在什么地方,他打开另外一扇门,比如说 3 号,是羊在那儿。然后问你,要不要改主意选 2 号。问:改选是不是更有利? 大多数人认为改不改都一样,因为没打开的两扇门后面,有车子的可能性都是 1/2 。 MarilynvosSavant 认为 1 号门的可能性是 1/3 , 2 号现在有 2/3 。她给人们一个直观的想象:假如有辆车在一百万扇门中,你选了 1 号门,主持人知道车子在哪里,所以打开门时总是避免它,结果他打开了其余,除 777777 号之外所有的门,这时,你是不是很快改主意,选它了?【说法 1 】 这个专栏写手 MarilynvosSavant 是吉利斯记录中拥有最高智商的女人, IQ228 。她在 WashingtonUniversityinSt.Louis 哲学系上了两年大学后,就退学挣钱,以便有自由来写作。 她的答案打击了大多数人们的直觉,当即收到几千封读者的反驳, 11 月著名问题专栏作家的 CecilAdams 也在他“ TheStraightDope ”专栏里讨论这个问题,持相反看法。第二年《纽约时报》在头版登出这个问题,并且访谈了这问题中的节目主持人蒙提霍尔。他也不认可。 vosSavant 仍然坚持原来的答案。她摊上大事了,报社收到了一万多人来信, 92% 认为她错了, 65% 来自大学的信,多数是来自数学和科学的院系,都反对她的答案,认为这只是女人的直觉,劝她修了概率课后再谈这问题。其中有一千多个署名上有博士学位。即使她重申主持人必须打开有羊门的假设,提供了进一步证明后,仍被大多数有学问的人怀疑。没有被她说服的名人包括 PaulErdős 【 2 】,他是最多产的数学家,研究的问题包括组合数学、图论、数论、经典分析、逼近理论、集合论和概率论。 反对者的直觉是:主持人打开了一扇门,里面是羊,这将三个选择去掉一个,一辆车子和一只羊分别在剩下两扇没打开的门中,它们各有 1/2 的概率是车。 vosSavant 反驳说,如果一个 UFO 在主持人打开门后降临,看到两扇关着的门,外星人会同意这个概率 1/2 的结论,因为她缺乏这两扇门是怎么被留下来过程的信息。 有人用贝叶斯公式推出条件概率:假如 A 表示车子在 1 号门的事件,车子可能在任意一扇门后,所以它的概率 P(A)=1/3 ; H 表示主持人打开有羊门的事件,三扇门中两扇门后是羊,概率 P(H)=2/3 ;记 P(AH) 为车子在 1 号门后而且主持人打开了有羊门的概率;如果车子是在 1 号门,打开是羊门的条件概率 P(H|A)=1 ,则有 P(AH)=P(H|A)P(A)=1/3 ;那么主持人打开有羊的门后, 1 号门后面有车子的条件概率 P(A|H)=P(AH)/P(H)= ( 1/3 ) / ( 2/3 ) =1/2 ,这和大家的直观看法一样,这时没打开的那扇门( 2 号)有车的概率也就是 1/2 ,所以换不换都一样。人们推论:主持人打开了有羊门的事件,减少了对 1 号门是羊的猜测,提高了 1 号门有车的概率, vosSavant 的论断中坚持 1 号门的概率不变是错误的。【说法 2 】 看到不能说服读者, VosSavant 在专栏中画一个表,继续为她概率 2/3 的结论辩护。这里假设:客人先选 1 号门,主持人在 2 和 3 号中打开有羊的门。【 3 】这个表包含了所有的可能,不难看出换门赢的机会是不换的两倍。【说法 3 】 1 号门 2 号门 3 号门 不换的结果 换的结果 赛局 1 车 羊 羊 赢 输 赛局 2 羊 车 羊 输 赢 赛局 3 羊 羊 车 输 赢 维基百科上论证说【 1 】:“可以用逆向思维的方式来理解这个选择。无论参赛者开始的选择如何,在被主持人问到是否更换时都选择更换。如果参赛者先选中山羊,换之后百分之百赢;如果参赛者先选中汽车,换之后百分之百输。而选中山羊的概率是 2/3 ,选中汽车的概率是 1/3 。所以不管怎样都换,相对最初的赢得汽车仅为 1/3 的机率来说,转换选择可以增加赢的机会。”【说法 4 】 这个说法看起来犀利无比,但总是让人不放心,觉得过于简单化,给人感觉像是“两个信封的问题( Twoenvelopesproblem )”【 4 】里的逻辑 让你选择两个装钱的信封,已经知道一个比另一个多了一倍的钱。当你拿了一个还没打开时,有人劝你:另一个可能多一倍,也可能少了一半的钱,两种情况机会均等,平均起来另一个是手里那个 1.25 倍,所以换了还是合算。 问题是,你要拿了另一个也可以作同样的推理,这显然是个悖论。 这里有两个观点:大多数人认为,打开一扇有羊的门,这事件改变了其他门的概率,现在 2 号门有车的概率是 1/2 ; vosSavant 这边少数人认为,这不改变 1 号门的概率,所以 2 号门现在概率是 2/3 。 这两个观点,四种说法,到底哪些错了?为什么? (待续) 【参考资料】 【1】 维基百科,蒙提霍尔问题 http://zh.wikipedia.org/wiki/%E8%92%99%E6%8F%90%E9%9C%8D%E7%88%BE%E5%95%8F%E9%A1%8C 【2】 Wikipedia , PaulErdős http://en.wikipedia.org/wiki/Paul_Erd%C5%91s 【3】 vosSavant,Marilyn(1991a).AskMarilyncolumn,ParadeMagazinep.12(17February1991). http://marilynvossavant.com/game-show-problem/ 【4】 Wikipedia , Twoenvelopesproblem http://en.wikipedia.org/wiki/Two-envelope_paradox
个人分类: 科普|26372 次阅读|56 个评论
Monte Carlo的一些发展方向
热度 1 yangyuancn 2012-12-22 11:48
前阵子 墨尔本大学的Guoqi Qian老师来厦大做报告,借此机会和他探讨了一些Monte Carlo (MC)方面的问题,尤其是MC的未来发展等,再结合自己平日所学,现总结如下。 1.MC算法在理论上已经比较完备,很难再提出更加有效率的一般性的算法,所以现在的研究都致力于解决一些具体问题中的计算问题,比如贝叶斯推断等。自Jun S. Liu和Rong Chen之后,美国学者也不太热衷于研究MC,这个领域的研究重心,现在则在欧洲。大牛包括: Nicolas Chopin , Arnaud Doucet, Paul Fearnhead, Peter Green, Omiros Papaspiliopoulos, Christian. Robert, Gareth Roberts等等。 2.将信息论和微分几何的一些概念引入到MC当中。我自己看到的文章中,Girolami andCalderhead (2011, JRSS,B)是这个方向的一篇重要的文章,是在RSS会上宣读过的,文章里用到黎曼流形、汉密尔顿力学等一些概念。至于信息论方面,自己不太清楚,猜测是用到entropy等概念吧。 3.近似贝叶斯计算(ABC)。这也是进几年来的一个热点话题,Rue and Martino (2009, JRSS,B)的文章详细介绍了INLA这一ABC当中的利器。记得之前Xiaofeng Wang来厦大做个这方面的报告,大意是说用INLA取代MC积分,从而降低计算成本,提高计算精度。 Fearnhead and Prangle (2011, JRSS,B)则是介绍了在ABC中构造summary statistics的方法。 4.平行计算下的MCMC。近年来平行计算、云计算等概念方兴未艾,计算资源大大丰富。而MCMC由于其生成的是一条单行链条,没有很好的使用平行计算系统的功效,因此如何解决这个问题也是未来的研究热点。之前看过的一篇工作论文, Durham and Geweke (2011)研究了这个问题,不过是针对SMC,而不是MCMC。自己猜想,这个问题的解决可能和现有文献中的interactive parallel chain技术有关吧。 5.其他还有一些比较热的课题,比如Ornstein-Uhlenbeck Stochastic Volatility, Population MC, Particle filter for diffusion, reversible jump MCMC等等。 国外的学术交流很频繁,能够经常在会议、讲座上见到一些经常在top journals上见到的名字。比如A. Doucet就在墨尔本大学做过博士后,而前段时间C. Robert也在墨尔本大学搞过一个系列讲座。院系间、学术界和业界之间的合作就更加频繁了,通常是一个研究团队,包含了数学、统计、计算机、以及具体学科的研究者。
个人分类: 学术之路|5201 次阅读|5 个评论
贝叶斯统计和正规化
Austindglx 2012-11-11 08:32
贝叶斯统计和正规化.docx (注:博文中信息不全,见附件) 正规化可以用来防止过拟合,并且保留所有的参数。 1 、极大似然估计( ML )如下图,其哲学思想是在数据之后有一组参数θ来生成 x 和 y ,注意θ是真实存在的,并不是变量,也可以说θ就是关于变量 x 的一个函数参数,只不过到底是什么需要我们自己去估计,这是我们要做的。 ML 算法的目的就是找到这样的θ使得用其作为参数来估计的准确性达到最大。以上的分析是频率学家的观点,属于统计学派。 2 、另外一种观点就是贝叶斯学派的观点。他们事先不知道θ的值是多少,但是他们会假设θ服从一个先验分布来标示θ的不确定性。比如θ可能服从一个高斯先验分布或者一个β先验分布。 若给定一个训练集 ,则我们会计算θ的后验分布,即加入了训练集中的后验知识之后的θ的分布 p( θ |S) 。有: , 事实上可以看到分母是对θ的积分,只要先验分布确定了,其值就是一个定值,也可以说不会影响估计θ的结果。因此可以看成: ,即后验分布只和分母的部分有关系。 这样的话,假设训练集中的 x 标示是房子的属性信息, y 标示的是价格,我们要找到一组参数 来利用 x 估计 y 。则对于一个新房子的价格进行预测时就用上式估计出来的后验分布 p( θ |S) 进行预测,如下: , 进一步的,在给定训练集 S 和输入 x 的情况下估计 y 的期望值的时候需要计算 。 θ的维度可能非常高,计算积分非常困难,因此一般不会计算完整的后验 p( θ |S) ,而是进行近似的计算,然后用得到的确定的一个点θ来代替其积分,比如最常用的一个方法就是 MAP ( maximum a posteriori )了,其得到的形式如下所示: 然后进行预测时,只需要用函数: 。 使用贝叶斯方法能够有效的避免极大似然估计中的过拟合现象,这是因为贝叶斯方法在加入了训练样本信息(先验知识)后会平滑数据。用数学的观点来看,极大似然估计(比如 logistic 线性回归)的目标函数为 ,而贝叶斯方法在加入了先验知识后其目标函数实际上变成了 。
7 次阅读|0 个评论
如何使用PhyloBayes快速构建系统发育树
热度 7 Bearjazz 2012-5-6 10:43
如何使用 PhyloBayes 快速构建系统发育树 熊荣川 六盘水师范学院生物信息学实验室 xiongrongchuan@126.com http://blog.sciencenet.cn/u/Bearjazz PhyloBayes 算是贝叶斯方法软件的后起之秀,替代模型更为丰富,主要用于基于氨基酸序列的系统发育树构建。 下载地址 www.phylobayes.org 下载之后,解压即可,不需安装,里面有适合各种系统平台的程序包,如 windows 平台的程序包在文件夹… \phylobayes3.3b\exe_win 中。程序包中有11不同的程序,功能有所不同,其中pb.exe是主要的马尔科夫蒙地卡罗(MCMC)抽样程序。 输入格式为 .phy 格式 如何开始建树 将下面的代码复制到纯文本文件中保存为 bat 文件“ bear.bat ” pb -d sequence.phy -nchain 2 100 0.3 50 rnapo4 其中, sequence.phy 为比对好的氨基酸序列, rnapo4 为输出文件名 sequence.phy 、 bear.bat 和 pb.exe 放同一文件夹,双击 bear.bat 及开始运算。结果中“ rnapo4.con.tre ”就是最终树文件,带有支持率。
个人分类: 我的研究|17488 次阅读|14 个评论
[转载]数学之美番外篇:平凡而又神奇的贝叶斯方法
zhenliangli 2012-3-24 14:26
概率论只不过是把常识用数学公式表达了出来。 ——拉普拉斯 记得读本科的时候,最喜欢到城里的计算机书店里面去闲逛,一逛就是好几个小时;有一次,在书店看到一本书,名叫贝叶斯方法。当时数学系的课程还没有学到概率统计。我心想,一个方法能够专门写出一本书来,肯定很牛逼。后来,我发现当初的那个朴素归纳推理成立了——这果然是个牛逼的方法。 ——题记 目录 0. 前言 1. 历史 1.1 一个例子:自然语言的二义性 1.2 贝叶斯公式 2. 拼写纠正 3. 模型比较与贝叶斯奥卡姆剃刀 3.1 再访拼写纠正 3.2 模型比较理论(Model Comparasion)与贝叶斯奥卡姆剃刀(Bayesian Occam’s Razor) 3.3 最小描述长度原则 3.4 最优贝叶斯推理 4. 无处不在的贝叶斯 4.1 中文分词 4.2 统计机器翻译 4.3 贝叶斯图像识别,Analysis by Synthesis 4.4 EM 算法与基于模型的聚类 4.5 最大似然与最小二乘 5. 朴素贝叶斯方法(又名“愚蠢者的贝叶斯(idiot’s bayes)”) 5.1 垃圾邮件过滤器 5.2 为什么朴素贝叶斯方法令人诧异地好——一个理论解释 6. 层级贝叶斯模型 6.1 隐马可夫模型(HMM) 7. 贝叶斯网络 0. 前言 这是一篇关于贝叶斯方法的科普文,我会尽量少用公式,多用平白的语言叙述,多举实际例子。更严格的公式和计算我会在相应的地方注明参考资料。贝叶斯方法被证明是非常 general 且强大的推理框架,文中你会看到很多有趣的应用。 1. 历史 托马斯·贝叶斯(Thomas Bayes)同学的详细生平在 这里 。以下摘一段 wikipedia 上的简介: 所谓的贝叶斯方法源于他生前为解决一个“逆概”问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝叶斯写这篇文章之前,人们已经能够计算“正向概率”,如“假设袋子里面有N个白球,M个黑球,你伸手进去摸一把,摸出黑球的概率是多大”。而一个自然而然的问题是反过来:“如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测”。这个问题,就是所谓的逆概问题。 实际上,贝叶斯当时的论文只是对这个问题的一个直接的求解尝试,并不清楚他当时是不是已经意识到这里面包含着的深刻的思想。然而后来,贝叶斯方法席卷了概率论,并将应用延伸到各个问题领域,所有需要作出概率预测的地方都可以见到贝叶斯方法的影子,特别地,贝叶斯是机器学习的核心方法之一。这背后的深刻原因在于,现实世界本身就是不确定的,人类的观察能力是有局限性的(否则有很大一部分科学就没有必要做了——设想我们能够直接观察到电子的运行,还需要对原子模型争吵不休吗?),我们日常所观察到的只是事物表面上的结果,沿用刚才那个袋子里面取球的比方,我们往往只能知道从里面取出来的球是什么颜色,而并不能直接看到袋子里面实际的情况。这个时候,我们就需要提供一个猜测(hypothesis,更为严格的说法是“假设”,这里用“猜测”更通俗易懂一点),所谓猜测,当然就是不确定的(很可能有好多种乃至无数种猜测都能满足目前的观测), 但也绝对不是两眼一抹黑瞎蒙——具体地说,我们需要做两件事情:1. 算出各种不同猜测的可能性大小。2. 算出最靠谱的猜测是什么。第一个就是计算特定猜测的后验概率,对于连续的猜测空间则是计算猜测的概率密度函数。第二个则是所谓的模型比较,模型比较如果不考虑先验概率的话就是最大似然方法。 1.1 一个例子:自然语言的二义性 下面举一个自然语言的不确定性的例子。当你看到这句话: The girl saw the boy with a telescope. 你对这句话的含义有什么猜测?平常人肯定会说:那个女孩拿望远镜看见了那个男孩(即你对这个句子背后的实际语法结构的猜测是:The girl saw-with-a-telescope the boy )。然而,仔细一想,你会发现这个句子完全可以解释成:那个女孩看见了那个拿着望远镜的男孩(即:The girl saw the-boy-with-a-telescope )。那为什么平常生活中我们每个人都能够迅速地对这种二义性进行消解呢?这背后到底隐藏着什么样的思维法则?我们留到后面解释。 1.2 贝叶斯公式 贝叶斯公式是怎么来的? 我们还是使用 wikipedia 上的一个例子: 一所学校里面有 60% 的男生,40% 的女生。男生总是穿长裤,女生则一半穿长裤一半穿裙子。有了这些信息之后我们可以容易地计算“随机选取一个学生,他(她)穿长裤的概率和穿裙子的概率是多大”,这个就是前面说的“正向概率”的计算。然而,假设你走在校园中,迎面走来一个穿长裤的学生(很不幸的是你高度近似,你只看得见他(她)穿的是否长裤,而无法确定他(她)的性别),你能够推断出他(她)是男生的概率是多大吗? 一些认知科学的研究表明(《决策与判断》以及《 Rationality for Mortals 》第12章:小孩也可以解决贝叶斯问题),我们对形式化的贝叶斯问题不擅长,但对于以频率形式呈现的等价问题却很擅长。在这里,我们不妨把问题重新叙述成:你在校园里面 随机游走 ,遇到了 N 个穿长裤的人(仍然假设你无法直接观察到他们的性别),问这 N 个人里面有多少个女生多少个男生。 你说,这还不简单:算出学校里面有多少穿长裤的,然后在这些人里面再算出有多少女生,不就行了? 我们来算一算:假设学校里面人的总数是 U 个。60% 的男生都穿长裤,于是我们得到了 U * P(Boy) * P(Pants|Boy) 个穿长裤的(男生)(其中 P(Boy) 是男生的概率 = 60%,这里可以简单的理解为男生的比例;P(Pants|Boy) 是条件概率,即在 Boy 这个条件下穿长裤的概率是多大,这里是 100% ,因为所有男生都穿长裤)。40% 的女生里面又有一半(50%)是穿长裤的,于是我们又得到了 U * P(Girl) * P(Pants|Girl) 个穿长裤的(女生)。加起来一共是 U * P(Boy) * P(Pants|Boy) + U * P(Girl) * P(Pants|Girl) 个穿长裤的,其中有 U * P(Girl) * P(Pants|Girl) 个女生。两者一比就是你要求的答案。 下面我们把这个答案形式化一下:我们要求的是 P(Girl|Pants) (穿长裤的人里面有多少女生),我们计算的结果是 U * P(Girl) * P(Pants|Girl) / 。容易发现这里校园内人的总数是无关的,可以消去。于是得到 P(Girl|Pants) = P(Girl) * P(Pants|Girl) / 注意,如果把上式收缩起来,分母其实就是 P(Pants) ,分子其实就是 P(Pants, Girl) 。而这个比例很自然地就读作:在穿长裤的人( P(Pants) )里面有多少(穿长裤)的女孩( P(Pants, Girl) )。 上式中的 Pants 和 Boy/Girl 可以指代一切东西,所以其一般形式就是: P(B|A) = P(A|B) * P(B) / 收缩起来就是: P(B|A) = P(AB) / P(A) 其实这个就等于: P(B|A) * P(A) = P(AB) 难怪拉普拉斯说 概率论只是把常识用数学公式表达了出来 。 然而,后面我们会逐渐发现,看似这么平凡的贝叶斯公式,背后却隐含着非常深刻的原理。 2. 拼写纠正 经典著作《人工智能:现代方法》的作者之一 Peter Norvig 曾经写过一篇介绍如何写一个拼写检查/纠正器的文章(原文在 这里 ,徐宥的翻译版在 这里 ,这篇文章很深入浅出,强烈建议读一读),里面用到的就是贝叶斯方法,这里我们不打算复述他写的文章,而是简要地将其核心思想介绍一下。 首先,我们需要询问的是:“ 问题是什么? ” 问题是我们看到用户输入了一个不在字典中的单词,我们需要去猜测:“这个家伙到底真正想输入的单词是什么呢?”用刚才我们形式化的语言来叙述就是,我们需要求: P(我们猜测他想输入的单词 | 他实际输入的单词) 这个概率。并找出那个使得这个概率最大的猜测单词。显然,我们的猜测未必是唯一的,就像前面举的那个自然语言的歧义性的例子一样;这里,比如用户输入: thew ,那么他到底是想输入 the ,还是想输入 thaw ?到底哪个猜测可能性更大呢?幸运的是我们可以用贝叶斯公式来直接出它们各自的概率,我们不妨将我们的多个猜测记为 h1 h2 .. ( h 代表 hypothesis),它们都属于一个有限且离散的猜测空间 H (单词总共就那么多而已),将用户实际输入的单词记为 D ( D 代表 Data ,即观测数据),于是 P(我们的猜测1 | 他实际输入的单词) 可以抽象地记为: P(h1 | D) 类似地,对于我们的猜测2,则是 P(h2 | D)。不妨统一记为: P(h | D) 运用一次贝叶斯公式,我们得到: P(h | D) = P(h) * P(D | h) / P(D) 对于不同的具体猜测 h1 h2 h3 .. ,P(D) 都是一样的,所以在比较 P(h1 | D) 和 P(h2 | D) 的时候我们可以忽略这个常数。即我们只需要知道: P(h | D) ∝ P(h) * P(D | h) (注:那个符号的意思是“正比例于”,不是无穷大,注意符号右端是有一个小缺口的。) 这个式子的抽象含义是:对于给定观测数据,一个猜测是好是坏,取决于“这个猜测本身独立的可能性大小(先验概率,Prior )”和“这个猜测生成我们观测到的数据的可能性大小”(似然,Likelihood )的乘积。具体到我们的那个 thew 例子上,含义就是,用户实际是想输入 the 的可能性大小取决于 the 本身在词汇表中被使用的可能性(频繁程度)大小(先验概率)和 想打 the 却打成 thew 的可能性大小(似然)的乘积。 下面的事情就很简单了,对于我们猜测为可能的每个单词计算一下 P(h) * P(D | h) 这个值,然后取最大的,得到的就是最靠谱的猜测。 一点注记 :Norvig 的拼写纠正器里面只提取了编辑距离为 2 以内的所有已知单词。这是为了避免去遍历字典中每个单词计算它们的 P(h) * P(D | h) ,但这种做法为了节省时间带来了一些误差。但话说回来难道我们人类真的回去遍历每个可能的单词来计算他们的后验概率吗?不可能。实际上,根据认知神经科学的观点,我们首先根据错误的单词做一个 bottom-up 的关联提取,提取出有可能是实际单词的那些候选单词,这个提取过程就是所谓的基于内容的提取,可以根据错误单词的一些模式片段提取出有限的一组候选,非常快地缩小的搜索空间(比如我输入 explaination ,单词里面就有充分的信息使得我们的大脑在常数时间内把可能性 narrow down 到 explanation 这个单词上,至于具体是根据哪些线索——如音节——来提取,又是如何在生物神经网络中实现这个提取机制的,目前还是一个没有弄清的领域)。然后,我们对这有限的几个猜测做一个 top-down 的预测,看看到底哪个对于观测数据(即错误单词)的预测效力最好,而如何衡量预测效率则就是用贝叶斯公式里面的那个 P(h) * P(D | h) 了——虽然我们很可能使用了 一些启发法来简化计算 。后面我们还会提到这样的 bottom-up 的关联提取。 3. 模型比较与奥卡姆剃刀 3.1 再访拼写纠正 介绍了贝叶斯拼写纠正之后,接下来的一个自然而然的问题就来了:“ 为什么? ”为什么要用贝叶斯公式?为什么贝叶斯公式在这里可以用?我们可以很容易地领会为什么贝叶斯公式用在前面介绍的那个男生女生长裤裙子的问题里是正确的。但为什么这里? 为了回答这个问题,一个常见的思路就是想想: 非得这样吗? 因为如果你想到了另一种做法并且证明了它也是靠谱的,那么将它与现在这个一比较,也许就能得出很有价值的信息。那么对于拼写纠错问题你能想到其他方案吗? 不管怎样,一个最常见的替代方案就是,选择离 thew 的 编辑距离 最近的。然而 the 和 thaw 离 thew 的编辑距离都是 1 。这可咋办捏?你说,不慌,那还是好办。我们就看到底哪个更可能被错打为 thew 就是了。我们注意到字母 e 和字母 w 在键盘上离得很紧,无名指一抽筋就不小心多打出一个 w 来,the 就变成 thew 了。而另一方面 thaw 被错打成 thew 的可能性就相对小一点,因为 e 和 a 离得较远而且使用的指头相差一个指头(一个是中指一个是小指,不像 e 和 w 使用的指头靠在一块——神经科学的证据表明紧邻的身体设施之间容易串位)。OK,很好,因为你现在已经是在用最大似然方法了,或者直白一点,你就是在计算那个使得 P(D | h) 最大的 h 。 而贝叶斯方法计算的是什么?是 P(h) * P(D | h) 。多出来了一个 P(h) 。我们刚才说了,这个多出来的 P(h) 是特定猜测的先验概率。为什么要掺和进一个先验概率?刚才说的那个最大似然不是挺好么?很雄辩地指出了 the 是更靠谱的猜测。有什么问题呢?既然这样,我们就从给最大似然找茬开始吧——我们假设两者的似然程度是一样或非常相近,这样不就难以区分哪个猜测更靠谱了吗?比如用户输入tlp ,那到底是 top 还是 tip ?(这个例子不怎么好,因为 top 和 tip 的词频可能仍然是接近的,但一时想不到好的英文单词的例子,我们不妨就假设 top 比 tip 常见许多吧,这个假设并不影响问题的本质。)这个时候,当最大似然不能作出决定性的判断时,先验概率就可以插手进来给出指示——“既然你无法决定,那么我告诉你,一般来说 top 出现的程度要高许多,所以更可能他想打的是 top ”)。 以上只是最大似然的一个问题,即并不能提供决策的全部信息。 最大似然还有另一个问题:即便一个猜测与数据非常符合,也并不代表这个猜测就是更好的猜测,因为这个猜测本身的可能性也许就非常低。比如 MacKay 在《Information Theory : Inference and Learning Algorithms》里面就举了一个很好的例子:-1 3 7 11 你说是等差数列更有可能呢?还是 -X^3 / 11 + 9/11*X^2 + 23/11 每项把前项作为 X 带入后计算得到的数列?此外曲线拟合也是,平面上 N 个点总是可以用 N-1 阶多项式来完全拟合,当 N 个点近似但不精确共线的时候,用 N-1 阶多项式来拟合能够精确通过每一个点,然而用直线来做拟合/线性回归的时候却会使得某些点不能位于直线上。你说到底哪个好呢?多项式?还是直线?一般地说肯定是越低阶的多项式越靠谱(当然前提是也不能忽视“似然”P(D | h) ,明摆着一个多项式分布您愣是去拿直线拟合也是不靠谱的,这就是为什么要把它们两者乘起来考虑。),原因之一就是低阶多项式更常见,先验概率( P(h) )较大(原因之二则隐藏在 P(D | h) 里面),这就是为什么我们要用 样条 来插值,而不是直接搞一个 N-1 阶多项式来通过任意 N 个点的原因。 以上分析当中隐含的哲学是,观测数据总是会有各种各样的误差,比如观测误差(比如你观测的时候一个 MM 经过你一不留神,手一抖就是一个误差出现了),所以如果过分去寻求能够完美解释观测数据的模型,就会落入所谓的数据 过配(overfitting) 的境地,一个过配的模型试图连误差(噪音)都去解释(而实际上噪音又是不需要解释的),显然就过犹不及了。所以 P(D | h) 大不代表你的 h (猜测)就是更好的 h。还要看 P(h) 是怎样的。所谓 奥卡姆剃刀 精神就是说:如果两个理论具有相似的解释力度,那么优先选择那个更简单的(往往也正是更平凡的,更少繁复的,更常见的)。 过分匹配的另一个原因在于当观测的结果并不是因为误差而显得“不精确”而是因为真实世界中对数据的结果产生贡献的因素太多太多,跟噪音不同,这些偏差是一些另外的因素集体贡献的结果,不是你的模型所能解释的——噪音那是不需要解释——一个现实的模型往往只提取出几个与结果相关度很高,很重要的因素(cause)。这个时候观察数据会倾向于围绕你的有限模型的预测结果呈 正态分布 ,于是你实际观察到的结果就是这个正态分布的 随机取样 ,这个取样很可能受到其余因素的影响偏离你的模型所预测的中心,这个时候便不能贪心不足地试图通过改变模型来“完美”匹配数据,因为那些使结果偏离你的预测的贡献因素不是你这个有限模型里面含有的因素所能概括的,硬要打肿脸充胖子只能导致不实际的模型,举个教科书例子:身高和体重的实际关系近似于一个二阶多项式的关系,但大家都知道并不是只有身高才会对体重产生影响,物理世界影响体重的因素太多太多了,有人身材高大却瘦得跟稻草,有人却是横长竖不长。但不可否认的是总体上来说,那些特殊情况越是特殊就越是稀少,呈围绕最普遍情况(胖瘦适中)的正态分布,这个分布就保证了我们的身高——体重相关模型能够在大多数情况下做出靠谱的预测。但是——刚才说了,特例是存在的,就算不是特例,人有胖瘦,密度也有大小,所以完美符合身高——体重的某个假想的二阶多项式关系的人是不存在的,我们又不是欧几里德几何世界当中的理想多面体,所以,当我们对人群随机抽取了 N 个样本(数据点)试图对这 N 个数据点拟合出一个多项式的话就得注意,它肯定得是二阶多项式,我们要做的只是去根据数据点计算出多项式各项的参数(一个典型的方法就是最小二乘);它肯定不是直线(我们又不是稻草),也不是三阶多项式四阶多项式.. 如果硬要完美拟合 N 个点,你可能会整出一个 N-1 阶多项式来——设想身高和体重的关系是 5 阶多项式看看? 3.2 模型比较理论(Model Comparasion)与贝叶斯奥卡姆剃刀(Bayesian Occam’s Razor) 实际上,模型比较就是去比较哪个模型(猜测)更可能隐藏在观察数据的背后。其基本思想前面已经用拼写纠正的例子来说明了。我们对用户实际想输入的单词的猜测就是模型,用户输错的单词就是观测数据。我们通过: P(h | D) ∝ P(h) * P(D | h) 来比较哪个模型最为靠谱。前面提到,光靠 P(D | h) (即“似然”)是不够的,有时候还需要引入 P(h) 这个先验概率。奥卡姆剃刀就是说 P(h) 较大的模型有较大的优势,而最大似然则是说最符合观测数据的(即 P(D | h) 最大的)最有优势。整个模型比较就是这两方力量的拉锯。我们不妨再举一个简单的例子来说明这一精神:你随便找枚硬币,掷一下,观察一下结果。好,你观察到的结果要么是“正”,要么是“反”(不,不是少林足球那枚硬币:P ),不妨假设你观察到的是“正”。现在你要去根据这个观测数据推断这枚硬币掷出“正”的概率是多大。根据最大似然估计的精神,我们应该猜测这枚硬币掷出“正”的概率是 1 ,因为这个才是能最大化 P(D | h) 的那个猜测。然而每个人都会大摇其头——很显然,你随机摸出一枚硬币这枚硬币居然没有反面的概率是“不存在的”,我们对一枚随机硬币是否一枚有偏硬币,偏了多少,是有着一个先验的认识的,这个认识就是绝大多数硬币都是基本公平的,偏得越多的硬币越少见(可以用一个 beta 分布 来表达这一先验概率)。将这个先验正态分布 p(θ) (其中 θ 表示硬币掷出正面的比例,小写的 p 代表这是 概率密度函数 )结合到我们的问题中,我们便不是去最大化 P(D | h) ,而是去最大化 P(D | θ) * p(θ) ,显然 θ = 1 是不行的,因为 P(θ=1) 为 0 ,导致整个乘积也为 0 。实际上,只要对这个式子求一个导数就可以得到最值点。 以上说的是当我们知道先验概率 P(h) 的时候,光用最大似然是不靠谱的,因为最大似然的猜测可能先验概率非常小。然而,有些时候,我们对于先验概率一无所知,只能假设每种猜测的先验概率是均等的,这个时候就只有用最大似然了。实际上,统计学家和贝叶斯学家有一个有趣的争论,统计学家说:我们让数据自己说话。言下之意就是要摒弃先验概率。而贝叶斯支持者则说:数据会有各种各样的偏差,而一个靠谱的先验概率则可以对这些随机噪音做到健壮。事实证明贝叶斯派胜利了,胜利的关键在于所谓先验概率其实也是经验统计的结果,譬如为什么我们会认为绝大多数硬币是基本公平的?为什么我们认为大多数人的肥胖适中?为什么我们认为肤色是种族相关的,而体重则与种族无关?先验概率里面的“先验”并不是指先于一切经验,而是仅指先于我们“当前”给出的观测数据而已,在硬币的例子中先验指的只是先于我们知道投掷的结果这个经验,而并非“先天”。 然而,话说回来,有时候我们必须得承认,就算是基于以往的经验,我们手头的“先验”概率还是均匀分布,这个时候就必须依赖用最大似然,我们用前面留下的一个自然语言二义性问题来说明这一点: The girl saw the boy with a telescope. 到底是 The girl saw-with-a-telescope the boy 这一语法结构,还是 The girl saw the-boy-with-a-telescope 呢?两种语法结构的常见程度都差不多(你可能会觉得后一种语法结构的常见程度较低,这是事后偏见,你只需想想 The girl saw the boy with a book 就知道了。当然,实际上从大规模语料统计结果来看后一种语法结构的确稍稍不常见一丁点,但是绝对不足以解释我们对第一种结构的强烈倾向)。那么到底为什么呢? 我们不妨先来看看 MacKay 在书中举的一个漂亮的例子: 图中有多少个箱子?特别地,那棵书后面是一个箱子?还是两个箱子?还是三个箱子?还是.. 你可能会觉得树后面肯定是一个箱子,但为什么不是两个呢?如下图: 很简单,你会说:要是真的有两个箱子那才怪了,怎么就那么巧这两个箱子刚刚好颜色相同,高度相同呢? 用概率论的语言来说,你刚才的话就翻译为:猜测 h 不成立,因为 P(D | h) 太小(太巧合)了。我们的直觉是:巧合(小概率)事件不会发生。所以当一个猜测(假设)使得我们的观测结果成为小概率事件的时候,我们就说“才怪呢,哪能那么巧捏?!” 现在我们可以回到那个自然语言二义性的例子,并给出一个完美的解释了:如果语法结构是 The girl saw the-boy-with-a-telecope 的话,怎么那个男孩偏偏手里拿的就是望远镜——一个可以被用来 saw-with 的东东捏?这也忒小概率了吧。他咋就不会拿本书呢?拿什么都好。怎么偏偏就拿了望远镜?所以唯一的解释是,这个“巧合”背后肯定有它的必然性,这个必然性就是,如果我们将语法结构解释为 The girl saw-with-a-telescope the boy 的话,就跟数据完美吻合了——既然那个女孩是用某个东西去看这个男孩的,那么这个东西是一个望远镜就完全可以解释了(不再是小概率事件了)。 自然语言二义性很常见,譬如上文中的一句话: 参见《决策与判断》以及《 Rationality for Mortals 》第12章:小孩也可以解决贝叶斯问题 就有二义性:到底是参见这两本书的第 12 章,还是仅仅是第二本书的第 12 章呢?如果是这两本书的第 12 章那就是咄咄怪事了,怎么恰好两本书都有第 12 章,都是讲同一个问题,更诡异的是,标题还相同呢? 注意,以上做的是似然估计(即只看 P(D | h) 的大小),不含先验概率。通过这两个例子,尤其是那个树后面的箱子的例子我们可以看到,似然估计里面也蕴含着奥卡姆剃刀:树后面的箱子数目越多,这个模型就越复杂。单个箱子的模型是最简单的。似然估计选择了更简单的模型。 这个就是所谓的 贝叶斯奥卡姆剃刀(Bayesian Occam’s Razor) ,因为这个剃刀工作在贝叶斯公式的似然(P(D | h) )上,而不是模型本身( P(h) )的先验概率上,后者是传统的奥卡姆剃刀。关于贝叶斯奥卡姆剃刀我们再来看一个前面说到的曲线拟合的例子:如果平面上有 N 个点,近似构成一条直线,但绝不精确地位于一条直线上。这时我们既可以用直线来拟合(模型1),也可以用二阶多项式(模型2)拟合,也可以用三阶多项式(模型3),.. ,特别地,用 N-1 阶多项式便能够保证肯定能完美通过 N 个数据点。那么,这些可能的模型之中到底哪个是最靠谱的呢?前面提到,一个衡量的依据是奥卡姆剃刀:越是高阶的多项式越是繁复和不常见。然而,我们其实并不需要依赖于这个先验的奥卡姆剃刀,因为有人可能会争辩说:你怎么就能说越高阶的多项式越不常见呢?我偏偏觉得所有阶多项式都是等可能的。好吧,既然如此那我们不妨就扔掉 P(h) 项,看看 P(D | h) 能告诉我们什么。我们注意到越是高阶的多项式,它的轨迹弯曲程度越是大,到了八九阶简直就是直上直下,于是我们不仅要问:一个比如说八阶多项式在平面上随机生成的一堆 N 个点偏偏恰好近似构成一条直线的概率(即 P(D | h) )有多大?太小太小了。反之,如果背后的模型是一条直线,那么根据该模型生成一堆近似构成直线的点的概率就大得多了。这就是贝叶斯奥卡姆剃刀。 这里只是提供一个关于贝叶斯奥卡姆剃刀的科普,强调直观解释,更多理论公式请参考 MacKay 的著作 《Information Theory : Inference and Learning Algorithms》第 28 章。 3.3 最小描述长度原则 贝叶斯模型比较理论与信息论有一个有趣的关联: P(h | D) ∝ P(h) * P(D | h) 两边求对数,将右式的乘积变成相加: ln P(h | D) ∝ ln P(h) + ln P(D | h) 显然,最大化 P(h | D) 也就是最大化 ln P(h | D)。而 ln P(h) + ln P(D | h) 则可以解释为模型(或者称“假设”、“猜测”)h 的编码长度加上在该模型下数据 D 的编码长度。使这个和最小的模型就是最佳模型。 而究竟如何定义一个模型的编码长度,以及数据在模型下的编码长度则是一个问题。更多可参考 Mitchell 的 《Machine Learning》的 6.6 节,或 Mackay 的 28.3 节) 3.4 最优贝叶斯推理 所谓的推理,分为两个过程,第一步是对观测数据建立一个模型。第二步则是使用这个模型来推测未知现象发生的概率。我们前面都是讲的对于观测数据给出最靠谱的那个模型。然而很多时候,虽然某个模型是所有模型里面最靠谱的,但是别的模型也并不是一点机会都没有。譬如第一个模型在观测数据下的概率是 0.5 。第二个模型是 0.4 ,第三个是 0.1 。如果我们只想知道对于观测数据哪个模型最可能,那么只要取第一个就行了,故事到此结束。然而很多时候我们建立模型是为了推测未知的事情的发生概率,这个时候,三个模型对未知的事情发生的概率都会有自己的预测,仅仅因为某一个模型概率稍大一点就只听他一个人的就太不民主了。所谓的最优贝叶斯推理就是将三个模型对于未知数据的预测结论加权平均起来(权值就是模型相应的概率)。显然,这个推理是理论上的制高点,无法再优了,因为它已经把所有可能性都考虑进去了。 只不过实际上我们是基本不会使用这个框架的,因为计算模型可能非常费时间,二来模型空间可能是连续的,即有无穷多个模型(这个时候需要计算模型的概率分布)。结果还是非常费时间。所以这个被看作是一个理论基准。 4. 无处不在的贝叶斯 以下我们再举一些实际例子来说明贝叶斯方法被运用的普遍性,这里主要集中在机器学习方面,因为我不是学经济的,否则还可以找到一堆经济学的例子。 4.1 中文分词 贝叶斯是机器学习的核心方法之一。比如中文分词领域就用到了贝叶斯。Google 研究员吴军在《数学之美》系列中就有一篇是介绍中文分词的,这里只介绍一下核心的思想,不做赘述,详细请参考吴军的文章( 这里 )。 分词问题的描述为:给定一个句子(字串),如: 南京市长江大桥 如何对这个句子进行分词(词串)才是最靠谱的。例如: 1. 南京市/长江大桥 2. 南京/市长/江大桥 这两个分词,到底哪个更靠谱呢? 我们用贝叶斯公式来形式化地描述这个问题,令 X 为字串(句子),Y 为词串(一种特定的分词假设)。我们就是需要寻找使得 P(Y|X) 最大的 Y ,使用一次贝叶斯可得: P(Y|X) ∝ P(Y)*P(X|Y) 用自然语言来说就是 这种分词方式(词串)的可能性 乘以 这个词串生成我们的句子的可能性。我们进一步容易看到:可以近似地将 P(X|Y) 看作是恒等于 1 的,因为任意假想的一种分词方式之下生成我们的句子总是精准地生成的(只需把分词之间的分界符号扔掉即可)。于是,我们就变成了去最大化 P(Y) ,也就是寻找一种分词使得这个词串(句子)的概率最大化。而如何计算一个词串: W1, W2, W3, W4 .. 的可能性呢?我们知道,根据 联合概率 的公式展开:P(W1, W2, W3, W4 ..) = P(W1) * P(W2|W1) * P(W3|W2, W1) * P(W4|W1,W2,W3) * .. 于是我们可以通过一系列的条件概率(右式)的乘积来求整个联合概率。然而不幸的是随着条件数目的增加(P(Wn|Wn-1,Wn-2,..,W1) 的条件有 n-1 个), 数据稀疏问题 也会越来越严重,即便语料库再大也无法统计出一个靠谱的 P(Wn|Wn-1,Wn-2,..,W1) 来。为了缓解这个问题,计算机科学家们一如既往地使用了“天真”假设:我们假设句子中一个词的出现概率只依赖于它前面的有限的 k 个词(k 一般不超过 3,如果只依赖于前面的一个词,就是2元 语言模型 (2-gram),同理有 3-gram 、 4-gram 等),这个就是所谓的“有限地平线”假设。虽然这个假设很傻很天真,但结果却表明它的结果往往是很好很强大的,后面要提到的朴素贝叶斯方法使用的假设跟这个精神上是完全一致的,我们会解释为什么像这样一个天真的假设能够得到强大的结果。目前我们只要知道,有了这个假设,刚才那个乘积就可以改写成: P(W1) * P(W2|W1) * P(W3|W2) * P(W4|W3) .. (假设每个词只依赖于它前面的一个词)。而统计 P(W2|W1) 就不再受到数据稀疏问题的困扰了。对于我们上面提到的例子“南京市长江大桥”,如果按照自左到右的贪婪方法分词的话,结果就成了“南京市长/江大桥”。但如果按照贝叶斯分词的话(假设使用 3-gram),由于“南京市长”和“江大桥”在语料库中一起出现的频率为 0 ,这个整句的概率便会被判定为 0 。 从而使得“南京市/长江大桥”这一分词方式胜出。 一点注记 :有人可能会疑惑,难道我们人类也是基于这些天真的假设来进行推理的?不是的。事实上,统计机器学习方法所统计的东西往往处于相当表层(shallow)的层面,在这个层面机器学习只能看到一些非常表面的现象,有一点科学研究的理念的人都知道:越是往表层去,世界就越是繁复多变。从机器学习的角度来说,特征(feature)就越多,成百上千维度都是可能的。特征一多,好了, 高维诅咒 就产生了,数据就稀疏得要命,不够用了。而我们人类的观察水平显然比机器学习的观察水平要更深入一些,为了避免数据稀疏我们不断地发明各种装置(最典型就是显微镜),来帮助我们直接深入到更深层的事物层面去观察更本质的联系,而不是在浅层对表面现象作统计归纳。举一个简单的例子,通过对大规模语料库的统计,机器学习可能会发现这样一个规律:所有的“他”都是不会穿 bra 的,所有的“她”则都是穿的。然而,作为一个男人,却完全无需进行任何统计学习,因为深层的规律就决定了我们根本不会去穿 bra 。至于机器学习能不能完成后者(像人类那样的)这个推理,则是人工智能领域的经典问题。至少在那之前, 声称统计学习方法能够终结科学研究 ( 原文 )的说法 是纯粹外行人说的话 。 4.2 统计机器翻译 统计机器翻译因为其简单,自动(无需手动添加规则),迅速成为了机器翻译的事实标准。而统计机器翻译的核心算法也是使用的贝叶斯方法。 问题是什么?统计机器翻译的问题可以描述为:给定一个句子 e ,它的可能的外文翻译 f 中哪个是最靠谱的。即我们需要计算:P(f|e) 。一旦出现条件概率贝叶斯总是挺身而出: P(f|e) ∝ P(f) * P(e|f) 这个式子的右端很容易解释:那些先验概率较高,并且更可能生成句子 e 的外文句子 f 将会胜出。我们只需简单统计(结合上面提到的 N-Gram 语言模型)就可以统计任意一个外文句子 f 的出现概率。然而 P(e|f) 却不是那么好求的,给定一个候选的外文局子 f ,它生成(或对应)句子 e 的概率是多大呢?我们需要定义什么叫 “对应”,这里需要用到一个分词对齐的平行语料库,有兴趣的可以参考 《Foundations of Statistical Natural Language Processing》第 13 章,这里摘选其中的一个例子:假设 e 为:John loves Mary 。我们需要考察的首选 f 是:Jean aime Marie (法文)。我们需要求出 P(e|f) 是多大,为此我们考虑 e 和 f 有多少种对齐的可能性,如: John (Jean) loves (aime) Marie (Mary) 就是其中的一种(最靠谱的)对齐,为什么要对齐,是因为一旦对齐了之后,就可以容易地计算在这个对齐之下的 P(e|f) 是多大,只需计算: P(John|Jean) * P(loves|aime) * P(Marie|Mary) 即可。 然后我们遍历所有的对齐方式,并将每种对齐方式之下的翻译概率 ∑ 求和。便可以获得整个的 P(e|f) 是多大。 一点注记 :还是那个问题:难道我们人类真的是用这种方式进行翻译的?highly unlikely 。这种计算复杂性非常高的东西连三位数乘法都搞不定的我们才不会笨到去使用呢。根据认知神经科学的认识,很可能我们是先从句子到语义(一个逐层往上(bottom-up)抽象的 folding 过程),然后从语义根据另一门语言的语法展开为另一门语言(一个逐层往下(top-down)的具体化 unfolding 过程)。如何可计算地实现这个过程,目前仍然是个难题。(我们看到很多地方都有 bottom-up/top-down 这样一个对称的过程,实际上有人猜测这正是生物神经网络原则上的运作方式,对视觉神经系统的研究尤其证明了这一点,Hawkins 在 《On Intelligence》 里面提出了一种 HTM (Hierarchical Temporal Memory)模型正是使用了这个原则。) 4.3 贝叶斯图像识别,Analysis by Synthesis 贝叶斯方法是一个非常 general 的推理框架。其核心理念可以描述成:Analysis by Synthesis (通过合成来分析)。06 年的认知科学新进展上有一篇 paper 就是讲用贝叶斯推理来解释视觉识别的,一图胜千言,下图就是摘自这篇 paper : 首先是视觉系统提取图形的边角特征,然后使用这些特征自底向上地激活高层的抽象概念(比如是 E 还是 F 还是等号),然后使用一个自顶向下的验证来比较到底哪个概念最佳地解释了观察到的图像。 4.4 EM 算法与基于模型的聚类 聚类 是一种 无指导的机器学习 问题,问题描述:给你一堆数据点,让你将它们最靠谱地分成一堆一堆的。聚类算法很多,不同的算法适应于不同的问题,这里仅介绍一个基于模型的聚类,该聚类算法对数据点的假设是,这些数据点分别是围绕 K 个核心的 K 个正态分布源所随机生成的,使用 Han JiaWei 的《Data Ming: Concepts and Techniques》中的图: 图中有两个正态分布核心,生成了大致两堆点。我们的聚类算法就是需要根据给出来的那些点,算出这两个正态分布的核心在什么位置,以及分布的参数是多少。这很明显又是一个贝叶斯问题,但这次不同的是,答案是连续的且有无穷多种可能性,更糟的是,只有当我们知道了哪些点属于同一个正态分布圈的时候才能够对这个分布的参数作出靠谱的预测,现在两堆点混在一块我们又不知道哪些点属于第一个正态分布,哪些属于第二个。反过来,只有当我们对分布的参数作出了靠谱的预测时候,才能知道到底哪些点属于第一个分布,那些点属于第二个分布。这就成了一个先有鸡还是先有蛋的问题了。为了解决这个循环依赖,总有一方要先打破僵局,说,不管了,我先随便整一个值出来,看你怎么变,然后我再根据你的变化调整我的变化,然后如此迭代着不断互相推导,最终收敛到一个解。这就是 EM 算法。 EM 的意思是“Expectation-Maximazation”,在这个聚类问题里面,我们是先随便猜一下这两个正态分布的参数:如核心在什么地方,方差是多少。然后计算出每个数据点更可能属于第一个还是第二个正态分布圈,这个是属于 Expectation 一步。有了每个数据点的归属,我们就可以根据属于第一个分布的数据点来重新评估第一个分布的参数(从蛋再回到鸡),这个是 Maximazation 。如此往复,直到参数基本不再发生变化为止。这个迭代收敛过程中的贝叶斯方法在第二步,根据数据点求分布的参数上面。 4.5 最大似然与最小二乘 学过线性代数的大概都知道经典的最小二乘方法来做线性回归。问题描述是:给定平面上 N 个点,(这里不妨假设我们想用一条直线来拟合这些点—— 回归 可以看作是 拟合 的特例,即允许误差的拟合),找出一条最佳描述了这些点的直线。 一个接踵而来的问题就是,我们如何定义最佳?我们设每个点的坐标为 (Xi, Yi) 。如果直线为 y = f(x) 。那么 (Xi, Yi) 跟直线对这个点的“预测”:(Xi, f(Xi)) 就相差了一个 ΔYi = |Yi – f(Xi)| 。最小二乘就是说寻找直线使得 (ΔY1)^2 + (ΔY2)^2 + .. (即误差的平方和)最小,至于为什么是误差的平方和而不是误差的绝对值和,统计学上也没有什么好的解释。然而贝叶斯方法却能对此提供一个完美的解释。 我们假设直线对于坐标 Xi 给出的预测 f(Xi) 是最靠谱的预测,所有纵坐标偏离 f(Xi) 的那些数据点都含有噪音,是噪音使得它们偏离了完美的一条直线,一个合理的假设就是偏离路线越远的概率越小,具体小多少,可以用一个正态分布曲线来模拟,这个分布曲线以直线对 Xi 给出的预测 f(Xi) 为中心,实际纵坐标为 Yi 的点 (Xi, Yi) 发生的概率就正比于 EXP 。(EXP(..) 代表以常数 e 为底的多少次方)。 现在我们回到问题的贝叶斯方面,我们要想最大化的后验概率是: P(h|D) ∝ P(h) * P(D|h) 又见贝叶斯!这里 h 就是指一条特定的直线,D 就是指这 N 个数据点。我们需要寻找一条直线 h 使得 P(h) * P(D|h) 最大。很显然,P(h) 这个先验概率是均匀的,因为哪条直线也不比另一条更优越。所以我们只需要看 P(D|h) 这一项,这一项是指这条直线生成这些数据点的概率,刚才说过了,生成数据点 (Xi, Yi) 的概率为 EXP 乘以一个常数。而 P(D|h) = P(d1|h) * P(d2|h) * .. 即假设各个数据点是独立生成的,所以可以把每个概率乘起来。于是生成 N 个数据点的概率为 EXP * EXP * EXP * .. = EXP {- } 最大化这个概率就是要最小化 (ΔY1)^2 + (ΔY2)^2 + (ΔY3)^2 + .. 。 熟悉这个式子吗? 5. 朴素贝叶斯方法 朴素贝叶斯方法是一个很特别的方法,所以值得介绍一下。我们用朴素贝叶斯在垃圾邮件过滤中的应用来举例说明。 5.1 贝叶斯垃圾邮件过滤器 问题是什么?问题是,给定一封邮件,判定它是否属于垃圾邮件。按照先例,我们还是用 D 来表示这封邮件,注意 D 由 N 个单词组成。我们用 h+ 来表示垃圾邮件,h- 表示正常邮件。问题可以形式化地描述为求: P(h+|D) = P(h+) * P(D|h+) / P(D) P(h-|D) = P(h-) * P(D|h-) / P(D) 其中 P(h+) 和 P(h-) 这两个先验概率都是很容易求出来的,只需要计算一个邮件库里面垃圾邮件和正常邮件的比例就行了。然而 P(D|h+) 却不容易求,因为 D 里面含有 N 个单词 d1, d2, d3, .. ,所以P(D|h+) = P(d1,d2,..,dn|h+) 。我们又一次遇到了数据稀疏性,为什么这么说呢?P(d1,d2,..,dn|h+) 就是说在垃圾邮件当中出现跟我们目前这封邮件一模一样的一封邮件的概率是多大!开玩笑,每封邮件都是不同的,世界上有无穷多封邮件。瞧,这就是数据稀疏性,因为可以肯定地说,你收集的训练数据库不管里面含了多少封邮件,也不可能找出一封跟目前这封一模一样的。结果呢?我们又该如何来计算 P(d1,d2,..,dn|h+) 呢? 我们将 P(d1,d2,..,dn|h+) 扩展为: P(d1|h+) * P(d2|d1, h+) * P(d3|d2,d1, h+) * .. 。熟悉这个式子吗?这里我们会使用一个更激进的假设,我们假设 di 与 di-1 是完全条件无关的,于是式子就简化为 P(d1|h+) * P(d2|h+) * P(d3|h+) * .. 。这个就是所谓的 条件独立假设 ,也正是朴素贝叶斯方法的朴素之处。而计算 P(d1|h+) * P(d2|h+) * P(d3|h+) * .. 就太简单了,只要统计 di 这个单词在垃圾邮件中出现的频率即可。关于贝叶斯垃圾邮件过滤更多的内容可以参考 这个条目 ,注意其中提到的其他资料。 一点注记 :这里,为什么有这个数据稀疏问题,还是因为统计学习方法工作在浅层面, 世界上的单词就算不再变多也是非常之多的,单词之间组成的句子也是变化多端,更不用说一篇文章了,文章数目则是无穷的,所以在这个层面作统计,肯定要被数据稀疏性困扰。我们要注意,虽然句子和文章的数目是无限的,然而就拿邮件来说,如果我们只关心邮件中句子的语义(进而更高抽象层面的“意图”(语义,意图如何可计算地定义出来是一个人工智能问题),在这个层面上可能性便大大缩减了,我们关心的抽象层面越高,可能性越小。单词集合和句子的对应是多对一的,句子和语义的对应又是多对一的,语义和意图的对应还是多对一的,这是个层级体系。神经科学的发现也表明大脑的皮层大致有一种层级结构,对应着越来越抽象的各个层面,至于如何具体实现一个可放在计算机内的大脑皮层,仍然是一个未解决问题,以上只是一个原则(principle)上的认识,只有当 computational 的 cortex 模型被建立起来了之后才可能将其放入电脑。 5.2 为什么朴素贝叶斯方法令人诧异地好——一个理论解释 朴素贝叶斯方法的条件独立假设看上去很傻很天真,为什么结果却很好很强大呢?就拿一个句子来说,我们怎么能鲁莽地声称其中任意一个单词出现的概率只受到它前面的 3 个或 4 个单词的影响呢?别说 3 个,有时候一个单词的概率受到上一句话的影响都是绝对可能的。那么为什么这个假设在实际中的表现却不比决策树差呢?有人对此提出了一个理论解释,并且建立了什么时候朴素贝叶斯的效果能够等价于非朴素贝叶斯的充要条件,这个解释的核心就是:有些独立假设在各个分类之间的分布都是均匀的所以对于似然的相对大小不产生影响;即便不是如此,也有很大的可能性各个独立假设所产生的消极影响或积极影响互相抵消,最终导致结果受到的影响不大。具体的数学公式请参考 这篇 paper 。 6. 层级贝叶斯模型 层级贝叶斯模型 是现代贝叶斯方法的标志性建筑之一。前面讲的贝叶斯,都是在同一个事物层次上的各个因素之间进行统计推理,然而层次贝叶斯模型在哲学上更深入了一层,将这些因素背后的因素(原因的原因,原因的原因,以此类推)囊括进来。一个教科书例子是:如果你手头有 N 枚硬币,它们是同一个工厂铸出来的,你把每一枚硬币掷出一个结果,然后基于这 N 个结果对这 N 个硬币的 θ (出现正面的比例)进行推理。如果根据最大似然,每个硬币的 θ 不是 1 就是 0 (这个前面提到过的),然而我们又知道每个硬币的 p(θ) 是有一个先验概率的,也许是一个 beta 分布。也就是说,每个硬币的实际投掷结果 Xi 服从以 θ 为中心的正态分布,而 θ 又服从另一个以 Ψ 为中心的 beta 分布。层层因果关系就体现出来了。进而 Ψ 还可能依赖于因果链上更上层的因素,以此类推。 6.1 隐马可夫模型(HMM) 吴军在数学之美系列里面介绍的 隐马可夫模型 (HMM)就是一个简单的层级贝叶斯模型: 那么怎么根据接收到的信息来推测说话者想表达的意思呢?我们可以利用叫做“隐含马尔可夫模型”(Hidden Markov Model)来解决这些问题。以语音识别为例,当我们观测到语音信号 o1,o2,o3 时,我们要根据这组信号推测出发送的句子 s1,s2,s3。显然,我们应该在所有可能的句子中找最有可能性的一个。用数学语言来描述,就是在已知 o1,o2,o3,...的情况下,求使得条件概率 P (s1,s2,s3,...|o1,o2,o3....) 达到最大值的那个句子 s1,s2,s3,... 吴军的文章中这里省掉没说的是,s1, s2, s3, .. 这个句子的生成概率同时又取决于一组参数,这组参数决定了 s1, s2, s3, .. 这个马可夫链的先验生成概率。如果我们将这组参数记为 λ ,我们实际上要求的是:P(S|O, λ) (其中 O 表示 o1,o2,o3,.. ,S表示 s1,s2,s3,..) 当然,上面的概率不容易直接求出,于是我们可以间接地计算它。利用贝叶斯公式并且省掉一个常数项,可以把上述公式等价变换成 P(o1,o2,o3,...|s1,s2,s3....) * P(s1,s2,s3,...) 其中 P(o1,o2,o3,...|s1,s2,s3....) 表示某句话 s1,s2,s3...被读成 o1,o2,o3,...的可能性, 而 P(s1,s2,s3,...) 表示字串 s1,s2,s3,...本身能够成为一个合乎情理的句子的可能性,所以这个公式的意义是用发送信号为 s1,s2,s3...这个数列的可能性乘以 s1,s2,s3.. 本身可以一个句子的可能性,得出概率。 这里,s1,s2,s3...本身可以一个句子的可能性其实就取决于参数 λ ,也就是语言模型。所以简而言之就是发出的语音信号取决于背后实际想发出的句子,而背后实际想发出的句子本身的独立先验概率又取决于语言模型。 7. 贝叶斯网络 吴军已经对贝叶斯网络作了科普,请直接跳转到 这里 。更详细的理论参考所有机器学习的书上都有。 参考资料: 一堆机器学习,一堆概率统计,一堆 Google ,和一堆 Wikipedia 条目,一堆 paper 。 本文转载自: http://blog.csdn.net/pongba/article/details/2958094
个人分类: MachineLearning|2051 次阅读|0 个评论
再说 贝叶斯网、马尔科夫随机场
热度 2 justinzhao 2011-8-11 15:20
概述 贝叶斯网(directed acyclic graph), MRF( undirected graph)是两种重要的概率图模型,在日益网络化的世界里,它们能对众多事物、现象合理建模,包括:社交网络(facebook, twitter)、交通网络(transportation,travel,network design)、医疗诊断等等,Russell还用它建立全球的crust vibration network, 用以分析预测 核武器生产地、地震。从马克思哲学的角度讲,运 动着的物质世界是普遍联系和永恒发展的,这种联系正是可以用图模型来模拟,而发展便是图模型的inference,看来Bayesian Network, MRF确实是广泛、客观存在的规律。从计算机视觉、机器学习专业领域来看,它更有着广泛的应用、很大的research community。 Equivalence of Joint Distribution and Graph 本质上来讲,用graphical model解决一个问题,首先是要知道变量间的独立关系(independency among variables),这样才便于建立图(I-Map)。需要说明的是,无论是bayesian network,还是MRF,他们的定义是(P,G),也就是同时定义概率和图,在joint distribution 严格 positive的情况下,联合分布和图是等价的:图是联合分布的I-Map,联合分布也能factorize over the graph。另外,对于贝叶斯图,概率分布在图上的factorization的定义很简单,而对于MRF,factoriztion的定义是:Joint distribution中每个factor都是图H的complete subgraph。注意了: complete subgraph并不是 maximal clique,也就是,如果我们建立的图模型中,每三个变量组成一个clique,这时,与这个图结构compatible的joint distribution完全可以是pairwise的clique potentials相乘而得到的。不过如果我们建立的图结构是每3个variable组成一个clique,我们会随之而建立 tri-order clique potentials相乘的gibbs distribution, 而不是 pairwise Markov models. Drawback 从机器学习的角度来讲,MRF和bayesian network都是parametric methods,他们最大的弊病是对模型要假设,然后训练模型参数;to one extreme, 模型完全符合实际,这样当然很好的解决了问题;to another extreme,先验模型is problematic,now we actually deviate from original problems. 所以William Freeman(MIT)写了一篇文章,用MRF求立体视差,能量低并不代表disparity map is closer to ground truth.换言之,MRF model contructed is not compabible with truth.这个问题怎么解决? introduction of kernal will work? 下面推荐三篇paper: 1. Comparison of graph cuts with belief propagation for stereo, using identical MRF parameters , 2003, Tappen 2. Robust higher order potentials for enforcing label consistency , 2009, P. Kohli 3. An application of markov random fields to range sensing , 2006, J. Diebel
个人分类: 读书日记|11888 次阅读|2 个评论
贝叶斯概率(摘)
uncertworld 2010-11-24 16:33
概率也可以更广义地用来描述未涉及随机变量的命题的置信度。...如果置信度满足一组称作Cox公理(Cox,1946)的简单的一致性规则,它们就可以被映射为概率。因此,概率可以用来描述假设,也可以描述这些假设后所能做的推理。概率的法则保证:如果两个人做同样的假设,得到相同的数据,那么他们就会得到同样的结论。更广义地使用概率来量化置信则被称为贝叶斯观点。它也称作概率的主观解释,因为概率取决于假设。支持采用贝叶斯方法进行数据建模和模式识别的人不认为这种主观性是一种缺陷,因为在他们看来, 不做假设就无法进行推理。 摘自:MackayD.Informationtheory,inference,andlearningalgorithms .CambridgeUniversityPress,2003,信息论、推理与学习算法,肖明波 译,2006.
个人分类: 科研笔记|2050 次阅读|0 个评论
[转载]数学之美番外篇:平凡而又神奇的贝叶斯方法[ZZ]
timy 2010-1-28 12:45
From: http://mindhacks.cn/2008/09/21/the-magical-bayesian-method/ 概率论只不过是把常识用数学公式表达了出来。 拉普拉斯 记得读本科的时候,最喜欢到城里的计算机书店里面去闲逛,一逛就是好几个小时;有一次,在书店看到一本书,名叫贝叶斯方法。当时数学系的课程还没有学到概率统计。我心想,一个方法能够专门写出一本书来,肯定很牛逼。后来,我发现当初的那个朴素归纳推理成立了这果然是个牛逼的方法。 题记 目录 0.前言 1.历史 1.1一个例子:自然语言的二义性 1.2贝叶斯公式 2.拼写纠正 3.模型比较与贝叶斯奥卡姆剃刀 3.1再访拼写纠正 3.2模型比较理论(ModelComparasion)与贝叶斯奥卡姆剃刀(BayesianOccamsRazor) 3.3最小描述长度原则 3.4最优贝叶斯推理 4.无处不在的贝叶斯 4.1中文分词 4.2统计机器翻译 4.3贝叶斯图像识别,AnalysisbySynthesis 4.4EM算法与基于模型的聚类 4.5最大似然与最小二乘 5.朴素贝叶斯方法(又名愚蠢者的贝叶斯(idiotsbayes)) 5.1垃圾邮件过滤器 5.2为什么朴素贝叶斯方法令人诧异地好一个理论解释 6.层级贝叶斯模型 6.1隐马可夫模型(HMM) 7.贝叶斯网络 0. 前言 这是一篇关于贝叶斯方法的科普文,我会尽量少用公式,多用平白的语言叙述,多举实际例子。更严格的公式和计算我会在相应的地方注明参考资料。贝叶斯方法被证明是非常general且强大的推理框架,文中你会看到很多有趣的应用。 1. 历史 托马斯贝叶斯(ThomasBayes)同学的详细生平在这里。以下摘一段wikipedia上的简介: 所谓的贝叶斯方法源于他生前为解决一个逆概问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝叶斯写这篇文章之前,人们已经能够计算正向概率,如假设袋子里面有N个白球,M个黑球,你伸手进去摸一把,摸出黑球的概率是多大。而一个自然而然的问题是反过来:如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测。这个问题,就是所谓的逆概问题。 实际上,贝叶斯当时的论文只是对这个问题的一个直接的求解尝试,并不清楚他当时是不是已经意识到这里面包含着的深刻的思想。然而后来,贝叶斯方法席卷了概率论,并将应用延伸到各个问题领域,所有需要作出概率预测的地方都可以见到贝叶斯方法的影子,特别地,贝叶斯是机器学习的核心方法之一。这背后的深刻原因在于,现实世界本身就是不确定的,人类的观察能力是有局限性的(否则有很大一部分科学就没有必要做了设想我们能够直接观察到电子的运行,还需要对原子模型争吵不休吗?),我们日常所观察到的只是事物表面上的结果,沿用刚才那个袋子里面取球的比方,我们往往只能知道从里面取出来的球是什么颜色,而并不能直接看到袋子里面实际的情况。这个时候,我们就需要提供一个猜测(hypothesis,更为严格的说法是假设,这里用猜测更通俗易懂一点),所谓猜测,当然就是不确定的(很可能有好多种乃至无数种猜测都能满足目前的观测), 但也绝对不是两眼一抹黑瞎蒙具体地说,我们需要做两件事情:1.算出各种不同猜测的可能性大小。2.算出最靠谱的猜测是什么。第一个就是计算特定猜测的后验概率,对于连续的猜测空间则是计算猜测的概率密度函数。第二个则是所谓的模型比较,模型比较如果不考虑先验概率的话就是最大似然方法。 1.1 一个例子:自然语言的二义性 下面举一个自然语言的不确定性的例子。当你看到这句话: Thegirlsawtheboywithatelescope. 你对这句话的含义有什么猜测?平常人肯定会说:那个女孩拿望远镜看见了那个男孩(即你对这个句子背后的实际语法结构的猜测是:Thegirlsaw-with-a-telescopetheboy)。然而,仔细一想,你会发现这个句子完全可以解释成:那个女孩看见了那个拿着望远镜的男孩(即:Thegirlsawthe-boy-with-a-telescope)。那为什么平常生活中我们每个人都能够迅速地对这种二义性进行消解呢?这背后到底隐藏着什么样的思维法则?我们留到后面解释。 1.2 贝叶斯公式 贝叶斯公式是怎么来的? 我们还是使用wikipedia上的一个例子: 一所学校里面有60%的男生,40%的女生。男生总是穿长裤,女生则一半穿长裤一半穿裙子。有了这些信息之后我们可以容易地计算随机选取一个学生,他(她)穿长裤的概率和穿裙子的概率是多大,这个就是前面说的正向概率的计算。然而,假设你走在校园中,迎面走来一个穿长裤的学生(很不幸的是你高度近似,你只看得见他(她)穿的是否长裤,而无法确定他(她)的性别),你能够推断出他(她)是男生的概率是多大吗? 一些认知科学的研究表明(《决策与判断》以及《RationalityforMortals》第12章:小孩也可以解决贝叶斯问题),我们对形式化的贝叶斯问题不擅长,但对于以频率形式呈现的等价问题却很擅长。在这里,我们不妨把问题重新叙述成:你在校园里面随机游走,遇到了N个穿长裤的人(仍然假设你无法直接观察到他们的性别),问这N个人里面有多少个女生多少个男生。 你说,这还不简单:算出学校里面有多少穿长裤的,然后在这些人里面再算出有多少女生,不就行了? 我们来算一算:假设学校里面人的总数是U个。60%的男生都穿长裤,于是我们得到了U*P(Boy)*P(Pants|Boy)个穿长裤的(男生)(其中P(Boy)是男生的概率=60%,这里可以简单的理解为男生的比例;P(Pants|Boy)是条件概率,即在Boy这个条件下穿长裤的概率是多大,这里是100%,因为所有男生都穿长裤)。40%的女生里面又有一半(50%)是穿长裤的,于是我们又得到了U*P(Girl)*P(Pants|Girl)个穿长裤的(女生)。加起来一共是U*P(Boy)*P(Pants|Boy)+U*P(Girl)*P(Pants|Girl)个穿长裤的,其中有U*P(Girl)*P(Pants|Girl)个女生。两者一比就是你要求的答案。 下面我们把这个答案形式化一下:我们要求的是P(Girl|Pants)(穿长裤的人里面有多少女生),我们计算的结果是U*P(Girl)*P(Pants|Girl)/ 。容易发现这里校园内人的总数是无关的,可以消去。于是得到 P(Girl|Pants)=P(Girl)*P(Pants|Girl)/ 注意,如果把上式收缩起来,分母其实就是P(Pants),分子其实就是P(Pants,Girl)。而这个比例很自然地就读作:在穿长裤的人(P(Pants))里面有多少(穿长裤)的女孩(P(Pants,Girl))。 上式中的Pants和Boy/Girl可以指代一切东西,所以其一般形式就是: P(B|A)=P(A|B)*P(B)/ 收缩起来就是: P(B|A)=P(AB)/P(A) 其实这个就等于: P(B|A)*P(A)=P(AB) 难怪拉普拉斯说 概率论只是把常识用数学公式表达了出来 。 然而,后面我们会逐渐发现,看似这么平凡的贝叶斯公式,背后却隐含着非常深刻的原理。 2. 拼写纠正 经典著作《人工智能:现代方法》的作者之一PeterNorvig曾经写过一篇介绍如何写一个拼写检查/纠正器的文章(原文在这里,徐宥的翻译版在这里,这篇文章很深入浅出,强烈建议读一读),里面用到的就是贝叶斯方法,这里我们不打算复述他写的文章,而是简要地将其核心思想介绍一下。 首先,我们需要询问的是: 问题是什么? 问题是我们看到用户输入了一个不在字典中的单词,我们需要去猜测:这个家伙到底真正想输入的单词是什么呢?用刚才我们形式化的语言来叙述就是,我们需要求: P( 我们猜测他想输入的单词|他实际输入的单词) 这个概率。并找出那个使得这个概率最大的猜测单词。显然,我们的猜测未必是唯一的,就像前面举的那个自然语言的歧义性的例子一样;这里,比如用户输入:thew,那么他到底是想输入the,还是想输入thaw?到底哪个猜测可能性更大呢?幸运的是我们可以用贝叶斯公式来直接出它们各自的概率,我们不妨将我们的多个猜测记为h1h2..(h代表hypothesis),它们都属于一个有限且离散的猜测空间H(单词总共就那么多而已),将用户实际输入的单词记为D(D代表Data,即观测数据),于是 P( 我们的猜测1|他实际输入的单词) 可以抽象地记为: P(h1|D) 类似地,对于我们的猜测2,则是P(h2|D)。不妨统一记为: P(h|D) 运用一次贝叶斯公式,我们得到: P(h|D)=P(h)*P(D|h)/P(D) 对于不同的具体猜测h1h2h3..,P(D)都是一样的,所以在比较P(h1|D)和P(h2|D)的时候我们可以忽略这个常数。即我们只需要知道: P(h|D)P(h)*P(D|h)(注:那个符号的意思是正比例于,不是无穷大,注意符号右端是有一个小缺口的。) 这个式子的抽象含义是:对于给定观测数据,一个猜测是好是坏,取决于这个猜测本身独立的可能性大小(先验概率,Prior)和这个猜测生成我们观测到的数据的可能性大小(似然,Likelihood)的乘积。具体到我们的那个thew例子上,含义就是,用户实际是想输入the的可能性大小取决于the本身在词汇表中被使用的可能性(频繁程度)大小(先验概率)和想打the却打成thew的可能性大小(似然)的乘积。 下面的事情就很简单了,对于我们猜测为可能的每个单词计算一下P(h)*P(D|h)这个值,然后取最大的,得到的就是最靠谱的猜测。 一点注记 :Norvig的拼写纠正器里面只提取了编辑距离为2以内的所有已知单词。这是为了避免去遍历字典中每个单词计算它们的P(h)*P(D|h),但这种做法为了节省时间带来了一些误差。但话说回来难道我们人类真的回去遍历每个可能的单词来计算他们的后验概率吗?不可能。实际上,根据认知神经科学的观点,我们首先根据错误的单词做一个bottom-up的关联提取,提取出有可能是实际单词的那些候选单词,这个提取过程就是所谓的基于内容的提取,可以根据错误单词的一些模式片段提取出有限的一组候选,非常快地缩小的搜索空间(比如我输入explaination,单词里面就有充分的信息使得我们的大脑在常数时间内把可能性narrowdown到explanation这个单词上,至于具体是根据哪些线索如音节来提取,又是如何在生物神经网络中实现这个提取机制的,目前还是一个没有弄清的领域)。然后,我们对这有限的几个猜测做一个top-down的预测,看看到底哪个对于观测数据(即错误单词)的预测效力最好,而如何衡量预测效率则就是用贝叶斯公式里面的那个P(h)*P(D|h)了虽然我们很可能使用了一些启发法来简化计算。后面我们还会提到这样的bottom-up的关联提取。 3. 模型比较与奥卡姆剃刀 3.1 再访拼写纠正 介绍了贝叶斯拼写纠正之后,接下来的一个自然而然的问题就来了: 为什么? 为什么要用贝叶斯公式?为什么贝叶斯公式在这里可以用?我们可以很容易地领会为什么贝叶斯公式用在前面介绍的那个男生女生长裤裙子的问题里是正确的。但为什么这里? 为了回答这个问题,一个常见的思路就是想想: 非得这样吗? 因为如果你想到了另一种做法并且证明了它也是靠谱的,那么将它与现在这个一比较,也许就能得出很有价值的信息。那么对于拼写纠错问题你能想到其他方案吗? 不管怎样,一个最常见的替代方案就是,选择离thew的编辑距离最近的。然而the和thaw离thew的编辑距离都是1。这可咋办捏?你说,不慌,那还是好办。我们就看到底哪个更可能被错打为thew就是了。我们注意到字母e和字母w在键盘上离得很紧,无名指一抽筋就不小心多打出一个w来,the就变成thew了。而另一方面thaw被错打成thew的可能性就相对小一点,因为e和a离得较远而且使用的指头相差一个指头(一个是中指一个是小指,不像e和w使用的指头靠在一块神经科学的证据表明紧邻的身体设施之间容易串位)。OK,很好,因为你现在已经是在用最大似然方法了,或者直白一点,你就是在计算那个使得P(D|h)最大的h。 而贝叶斯方法计算的是什么?是P(h)*P(D|h)。多出来了一个P(h)。我们刚才说了,这个多出来的P(h)是特定猜测的先验概率。为什么要掺和进一个先验概率?刚才说的那个最大似然不是挺好么?很雄辩地指出了the是更靠谱的猜测。有什么问题呢?既然这样,我们就从给最大似然找茬开始吧我们假设两者的似然程度是一样或非常相近,这样不就难以区分哪个猜测更靠谱了吗?比如用户输入tlp,那到底是top还是tip?(这个例子不怎么好,因为top和tip的词频可能仍然是接近的,但一时想不到好的英文单词的例子,我们不妨就假设top比tip常见许多吧,这个假设并不影响问题的本质。)这个时候,当最大似然不能作出决定性的判断时,先验概率就可以插手进来给出指示既然你无法决定,那么我告诉你,一般来说top出现的程度要高许多,所以更可能他想打的是top)。 以上只是最大似然的一个问题,即并不能提供决策的全部信息。 最大似然还有另一个问题:即便一个猜测与数据非常符合,也并不代表这个猜测就是更好的猜测,因为这个猜测本身的可能性也许就非常低。比如MacKay在《InformationTheory:InferenceandLearningAlgorithms》里面就举了一个很好的例子:-13711你说是等差数列更有可能呢?还是-X^3/11+9/11*X^2+23/11每项把前项作为X带入后计算得到的数列?此外曲线拟合也是,平面上N个点总是可以用N-1阶多项式来完全拟合,当N个点近似但不精确共线的时候,用N-1阶多项式来拟合能够精确通过每一个点,然而用直线来做拟合/线性回归的时候却会使得某些点不能位于直线上。你说到底哪个好呢?多项式?还是直线?一般地说肯定是越低阶的多项式越靠谱(当然前提是也不能忽视似然P(D|h),明摆着一个多项式分布您愣是去拿直线拟合也是不靠谱的,这就是为什么要把它们两者乘起来考虑。),原因之一就是低阶多项式更常见,先验概率(P(h))较大(原因之二则隐藏在P(D|h)里面),这就是为什么我们要用样条来插值,而不是直接搞一个N-1阶多项式来通过任意N个点的原因。 以上分析当中隐含的哲学是,观测数据总是会有各种各样的误差,比如观测误差(比如你观测的时候一个MM经过你一不留神,手一抖就是一个误差出现了),所以如果过分去寻求能够完美解释观测数据的模型,就会落入所谓的数据过配(overfitting)的境地,一个过配的模型试图连误差(噪音)都去解释(而实际上噪音又是不需要解释的),显然就过犹不及了。所以P(D|h)大不代表你的h(猜测)就是更好的h。还要看P(h)是怎样的。所谓奥卡姆剃刀精神就是说:如果两个理论具有相似的解释力度,那么优先选择那个更简单的(往往也正是更平凡的,更少繁复的,更常见的)。 过分匹配的另一个原因在于当观测的结果并不是因为误差而显得不精确而是因为真实世界中对数据的结果产生贡献的因素太多太多,跟噪音不同,这些偏差是一些另外的因素集体贡献的结果,不是你的模型所能解释的噪音那是不需要解释一个现实的模型往往只提取出几个与结果相关度很高,很重要的因素(cause)。这个时候观察数据会倾向于围绕你的有限模型的预测结果呈正态分布,于是你实际观察到的结果就是这个正态分布的随机取样,这个取样很可能受到其余因素的影响偏离你的模型所预测的中心,这个时候便不能贪心不足地试图通过改变模型来完美匹配数据,因为那些使结果偏离你的预测的贡献因素不是你这个有限模型里面含有的因素所能概括的,硬要打肿脸充胖子只能导致不实际的模型,举个教科书例子:身高和体重的实际关系近似于一个二阶多项式的关系,但大家都知道并不是只有身高才会对体重产生影响,物理世界影响体重的因素太多太多了,有人身材高大却瘦得跟稻草,有人却是横长竖不长。但不可否认的是总体上来说,那些特殊情况越是特殊就越是稀少,呈围绕最普遍情况(胖瘦适中)的正态分布,这个分布就保证了我们的身高体重相关模型能够在大多数情况下做出靠谱的预测。但是刚才说了,特例是存在的,就算不是特例,人有胖瘦,密度也有大小,所以完美符合身高体重的某个假想的二阶多项式关系的人是不存在的,我们又不是欧几里德几何世界当中的理想多面体,所以,当我们对人群随机抽取了N个样本(数据点)试图对这N个数据点拟合出一个多项式的话就得注意,它肯定得是二阶多项式,我们要做的只是去根据数据点计算出多项式各项的参数(一个典型的方法就是最小二乘);它肯定不是直线(我们又不是稻草),也不是三阶多项式四阶多项式..如果硬要完美拟合N个点,你可能会整出一个N-1阶多项式来设想身高和体重的关系是5阶多项式看看? 3.2 模型比较理论(ModelComparasion)与贝叶斯奥卡姆剃刀(BayesianOccamsRazor) 实际上,模型比较就是去比较哪个模型(猜测)更可能隐藏在观察数据的背后。其基本思想前面已经用拼写纠正的例子来说明了。我们对用户实际想输入的单词的猜测就是模型,用户输错的单词就是观测数据。我们通过: P(h|D)P(h)*P(D|h) 来比较哪个模型最为靠谱。前面提到,光靠P(D|h)(即似然)是不够的,有时候还需要引入P(h)这个先验概率。奥卡姆剃刀就是说P(h)较大的模型有较大的优势,而最大似然则是说最符合观测数据的(即P(D|h)最大的)最有优势。整个模型比较就是这两方力量的拉锯。我们不妨再举一个简单的例子来说明这一精神:你随便找枚硬币,掷一下,观察一下结果。好,你观察到的结果要么是正,要么是反(不,不是少林足球那枚硬币:P),不妨假设你观察到的是正。现在你要去根据这个观测数据推断这枚硬币掷出正的概率是多大。根据最大似然估计的精神,我们应该猜测这枚硬币掷出正的概率是1,因为这个才是能最大化P(D|h)的那个猜测。然而每个人都会大摇其头很显然,你随机摸出一枚硬币这枚硬币居然没有反面的概率是不存在的,我们对一枚随机硬币是否一枚有偏硬币,偏了多少,是有着一个先验的认识的,这个认识就是绝大多数硬币都是基本公平的,偏得越多的硬币越少见(可以用一个beta分布来表达这一先验概率)。将这个先验正态分布p()(其中表示硬币掷出正面的比例,小写的p代表这是概率密度函数)结合到我们的问题中,我们便不是去最大化P(D|h),而是去最大化P(D|)*p(),显然=1是不行的,因为P(=1)为0,导致整个乘积也为0。实际上,只要对这个式子求一个导数就可以得到最值点。 以上说的是当我们知道先验概率P(h)的时候,光用最大似然是不靠谱的,因为最大似然的猜测可能先验概率非常小。然而,有些时候,我们对于先验概率一无所知,只能假设每种猜测的先验概率是均等的,这个时候就只有用最大似然了。实际上,统计学家和贝叶斯学家有一个有趣的争论,统计学家说:我们让数据自己说话。言下之意就是要摒弃先验概率。而贝叶斯支持者则说:数据会有各种各样的偏差,而一个靠谱的先验概率则可以对这些随机噪音做到健壮。事实证明贝叶斯派胜利了,胜利的关键在于所谓先验概率其实也是经验统计的结果,譬如为什么我们会认为绝大多数硬币是基本公平的?为什么我们认为大多数人的肥胖适中?为什么我们认为肤色是种族相关的,而体重则与种族无关?先验概率里面的先验并不是指先于一切经验,而是仅指先于我们当前给出的观测数据而已,在硬币的例子中先验指的只是先于我们知道投掷的结果这个经验,而并非先天。 然而,话说回来,有时候我们必须得承认,就算是基于以往的经验,我们手头的先验概率还是均匀分布,这个时候就必须依赖用最大似然,我们用前面留下的一个自然语言二义性问题来说明这一点: Thegirlsawtheboywithatelescope. 到底是Thegirlsaw-with-a-telescopetheboy这一语法结构,还是Thegirlsawthe-boy-with-a-telescope呢?两种语法结构的常见程度都差不多(你可能会觉得后一种语法结构的常见程度较低,这是事后偏见,你只需想想Thegirlsawtheboywithabook就知道了。当然,实际上从大规模语料统计结果来看后一种语法结构的确稍稍不常见一丁点,但是绝对不足以解释我们对第一种结构的强烈倾向)。那么到底为什么呢? 我们不妨先来看看MacKay在书中举的一个漂亮的例子: 图中有多少个箱子?特别地,那棵书后面是一个箱子?还是两个箱子?还是三个箱子?还是..你可能会觉得树后面肯定是一个箱子,但为什么不是两个呢?如下图: 很简单,你会说:要是真的有两个箱子那才怪了,怎么就那么巧这两个箱子刚刚好颜色相同,高度相同呢? 用概率论的语言来说,你刚才的话就翻译为:猜测h不成立,因为P(D|h)太小(太巧合)了。我们的直觉是:巧合(小概率)事件不会发生。所以当一个猜测(假设)使得我们的观测结果成为小概率事件的时候,我们就说才怪呢,哪能那么巧捏?! 现在我们可以回到那个自然语言二义性的例子,并给出一个完美的解释了:如果语法结构是Thegirlsawthe-boy-with-a-telecope的话,怎么那个男孩偏偏手里拿的就是望远镜一个可以被用来saw-with的东东捏?这也忒小概率了吧。他咋就不会拿本书呢?拿什么都好。怎么偏偏就拿了望远镜?所以唯一的解释是,这个巧合背后肯定有它的必然性,这个必然性就是,如果我们将语法结构解释为Thegirlsaw-with-a-telescopetheboy的话,就跟数据完美吻合了既然那个女孩是用某个东西去看这个男孩的,那么这个东西是一个望远镜就完全可以解释了(不再是小概率事件了)。 自然语言二义性很常见,譬如上文中的一句话: 参见《决策与判断》以及《RationalityforMortals》第12章:小孩也可以解决贝叶斯问题 就有二义性:到底是参见这两本书的第12章,还是仅仅是第二本书的第12章呢?如果是这两本书的第12章那就是咄咄怪事了,怎么恰好两本书都有第12章,都是讲同一个问题,更诡异的是,标题还相同呢? 注意,以上做的是似然估计(即只看P(D|h)的大小),不含先验概率。通过这两个例子,尤其是那个树后面的箱子的例子我们可以看到,似然估计里面也蕴含着奥卡姆剃刀:树后面的箱子数目越多,这个模型就越复杂。单个箱子的模型是最简单的。似然估计选择了更简单的模型。 这个就是所谓的 贝叶斯奥卡姆剃刀(BayesianOccamsRazor) ,因为这个剃刀工作在贝叶斯公式的似然(P(D|h))上,而不是模型本身(P(h))的先验概率上,后者是传统的奥卡姆剃刀。关于贝叶斯奥卡姆剃刀我们再来看一个前面说到的曲线拟合的例子:如果平面上有N个点,近似构成一条直线,但绝不精确地位于一条直线上。这时我们既可以用直线来拟合(模型1),也可以用二阶多项式(模型2)拟合,也可以用三阶多项式(模型3),..,特别地,用N-1阶多项式便能够保证肯定能完美通过N个数据点。那么,这些可能的模型之中到底哪个是最靠谱的呢?前面提到,一个衡量的依据是奥卡姆剃刀:越是高阶的多项式越是繁复和不常见。然而,我们其实并不需要依赖于这个先验的奥卡姆剃刀,因为有人可能会争辩说:你怎么就能说越高阶的多项式越不常见呢?我偏偏觉得所有阶多项式都是等可能的。好吧,既然如此那我们不妨就扔掉P(h)项,看看P(D|h)能告诉我们什么。我们注意到越是高阶的多项式,它的轨迹弯曲程度越是大,到了八九阶简直就是直上直下,于是我们不仅要问:一个比如说八阶多项式在平面上随机生成的一堆N个点偏偏恰好近似构成一条直线的概率(即P(D|h))有多大?太小太小了。反之,如果背后的模型是一条直线,那么根据该模型生成一堆近似构成直线的点的概率就大得多了。这就是贝叶斯奥卡姆剃刀。 这里只是提供一个关于贝叶斯奥卡姆剃刀的科普,强调直观解释,更多理论公式请参考MacKay的著作《InformationTheory:InferenceandLearningAlgorithms》第28章。 3.3 最小描述长度原则 贝叶斯模型比较理论与信息论有一个有趣的关联: P(h|D)P(h)*P(D|h) 两边求对数,将右式的乘积变成相加: lnP(h|D)lnP(h)+lnP(D|h) 显然,最大化P(h|D)也就是最大化lnP(h|D)。而lnP(h)+lnP(D|h)则可以解释为模型(或者称假设、猜测)h的编码长度加上在该模型下数据D的编码长度。使这个和最小的模型就是最佳模型。 而究竟如何定义一个模型的编码长度,以及数据在模型下的编码长度则是一个问题。更多可参考Mitchell的《MachineLearning》的6.6节,或Mackay的28.3节) 3.4 最优贝叶斯推理 所谓的推理,分为两个过程,第一步是对观测数据建立一个模型。第二步则是使用这个模型来推测未知现象发生的概率。我们前面都是讲的对于观测数据给出最靠谱的那个模型。然而很多时候,虽然某个模型是所有模型里面最靠谱的,但是别的模型也并不是一点机会都没有。譬如第一个模型在观测数据下的概率是0.5。第二个模型是0.4,第三个是0.1。如果我们只想知道对于观测数据哪个模型最可能,那么只要取第一个就行了,故事到此结束。然而很多时候我们建立模型是为了推测未知的事情的发生概率,这个时候,三个模型对未知的事情发生的概率都会有自己的预测,仅仅因为某一个模型概率稍大一点就只听他一个人的就太不民主了。所谓的最优贝叶斯推理就是将三个模型对于未知数据的预测结论加权平均起来(权值就是模型相应的概率)。显然,这个推理是理论上的制高点,无法再优了,因为它已经把所有可能性都考虑进去了。 只不过实际上我们是基本不会使用这个框架的,因为计算模型可能非常费时间,二来模型空间可能是连续的,即有无穷多个模型(这个时候需要计算模型的概率分布)。结果还是非常费时间。所以这个被看作是一个理论基准。 4. 无处不在的贝叶斯 以下我们再举一些实际例子来说明贝叶斯方法被运用的普遍性,这里主要集中在机器学习方面,因为我不是学经济的,否则还可以找到一堆经济学的例子。 4.1 中文分词 贝叶斯是机器学习的核心方法之一。比如中文分词领域就用到了贝叶斯。Google研究员吴军在《数学之美》系列中就有一篇是介绍中文分词的,这里只介绍一下核心的思想,不做赘述,详细请参考吴军的文章(这里)。 分词问题的描述为:给定一个句子(字串),如: 南京市长江大桥 如何对这个句子进行分词(词串)才是最靠谱的。例如: 1.南京市/长江大桥 2.南京/市长/江大桥 这两个分词,到底哪个更靠谱呢? 我们用贝叶斯公式来形式化地描述这个问题,令X为字串(句子),Y为词串(一种特定的分词假设)。我们就是需要寻找使得P(Y|X)最大的Y,使用一次贝叶斯可得: P(Y|X)P(Y)*P(X|Y) 用自然语言来说就是这种分词方式(词串)的可能性乘以这个词串生成我们的句子的可能性。我们进一步容易看到:可以近似地将P(X|Y)看作是恒等于1的,因为任意假想的一种分词方式之下生成我们的句子总是精准地生成的(只需把分词之间的分界符号扔掉即可)。于是,我们就变成了去最大化P(Y),也就是寻找一种分词使得这个词串(句子)的概率最大化。而如何计算一个词串: W1,W2,W3,W4.. 的可能性呢?我们知道,根据联合概率的公式展开:P(W1,W2,W3,W4..)=P(W1)*P(W2|W1)*P(W3|W2,W1)*P(W4|W1,W2,W3)*..于是我们可以通过一系列的条件概率(右式)的乘积来求整个联合概率。然而不幸的是随着条件数目的增加(P(Wn|Wn-1,Wn-2,..,W1)的条件有n-1个),数据稀疏问题也会越来越严重,即便语料库再大也无法统计出一个靠谱的P(Wn|Wn-1,Wn-2,..,W1)来。为了缓解这个问题,计算机科学家们一如既往地使用了天真假设:我们假设句子中一个词的出现概率只依赖于它前面的有限的k个词(k一般不超过3,如果只依赖于前面的一个词,就是2元语言模型(2-gram),同理有3-gram、4-gram等),这个就是所谓的有限地平线假设。虽然这个假设很傻很天真,但结果却表明它的结果往往是很好很强大的,后面要提到的朴素贝叶斯方法使用的假设跟这个精神上是完全一致的,我们会解释为什么像这样一个天真的假设能够得到强大的结果。目前我们只要知道,有了这个假设,刚才那个乘积就可以改写成:P(W1)*P(W2|W1)*P(W3|W2)*P(W4|W3)..(假设每个词只依赖于它前面的一个词)。而统计P(W2|W1)就不再受到数据稀疏问题的困扰了。对于我们上面提到的例子南京市长江大桥,如果按照自左到右的贪婪方法分词的话,结果就成了南京市长/江大桥。但如果按照贝叶斯分词的话(假设使用3-gram),由于南京市长和江大桥在语料库中一起出现的频率为0,这个整句的概率便会被判定为0。从而使得南京市/长江大桥这一分词方式胜出。 一点注记 :有人可能会疑惑,难道我们人类也是基于这些天真的假设来进行推理的?不是的。事实上,统计机器学习方法所统计的东西往往处于相当表层(shallow)的层面,在这个层面机器学习只能看到一些非常表面的现象,有一点科学研究的理念的人都知道:越是往表层去,世界就越是繁复多变。从机器学习的角度来说,特征(feature)就越多,成百上千维度都是可能的。特征一多,好了,高维诅咒就产生了,数据就稀疏得要命,不够用了。而我们人类的观察水平显然比机器学习的观察水平要更深入一些,为了避免数据稀疏我们不断地发明各种装置(最典型就是显微镜),来帮助我们直接深入到更深层的事物层面去观察更本质的联系,而不是在浅层对表面现象作统计归纳。举一个简单的例子,通过对大规模语料库的统计,机器学习可能会发现这样一个规律:所有的他都是不会穿bra的,所有的她则都是穿的。然而,作为一个男人,却完全无需进行任何统计学习,因为深层的规律就决定了我们根本不会去穿bra。至于机器学习能不能完成后者(像人类那样的)这个推理,则是人工智能领域的经典问题。至少在那之前,声称统计学习方法能够终结科学研究(原文)的说法是纯粹外行人说的话。 4.2 统计机器翻译 统计机器翻译因为其简单,自动(无需手动添加规则),迅速成为了机器翻译的事实标准。而统计机器翻译的核心算法也是使用的贝叶斯方法。 问题是什么?统计机器翻译的问题可以描述为:给定一个句子e,它的可能的外文翻译f中哪个是最靠谱的。即我们需要计算:P(f|e)。一旦出现条件概率贝叶斯总是挺身而出: P(f|e)P(f)*P(e|f) 这个式子的右端很容易解释:那些先验概率较高,并且更可能生成句子e的外文句子f将会胜出。我们只需简单统计(结合上面提到的N-Gram语言模型)就可以统计任意一个外文句子f的出现概率。然而P(e|f)却不是那么好求的,给定一个候选的外文局子f,它生成(或对应)句子e的概率是多大呢?我们需要定义什么叫对应,这里需要用到一个分词对齐的平行语料库,有兴趣的可以参考《FoundationsofStatisticalNaturalLanguageProcessing》第13章,这里摘选其中的一个例子:假设e为:JohnlovesMary。我们需要考察的首选f是:JeanaimeMarie(法文)。我们需要求出P(e|f)是多大,为此我们考虑e和f有多少种对齐的可能性,如: John(Jean)loves(aime)Marie(Mary) 就是其中的一种(最靠谱的)对齐,为什么要对齐,是因为一旦对齐了之后,就可以容易地计算在这个对齐之下的P(e|f)是多大,只需计算: P(John|Jean)*P(loves|aime)*P(Marie|Mary) 即可。 然后我们遍历所有的对齐方式,并将每种对齐方式之下的翻译概率求和。便可以获得整个的P(e|f)是多大。 一点注记 :还是那个问题:难道我们人类真的是用这种方式进行翻译的?highlyunlikely。这种计算复杂性非常高的东西连三位数乘法都搞不定的我们才不会笨到去使用呢。根据认知神经科学的认识,很可能我们是先从句子到语义(一个逐层往上(bottom-up)抽象的folding过程),然后从语义根据另一门语言的语法展开为另一门语言(一个逐层往下(top-down)的具体化unfolding过程)。如何可计算地实现这个过程,目前仍然是个难题。(我们看到很多地方都有bottom-up/top-down这样一个对称的过程,实际上有人猜测这正是生物神经网络原则上的运作方式,对视觉神经系统的研究尤其证明了这一点,Hawkins在《OnIntelligence》里面提出了一种HTM(HierarchicalTemporalMemory)模型正是使用了这个原则。) 4.3 贝叶斯图像识别,AnalysisbySynthesis 贝叶斯方法是一个非常general的推理框架。其核心理念可以描述成:AnalysisbySynthesis(通过合成来分析)。06年的认知科学新进展上有一篇paper就是讲用贝叶斯推理来解释视觉识别的,一图胜千言,下图就是摘自这篇paper: 首先是视觉系统提取图形的边角特征,然后使用这些特征自底向上地激活高层的抽象概念(比如是E还是F还是等号),然后使用一个自顶向下的验证来比较到底哪个概念最佳地解释了观察到的图像。 4.4EM 算法与基于模型的聚类 聚类是一种无指导的机器学习问题,问题描述:给你一堆数据点,让你将它们最靠谱地分成一堆一堆的。聚类算法很多,不同的算法适应于不同的问题,这里仅介绍一个基于模型的聚类,该聚类算法对数据点的假设是,这些数据点分别是围绕K个核心的K个正态分布源所随机生成的,使用HanJiaWei的《DataMing:ConceptsandTechniques》中的图: 图中有两个正态分布核心,生成了大致两堆点。我们的聚类算法就是需要根据给出来的那些点,算出这两个正态分布的核心在什么位置,以及分布的参数是多少。这很明显又是一个贝叶斯问题,但这次不同的是,答案是连续的且有无穷多种可能性,更糟的是,只有当我们知道了哪些点属于同一个正态分布圈的时候才能够对这个分布的参数作出靠谱的预测,现在两堆点混在一块我们又不知道哪些点属于第一个正态分布,哪些属于第二个。反过来,只有当我们对分布的参数作出了靠谱的预测时候,才能知道到底哪些点属于第一个分布,那些点属于第二个分布。这就成了一个先有鸡还是先有蛋的问题了。为了解决这个循环依赖,总有一方要先打破僵局,说,不管了,我先随便整一个值出来,看你怎么变,然后我再根据你的变化调整我的变化,然后如此迭代着不断互相推导,最终收敛到一个解。这就是EM算法。 EM的意思是Expectation-Maximazation,在这个聚类问题里面,我们是先随便猜一下这两个正态分布的参数:如核心在什么地方,方差是多少。然后计算出每个数据点更可能属于第一个还是第二个正态分布圈,这个是属于Expectation一步。有了每个数据点的归属,我们就可以根据属于第一个分布的数据点来重新评估第一个分布的参数(从蛋再回到鸡),这个是Maximazation。如此往复,直到参数基本不再发生变化为止。这个迭代收敛过程中的贝叶斯方法在第二步,根据数据点求分布的参数上面。 4.5 最大似然与最小二乘 学过线性代数的大概都知道经典的最小二乘方法来做线性回归。问题描述是:给定平面上N个点,(这里不妨假设我们想用一条直线来拟合这些点回归可以看作是拟合的特例,即允许误差的拟合),找出一条最佳描述了这些点的直线。 一个接踵而来的问题就是,我们如何定义最佳?我们设每个点的坐标为(Xi,Yi)。如果直线为y=f(x)。那么(Xi,Yi)跟直线对这个点的预测:(Xi,f(Xi))就相差了一个Yi=|Yif(Xi)|。最小二乘就是说寻找直线使得(Y1)^2+(Y2)^2+..(即误差的平方和)最小,至于为什么是误差的平方和而不是误差的绝对值和,统计学上也没有什么好的解释。然而贝叶斯方法却能对此提供一个完美的解释。 我们假设直线对于坐标Xi给出的预测f(Xi)是最靠谱的预测,所有纵坐标偏离f(Xi)的那些数据点都含有噪音,是噪音使得它们偏离了完美的一条直线,一个合理的假设就是偏离路线越远的概率越小,具体小多少,可以用一个正态分布曲线来模拟,这个分布曲线以直线对Xi给出的预测f(Xi)为中心,实际纵坐标为Yi的点(Xi,Yi)发生的概率就正比于EXP 。(EXP(..)代表以常数e为底的多少次方)。 现在我们回到问题的贝叶斯方面,我们要想最大化的后验概率是: P(h|D)P(h)*P(D|h) 又见贝叶斯!这里h就是指一条特定的直线,D就是指这N个数据点。我们需要寻找一条直线h使得P(h)*P(D|h)最大。很显然,P(h)这个先验概率是均匀的,因为哪条直线也不比另一条更优越。所以我们只需要看P(D|h)这一项,这一项是指这条直线生成这些数据点的概率,刚才说过了,生成数据点(Xi,Yi)的概率为EXP 乘以一个常数。而P(D|h)=P(d1|h)*P(d2|h)*..即假设各个数据点是独立生成的,所以可以把每个概率乘起来。于是生成N个数据点的概率为EXP *EXP *EXP *..=EXP {- }最大化这个概率就是要最小化(Y1)^2+(Y2)^2+(Y3)^2+..。熟悉这个式子吗? 5. 朴素贝叶斯方法 朴素贝叶斯方法是一个很特别的方法,所以值得介绍一下。我们用朴素贝叶斯在垃圾邮件过滤中的应用来举例说明。 5.1 贝叶斯垃圾邮件过滤器 问题是什么?问题是,给定一封邮件,判定它是否属于垃圾邮件。按照先例,我们还是用D来表示这封邮件,注意D由N个单词组成。我们用h+来表示垃圾邮件,h-表示正常邮件。问题可以形式化地描述为求: P(h+|D)=P(h+)*P(D|h+)/P(D) P(h-|D)=P(h-)*P(D|h-)/P(D) 其中P(h+)和P(h-)这两个先验概率都是很容易求出来的,只需要计算一个邮件库里面垃圾邮件和正常邮件的比例就行了。然而P(D|h+)却不容易求,因为D里面含有N个单词d1,d2,d3,..,所以P(D|h+)=P(d1,d2,..,dn|h+)。我们又一次遇到了数据稀疏性,为什么这么说呢?P(d1,d2,..,dn|h+)就是说在垃圾邮件当中出现跟我们目前这封邮件一模一样的一封邮件的概率是多大!开玩笑,每封邮件都是不同的,世界上有无穷多封邮件。瞧,这就是数据稀疏性,因为可以肯定地说,你收集的训练数据库不管里面含了多少封邮件,也不可能找出一封跟目前这封一模一样的。结果呢?我们又该如何来计算P(d1,d2,..,dn|h+)呢? 我们将P(d1,d2,..,dn|h+)扩展为:P(d1|h+)*P(d2|d1,h+)*P(d3|d2,d1,h+)*..。熟悉这个式子吗?这里我们会使用一个更激进的假设,我们假设di与di-1是完全条件无关的,于是式子就简化为P(d1|h+)*P(d2|h+)*P(d3|h+)*..。这个就是所谓的条件独立假设,也正是朴素贝叶斯方法的朴素之处。而计算P(d1|h+)*P(d2|h+)*P(d3|h+)*..就太简单了,只要统计di这个单词在垃圾邮件中出现的频率即可。关于贝叶斯垃圾邮件过滤更多的内容可以参考这个条目,注意其中提到的其他资料。 一点注记 :这里,为什么有这个数据稀疏问题,还是因为统计学习方法工作在浅层面,世界上的单词就算不再变多也是非常之多的,单词之间组成的句子也是变化多端,更不用说一篇文章了,文章数目则是无穷的,所以在这个层面作统计,肯定要被数据稀疏性困扰。我们要注意,虽然句子和文章的数目是无限的,然而就拿邮件来说,如果我们只关心邮件中句子的语义(进而更高抽象层面的意图(语义,意图如何可计算地定义出来是一个人工智能问题),在这个层面上可能性便大大缩减了,我们关心的抽象层面越高,可能性越小。单词集合和句子的对应是多对一的,句子和语义的对应又是多对一的,语义和意图的对应还是多对一的,这是个层级体系。神经科学的发现也表明大脑的皮层大致有一种层级结构,对应着越来越抽象的各个层面,至于如何具体实现一个可放在计算机内的大脑皮层,仍然是一个未解决问题,以上只是一个原则(principle)上的认识,只有当computational的cortex模型被建立起来了之后才可能将其放入电脑。 5.2 为什么朴素贝叶斯方法令人诧异地好一个理论解释 朴素贝叶斯方法的条件独立假设看上去很傻很天真,为什么结果却很好很强大呢?就拿一个句子来说,我们怎么能鲁莽地声称其中任意一个单词出现的概率只受到它前面的3个或4个单词的影响呢?别说3个,有时候一个单词的概率受到上一句话的影响都是绝对可能的。那么为什么这个假设在实际中的表现却不比决策树差呢?有人对此提出了一个理论解释,并且建立了什么时候朴素贝叶斯的效果能够等价于非朴素贝叶斯的充要条件,这个解释的核心就是:有些独立假设在各个分类之间的分布都是均匀的所以对于似然的相对大小不产生影响;即便不是如此,也有很大的可能性各个独立假设所产生的消极影响或积极影响互相抵消,最终导致结果受到的影响不大。具体的数学公式请参考这篇paper。 6. 层级贝叶斯模型 层级贝叶斯模型是现代贝叶斯方法的标志性建筑之一。前面讲的贝叶斯,都是在同一个事物层次上的各个因素之间进行统计推理,然而层次贝叶斯模型在哲学上更深入了一层,将这些因素背后的因素(原因的原因,原因的原因,以此类推)囊括进来。一个教科书例子是:如果你手头有N枚硬币,它们是同一个工厂铸出来的,你把每一枚硬币掷出一个结果,然后基于这N个结果对这N个硬币的(出现正面的比例)进行推理。如果根据最大似然,每个硬币的不是1就是0(这个前面提到过的),然而我们又知道每个硬币的p()是有一个先验概率的,也许是一个beta分布。也就是说,每个硬币的实际投掷结果Xi服从以为中心的正态分布,而又服从另一个以为中心的beta分布。层层因果关系就体现出来了。进而还可能依赖于因果链上更上层的因素,以此类推。 6.1 隐马可夫模型(HMM) 吴军在数学之美系列里面介绍的隐马可夫模型(HMM)就是一个简单的层级贝叶斯模型: 那么怎么根据接收到的信息来推测说话者想表达的意思呢?我们可以利用叫做隐含马尔可夫模型(HiddenMarkovModel)来解决这些问题。以语音识别为例,当我们观测到语音信号o1,o2,o3时,我们要根据这组信号推测出发送的句子s1,s2,s3。显然,我们应该在所有可能的句子中找最有可能性的一个。用数学语言来描述,就是在已知o1,o2,o3,的情况下,求使得条件概率P(s1,s2,s3,|o1,o2,o3.)达到最大值的那个句子s1,s2,s3, 吴军的文章中这里省掉没说的是,s1,s2,s3,..这个句子的生成概率同时又取决于一组参数,这组参数决定了s1,s2,s3,..这个马可夫链的先验生成概率。如果我们将这组参数记为,我们实际上要求的是:P(S|O,)(其中O表示o1,o2,o3,..,S表示s1,s2,s3,..) 当然,上面的概率不容易直接求出,于是我们可以间接地计算它。利用贝叶斯公式并且省掉一个常数项,可以把上述公式等价变换成 P(o1,o2,o3,|s1,s2,s3.)*P(s1,s2,s3,) 其中 P(o1,o2,o3,|s1,s2,s3.)表示某句话s1,s2,s3被读成o1,o2,o3,的可能性,而P(s1,s2,s3,)表示字串s1,s2,s3,本身能够成为一个合乎情理的句子的可能性,所以这个公式的意义是用发送信号为s1,s2,s3这个数列的可能性乘以s1,s2,s3..本身可以一个句子的可能性,得出概率。 这里,s1,s2,s3本身可以一个句子的可能性其实就取决于参数,也就是语言模型。所以简而言之就是发出的语音信号取决于背后实际想发出的句子,而背后实际想发出的句子本身的独立先验概率又取决于语言模型。 7. 贝叶斯网络 吴军已经对贝叶斯网络作了科普,请直接跳转到这里。更详细的理论参考所有机器学习的书上都有。 参考资料 一堆机器学习,一堆概率统计,一堆Google,和一堆Wikipedia条目,一堆paper。 部分书籍参考《机器学习与人工智能资源导引》。
个人分类: 机器学习|3543 次阅读|0 个评论
频度与贝叶斯――白猫黑猫?(修正版)
热度 1 chuchj 2009-5-1 21:57
频度与贝叶斯――白猫黑猫?(修正版) 储诚进 兰州大学 以下所记,只是自己在学习贝叶斯期间的灵光闪现的心得与感受,混杂了频度统计与贝叶斯统计,或对或错,故放亮你的眼睛,呵呵。侧重于粗略的线条,具体细节未述。 主要从下面几个方面,大概的介绍相关的东东:一般认识;点估计;区间估计;模型选择;等级(层次)贝叶斯模型;MCMC。 1. 一般认识 贝叶斯理论的基础是什么?据传18世纪英国一个名为Bayes的家伙在摆弄条件概率公式时发现,该公式具有完美的对称性。大家还记得那个公式吗?不记得没关系,它就在下面 P(C and D)=P(C|D)P(D) (1) 也可以写成 P(C and D)=P(D|C)P(C) (2) 对称不?对称!把公式(1)和(2)放到一起 P(D|C)=P(C|D)P(D)/P(C)(3) 把D 想象成参数或者模型,C 想象成你所得的实验数据,发现什么了没?P(C|D)就成了似然函数,即在 D 这个模型为真或者说在 D 参数的情况下,能得到数据 C 的可能性。同样,P(D|C)就可以说成:在当前的数据条件下,得到模型为真的概率,或者说取得参数数值为D 的概率。好了,我们现在把公式(3)抽象以下,转化为贝叶斯术语 posterior-prior + data 当前的实验数据(data)更新了你现有的对某方面的认识(prior),从而达到一个更高的水平(posterior);如此循环往复,不断接近事实(但你永远都不知道你是否真的就到达事实了)。 这就是基础知识,简单不?简单! 另外,贝叶斯对先验和后验都是以概率分布的形式给出。 2. 点估计 点估计实际上应该是频度统计里的概念,但无所谓了,知道是怎么回事就成,呵呵。等等,继续之前,我先申明一句:统计到底是干什么的?大部分的情况是从样本来对总体进行估计!因为绝大部分情况下,你是不可能得到总体的,我们所能做的,只是从总体中抽样。既然是估计,就存在着估计的准确性的问题,就会存在着误差。点估计是怎么回事呢?比如从样本中(实验)估计平均出平均水平:某种树木的平均高度、世界上男人的平均寿命、女人的平均寿命等等(注意了,我们不可能对所有的某种树木比如油松都进行测量,我们也不可能汇总世界上所有男人女人的年龄来计算平均寿命,我们只是在取样)。除了平均值,另外一个常见的点估计就是方差估计。平均值说的是平均状态,而方差表明的是与平均状态的偏离程度。 正如我们之前说到的,估计是存在着不确定性的,所以单纯的点估计毫无意义(纯粹的)。必须把与其挥之不去的不确定性给出来,这就是区间估计,下一节的内容。那么贝叶斯的点估计和频度的点估计有什么区别呢?记住一点就可以了:频度估计给出的是最可能的值,而贝叶斯给出的是平均值。为什么说频度的是最可能的值呢?转下节。 3. 区间估计 在频度统计里,有不同的方法可以得到区间估计。但意义是一样的:因为是对总体的估计,所以要给出一个范围,以免太绝对,太自信。在频度统计中,最基本也是最核心的就是似然函数(其实贝叶斯也是),最常用就是最大似然估计(MLE)和似然比例检验(LRT)。仔细读最大似然估计,看出来了没,是最大似然,说明是使取得当前数据的可能性最大的参数值。这也是上面我们说频度统计的点估计得到的是最可能的值。 贝叶斯统计同样用到似然函数,但没有MLE和LRT,贝叶斯里的似然函数的作用是抽提你的实验数据里的信息,可以说用其校正你当前对某方面的认识;这也是数据进入的唯一的途径。得到的结果是参数的一个概率分布,能从中得到平均值与区间估计。 在无先验信息的情况下,频度与贝叶斯方法得到的点估计和区间估计在数值上没有什么本质的区别,大家都差不多。所以用谁也无所谓。有人可能要说了,我频度得到的平均值是5,贝叶斯得到的是4.5,那哪个对?都对都不对!真值我们永远都不知道,所以说5可以,说4.5也可以;但二者毕竟又都不是真值,所以又都不对。 4. 假说检验与模型选择 在这之前,先闲话两句我们大家熟悉的不能再熟悉的神奇的 p 值。 p 貌似是统计泰斗Fisher造出来的,也是随意而为之,Fisher本身可能也没想到其即兴之 p 却有如此大的影响力。这也反应了统计的一个无奈的地方:总得找个标准来衡量我们的实验吧。频度统计在一定程度上是在攻击纸老虎:先竖一个无效假说,通过实验来验证在这个无效假说的情况下能否得到当前数据(这一点肯定有异议,对此我保留意见)。但凡有处理的(比如施肥),一般都会有效果,一般都能够拒绝无效假说而接受备择假说。也就是说,频度统计的力不是直接作用在处理上,而是转了个弯,打在了这个纸老虎上面,通过否定纸老虎来肯定备择假说。 频度的假说检验就是通过 p 来实现的,这里用到了之前提到的LRT。详细的就不说了。(贝叶斯实质上应该说没有假说检验,有的只是模型选择)。频度的模型选择一般用的是AIC指标,而贝叶斯的是DIC(BIC)。贝叶斯另外一个选择标准是通过预测分布来实现的:结合后验分布和数据。关于模型选择,贝叶斯理论还没有一个大家都能接受的指标来衡量,不同的指标各有优缺点。换句话说,还在发展之中。 频度假说检验的不足的地方在于不好处理多于两个选择的情况下,而贝叶斯则无所谓,多少个假说,其都能给出一个概率值,而且其不限于嵌套假说。 除了模型选择之外(选择),另外一个就模型的平均化(不是非此即彼,而是大家都来,中和一下)。 5. 等级贝叶斯 终于说到贝叶斯方法的强项了。等级、多层次的模型是贝叶斯为我所喜爱的最大的原因(实际上,等级或者说层次模型不限于贝叶斯统计,频度统计里的等级模型的历史更加悠久,相关的文献更加丰富,比如重复测量的方差分析、时间序列分析等;只是贝叶斯的框架更加直观,更加流畅)。在同一个模型中,你可以考虑群落水平、种群水平和个体水平,这不,层次不就出来了吗?能包含多种不同的不确定性,能包含测量误差(这家伙非常重要,特别是在种群观察方面,比如鸟类,鱼类,你是数不明白到底有多少的),包含个体的异质性。同时,它能综合不同来源的数据。能够包容差不多一切。 等级贝叶斯的经典结构:三部曲――数据模型、过程模型与参数模型(超参数模型)。这差不多是所有贝叶斯等级模型的基础。所有这三部分都可以以概率的形式给出,即三部分都可以包含进不确定性。 举几个生态学上的应用:1) 如何估计一棵树的种子数目?难住你了吧。你总不能把所有的树都砍倒,一粒一粒的数吧。Clark(duke的环境学院的教授)结合种子雨数据与观察到的树的成熟状态可以估计; 2) 测度物种分布,记得是Gelfand(duke统计系的头头)做的;3) 种群的时间序列分析,采用state space model;4) 生态群落的高维度共存,Clark做的。 6. MCMC 贝叶斯分析如何得到后验概率分布?这是最核心的内容。怎么得到?对于简单的贝叶斯分析,一般都能直接得到后验分布的(通过设置似然和先验共轭)。对于等级模型就有一些复杂。等级模型里面会涉及到很到的参数(绝大部分参数都是没有实际用处的,估计它们是为了得到你所感兴趣的参数),参数与参数之间是彼此相关的,无法直接得到某个参数的概率分布。怎么办?MCMC!马尔科夫链蒙特卡罗。参数之间彼此相关也可说成是彼此条件独立,这一点很重要,通过条件独立,可以为一些参数写出条件后验分布(共轭的),通过Gibbs取样得到链;对于不能写出条件后验的,就通过Metropolis-Hastings(或Metropolis,或其他的)得到链。总之,我们总是可以得到我们想要的。 以上大概的对贝叶斯和频度作了个比较。说了好多贝叶斯的好处,下面搜罗搜罗它的缺点: 1. 先验 这是贝叶斯受到诟病最多的。把主观的东西考虑进统计模型,合理吗?不合理吗? 2. 收敛性 MCMC常常要经过很长的时间很多的步骤才能收敛,如何判断收敛了是一个很大的问题。你能信任和想象比如说模拟了200万步得到的结果吗? 3. 软件 用贝叶斯的人比频度的人相对来说要少很多,所以相应的软件也比较少。BUGS系列在推广贝叶斯的使用方面功不可没。建议使用BUGS与R结合,BUGS对于构建贝叶斯模型是很方便的,而R可以很好的把你的结果呈现出来。当然了,牛人一般都是用R自己写,一个模型几百几千行。用BUGS的另外一个好处是:软件相对成熟,出错误的可能性要小一些。自己写的往往有bug存在其中(之前在一个大牛的code里就找出了一个bug)。此外,R里现在有越来越多的包都实现了贝叶斯方法,但总体感觉不太好用,做一个东西有时要找很多个不同的包。 4. 通用性 由于熟悉贝叶斯的人不多,故在写文章、作报告时需要详细的解释很多东西,比如说什么是先验,什么是后验,后验是怎么得到的,先验的分布,初始值是如何选择的,取样器是如何构建的。。。所以,你会发现,用贝叶斯写得的文章一般都比较长。没办法,因为要发表,总得让人看懂吧。而频度统计的就简单多了,你只要说我采用的是方差分析,别人就知道是怎么回事了,用不着解释。 最后一句,不,是两句: 1. 实用就好,不管是频度还是贝叶斯,不管是用BUGS还是自己写程序,能解决你的问题的就是好家伙; 2. 想法第一,软件第二。没有想法,把软件学得顶呱呱、呱呱叫也没有用。软件是用来解决问题的,不要本末倒置。 备注: 非常感谢许多认识和不认识的朋友提出的很多很有建设性的建议,让我学到了很多,也再一次证实了知识无止境这句话。自己学到的还仅是皮毛。
个人分类: 生活点滴|12390 次阅读|4 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-16 03:50

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部