这两天因为读文章的需要,重新翻了翻这本书。觉得@raullew在http://book.douban.com/review/4474434/ 中提到的问题的确是这本书的一个缺陷。
是否真正了解一个东西,不仅取决于你是否了解这个东西的特性,还取决于你能不能把它和相似的东西区分开。比如说,你要学习什么是猫,不仅需要了解猫的特点,还要了解猫和老虎有什么差别。
这本书对Bayesian Learning方法有相当严谨的介绍和总结。不过换个角度看,缺乏对Bayesian Learning和其他一些机器学习理论(比如statistical learning theory或者PAC learning)的比较,这的确给人造成一种“Bayesian改进是真理”的感觉。如果能增加一个对No Free Lunch原理和PAC-Bayes理论的介绍,应该可以让读者在更广的背景下看Bayesian Learning。
在frequentist statistics里,probability是指重复事件的极限频率值,所以它不能被用来质疑one time或者counterfactual的事件。在他们眼里,可以讨论数据的likelihood,即是p( D| θ);但无法讨论 p(θ |D ),因为参数是固定的。人们可以通过decision theory设计estimator。由于每次用的数据集不同,即数据是random的,所以estimator是random的。
在Bayesian眼里,probability指的是degree of belief. Bayes rule提供了机制,让prior beliefs转化成posterior beliefs。Bayesian approach对于参数的inference是给一个概率,即p(θ | x) 。有时,人们会用p(θ | x) 的mode,作为一个simple point estimate,即MAP。但MAP不是真正的Bayesian approach。
统计里,biased一般是用来形容estimator,prior一般用objective和subjective来形容。
现在有种趋势是达成共识,认为frequentist和Bayesian都有用。比如empirical Bayes就是基于data来选定prior。
不同学派里的领军人物,给人的感觉总是很“偏激”,对对立学派感觉总是要一棍子打死,没法理解。。。
个人感觉,这本书并不是在于要对Bayesian Learning方法给出相当严谨的介绍和总结,就如楼上所说,它仅仅是要给个machine learning的启蒙,事实上它也是选材于machine learning里几个较主流的子领域,只是由于作者是Bayesian派,所以自然会从Bayesian approach的角度去改进。(没法理解他们这种学派的偏执。。。)
可以看看这本书,The Bayesian Choice - From Decision-Theoretic Foundations to Computational Implementation。这个对Bayesian approach有个较全的介绍。
没什么砖和玉之说吧,大家发表自己的观点而已。
对于bias的问题,从我的观点出发,可以这样认为,bias是无所不在的。从一些cognitive science的实验来看的话,bias本身就是人类在认知的时候的必然的过程。比如一些optical illusion就是因为人脑在处理这些图像数据的时候,会根据经验而产生bias。这里的经验可以认为就是我们在模型中引入的先验。
选择某种模型的时候,其实也可以认为是有bias的。如果从贝叶斯的观点来看的话,选择单一模型可以看做是你认为这种模型的prior非常高,其余的模型可以忽略。在不确定某种模型的时候,也可以利用像贝叶斯参数估计的方式一样,考虑多种模型以及模型中的不确定性。
至于机器学习,我觉得你这里想说的是统计学派的意思吧?一般来说统计学派的方式就是利用最大似然来获得一个经验性的参数,这里的估计方式完全是依赖数据的。而评价一个参数的好坏的标准,用的是一些test sets。然后从中选择出performance最好的一组参数作为最终的参数。统计学习是个更为广泛的概念,利用后验进行加权预测的方式,是贝叶斯方法在做预测时候的主要方法。
"的另一种度量泛化能力的方法。" 咋度量?
你们所说的就是说统计学习就是给一个点估计(point estimate),贝叶斯给的是好多估计服从一个分布啦(后验分布),因为数据包含不确定性。根据这个分布你可以搞三搞四衡量不确定性有多大,或者做你所说的“而是一系列模型的平均”。
如果你把prior当作biased的话,哪里都有bias。包括你决定用某一种方法和模型的开始你就默认融入了先验,只不过你没告诉我们而已。
那么,我能不能认为,你们所说的机器学习,就是cross validation加个点估计。当然你永远可以去推那些界啦。统计学习,就是推后验之后,然后搞三搞四? 我一向不吝惜抛我的砖头引你们的玉
即便是uniform的prior,也是一种bias,因为你已经认定了所有的可能性都是均等的了。
我同意chen的观点,statistical learning是告诉了我们,我们到底能错得多离谱,实际上这种离谱的情况很少会发生,以至于这个边界的用途不大。但是在证明某些方法的可行性的时候,这个界会起到很好的约束作用。PRML那本书里,我记得也有利用到这个边界来证明的地方。
Bayesian和frequentist的想法的区别在于,频率学派认为无论是模型角度也好,还是从参数角度来说也好,存在一个唯一的固定的解,而我们可以做的是利用数据去estimate这个参数theta,或者说是某种模型M。而在prediction的时候,利用已经学习得到的参数来进行prediction:
p(x_new) = p(x_new|theta,M)
而Bayesian在参数这一层也引入了uncertainty,认为参数/模型不是固定不变的,而是符合一个distribution,所以有了先验p(theta)。而我们可以做的是得到这个theta的后验,p(theta|data),而后在prediction的时候,考虑了所有的情况,给予加权:
p(x_new) = integral{p(x_new|theta)p(theta|data)}
如果有足够充分的data,MAP的结果也会趋近于MLE的结果,也就是说在数据足够充分的情况下,Bayesian会逐渐收敛,这时候两种方法得到的结果就差别不大了。所以宽泛一点来看,频率学派可以看做是贝叶斯的一种特例情况。
在实际的使用中,如果数据不是那么充分,不单纯是指数据数量上,还需要考虑数据的维度等很多情况下来看,数据不充分的时候,bayesian往往可以得到更好的结果。
从我个人的经历来看,Bayesian已经成为主流的方式了,至少在学术界。这点可以从近十来年的NIPS,ICML,AAAI,JML等等看出来。并且我身边的研究人员也基本上都在做Bayesian的理论,跨度也很广泛,从neurosciences,robotics,NLP,到cognitive science,都在使用Bayesian的理论和方法。
我记得有一篇paper,名字大概是why prior matters,讨论了为什么在topic models中prior和重要。这也可以看做是从一个很小的点阐述了Bayesian Learning的意义。
机器学习太宽泛了,所以我用的词是统计学习。
在理论层上,bayesian learning (theory?)和统计学习理论相对应,如我前面所说,我没有见过详细阐述这个内容的文章,只是在别的一些文章里看到被提起。可以看成是统计学习理论之外的另一种度量泛化能力的方法。
在算法层面上,bayesian learning和频率学派的学习方法相对应。如果不把MAP这种所谓poor man's bayes看作bayesian learning, 那么他和非bayes学习方法的不同在于,它的结果不是一个模型,而是一系列模型的平均。非bayes学习方法通过在validation集上测试选择最佳最佳模型。bayes学习方法在设立了超先验参数后,自动地学习每个模型的权重(概率密度)。
在普通的分类问题中,Bayesian方法并非主流,因为超先验能提供的有用信息有限,但个性化系统Bayesian方法则尝试得很多,因为它很好地表述了每个人的兴趣都不会离大众兴趣太远这一情况。
作为一个上学时好读书不求甚解,现在又从事了多年工程工作的民科,时常觉得自己概念含糊,以前不清楚的概念当然没有弄得更清楚,以前清楚地概念现在也模棱两可了。所以上面的书评写了一半就停了。这是个技术手段:写技术文章和官样文章其实是相通的,自己不清楚的地方就宽泛说两句不疼不痒的,可以避免露怯。大家来追问,其实和那些咄咄逼人的记者也没有差别,是逼我出丑呢。下面我就勉力在说两句,进一步的追问就不能保证回复了。
统计学习理论提供了一种方法,用来估计最悲观情况下的损失上界。假定我们对数据的分布一无所知,而且我们的目标是最坏情况下损失尽量小,这种情况下统计学习理论是一个理想的风险评估手段。注意统计学习理论只是提供了估计上界的方法,这并不意味着我们就有一种可操作的方法,使得我们在任何二分情况下都能找到一个损失上界可估计的分类方法。那么能不能找到这样一种可操作的方法呢?支持向量机就是这个问题的答案。
Bayes学习理论不知道在哪里提出并被阐述,但是大家似乎都这样谈论它。Bayes学习理论提供的是另外一种估计损失的方法:假定数据符合某种未知的分布A,我们的先验知识让我们认为该数据符合分布B,这种情况下损失的上界是什么?显然,如果A和B非常相似,则损失会很小,反之,如果A和B相差非常大,则损失会很大。这里有几点需要注意:
1)统计学习理论是为最坏情况提供估计,Bayes学习理论则是为每种不同的情况提供估计;
2)既然A是未知的,所以Bayes学习理论实际上不可能真正的提供估计。它的意义有两点:首先,他从理论上告诉我们,充分的先验知识可以降低风险;其次,以它为基础可以为有些学习算法得到更好的损失上界估计(搜一下PAC Bayes方面的文章)。
回过头来看No Free Lunch原理:它告诉我们,没有任何方法可以在所有情况下损失都小于其他方法。这和Bayes学习理论告诉我们的东西类似:一个方法的损失大小一定程度上依赖于它所隐含的先验知识。因为没有任何一种先验假设可以适用于所有分布,所以没有一种方法永远占优。Bayes方法的不同之处在于,它(往往)并没有设定某一种先验假设,它只是提供了一个让我们设定先验假设的方法,效果好不好在于我们是不是拥有好的先验知识。