《机器学习》 概念学习
概念学习,个人认为,就是通过训练之后,当你给定某实例的相关属性,电脑给出相应的判断是否属于这个概念。
例如给出一个概念:鸟类
然后该概念的属性有:<是否有翅膀,是否有脚,嘴巴是否为尖嘴,体型是大还是小>
如果我们定义说,有翅膀的就是鸟那么就是:<有翅膀,?,?,?>
“?”表示可接受任意值
如果是"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来显示。错,这样子我们就无法逼近一个假设,只能再拿到一个实例的时候,与电脑数据库中各项训练例子进行比较。或许你会说利用变形空间,遗憾的是最后投票两者的票数肯定是一样多的,因此我们必须使用一个有偏的假设空间,然后抱着假设包含在假设空间当中,那么,我们就可以慢慢泛化得到一个真正的假设。