Piotr Wozniak,1990年
本文摘自P.A. Wozniak于1990年在波兹南理工大学完成的硕士论文《学习的优化》,并经调整后作为独立文章发布在网上。(P.A. Wozniak,1998年5月10日)
我于1987年12月编写了第一个SuperMemo程序,使用Turbo Pascal 3.0和IBM PC。它旨在从两个基本方面改进SuperMemo方法:
- 把优化过程应用到尽可能小的条目上。纸质SuperMemo的条目原本按页分组。
- 根据条目难度的不同,区别处理各个条目。
我观察到,后续各次复习之间的间隔,大致按一个固定因子增长。例如,在用于英语词汇的SM-0算法中,这个因子是2。因此,我决定采用以下公式计算复习间隔:
I(1):=1 I(2):=6 当n>2时,I(n):=I(n-1)*EF
其中:
I(n):第n次复习之后的复习间隔,以天为单位。 EF:容易度因子,反映记住某个条目、并让它留在记忆中的容易程度,后来称为E因子。
E因子允许在1.1到2.5之间变化,最难的条目为1.1,最容易的为2.5。条目刚加入SuperMemo知识库时,E因子假定为2.5。在之后的复习中,如果回忆出现问题,这个值就逐步下降。因此,条目回忆起来越困难,其E因子的降幅就越大。
第一个SuperMemo程序实现后不久,我注意到E因子不应低于1.3。E因子小于1.3的条目,复习频率高得令人厌烦,而且它们的表述似乎总有内在缺陷,通常是不符合最小信息量原则。因此,不让E因子低于1.3,显著提高了整个过程的处理效率,同时也提供了一个指标,帮助找出应该重新表述的条目。计算条目新E因子的公式,是凭启发式方法构建的;在此后使用计算机版SuperMemo方法的三年半里,这个公式没有发生太大变化。
要计算E因子的新值,学习者必须评价自己在复习中对问题作答的质量。我的SuperMemo程序使用0至5的评分范围,这个范围由使用数字小键盘的人体工学决定。公式的一般形式是:
EF’:=f(EF,q)
其中:
EF’:E因子的新值。 EF:E因子的旧值。 q:作答质量。 f:计算EF’所用的函数。
函数f最初采用乘法形式。后来版本的SuperMemo程序中,E因子的解释发生了显著变化,函数也转为加法形式,但EF’、EF和q之间的依赖关系并没有显著改变。为了简化后续讨论,这里只考虑函数f的最新形式:
EF’:=EF-0.8+0.28*q-0.02*q*q
它是以下公式的化简形式:
EF’:=EF+(0.1-(5-q)*(0.08+(5-q)*0.02))
注意,当q=4时,E因子保持不变。
现在考察SM-2算法的最终形式。在1987年12月13日至1989年3月9日之间,SuperMemo 1.0至3.0版本采用了这个算法,仅有少量修改。之所以取名SM-2,是因为采用该算法的版本中,SuperMemo 2.0远比其他版本流行。
计算机版SuperMemo方法所用的SM-2算法,包含对各个条目容易度因子的计算:
- 把知识拆成尽可能小的条目。
- 为所有条目设置一个等于2.5的E因子。
- 按以下间隔复习条目: I(1):=1 I(2):=6 当n>2时,I(n):=I(n-1)*EF 其中: I(n):第n次复习后的间隔,以天为单位。 EF:该条目的E因子。 如果间隔不是整数,就向上取整到最近的整数。
- 每次复习后,用0至5的范围评价作答质量: 5:完美回答。 4:犹豫后正确作答。 3:经过很大困难才回忆起正确答案。 2:回答错误,但正确答案看起来很容易想起。 1:回答错误,但看见正确答案后能认出来。 0:完全想不起来。
- 每次复习后,根据以下公式修改刚复习过条目的E因子: EF’:=EF+(0.1-(5-q)*(0.08+(5-q)*0.02)) 其中: EF’:E因子的新值。 EF:E因子的旧值。 q:0至5范围内的作答质量。 如果EF小于1.3,就把EF设为1.3。
- 如果作答质量低于3,就从头重新开始该条目的复习,而不改变E因子。也就是说,像刚开始记忆这个条目一样,使用I(1)、I(2)等间隔。
- 每天的复习会话结束后,再次复习所有质量评分低于4的条目。继续重复,直到这些条目的评分都至少达到4。
寻找E因子所用的优化过程,被证明非常有效。在SuperMemo程序中,总能找到显示E因子分布的选项,后来称为E分布。开始复习后的几个月内,一个知识库的E分布形状就大体确定下来。这意味着此后E因子不会再显著改变,因此可以合理假定:E因子大致对应着后续复习间隔应该按多大倍数增长。
使用SM-2算法学习英语词汇的第一年,我记住了10255个条目。建立知识库和复习所需的时间,平均为每天41分钟。这对应着270条目/年/分钟的获取速率。总体保持率为89.3%;排除那些最近才记忆、间隔不足3周、E因子还没有适当确定的条目后,保持率达到92%。比较SM-0与SM-2算法时,必须考虑:前者的保持率被人为抬高了,因为学习者复习同一页的条目时会得到提示。位于当前条目之前的那些条目,很容易暗示正确答案。 因此,虽然从数量比较来看,SM-2算法的表现并不惊人,但它仍然标志着SuperMemo方法继1985年引入最优间隔概念之后的第二次重大改进。把原先按页分组的条目分开,以及引入E因子,是改进后算法的两个主要组成部分。通过试错方式构建的SM-2算法,在实践中证明了促成其构想的几乎所有基本假设都是正确的。