7.1 记忆学习 记忆学习(Rote Learning)又称为机械学习或死记硬背学习。这种学习直接记忆环境提供的新知识,并直接使用它们,对它们不作任何变换。 对于记忆学习有两种极端的观点。一种观点认为,存储对任何智能程序都是必要的、基本的,它不是独立的学习过程,不必要专门研究。另一种观点认为,存储是一个复杂问题,对任何认知系统都是必要的,因此要详细研究并模型化。一种折衷的观点认为,一般学习系统不会只是记忆学习,但记忆学习是任何学习系统的一部分。任何学习系统都要存储和使用它获取的知识,因此要建立记忆学习过程,以便存放和读取知识库中的知识。 Lenat(1979)提出一种独特的观点,他把记忆学习看作最低层次的数据处理。他划分的数据处理层次如图7.1所示。如果一个计算结果有普遍意义,就存储起来。这就把计算任务简化为存取任务。例如保存三角函数表。演绎也可简化为计算。例如由演绎推出二次方程求根公式后也可保存下来,以后再解方程可直接用公式。归纳也可简化成演绎。归纳是由实例总结出启发式规则,以后的演绎可直接使用这些规则,不必重复归纳。上述三种情况都要记忆。它们分别记忆计算的值、演绎得到的公式、归纳得到的规则。记忆是简化数据处理,以空间换取时间的手段。
1.存储结构 只有读取所用时间少于重新计算所用时间时,记忆学习才有实用价值。为了快速读取存储的内容,就要合理组织存储结构。在数据结构和数据库等领域已经详尽研究了排序、检索和杂凑方法等有关问题。 2.环境稳定性 使用记忆学习时,总是认为保存的信息以后仍然有效。如果环境变化快,保存的信息就会失效而不能再使用。例如记忆的50年代汽车修理费用不能用来估计80年代汽车修理费用。解决方法是随时监视环境的变化,不断更新保存的信息。 3.记忆与计算的权衡 为了确定是利用存储的信息还是重新计算,要比较二者的代价。例如在数学用表中有三角函数表,可直接查表不必计算。因为计算比查表复杂。但在数学用表中不列出两数乘积表,因计算并不复杂。可用两种方法选择是记忆还是计算。一种是代价效益分析法。它在首次得到一个信息时,确定是否有必要保存它。这时要考虑该信息以后使用的概率、存储空间和计算代价。另一种是有选择的放弃。保存的内容在读取时加上时间标志,这就是最后使用的时间。保存一项新内容时,要删除一项旧内容,这是未使用的时间最长的旧内容。 记忆学习的一个例子是Samuel(1959)的西洋象棋程序。他使用三种学习方法:记忆学习、多项式评价函数和签名表。程序用极大博奕树搜索来选择走法。它用前向搜索策略来估计未来棋局,前向搜索看作环境。它提供给学习环节棋局态势和倒推的极大极小值,这被学习环节直接记忆。执行环节直接使用这些已记忆的棋局。因为可能的走法有1040种左右,搜索空间过大。所以只搜索以后几步,并用静态评价函数估计棋局优劣。由此选择最佳走法。要改进搜索效果可采用两种方法。一种是向前多搜索几步,即增加搜索范围,看得更远。另一种是改进静态评价函数,提高估计精度,看得更准。本程序用记忆学习实现第一种方法。系统记住已出现的棋局及其推算值,当要求某棋局的估计值时,若已经保存该棋局的推算值,就以推算值为估计值。这比用静态评价函数求估计值更准确。 |