ANKI 的算法

我一直使用 ANKI 背单词和记一些诗词句子,ANKI 的算法是基于 SuperMemo 开源版本修正的。按网上的说法,SuperMemo 应该是在 2005 年公布 SM-2(实际上这就是第一个版本,没有 SM-1)之后就没有公布新算法了(现在已经 SM-17 了?),而 ANKI 就是基于 SM-2 算法的。

SuperMemo 的 SM-2 算法

$$ \begin{aligned} I(1) &= 1 \\ I(2) &= 2 \\ I(n) &= I(n-1) * EF, n>2 \end{aligned} $$

其中, $EF$ 代表“Easiness Factor”,1.1 表示最难 2.5 表示最简单,注意一个新的单元进入 SuperMemo 时,$EF$ 值是 2.5,也就是它默认是你已经记住的(作者后来也说了,$EF$ 不应该低于1.3,否则频率就太高了)。$EF$ 的计算(这个公式每一版应该都不一样,不断进化,感受一下就行):

$$ \begin{aligned} EF_{new} &= f(EF_{old}, q) \\ f(EF,q) &= EF-0.8+0.28*q-0.02 *q^2 \end{aligned} $$

其中,$q$是用户的难度评分,0-5机制,$q$值为4时,新旧$EF$值相同。

ANKI 在执行层面做了一些调整和优化,比如评级只有 4 级,如何重设等,但是核心应该没有突破。

一些自己使用 ANKI 的体会

  • 知识应该尽可能小,比如背诵《滕王阁序》就不合适,我现在是背下来之后再录入ANKI进行复习,但是即使这样,复习一遍的时间也太长了,算是有提示的作用吧。
  • 其实 4 级也太多了,我通用只选两端的两个,偶尔选一个中间的。
  • 这样把人脑当电脑的算法优化,再往下发展我觉得意义并不大,大多数人的记忆瓶颈根本就不在这里,只要回归到最原始的艾宾浩斯提出的基本原理,坚持间隔复习即可。

外部参考: https://wdxtub.lofter.com/post/1a7a1d_15282b1