阅读建议:本文基于 Anki for Mac,可以在 Anki 中国 上免费下载;本文涉及众多新概念,建议在 Anki 中国 下载一个共享的牌组,尝试文中提到的一些概念和操作。


学习一门新的语言或者学科时,通过记忆掌握一些基础知识,是每个学习者必须迈过的一道坎。

和其他日语学习者一样,Damien Elmes 也必须应对记忆单词的痛苦。幸运的是,他一开始就了解到了 Flashcard(抽认卡)软件 Supermemo。但 Supermemo 是 Windows only 的商业软件,功能上的自由度差,记忆算法不断调整且越来越复杂。这让出身计算机科学专业、使用 Linux 系统的 Damien Elmes 不能忍受。他开始自己动手,敲下一行行代码,打造出了一款自己心目中完美的辅助记忆软件。

最后,已经在日本留学的他,给这款软件赋予了一个日语名字——Anki 1 。

尽管套着「Flashcard 类」软件的壳,但 Anki 独特地卡片和牌组,是在将陌生的知识转化为一个便于你自己理解的形式。而通过它学习和复习知识,不仅是在完成短期的背诵任务,更是长期性地培养了我们大脑记忆力

不过我们那颗成年之后发育已经大致定型的大脑,擅长联想而非记忆,还有培养记忆力的机会吗?

可以「重新布线」的大脑

在《刻意练习》一书中,举了这样一个例子来说明大脑记忆力的可塑造性:伦敦的出租车司机在考取执照时,需要在没有辅助的情况下,熟记以查令十字街为圆心的 9.6 平方千米区域的街道。根据建筑物或者地标,而非路牌或地图来规划最佳路线。

科学家们研究后发现,经过四年的训练,拿到了执照的出租车司机大脑海马体后部(负责记忆的部位)的平均体积,明显比普通人大。书中下了这样一个结论:

成年人大脑中的细胞,一般并不会分裂并组成新的大脑细胞,但大脑会以各种不同方式来「重新布线」那些网络。强化或弱化神经元之间的各种连接,同时还增加新的神经元连接或摒弃旧的神经元连接。

以普通人的视角来看,伦敦出租车司机的「记忆力」无疑是优于常人。但这份优势并非天生,而是做到了两件事才得来:将伦敦地形转换成一条条线路,在脑内建立了新的神经元连接;在四年的训练中通过学习复习不断强化这些连接。

而 Damien Elmes 设计的使用 Anki 的流程,也恰好就是将知识在你脑中建立连接强化

将知识搬进 Anki 三部曲:分解、呈现与管理

在传统纸笔和 Flashcard 软件中,大块的知识是被分割成了一张张孤立的卡片。不仅没有体现出知识点之间的联系,当内容发生变化时,编辑起来也很低效。如何能在将知识电子化时,既能很好的串联起不同的内容,又能保持编辑时的高效呢?

通过「区域2 」与「笔记」分解知识

假设一道题目是:规划一条从贝克街 221号b 前往国王十字车站的路线。答案应该包括起点的建筑物(可以附上图片)和终点的建筑物,正常路线和高峰期路线,还可以包括平均时长和费用。如果是传统的卡片,只能是以问答的方式记录下这则信息。

包含多个区域的笔记

Anki 彻底打破了传统 Flashcard 的思路。往 Anki 中添加内容时,不再以单张卡片为基本单位,而是  「笔记」。一则笔记可以理解为一个互相关联的信息网络。这些相关的信息点被拆分为单个的「区域」,多个区域包含在一条笔记里,例如起点、终点、路线和价格等,都列为单独的区域。

添加区域

区域的种类和数量,都是可以根据实际的需求去自定义。更便捷的是,Anki 支持在区域中添加 HTML 与 LaTeX 内容,使得它比一般的 Flashcard 软件有着更加广泛的应用场景。

LaTeX 的显示(左)与编辑界面(右)

以介绍过的  Studies 举例,它虽然可以包含文字、图片、音频和视频,对于偏文科的学生来说已经足够。但假设你是一个程序员,不想像 Homebrew 的开发者 Max Howell 一样,因为忘记反转二叉树这种经典问题而面试被拒3 ,于是想把一些经典算法题收集起来,用 Flashcard 来记忆,就会发现纸质卡片或是 Studies 和 Flashcard Hero 这类应用就没法简单优雅的呈现。而 Anki 支持在区域内写 HTML 和 LaTeX,可以很优雅的展示代码或者公式等内容。

区域与笔记的形式,打破了传统的一问一答,更接近一个知识体系本身的结构。通过将整块知识提取成区域,形成笔记,就意味着你解构了这部分知识。而下一步就是基于这些笔记,将知识通过卡片呈现出来。

