这两天因为读文章的需要,重新翻了翻这本书。觉得@raullew在http://book.douban.com/review/4474434/ 中提到的问题的确是这本书的一个缺陷。
是否真正了解一个东西,不仅取决于你是否了解这个东西的特性,还取决于你能不能把它和相似的东西区分开。比如说,你要学习什么是猫,不仅需要了解猫的特点,还要了解猫和老虎有什么差别。
这本书对Bayesian Learning方法有相当严谨的介绍和总结。不过换个角度看,缺乏对Bayesian Learning和其他一些机器学习理论(比如statistical learning theory或者PAC learning)的比较,这的确给人造成一种“Bayesian改进是真理”的感觉。如果能增加一个对No Free Lunch原理和PAC-Bayes理论的介绍,应该可以让读者在更广的背景下看Bayesian Learning。
对“更广的背景下看Bayesian Learning”的回应
看大伙的讨论发现bias和bayes发音很像,这里面有没有什么渊源呢
在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有个较全的介绍。
我的意思是说,可以在theory层面上,看看Bayesian learning theory替代Statistical learning thoery会是什么效果。
个人感觉Bayesian learning更多用来propose model, model selection model inference。
Statistical learning thoery是在更高层次提供了各种math model,比如consistent model, inconsistent model, pac model, 可以在高层次分析应用里各个model。
一个在application层面上,一个在theory层面上。
关于Bayesian and frequentist statistics, Michael Jordan在他那本暂未出版的an introduction to graphical models里第五章做了较好的解释,网上可以搜到。
什么领域知识?zoubin讲gaussian process吗
看了一遍zoubin的视频,大概理解chen_1st的意思了,把领域知识丢掉,太可惜了
zc@Edin,我基本同意你说的,我们说的差不多是一回事。我语言表达能力比较差一些。
没什么砖和玉之说吧,大家发表自己的观点而已。
对于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方法则尝试得很多,因为它很好地表述了每个人的兴趣都不会离大众兴趣太远这一情况。
讨论很热烈啊,我现在有点忙,有空再来参与 :-)
如果是这种情况,priori一样可以CV来定
我觉得是这样的啊,说错请轻拍
Bayesian通过设置prior来限制逆问题的解,这个prior可以跨一组备选模型,但如果范围没设置好,就不是很好了
而Regularization的方法,则不是很介意,因为lambda还可以通过CV来估计
好吧,我又忍不住了,既然有人能够点评这本书。那么我们顺藤摸瓜讨论一下吧。
机器学习和贝叶斯学习有什么区别?
如果两个都能做分类,他们做出的分类有什么差别?
我相信基本上一方面有的问题,用另一套体系应该都能做,他们会有什么差别?
这种上界还不如用统计推一个interval呢。。。
@Topsoil
是的,统计学习理论的这个上界是如此宽松,以至于没有任何实用价值,但它的确推动了SVM的研究。PAC Bayes的研究可以给出一些更好的上界。但总体来说,理论研究最大的价值不是指导当下的工程应用,而是推动对学科认识的提高和新方法的发现。
No Free Lunch的确更像一个哲学思想,但它的指导意义还是很重要,比如还是经常会听到人说某某方法是最好的方法,显然可以用No Free Lunch原理去反驳。
你是说minmax吗?
然后上界这个也太悲观了吧。我觉得一般实用也就是最小化empirical loss加一点regularization,保守一些使得generalization capability不要太差。
Bayesian当然可以提供估计了,比如MMSE估计。只不过Bayesian的估计是通过最小化某种统计量的loss function,比如说一个叉叉的期望之类的。
No free lunch更像是一个哲学思想,真还不知道怎么用它。
@raullew
不好意思,刚写完就发现有地方概念含糊,删了改了重发
作为一个上学时好读书不求甚解,现在又从事了多年工程工作的民科,时常觉得自己概念含糊,以前不清楚的概念当然没有弄得更清楚,以前清楚地概念现在也模棱两可了。所以上面的书评写了一半就停了。这是个技术手段:写技术文章和官样文章其实是相通的,自己不清楚的地方就宽泛说两句不疼不痒的,可以避免露怯。大家来追问,其实和那些咄咄逼人的记者也没有差别,是逼我出丑呢。下面我就勉力在说两句,进一步的追问就不能保证回复了。
统计学习理论提供了一种方法,用来估计最悲观情况下的损失上界。假定我们对数据的分布一无所知,而且我们的目标是最坏情况下损失尽量小,这种情况下统计学习理论是一个理想的风险评估手段。注意统计学习理论只是提供了估计上界的方法,这并不意味着我们就有一种可操作的方法,使得我们在任何二分情况下都能找到一个损失上界可估计的分类方法。那么能不能找到这样一种可操作的方法呢?支持向量机就是这个问题的答案。
Bayes学习理论不知道在哪里提出并被阐述,但是大家似乎都这样谈论它。Bayes学习理论提供的是另外一种估计损失的方法:假定数据符合某种未知的分布A,我们的先验知识让我们认为该数据符合分布B,这种情况下损失的上界是什么?显然,如果A和B非常相似,则损失会很小,反之,如果A和B相差非常大,则损失会很大。这里有几点需要注意:
1)统计学习理论是为最坏情况提供估计,Bayes学习理论则是为每种不同的情况提供估计;
2)既然A是未知的,所以Bayes学习理论实际上不可能真正的提供估计。它的意义有两点:首先,他从理论上告诉我们,充分的先验知识可以降低风险;其次,以它为基础可以为有些学习算法得到更好的损失上界估计(搜一下PAC Bayes方面的文章)。
回过头来看No Free Lunch原理:它告诉我们,没有任何方法可以在所有情况下损失都小于其他方法。这和Bayes学习理论告诉我们的东西类似:一个方法的损失大小一定程度上依赖于它所隐含的先验知识。因为没有任何一种先验假设可以适用于所有分布,所以没有一种方法永远占优。Bayes方法的不同之处在于,它(往往)并没有设定某一种先验假设,它只是提供了一个让我们设定先验假设的方法,效果好不好在于我们是不是拥有好的先验知识。
话说我刚才进来看到了。。。谈方法论的东西真是不容易啊。。。
不能完全狗同只是用一种biased的眼光,你也可以用uniform priori啊
楼上说的有理,不过要简短又清晰地论述这个问题,还是得费点脑子。所以暂时没法回复楼上上的各位。
我觉得这本书的目的,本身就是一个简单启蒙的教学,如果从理论角度进行那个比较的话,会让这本书变得过于复杂了。其次,Bayesian也算不上在基础理论上的创新,没有从数学根本上和vapnik的理论有很大的差异。我觉得Bayesian在基本的学习方式上没有什么特别的,其最大的优势在于用一种biased的眼光去看待问题,更符合人脑在分析问题时的方式,从而更为general。
感觉这几年贝叶斯的东西很火,连有人说它不好都没有了。哪里的对比阐述的更好呢?
《Pattern Recognition And Machine Learning》热门书评