Anki SM-2 间隔重复算法
RemNote 默认的记忆卡片调度器称为 Anki SM-2。顾名思义,它基于流行的记忆卡片软件 Anki 所使用的调度算法,并进行了细微的修改,旨在最大化您的长期学习效果。
本文解释了 Anki SM-2 算法的技术细节。一些相关文章:
- 有关间隔重复工作原理的一般信息,请参阅 理解间隔重复。在阅读本文之前,您应该先阅读那篇文章 – 如果您对间隔重复的工作原理缺乏整体了解,这里的细节将难以理解。
- 有关如何更改特定记忆卡片或整个知识库使用的调度器的信息,请参阅我们关于 自定义调度器 的文章。
- 关于 SM-2 算法为何如此构建的第一性原理解释,请查看 从零开始的间隔重复(此文章并非由 RemNote 撰写,也不专门针对 RemNote 的 SM-2 实现)。
在本文的其余部分,斜体字 短语指的是 RemNote 设置中“自定义调度器”部分找到的调度器参数。
学习阶段
初始的学习阶段旨在帮助您快速内化新知识。在学习阶段,记忆卡片会通过一系列固定长度的步骤,其长度由 初始学习阶段固定步骤 参数决定。(间隔 是指卡片连续两次复习之间的天数。)例如,如果您在此字段中输入 30m,2h,2d,卡片将依次经过 30 分钟、2 小时和 2 天的步骤。
在此阶段:
- 按下 忘记 会将卡片返回到第一步。
- 按下 部分回忆 会使卡片保持在同一步骤,并等待到下一步骤一半的时间后再次显示(因此,如果下一步是 2 天,它将在 1 天后再次显示,并在那时考虑是否晋级到 2 天的步骤)。
- 按下 费力回忆 会将卡片移动到下一步。如果下一步是最后一步,卡片将进入指数阶段,其首次间隔是通过将指数阶段规则应用于当前的固定步骤间隔计算得出的。
- 按下 轻松回忆 会立即将卡片发送到指数阶段,初始间隔为 退出学习/重新学习模式时的轻松间隔。
注意: 当您完成队列时,学习阶段的卡片可能会在到期前稍早一点显示以供练习(默认情况下,最多提前 15 分钟)。要理解原因,请考虑如果您在队列完成 5 秒后,一张学习阶段中当前间隔为 10 分钟的困难卡片到期,会发生什么。您很可能至少在几个小时内,甚至可能要到第二天才会返回您的队列,因为您预计在那段时间内很少有卡片到期。
显然,提前 5 秒看到一张您几乎记不住的卡片,比晚 1 天看到它要好得多,因此 RemNote 会提前显示它。您可以使用 设置 > 记忆卡片 中的 学习提前限制 选项来自定义 RemNote 允许学习卡片提前显示的时间量。
指数阶段
指数阶段是主要的学习阶段,卡片的大部分时间都在此度过。此阶段的间隔呈指数增长(通过将前一个间隔乘以某个数字)。这个乘数称为 间隔因子,每次您练习卡片时都会为每张卡片计算。
间隔因子由两个数字决定:卡片的 难度系数(衡量您过去觉得该卡片有多难),以及您选择的 评分按钮(忘记、部分回忆、费力回忆或轻松回忆)。每张卡片的难度系数从 起始难度系数 设置(默认为 230%)开始,并在每次练习卡片时更新。在其他记忆卡片应用中,难度系数有时被称为 E-因子。
在指数阶段,难度系数和间隔因子的计算如下:
- 按下 忘记 使用 遗忘间隔乘数 作为间隔因子(此值小于 1,因为当您忘记卡片时,其间隔应减小;默认为 0.1),并将难度系数降低 20 个百分点。此外,卡片被发送到重新学习阶段(稍后描述)。
- 按下 部分回忆 使用 1.2 作为间隔因子,并将难度系数降低 15 个百分点。
- 按下 费力回忆 使用当前难度系数作为间隔因子。难度系数保持不变。
- 按下 轻松回忆 使用(难度系数 * 轻松奖励)作为间隔因子,并将难度系数增加 15 个百分点。轻松奖励 默认为 1.3。
然后,间隔因子会进一步调整:
- 间隔因子乘以 间隔乘数(此设置的默认值为 1,即不改变计算值)。您可以使用此设置使所有间隔比默认值稍宽或稍窄。
- 向间隔添加少量随机噪声;也就是说,间隔会随机变得稍长或稍短。这可以防止在同一天引入的卡片“粘在一起”并总是在同一天出现,否则会使它们人为地容易记住。
然后使用间隔因子来计算卡片的下一个间隔。在大多数情况下,下一个间隔就是当前间隔乘以间隔因子。但是,如果卡片是在延迟(晚于其最佳复习日期)后复习的,并且您选择了除“忘记”之外的答案,则在乘法运算之前,会在卡片的当前间隔上加上(延迟天数 / 难度除数)的奖励。对于“部分回忆”,难度除数为 4;对于“费力回忆”,为 2;对于“轻松回忆”,为 1。
为什么要包含这个奖励?假设 RemNote 认为您需要在某一天复习卡片,但实际上您直到 10 天后才复习,并且您仍然记得答案。这意味着您可能比 RemNote 最初认为的更了解这张卡片(另请参阅 稳定性 的解释),而您对一张卡片了解得越好,两次复习之间的等待时间就可以越长,因此间隔应该比原本的增长得更多一些(或者如果延迟时间很长,则增长得更多)。难度除数根据您认为自己仍然记住卡片的程度来调整这个增长量;如果您真的很难才记住它,那么增长量比您觉得它仍然非常容易时要小,这是合理的。
在任何情况下,卡片的难度系数都不能降低到 130% 以下;如果上述计算会将其降低到 130% 以下,则难度系数将被设置为 130%。经验表明,如果一张卡片自然需要低于 130% 的难度系数才能可靠记住,那么它 对于有效的间隔重复学习来说太难了,应该通过某种方式改进(例如写得更清晰、开发助记符或类似方法)。更频繁地显示卡片只会导致挫败感,对记忆几乎没有好处。
重新学习阶段
当您在指数阶段忘记一张卡片时,它会进入重新学习阶段。这个阶段的工作方式与初始的 学习阶段 非常相似;卡片会通过一系列固定步骤,并在这些固定步骤完成时,或者当您按下“轻松”时,返回指数阶段。
重新学习阶段的主要区别在于,不是基于学习/重新学习的最后一次复习来计算卡片在指数阶段的初始间隔,而是使用卡片上次在指数阶段停留时的最后一个间隔。新的间隔将等于这个最后间隔乘以 遗忘间隔乘数(默认为 0.1,因此新间隔将是旧间隔的十分之一)。