通过「卡片」来呈现知识

一则笔记承载了一个有用的知识点,包含了一个个区域。但我们不会想以列表的形式来学习,这样不仅学起来单调,也不利于记忆。所以在区域和笔记的基础上,要将它们用 卡片的形式来呈现。

生成一张卡片

不需要每张都手动输入内容,你只需要选择在卡片的正反面,决定把哪些区域放进去即可。既可通过点击「Add Field」来选择区域,也可以直接在正反面中输入相应格式的语法标记,来添加区域。例如将笔记中的「起点」与「终点」放入正面作为题目,「路线」做为答案放在背面。还可以选择路线中的地标式建筑物的照片放在正面作为提示 4 。区域就像一块块拼图碎片,分散在卡片的正反面,进而形成一张完整的拼图。

卡片最终效果

如果只有区域的信息作为问题和答案,阅读起来无疑会有些不连贯。我们可以在卡片的正反面直接加入一些文字,使得卡片更容易理解。如果你还不满意卡片的样式,希望它显得更规整和美观一些,Anki 则支持深度定制。

在卡片中添加区域

不同于一般软件的富文本编辑,Anki 提供的方案是允许用户 使用 HTML 语法与 CSS 样式语法,为正反面指定区域时,其实就是用 HTML 的语法实现的。而更进一步,Anki 可以编辑每一个卡片的 CSS 样式,从而实现了为每一种卡片赋予多种表现形式的能力。当然,如果你不懂 CSS 语法也不用担心。Anki 为新卡片设置好了默认样式,如果是调整区域,只需学习最简单的语法符号。而对于有能力的用户来说,则是广阔天地,大有作为了。

创造一种卡片类型

实际学习时,我们通常不会只以一种形式来学习一个知识点。依然是前文中贝克街到国王十字车站的例子,这次你不是要记两点之间的路线,而是要根据路线告诉乘客大概的价格。在很多记忆卡片应用中,你只能再创建一组正面为路线、反面为价格的卡片,将之前出现过的内容再编辑一遍。

而在 Anki 中你则可以利用已经将内容分解为区域的优势,快速的创建一类新的卡片。在编辑卡片的界面中,新建一张卡片。这次将路线区域放在正面,价格区域放在反面,一章新的卡片就立刻出现。你不仅可以为它的正反面添加与之前卡片不同的内容,连卡片样式都是可以单独定制。

第二种卡片

方便的不仅是编辑这一张卡片,两种卡片可以保存为一种 卡片类型。下次再添加新的内容,例如伦敦的斯坦福桥球场到科巴姆训练基地,就可以直接使用这种卡片类型。在区域中添上相应的信息,两类卡片自动生成。事实上一种卡片类型里可以不止存在两种卡片,可以自己根据需求创建更多。

创建新的卡片

利用卡片类型这个概念,除了可以自动生成多种卡片外,在后期修改时,也能大大的提高效率。如果你想给添加新的信息,例如沿途的景点,可以添加区域「景点」,于是同一卡片类型的卡片都同时拥有了「景点」这个区域:将「景点」添加到正面或者反面,所有的卡片也是同时被修改。若是之后觉得它没有必要存在,选择删除它,所有的卡片就都一次性的去掉了「景点」,而不用一张张卡片去删除。这是一种「批处理」的思路来进行编辑,比手工编辑无疑是更加高效。

通过「牌组5 」为学习做好准备

我们将知识分解为字段,连起来组合成笔记,又利用卡片类型自动生成了不同的卡片。最后这些卡片的汇总,便形成了一组 牌组,这便是我们下一步学习的起点。

将 Flashcard 和你实际的工作学习相结合起来,根据内容进行分类。逐渐形成一个完全属于你个人的牌组。例如工科生的一组牌组可以一门专业课的全部专业概念,计算机科学的学生可以收集各种经典算法实现。在牌组中通过区域和卡片类型来编辑,比直接修改卡片来的简洁省力的多。

主界面上显示所有牌组

牌组是 Anki 学习时的基本单位,所有的学习与复习,都会以一个牌组进行规划。在主界面选择一个牌组,便可以开始学习的旅程。

如何使用 Anki 进行学习与复习

将知识搬进 Anki 只完成了将知识体系化的过程。想要真正地实提高你的大脑记忆力,最重要的还是 Anki 背后的那套给你安排记忆任务的算法。

