6.3.4 方案示例方法 方案示例方法是另一种模型驱动方法。它常用于理解性任务,如图象理解、语音理解和自然语言理解。如果学习系统中的大量约束可以组合起来形成方案(即抽象的框架规则),学习系统就可以用这种方法。这样,规则空间的搜索可以局限于符合一定方案的子空间。下面介绍SPARC系统(Dietterich, 1979 )。 1. 用SPARC系统发现Eleusis 游戏规则 Eleusis是一种扑克游戏,它要求牌手发现由发牌者确定的秘密规则。秘密规则规定出牌的线性序列。牌手出的牌应按规则延伸这个序列,否则要受罚(再拿一张牌)。发牌者只是指出每人出的牌是否符合规则。最先出完手中牌的人取胜。图6.10是一次出牌过程的示意图。其中主行记录出对了的牌,侧行记录出错了的牌。下面给出秘密规则。两张黑牌是S(黑桃)和C(梅花),两种红牌是H(红心)和D(方块)。出牌次是9S,JD,5D,4C,….。首张牌是3H。第一张正确是9S,第二张和第三张是错牌JD和5D。
2. Eleusis中的方案 Eleusis游戏中有三类规则,对每一类规则规定参数化的方案。三类规则的方案如下。 (1) 周期性规则 这类规则描述有重复性质的序列,这类规则的方案可以用N元组的合取描述为 (C1 ,C2,…,CN) 其中参数N是重复周期。例如,规则"轮流出红牌和黑牌"就是周期性规则。这条规则可以表示为 (RED(rardi),BLACK(cardi)) 更复杂的周期性规则可能涉及以前的周期。例如规则"交替增大和减小的序列"。这可以表示为 (RANK(cardi) ≥ RANK ( cardi-1), RANK(card i)≤RANK (card i-1)) 这相当于 card2≥ card1, card3≤ card2, card4≥ card3, card5≤ card4, … (2) 分解规则 它使用if-then 形式的规则描述序列。例如,规则"如果上一张是奇数就出黑牌,如果上一张是偶数就出红牌"就是分解规则。它可以表示为两条规则 ODD(cardi-1) ![]() 和 EVEN(cardi-1) ![]() 要求各规则的if和then 部分只有单个合取,而且各if 部分互不相容,共同覆盖所有可能情况。 (3) 析取规则 它表示为单个合取的析取(析取范式DNF)。例如,规则"出的牌与上一张同样点数或同样花�"就是析取规则。它可以表示为 RANK(cardi)=RANK(cardi-1) ∨SUIT(cardi)=SUIT(cardi-1) 上述每种方案都有控制其用法的参数。周期性方案的参数是N。它还有一个参数L,称为回顾参数。这指出要考虑过去的L张牌。 3. 利用方案搜索规则空间 上述三类方案各有自己的规则空间。SPARC算法的过程是: 第一步:对方案参数化。选择方案,并选择参数值。 第二步:解释示教例子。把示教例子(牌的一个序列)转换为符合选定方案的具体的规则。 第三步:对方案示例。使用特定方案的算法,对符合该方案的示教例子进行一般化。 第四步:评价被示例的方案。确定各方案符合例子的情况,去掉那些符合例子情况不好的规则。 SPARC在所有方案的所有参数的空间中进行深度优先搜索,直到达到对参数幅度的限制为止。 例如,处理图6.10所示的序列时,第一步选择L=1的分解规则方案。第二步把示教例子转换成在规则空间中的具体规则,前五张牌产生下列四个示教例子。每张牌的特征向量表示是 (RANK,SUIT,COLOR,PARITY) (SPARC使用24个特征来描述示教例子,这里只用了4个)
第三步产生下列被示例的方案(其中用*表示无关的特征)。 (*,*,*,odd) ![]() 和 (*,*,*,even) ![]() 第四步判定这两条规则完全符合示教例子,而且句法是简单的。于是就认为这是秘密规则。 在第三步中,由于适当的方案提供了很多约束,所以限制了规则空间的大小。 4. SPARC 的优缺点 方案示例方法的优点是可以很快找到要求的规则。其次是抗干扰性好,可以用统计测量指导对规则空间的搜索。 它的缺点首先是难以划分出几种方案。在SPARC中的三种方案虽然覆盖了大多数规则,但也有些规则难以覆盖。其次是对每种方案要研究专用的算法,这使它难以应用于新领域。最后是每种方案使用不同解释方法。 |