《机器学习》 概念学习

概念学习,个人认为,就是通过训练之后,当你给定某实例的相关属性,电脑给出相应的判断是否属于这个概念。

例如给出一个概念:鸟类

然后该概念的属性有:<是否有翅膀,是否有脚,嘴巴是否为尖嘴,体型是大还是小>

如果我们定义说,有翅膀的就是鸟那么就是:<有翅膀,?,?,?>

“?”表示可接受任意值

如果是"X"则表示不接受任意值(也就是说,只要众多属性只有一个是X那么它就不是鸟类)

那么我们就有实例集合:2*2*2*2*2 个

架设空间:1+3*3*3*3*3 个,因为多了一个“?”所以3 = 2 + 1 。而另外一个1则表示包含X的实例

 

解释:

一般性:例如<有翅膀,?,?,?>,就比另外一个<有翅膀,?,?,体型大>来得更加一般。

 

Find-S:

该算法自动忽略反例,只看正例

接下来演示一下,左边等于给出训练实例,有变为接受该实例之后的架设:

初始状态                         <X,X,X,X>

<有翅膀,有脚,尖嘴,体型大>,正例          <有翅膀,有脚,尖嘴,体型大>

<有翅膀,有脚,尖嘴,体型小>,正例          <有翅膀,有脚,尖嘴,?>

<无翅膀,有脚,尖嘴,体型小>,反例          <有翅膀,有脚,尖嘴,?>

Find-S讲述结束。

 

候选消除法:

解释:

一致性:对于所有的训练样例,架设都与相应的结果一致,就称两者一致。

 

演示:

注意,在接受到某个训练样例之后,S 和 G 会做相应的调整。

在训练样例有限的情况下,可能会得到一个不完全学习概念,此时应该把实例扔进变形空间里进行投票。

 

文章最后有一个专门写“无偏学习的无用性”,意思就是,如果某个属性有三个选项ABC,如果说正例的条件是A或者B,C不行,那么按照上面的说法,很明显,我们不能用?来表示,但是似乎可以使用A或B来显示。错,这样子我们就无法逼近一个假设,只能再拿到一个实例的时候,与电脑数据库中各项训练例子进行比较。或许你会说利用变形空间,遗憾的是最后投票两者的票数肯定是一样多的,因此我们必须使用一个有偏的假设空间,然后抱着假设包含在假设空间当中,那么,我们就可以慢慢泛化得到一个真正的假设。

posted @ 2013-06-23 14:34  yutoulck  阅读(360)  评论(0编辑  收藏  举报