市面上常见的 Flashcard ,多采用在 1972 德国科学家莱特纳发明的记忆系统来安排复习。这套系统的特点是将未学习、学习通过和需要再次复习的卡片装在不同的盒子里,以控制学习和复习的进度 。这套系统比起之前的单一盒子装卡片有了质的飞跃,但仍然有缺点:

  1. 即便增加了盒子的数量,也不能准确的安排你学习和复习的时间
  2. 它不能根据学习的内容来调整学习和复习的间隔。背诵一个英语单词和一段问答题的答案在系统中没有区别。
  3. 它不能根据学习者本身的记忆能力和规律来做调整。

作为一个记忆辅佐工具,最基本也是最重要的目的就是, 可靠的提醒学习者在应当去记忆的时间点学习或复习。Damien Elmes 没有为 Anki 选用莱特纳系统,而是选择了同样基于「间隔重复 」理论的 Supermemo 2 算法。提到「算法」可能会让初接触 Anki 的学习者有些恐慌,会担心理解不了复杂的理论,从而导致软件不会用。而我将这个 Supermemo 2在 Anki 里的实现粗略的总结为 「3-2-1」 来帮助理解。

三种状态

Anki 中学习以牌组为单位,毕竟一个牌组意味着你在某个领域中的知识积累。而在牌组中,卡片被分为三类状态:

  1. 新建。从未学习过或者 Anki 认为你已经遗忘了的卡片。
  2. 正在进行的课程。近期学习过的卡片,但仍需要学习。
  3. 待复习。已经学习过的卡片,之后需要定期的复习来保证不遗忘。
卡片的三种状态

在牌组的主界面和学习节目的下方,都会有蓝色、棕色和绿色的数字,分别代表了新建、正在进行的课程和待复习三种状态。

两个阶段

从卡片的状态来分有三个阶段。而从学习者的角度来了,使用 Anki 的阶段,其实就是遗忘曲线实验给我们的提示: 学习与复习。所有我们使用 Anki 学习过的片时会被分为「学习」和「复习」两个阶段,两者的差异在于核对问题答案后,Anki 对卡片下一次出现时间的调整。

学习时检查答案之后,会有「生疏 / 错误」「犹豫 / 想起」和「顺利 / 正确」三个评级按钮,根据自己对答案的掌握情况来给自己刚才的回答一个评级。这三个选项有什么不同呢?对遗忘曲线有所了解的知道,根据经验,人的遗忘分不同的周期,有一种分法是大致分为 5 分钟、30 分钟、12 小时、1 天、2 天、4 天、7 天和 15 天。这些时间点是你应该复习的时间,以降低遗忘。而这三个评级就是用来确定卡片应该处于哪个阶段,在 Anki 中则被称为步伐。在默认设置下,

  • 如果你将卡片评为「生疏 / 错误」,则卡片会回到第一个步伐,即1分钟后再次出现。
  • 如果你将卡片评为「犹豫 / 想起」,则卡片进入下一个阶段,即10分钟后出现。
  • 如果你将卡片评为「顺利 / 正确」,则卡片进入复习阶段,默认为4天后出现。
学习卡片

卡片从第一次出现开始,被评级后进入相应的步伐,直到被归为已学习,便完成了学习阶段。步伐可以理解为对卡片的掌握程度,步伐的数量也是可以自己进行自定义的。而在复习阶段也是类似,根据你学习的情况对自己的回答进行评级。

  • 如果你将卡片评为「生疏 / 错误6 」,则默认会 10 分钟后出现7 。
  • 如果你将卡片评为「困难 / 模糊」,则默认会 6 天后出现。
  • 如果你将卡片评为「犹豫 / 想起」,则默认会 15 天后出现。
  • 如果你将卡片评为「顺利 / 正确」,则默认会 26 天后出现。

如果一开始直接理解所谓的步伐和评级的概念还有些困难,那不妨将 Anki 想象成一位称职的家教。每次学习后,根据你对一个知识点的掌握程度(评级),调整卡片的位置(步伐),给出相应的下一步学习建议(复习间隔时间)。至于这位家教背后所运用的理论,就待日后去深入了解。

一个动作

看到上面两个阶段共七种对卡片的评级,你可能已经有感于它的麻烦,准备放弃了。实际上上文只是必要的对功能的讲解,作为新上手的学习者,你所要做的其实就只有一个动作:点击「现在学习」按钮开始学习!

如果你尚且不能理解这些评级之间的关系,那就选用默认设置,直接学习卡片即可。Anki 会根据算法和你对卡片的评级,来自动安排所有卡片下一次出现的时间。唯一需要提醒你的是,Anki 只是一种辅助学习的工具,并不是用来评估你学习成果的。千万不要为了给自己成就感或者想减轻负担,不根据自己实际的表现来给卡片评级。

