第六章 实例学习

  
6.3.2 改进假设方法
  另一种数据驱动方法是改进假设方法,又称规则空间操作方法。该方法用改进操作来修改规则空间中的假设,根据示教例子用启发式方法选择这些操作。算法的简要过程是:
  第一步:收集一些示教例子。
  第二步:分析例子,以确定选用的操作。
  第三步:由选用的操作来修改假设集H。
  第四步:重复一,二,三步,直到得到满意的假设。
  下面介绍使用该方法的系统BACON(Pat Langley, 1977和1980)。BACON 用于发现经典物理定律。它的思想是,程序反复检查数据,并用改进操作来产生新的"项",直到发现一个项总是常量。这时就可以把概念表示为"项=常量"的形式。
  1、 BACON 应用的实例
  BACON 用特征向量表示示教例子。特征取值为实数、整数或符号。例如要发现开普勒定律:行星绕太阳转动的周期p与它离太阳的距离d 间的关系为d3/p2=k,其中k 为常数。提供的示教例子是图6.7。

图示
  特征
例子 行星 p d
I1
I2
I3
水星
金星
地球
1
8
27
1
4
9

图 6.7

  BACON 发现p和d 同时增加,所以它的操作就是产生新项d/p 。然后求出I1I2I3对应的d/p值1.0、0.5、0.33。这时BACON 以发现d 和d/p是反向变化的。它又用乘法得到项d·(d/p)=d2/p。此后,BACON又用乘法操作得到新项(d/p)·(d2/p)=d3/p2。程序发现这个项保持为常量,算法结束。得到的概念是d3/p2=1。下面列出三个新项的值见图6.8。


图示
  特征
例子 行星 p d d/p d2/p d3/p2
I1
I2
I3
水星
金星
地球
1
8
27
1
4
9
1.0
0.5
0.33
1.0
2.0
3.0
1
1
1

图 6.8

  2.BACON的规则空间操作
  BACON的操作都是作为产生式规则的形式保存的。规则左边测试数据中的模式,右边是产生的新项。BACON的几种操作是:
  (1) 不变性检查:若某个变量至少两次取同样值V,则假设该变量保持为常量V。
  (2) 特殊化:在以前得到的假设与数据冲突时,就增加合取条件来使假设特殊化。
  (3) 产生斜率和截距:若发现两个变量保持线性关系,则产生的新项是斜率和截距。
  (4) 产生乘积:若两个变量反向变化,但斜率不同,同产生的新项是二者乘积。
  (5) 产生商数:若两个变量同向变化,但斜率不同,则产生的新项是二者的商。
  3. BACON 的规则空间
  BACON规则空间中的假设表示为特征向量,但某些特征没有值(认为是变量)。例如,对开普勒定律的假设表示为下列特征向量,其中的特征是操作产生的项。
特征 行星 p d d/p d2/p d3/p2
-- -- -- -- -- 1.0

  4. BACON的推广
  BACON2是BACON1的推广,它增加了两种操作。一种用于计算差别以便发现递归序列,另一种用于产生多项式项。BACON3是BACON2的推广,它用不变性检查提出的假设来修改示教例子。
  5. BACON的优缺点
  它的优点首先是能发现实值变量间关系的定律。其次是它的规则空间操作可以组合现有项,以产生新项。最后是推广的BACON3在发现局部规律性后,修改示教例子的表示。
  它的缺点首先是仅在特殊情况下才使用操作。这使程序对变量的次序和示教例子的选择很敏感。例如用某些例子集合,BACON就不能发现欧姆定律。其次,它不能处理有干扰的示教例子。例如不变性检查可以仅由两个例子作出结论。这对干扰很敏感。最后,它只能处理简单概念。例如它不能发现析取概念。