概念学习
许多机器学习问题涉及从特殊训练样例中得到一般概念。比如人们不断学习的一些一般概念和类别。每个概念可被看作一个对象或事件集合,它是从更大的集合中选取的子集(如从动物的集合中选取鸟类),或者是在这个较大集合中定义的布尔函数(如在动物集合中定义的函数,它对鸟类返回true,对其他动物返回false)。
小孩理解一个词义的例子
考虑一个小孩子理解“狗”这个词的意义。假设当小孩的父母指着一个动物对他说,“这是一只狗”,这是给出了概念的正例。而当小孩子看到一只猫时说,“这是一只狗”时,他父母会纠正他说,“这是一只猫,不是一只狗”,这是在主动学习过程中给出负例的情形。心理研究表明,人在学习概念时往往只是来源于正例数据。
理解一个词的含义等同于概念学习,同时也等同于二元分类。即当输入数据时一个概念的样例时,定义f(x)=1;否则f(x)=0。
理解概念学习
逆概问题
所谓的贝叶斯方法源于他生前为解决一个“逆概”问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝叶斯写这篇文章之前,人们已经能够计算“正向概率”,如“假设袋子里面有N个白球,M个黑球,你伸手进去摸一把,摸出黑球的概率是多大”。而一个自然而然的问题是反过来:“如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测”。这个问题,就是所谓的逆概问题。
贝叶斯是机器学习的核心方法之一。这背后的深刻原因在于,现实世界本身就是不确定的,人类的观察能力是有局限性的,我们日常所观察到的只是事物表面上的结果,沿用刚才那个袋子里面取球的比方,我们往往只能知道从里面取出来的球是什么颜色,而并不能直接看到袋子里面实际的情况。这个时候,我们就需要提供一个假设(hypothesis)。所谓假设,当然就是不确定的(可能是有限个,也可能是无限多种),为了确定哪个假设是正确的,我们需要做两件事情:1、算出各种不同猜测的可能性大小。2、算出最靠谱的猜测是什么。第一个就是计算特定猜测的后验概率(Posterior),对于连续的猜测空间则是计算猜测的概率密度函数。第二个则是所谓的模型比较,模型比较如果不考虑先验概率(Prior)的话就是最大似然方法。
猜数字游戏(The Number Game)
问题描述
游戏规则是这样的,我首先选取了一个数字规律的概念C(也可以说是规则,比如介于1到10的数字、距离20很近的数字等),然后根据符合C的数据,随机选取一部分,最后给定一些测试数据,让你将符合这个概念C的数据分类出来。
分析
现在假设所有数字都是从1到100中选取的整数。
如果现在告诉你,16是一个未知概念C的正例,那请问你什么数字还符合这个概念C呢?
你会感觉所有的假设都太过模糊,不太可能。比如17可以看做是离16很近的概念的正例;6也有可能,因为它们都有一个数字6;再如32,它们都是2的幂次;以此的假设太多了。
现在,如果我再告诉你,8、2和64也都是正例数据,你会很自然的猜测这个隐含的概念是“2的幂次”,那么为什么会这样呢?为什么我们的假设不是“所有偶数”,或者“除去32的所有2的幂次”?这些假设也都符合给出的数据资料,为什么我们直觉上会认为是“2的幂次”呢?我们会从贝叶斯的角度解释这件事情。
description
贝叶斯角度的解释
接着上面的说,我们现在要解释为什么我们选择“2的幂次”这个假设,而不是“所有偶数”这个假设,虽然现在这两个假设都符合给定的数据,但是怎么样才能避免可疑的巧合情况造成的估计错误呢?
这里,我们将问题公式化,我们假设样本是从数据集中均匀随机选取的,这样从N个数据中采样的概率p(D|h)如下。
由于在1到100区间里,“2的幂次”的数据集D={2,4,8,16,32,64};而“所有偶数”的数据集D={2,4,6,8,...,98,100},所以,从“2的幂次”采样的概率要远比从“所有偶数”的数据集采样的概率大。故由{16,8,2,64}数据得出“所有偶数”这个假设就很有可能只是一个巧合。
下面简要介绍了似然度、先验概率和后验概率:
后验概率
根据贝叶斯公式,我们看到后验概率要结合先验概率和似然度。这里看到虽然“powers of 2,plus 37”和“powers of 2,except 32”有很大的似然度,但是先验概率很小,导致最终的后验概率很小,这种反常概念的低的先验概率可以避免对数据的过拟合。
后验预测分布
将所有可能的后验概率p(h|D)进行加权得到了后验预测分布。
参考资料
机器学习,Tom M. Mitchell
Machine Learning: A Probabilistic Perspective, Kevin P. Murphy
转载请注明作者Jason Ding及其出处
Github主页(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)