个性化的学习与复习,培养记忆力的重要一环

Supermemo 2 算法相较于早十年左右出现的莱特纳系统的优势在于,它根据遗忘曲线理论,更加细致(步伐多)和精准的在适当的时间点,提醒你的学习和复习,不再是简单的根据你学习和复习卡片的次数来安排进度。但是到这里,这套自动间隔重复制度也只是在精度上强于莱特纳系统,上文提到的莱特纳系统的问题一和二并没有被解决。

虽然遗忘曲线是根据实验测量而得,但是它表现的是正常人的平均水平,没有考虑到个体差异。实际上,在这条曲线背后还有近似的公式:

遗忘曲线公式

其中 S 表示相对记忆强度,R 为被记忆的内容。对于群体而言,S 的值是相对稳定的;而放在个体上来看, S 的值则会因人而异。其次牌组之间的内容差别也决定了学习进度的安排。对于同样多卡片的西班牙语单词牌组,和一门考试的问题集牌组来说,显然后者需要花费的时间更多,两者的学习节奏也不能单纯的根据默认设置来。所以默认的学习和复习的进度设置并不一定适合每一个人, 一定是需要针对自己的情况来进行调整的

学习的设置选项(左),复习的设置选项(右)

Anki 有则明显强于其他软件的自由度。在学习阶段,Anki 可以自由设置步伐的数量,以及每个步伐所代表的间隔时间;而在复习阶段,Anki 则显得极其专业。例如「间隔修饰符」这个调整项,决定了在默认复习间隔基础上乘以一个多大的因子,例如当你设置为 80%,复习时的评级为「犹豫 / 想起」,Anki 就会在默认的复习间隔 15 天基础上乘以 80%,即 12 天后提醒你复习。如果你学习的西班牙语单词,单个卡片的知识强度不大,不妨调低这个因子;相反如果是有一长串答案的问题集卡片,不妨适当调高这个因子,免得强度过大,大脑直接死机拒绝再学习:)。

当然 Anki 能调整的选项还有很多,且都是可以针对单个牌组来做微调。这给了学习者最大限度根据自身的情况来调整的可能性。

培养大脑记忆力的第二次机会?

在我心里,Anki 既是接近完美的呈现了 Supermemo 2 记忆算法的载体,又是近乎没有任何限制的辅助记忆工具。然而工具虽好,它真的能做到我题目中所说的提高大脑记忆力吗?

在之前介绍「番茄土豆」的文章中,我提到了番茄工作法实际上是一套锻炼自己注意力的方法论,而不是外部强加于人的工具。Anki 也一样,它并不是一个拥有神秘力量的工具,只要用了的人就能像游戏中一样记忆力值暴涨,而是根据研究所得的记忆规律,力争发挥我们作为人的记忆潜能。和番茄工作法一样,它是需要我们认真践行的。实际上,不是它给了我们培养大脑记忆力的第二次机会,而是我们在使用它的过程中,给了自己一次机会。

而和番茄工作法所追求的注意力提升不同,单纯地追求所谓的提升记忆力可能并不现实。那些经过了四年训练拿到执照的伦敦出租车司机,可以熟记每一条街,却依然可能记不住家人的生日。对于他们而言,提升在工作方面的记忆力即可,其他领域只用做个正常人。所以当我们去尝试 Anki,也应该 从自己生活的实际需求出发,创建一个特有的牌组,然后发挥 Anki 的威力,在这个领域你就可以说自己的记忆力得到了提升。

当你理解了 Anki 的强大之处之后,唯一的问题是:你,准备好开始了吗?

后记

如果你看完这篇文章开始尝试 Anki,我想不出意外的话,你的第一反应应该是:太复杂了!

这种复杂可能来自你对 HTML 和 LaTeX 的陌生,也可能来自于 Anki 多如牛毛的设置项。正是这份复杂也让我一改当初的写作计划,不敢像介绍番茄土豆一样以自己的体验贯穿全文,因为即使我翻完了 105 页的 Anki 官方文档后,依然也只能说对它只是一知半解。所有如果文中出现任何事实错误和对概念理解上的偏差,还请不吝指正。

当然也因为被 Anki 的强大所震撼,才让我下决心说这篇文章力争先向大家介绍 Anki 的强大之处和使用时的一些基本概念,希望大家不被一开始陡峭的学习曲线吓退而错过它。限于篇幅和能力, Anki 还有很多有意思的功能点没能向大家介绍,如果你已经准备开始接纳这个软件,不妨在拓展阅读中了解更多更深层次关于 Anki 的一切。

最后,愿你们也爱上 Anki,一切安好。


拓展阅读: