特征表方法成功地添加了非线性学习;棋谱学习法成功地消除了自我模拟的错误假设。所得程序的性能远远优于用棋谱学习训练的线性函数的性能。 但是,特征表方法仍有一些新的问题。首先,这种方法作出两种假设:(1)棋谱走法总是最佳走法;以及(2)无任何同样好的其他走法。由于这些游戏的玩家都为高手,因此不采用失败一方的走法。
图1:Samuel最终的特征表方案 它们都是合理的假设,但是肯定不是绝对可靠的假设。通过使用足够大的训练数据集,我们可以将这些问题减至最少。 一个主要问题是,特征表在量化过程中会丢失相当多的准确性。过度量化的风险很大。例如,如果某人要将国际象棋中的实质性差异量化为3个或5个数值,那么在失去“象”和失去“后”等同时,他又怎么能预期作出正确的走法?而且,过度量化违反了Berliner的平滑性原则(smoothness principle)[2],因此引入了瑕癖效应 (Blemish Effect)。在Berliner的书中,某个特征的数值即使发生很小的改变也会导致函数的值发生非常大的改变。当程序有能力操控这样一个特征时,它就会就会运用这种能力,从而给自身带来伤害。 将特征表过度量化到少数层级也正好有这个问题。 虽然损失了平滑性,atv,但是特征表学习仍然没有提供线性问题的通解。例如,当两个特征完全一样(或者高度相关)时,如果这些特征(F1和F2)的组合方式如图2(a)所示,那么它们在表1中的冗余度就会被成功消除。但是,如果它们的组合方式如图2(b)所示,那么F1就会编入表1,F2则会编入表2。但是,表3并不能消除它的冗余度,因为它无法知道它的两个输入是否受F1和F2或者其他特征的影响。这就导致了对这个特征的效用的高估。由于同样的原因,我们认为高层级的特征表并没有多少用处,因为它们无法识别出自身输入的贡献特征,因此也就无法处理特征表之间的关联。 因此,谨慎安排特征表的结构是很重要的,这样才能捕捉共变。而且,必须确定各级量化的范围和层次、单元格中的初始值和这些数值更新的频率以及许多其他要素。 图2.如果F1和F2为相同特征,(a)中的特征表结构将会消除它们的冗余度,但是(b)中的特征表不会这样做。 这就是我们所认为的这两个过程的最大缺点,即需要进行过多的人为设定初值和干预。每个参数都增加了出现影响学习过程的人为误差的可能性,还增加了得出并测试这些数值所需的时间。结果,学习效果要么由于人为误差而很差,要么就是由于过度的人为干预而差强人意。 所有这些启发式调试使Samuel 的学习过程受领域限制。如果某人想在另一领域应用这个学习过程,那么他必须在学习算法中使用相当多的该领域的知识,并且必须在对参数进行试误法修正上花费相当大的精力。这明显很不理想。 最终,Samuel 的算法学习的概念并不理想他的自我模拟算法根据搜索学习区分好特征和坏特征。他的棋谱算法学习区分专家所选的走法和专家未选的走法。但是,在博弈游戏领域,最优的概念是学习区分获胜位置和失败位置。 总之,Samuel的研究是早期机器学习研究中的一个里程碑,我们认为,大量的监督使他的研究变得不实际并且受限于领域。这些主要缺点加上Samuel问题重重的假设、平滑性问题以及不理想的学习共同严重限制了他的学习过程的可行性和应用性。 2.3.针对自动组合特征的其他研究 Griffith最先想到特征表这个方法,他报告了大量的国际象棋评价函数学习结果[5]。他比较了线性评价函数学习、特征表学习的两种变形以及一种启发式棋步排序算法。他证明了,虽然启发式棋步排序算法只有极其基础的国际象棋知识,但这种算法的性能优于线性评价函数,却差于非线性特征表算法。 (责任编辑:本港台直播) |