定义: 概念学习是指从有关某个布尔函数的输入输出训练样例中,推断出该布尔函数。
2.1 Find-S:寻找极大特殊假设
如何使用more-general-than偏序来搜索与训练样例相一致的假设?一种办法是从H中最特殊假设开始,然后在该假设覆盖正例失败时将其一般化(当一假设能正确地划分一个正例时,称该假设“覆盖”该正例)。使用偏序实现的Find-S算法的精确描述见表2-3。
表2-3 Find-S算法
1. 将h初始化为H中最特殊假设 2. 对每个正例x 对h的每个属性约束ai 如果 x满足ai 那么 不做任何事 否则 将h中ai替换为x满足的紧邻的更一般约束 3. 输出假设h |
为说明这一算法,假定给予学习器的一系列训练样例如表2-1所示。Find-S的第一步是将h初始化为H中最特殊假设:
h←<Æ, Æ, Æ, Æ, Æ, Æ>
在扫描到表2-1中第一个训练样例时,它刚好是个正例。很清楚,这时的h太特殊了。h中的每一个Æ约束都不被该样例满足,因此,每个属性都被替换成能拟合该例的紧邻的更一般的值约束,也就是这一样例的属性值本身:
h←<Sunny, Warm, Normal, Strong, Warm, Same>
这个h仍旧太特殊了,它把除了第一个样例以外的所有实例都划分为反例。下一步,第2个训练样例(仍然为正例)迫使该算法进一步将h泛化。这次使用“?”代替h中不能满足新样例的属性值。之后的假设变为:
h←<Sunny, Warm, ?, Strong, Warm, Same>
然后处理第三个训练样例,这里是一个反例,h不变。实际上,Find-S算法简单地忽略每一个反例!
2.1.1 候选消除学习算法
候选消除算法计算出的变型空间,包含H中所有与训练样例的观察到的序列一致的假设。开始,变型空间被初始化为H中所有假设的集合。即将G边界集合初始化为H中最一般的假设:
G0←{<?, ?, ?, ?, ?, ?>}
并将S边界集合初始化为最特殊假设:
S0←{<Æ, Æ, Æ, Æ, Æ, Æ>}
这两个边界集合包含了整个假设空间。因为H中所有假设都比S0更一般,且比G0更特殊。算法在处理每个训练样例时,S和G边界集合分别被泛化和特化,从变型空间中逐步消去与样例不一致的假设。在所有训练样例处理完后,得到的变型空间就包含了所有与样例一致的假设,而且只包含这样的假设。这一算法在表2-5中描述:
表2-5 使用变型空间的候选消除算法
注意正例和反例是怎样同时影响S和G的。
将G集合初始化为H中极大一般假设 将S集合初始化为H中极大特殊假设 对每个训练样例d,进行以下操作: 如果d是一正例 从G中移去所有与d不一致的假设 对S中每个与d不一致的假设s 从S中移去s 把s的所有的极小泛化式h加入到S中,其中h满足 h与d一致,而且G的某个成员比h更一般 从S中移去所有这样的假设:它比S中另一假设更一般 如果d是一个反例 从S中移去所有与d不一致的假设 对G中每个与d不一致的假设g 从G中移去g 把g的所有的极小特化式h加入到G中,其中h满足 h与d一致,而且S的某个成员比h更特殊 从G中移去所有这样的假设:它比G中另一假设更特殊 |