第 29 次更新.
文章内容较多,有 10000 字,主要回答了以下 7 个问题,附带 anki 插件推荐和 anki 参数设置
- anki 复习过于简单的知识时,容易看似记住却难以迁移运用,该怎么办?
- anki 碎片化的复习方式,难以形成系统化的知识体系,该怎么办?
- anki 用牌组分类卡片,存在明显不利于聚合卡片的缺点,该怎么办?
- anki 的复习受 SM2 算法影响,前期大量卡片积压,影响复习的心理压力,该怎么办?
- anki 的复习受 SM2 算法影响,后期卡片间隔无限增长,显然不利于巩固知识,不利于长期复习,该怎么办?
- 该不该选择 supermemo?
- 该不该选择 anki?
最近我还开始探索 anki 写文章记笔记的可能性,我认为 anki 是有可能做到学习 all in one 的。
最后建议收藏本文,会经常更新,多看几遍可能收获更多。
问与答
动图演示
同时打开多个卡片进行复习
anki 的核心问题
- 怎样用好 anki?
使用 anki 关键在于利用好他的回顾算法、插件特性,最重要的是养成正确的刷卡习惯。
正确的刷卡习惯是啥?
先说说错误的刷卡习惯:
利用机械记忆刷卡,看到卡片有个印象,以为自己懂了就过了。
如果你刷卡刷那么快,还不如把这些卡移出去,做一个表格一目十行懂的打钩,不懂的继续循环,岂不美哉。
像记单词这种简单知识,做一个表格自己打钩就够了。
我个人觉得,机械记忆刷卡,既没学到东西,也没巩固记忆,留着只能增添一些虚假的成就感而已。
机械记忆非常浅层,哪怕是背住了单词,也难以迁移运用,因为是机械的,原子化的,而迁移知识是需要融会贯通的,形成体系的,并且在解决问题的时候,我们脑中会根据已有知识网络形成搜索路线,原子化的机械记忆是无法加入这些搜索路线的,因为他们缺乏有效的联系,从而无法被我们以搜索知识体系的形式提取出来,这种记忆是无效的。
错误的刷卡习惯会让你把 anki 当做任务去应付,这容易导致你急功近利,其实并没有真正掌握知识, 却以为自己刷完就是掌握了。这里我希望你宁可暂停复习,也不要应付地去刷卡片,要对自己的每一张卡片负责。
群友曾提供过一个案例,有一位英语学习者在 anki 上刷了两万张单词卡片,刷得他十分地疲倦,甚至刷到他放弃使用 anki,但他背的那些单词也没有完全被内化吸收,显然在复习中他出现了某种差错,没有得到预想的结果,这就是机械刷卡导致的无效记忆。
真正掌握技能需要刻意练习
在《刻意练习》这本书里,就提到了刻意练习的四个基本的,有目的性的特征
有目的的练习具有定义明确的特定目标。
有目的的练习是专注的。
有目的的练习包含反馈。
有目的的练习需要走出舒适区。
所以快速刷卡不加反馈,并不是一种良好的刻意练习行为,相反他容易将你导入一个自以为学会了的舒适区。
真正掌握技能需要主动回忆
主动回忆的概念总是伴随着间隔重复而出现,但人们对这个概念的理解好像没有对间隔重复的理解那么准确或深刻,常常是以间隔重复 + 被动回忆来操作 anki。
主动回忆和被动回忆的差别:
主动回忆具有创造性 你看过卡片的问题一侧后,能根据问题侧的提示,从无到有地 创造 出回忆材料,你能感受到自己的大脑在主动思考,运作,将涉及的概念组合拼接,将材料重新从回忆中提取加工和复原重构,而不是简单的重现。
主动回忆需要结构化的材料 ,对于单个单词的机械记忆你是没法主动回忆的,但是如果你背一句例句,那就有结构化的材料了,因为为了表达一句例句,他至少分语法,词汇,语义三块,语法有语法结构,词汇有拼写阶段,语义需要你自己调度组织。
这里我们有一点点背离间隔重复的原则,即间隔重复认为卡片内容应尽可能简单,而我却强调卡片的内容必须要有结构感才容易唤起主动回忆,简单化和结构化通常是矛盾的,这里的分寸的拿捏标准,我认为是在 3~5 个动词内能讲清楚的知识,都是允许写在一张卡上的。
主动回忆的过程是痛苦的 ,我相信真正理解主动回忆的人并不多,在缺乏刻意练习 的情况下,我们是没法保证自己的每一次回忆都是主动的,因为主动回忆执行起来天生就很困难,我们的大脑总是想着偷懒,走捷径。
你一定也有这种体会,心中有两个小人在战斗,这张卡片到底要花多大的力气去记忆?记个大概还是全部细节都记住?这些想法看似在判断,其实是大脑在面对困难时不由自主地迟疑,迟疑的原因是大脑想懒惰,而提高刷卡速度则是懒惰的一个很好的借口。
被动回忆是印象化的 被动回忆仅仅根据问题的提示搜索出一个印象,并没有对印象加工输出,学习者像机器一样单纯输入输出。
如果在间隔重复学习中不采用主动回忆方法,那么取得的效果可能会有欺骗性,或难以迁移运用,比如单词,你可能会背,但不会用,还可能在陌生文本中认不出,而运用主动回忆进行记忆提取,就能在回忆时就做到运用这个知识,从而增加知识迁移的可能性。
与 主动回忆 类似的概念还有 费曼学习法 ,前面我讲的东西你若不理解,你按照费曼学习法来刷卡片也可以,他们都强调自己的主动性。
所以正确的刷卡习惯就是
反过来,认认真真对待每一张卡片,手写或者思考卡片的答题过程,
按照zettelkasten或卢曼笔记的核心观点,我们应该把笔记当做你在笔谈的一个知己,让卡片持续地生长。
同样,按照《刻意练习》的观点,刻意练习除了有目的性之外,你每次练习还得加以记录和总结,这样能创造新的不同的心理表征与问题对应,大量的对应的心理表征会自发形成结构,从而深化你对这个问题的概念和印象。
所以最好每次回顾时,都能更新卡片描述,写下本次学习的体会和反馈,也可以附上一些相关的知识点,增加联系,可以更有效地帮助提取记忆。
当然也可以自己另用一套笔记软件专门对应每个卡片 ID 写追加反馈,比如用 roamresearch 或 dynalist,幕布,wolai 都行。这样回顾 anki 卡片的时候,去外部笔记软件中搜索对应的卡片 ID 看看上次的做题记录,有一种思维接续的感觉,能知道自己上一次做题想到了什么地步,需要改进哪里再继续做题。
当然如果你实在没什么好补充的,可以不写,也可以定期写如每周写一次,甚至还能只在有感而发时去补充,总之不必强迫自己形式主义,否则就南辕北辙了,请结合实际情况灵活看待我的内容。
截图
直接将复习笔记记在卡片中,好处是记录方便,坏处是编辑麻烦,要么只能截图。
使用外部软件记录复习笔记,好处是编辑灵活,坏处是频繁切换界面有割裂感和不适感。
回顾算法的参数设置:
提示:
理解回顾算法的参数,是用好 anki 非常重要的一个环节,因为他自带的算法并不通用于任何人的记忆模型,大家要根据自己的需求,具体问题具体分析,调整其中的一部分参数。
但是介绍回顾算法将会花去很大的篇幅,而且本身具有一定的阅读门槛,不是简单看看能学会的,势必亲自动手操作才能有所体会,但是这样就打断了大家的阅读体验,因此为了大部分人阅读的流畅体验,我将其移出本文,附上参数设置的独立地址供大家参阅:https://zhuanlan.zhihu.com/p/336484374
安排回顾算法的原则
记忆对应原则:回顾要根据记忆分类,长期的,中期的,短期的,对应分别建立不同的卡组。
根据人的记忆类型不同和材料的记忆难度和紧急程度不同,映射到不同的回顾周期,长期记忆——(简单不紧急,月为单位),短期记忆——(中等紧急,周为单位),工作记忆——(难且紧急,日为单位)
适合工作记忆的材料有:复杂且难以把握的数学证明题、一个月内马上考试就要用的复习资料、英语作文、零基础新学一门外语的材料等,这些材料的特点是:复杂, 较陌生,难以把握,需要你反复练习快速吸收。
适合短期记忆的材料有:生词较多的英语文章、已经初步掌握的数学定理证明等,这些材料的特点是:可以把握这些材料的大致轮廓,但对细节处却不甚了解或模棱两可。
适合长期记忆的材料有:研究的文献材料、熟悉的英语材料、一些需要记住的简单数据等,这些材料的特点是:比较简单,结构明了,容易把握,我们只是需要对他有一点印象。
以上只是我个人的看法,不同的人用起来会有所差别, 不必拘泥。
动态调整原则
在超负荷的大脑一书中,提到过记忆的过程
记忆材料首先进入工作记忆区,经过再加工和联系,转为长时记忆。
人的工作记忆容量是有限且记忆时长是短暂的,但是记忆的提取速度是最快的。
所以在这段时间里,我们应该提高记忆的频次,频繁地制造刺激和联系,使得他能对你的记忆材料进行压缩编码,制造不同层级的心理表征,逐渐固化为长时记忆。
所以我们利用anki进行记忆的时候,也应遵循这一规则。
对于相对陌生,比较吃力的内容,我们应该增加回顾的次数,缩短间隔,但是如果已经相对熟悉,说明这些材料已经被固化到了长时记忆,我们应该延长回顾间隔,通常情况下上述过程 anki 的回顾算法会自动帮你实现。
而我之前又提到过,我们对不同卡片的印象深刻程度是不一样的,可能有些细枝末节的卡片,我们就不想记得那么牢,所以不必拘泥于统一的回顾算法,每张卡片的回顾算法需要经常调整调换(你应该对你的卡片如数家珍),调换的标准是你感到太吃力或轻松,就得调换,这就是所谓卡片的动态调整。
相关的插件推荐:
Blitzkrieg II Advanced Browser Sidebar [BETA8]
注意该插件已经不再支持新版 anki 其提供的层级 tag 功能新版已经自带,
特色功能:提供层级 tag,快速加 tag,快速搜 tag,对 deck 直接增删查改操作。
截图 | 链接:https://ankiweb.net/shared/info/564851917
hjp-bilink
这是我个人维护的插件,可以手工对不同的卡片做双向绑定,有人总说 anki 碎片化,把卡片联系在一起,一次复习多张相关卡片,不就能解决碎片化吗?
截图 | 链接:anki 插件推荐: hjp-bilink2 刷卡体验提升 400% 的神器
Override next review interval for Easy answer button
能够改写自定义 easy / 简单时长,解决算法不灵活的痛点, 你想啥时候回顾就啥时候回顾。
截图 | 链接:https://ankiweb.net/shared/info/1499032797
BetterSearch
提供方便搜索的插件,原生的搜索栏只有一行,很不好操作。
截图 | 链接:https://ankiweb.net/shared/info/1052724801
Additional Card Fields (Fork for 2.1)
可以在卡片中显示卡片的元信息, 比如 tag, deck, 上次什么时候回顾等等,有时候非常便捷。
截图 | 链接:https://ankiweb.net/shared/info/744725736
review-heatmap
热力图,可以较为直观地看到自己的工作量。
截图 | 链接:https://github.com/glutanimate/review-heatmap
- 怎样避免 anki 复习的知识碎片化?
复习的碎片化,是由 anki 安排复习卡片的不确定性导致的。
当你将很多科目的卡片放在一起时,随着时间复习,久而久之科目 A 的卡片可能会突然出现在科目 B 卡片的复习队列中间,这种突然的插入导致你的复习容易缺乏体系感。因为 anki 安排复习不会管你是什么科目,他只会根据到期时间安排复习队列。
怎么解决这个问题,关键在于建立起不同卡片的联系,将我提到的那几个插件全部装起来,能极大地方便联系 anki 中的卡片。
比如我维护的插件hjp-bilink
,是在卡片内部添加链接以建立联系的方式,适合单独的个别卡片之间做挂钩的操作,使得你在复习这张卡片的同时也能顺带看了那张卡片的内容。
又比如带有层级标签功能的插件advanced browser
,他让你可以简便地将相同的知识点打上一样的标签,方便聚合,然后建立新的卡组复习,这也是一种系统化的方案。
图片演示
也在于你要意识到你是卡片的主人,你可以随时选择复习哪些卡片,随时建立新的卡组继续复习,把无关的卡片排除。
用层级标签和卡组系统对抗碎片化
层级标签和卡组系统是对抗碎片化、减少卡片积压的重要手段。
不推荐把卡组当做文件夹来归类卡片,
卡组中卡片的唯一性,会限制卡片的聚合
比如我如果把一本书的目录做成了卡组 A,而另一本书也做成了卡组 B
如果我想同时浏览两个卡组的同一类知识点,比较在这两本书中的不同,那我得来回切换两个卡组才能看到
但如果我用层级标签当做文件夹,那就不会有这样的问题,
层级标签首先和嵌套卡组一样,可以和书本的目录对应,从而起到按书本分类知识的作用,
其次我只要在他们俩之间再多加一个相同知识点的标签,我就能瞬间切换到按知识点分类知识
截图 (同时选出两本书的同一类知识点,并纳入一个卡组进行复习)
这是卡组所不能替代的功能。
截图
养成正确的制卡习惯
首先,必须摒弃一股脑导入卡片的想法(反复强调),
因为你不能面对一个陌生的 anki 库,
制作一张卡片,放在一个总卡堆,打好标签,每张卡片的标签至少打两个,1 摘录的书籍名字章节( 知识来源),2 知识点的名称(知识定位)。标签打得越多越好,虽然打标签是一个辛苦的工作,很多人懒得去打,但来源和定位是两个最起码的标签,请务必打上。
但注意,不管是卡组还是标签,分类都不要过细,
比如下面群友的一个分类方法,就是过细的,
分类过细会让你分类压力很大,不必如此夸张。
一个分类下的卡片数量在十几张到二十几张是比较合理的。
卡组的作用是什么?
卡组的作用是安排复习,他可以看做是带着回顾算法的独占标签,
其实你可以将全部卡片都导入一个总卡组,然后从中挑选你想复习的卡片,组成新的卡组, 并且给他设置回顾算法,有些卡片记忆难度小,归为一组,有的卡片记忆难度大,归为另一组,针对卡组的不同功能目的,设置不同的回顾算法。
比如我的卡组安排是这样的
dailynote:
在 dailynote 组中的卡片,都是你做的笔记或摘录,在 dailynote 组中,我们可以:
1 汇总 :将日常学习笔记汇总其中。
2 回顾 :一般以周为单位,回顾上周的笔记
3 合并 :如有需要则合并卡片,比如当你发现或想起上周一张笔记和本周的一张笔记有联系,你就可以合并他们,合并的方式有:加链接(插件),内容合并(新并旧或旧并新),直接在旧的上编辑,都可以。
4 搜索 :有些笔记你平时并不需要记住他们,但要用的时候你想快速找到他们,比如某些软件的快捷键,指令,某些学习资源的链接,等等,这时候你做好合适搜索的标签就行,不必回顾(回顾也无所谓,反正点一下 easy 很快)。
这是我新想出来的一个用法,他好用不好用还是有待商榷的,但这个方法确实是一种 all in one 的思路, 因为从系统性讲,你只需要 anki 一个软件就能构成笔记系统的主体了,而不需要在多个软件之间跳来跳去。总的说来,适合一些纯文字的想法记录,摘录。
总卡组:放置大部分卡片,刚导入的,制作的卡片,都放在这里,在 deck 层面,就不要做过多的分类了,分类靠层级标签实现。
废弃组:把一些不想复习的,彻底掌握的放到这里。
短期组:需要尽快回顾浏览,对应工作记忆级别的内容。
中期组:用来放中期记忆的, 比如几个月回顾一次的。
长期组:用来放长期记忆的卡片, 半年回顾的。
手机组:用来放手机里复习的,因为手机只有基础功能,所以适合另起一组。
当然这个安排也不必拘泥, 有时候随时可以建立一个复习卡组。
我们实际上可以同时复习短中长期三个组的卡片,只要将这三组卡组放置于一个共同的上级卡组之下,然后我们复习那个共同的卡组,实际上就能学习到不同循环周期的卡组了。当然,如果你的回顾算法设计合理,难易的卡片都适用,这些组也是可以统一成一个卡组。
最近我又想到一种使用这个体系的方法,比如将通常要复习的主要卡片安排到中期组,当你觉得记忆材料比较困难或比较紧急,再将其移到短期组,如果比较简单或不太紧急,就将其移到长期组。
如果你在周期较长的组中遇到被遗忘的卡片,可以使用again
走失误的步伐,也可以直接将其移动到周期较短的组,两种操作都有各自的好处。
截图
本段小结
标签有很多维度可聚合, 聚合得到的结果创建卡组,根据不同的记忆强度创建不同的卡组。
参考官方文档的搜索语法:https://docs.ankiweb.net/#/searching?id=tags-decks-cards-and-notes
- anki 卡片积压不想复习怎么办?
刚开始使用 anki 学习的几天里,由于新卡片阶段可选的按钮只有again
,good
,easy
三个,而一般人都会点good
比较多,最多也就点个easy
,所以导致到了初次点good
的那天,卡片会疯狂堆积,造成复习的心理压力过重,
解决办法有很多,我们先具体举两个操作原则,
1 简单卡片、核心卡片优先原则:
这个思路来自 supermemo 作者写的文章。
优先复习简单卡片,简单卡片是你回忆思路清晰,用时比较少的卡片,优先复习他们是因为简单卡片容易增长间隔,是减少卡片积压的心理压力的好办法。
简单卡片通常都是你学习的最近发展区的卡片,而困难卡片很有可能就是你离掌握这张卡片还有一点距离,才学起来困难一些,所以先学习简单的,积累记忆的效率会高一点。
优先复习核心卡片,核心卡片是你知识体系中比较重要的,影响其他卡片的卡片,把他们复习巩固好了,能提高你复习别的卡片的速度和效率。
2 分组复习原则:
这个原则比较简单,就是不要一股脑对着成百上千张卡片复习,会有很大的心理压力,最好是准备好一个预备卡组,用来存放你目前暂时不复习的卡片,再准备一个当前卡组,专门复习你目前最需要复习的卡片。
我们可以有更多的其他分组思路,总之需要把大量卡片有序地归类处理,毕竟一天也复习不了那么多卡片,没必要看着吓自己。比如你要是觉得待复习数字飘在那很不舒服,就移到一个提示复习为 0,新卡为 0 的废堆卡组。当你想复习的时候移出来放到当前的循环,他会接上自己的复习进度的。
两个原则结合起来,可以看下面这张图
总之记住,你是卡片的主人,你觉得不爽了就可以改变它。
然后再举例三个利用 anki 机制的思路:
1 限制每天复习的卡片总量
不论是新卡片还是复习卡片,都有每天卡片的上限限制,我们可以通过这个来减少每天卡片复习的总量,是比较简单的方法。
2 减少学习中的卡片总量,增加复习中的卡片总量。
主要的办法是减少新卡片的学习步伐
长度,进而加快毕业
的速度。比如你可以设置一个一日内的学习间隔:30 180 720
基本上走完这个间隔之前,你会掌握这张卡片的基本知识,一旦觉得自己掌握了那就毕业
。
毕业
后卡片进入复习中状态,这时候能安排的间隔选择就增多了一个,从而通过将不同的卡片安排到不同的间隔日期,达到缓解卡片积压的效果。
3anki 自带的 2.1 记忆算法
自带的 2.1 记忆算法,在学习中阶段也增加了一个按钮,这样你的选择又多了一个,分配这些卡片到不同的日期回顾,就可以起到一定的缓解积压效果。
另外,人的记忆容量是有限的,你不可能同时记住所有的卡片,你只需要把自己的记忆集中在当前最需要学习的内容上,无关的内容可以移动到不常复习的卡组中,不用理会,不用强迫自己学会每一张卡片,学会需要的卡片就好。
刷卡的相对数值也是有限的,比如我每个小时刷 10 张卡(数学题)已经是极限,超过这个限度,我难以保证自己还能认真读完每一张卡并作出具体回答。
而有些人说自己一天刷好几百张卡,那我想知道你真的把每一张卡都过了一遍吗?有没有存在不假思索刷过卡片的情况?这能保证学习的效果吗?请不要为了赶时间而刷卡,刷不完就刷不完,没什么大不了的,我们需要保证的首先是质量而不是数量。
(20210314171459 新增)
为了解决卡片积压,我又新想到了一种方案:合并卡片。
合并掉那些简单的熟练的卡片,减少复习的次数,如果觉得合并工作比较辛苦,那你还可以用我的 anki 插件,把这些熟练的 n 卡片链接在一起,把其中的 n-1 张停止复习,只复习其中 1 张,剩下的卡片都能通过链接关系得到,这样也能实现合并的效果。
(20210823001643 新增)
合并卡片的理论基础: 奥苏泊尔提出过同化学说,来解释遗忘的意义.
在奥苏泊尔看来, 遗忘并非没有意义, 他是帮助你将新知识同化吸收为自己知识的一个桥梁, 遗忘的是初级知识, 掌握的是核心知识.
举个例子, 学游泳的时候, 我们会分解动作进行逐个练习, 当你真正学会游泳的时候, 你就会忘记当初分解动作练习的细节, 忘记这些细节, 是为了让你将注意集中在核心, 让你从更高层次去看待这些分解动作, 即游泳技能本身上, 要是这时候还去反复练习分解动作, 很有可能会是有害的.
其实去看 anki 的很多卡片, 不也是同样的道理吗? 我们要求制卡遵循最简知识原则, 但是如果反复记这些简单知识, 很有可能会对我们的综合知识记忆造成反作用.
因此对于简单知识的卡片, 我认为熟悉他们后, 就能尝试采取合并卡片的操作, 将这些简单知识融合成一个综合的知识, 如果能做好这个工作, 不仅减少了记忆负荷, 而且还减少了.
- anki 卡片间隔过久怎么办?
anki 的 SM2 算法天生就有间隔以指数性趋向无穷的缺陷,当你不加节制地点击easy
,他总能达到间隔一年以上的水平。虽然一张卡片可以被你刷到下次回顾时间在一年后,但这也无法保证你这段空档时间里就不会忘记他,也难以保证这样的回顾计算是科学的,从而直接造成了你的遗忘,这就是间隔过久的问题。
anki 本身有四种方法来限制这种无限增长。
以下四种机制都在参数介绍的文章里有提到,如果不明白可以去看看。
1 利用失误
机制:走完失误步伐有一个新间隔系数,新间隔可以设置小于 100% 的系数
2 利用最大间隔
机制:设置增长上限
3 利用间隔修饰符
机制:给整体间隔增长乘以系数
4 利用困难间隔
(旧版也翻译成强制间隔
)机制:这个打开 SM2.1 算法才能出现,也是修改间隔系数的。
也可以利用插件实现日期的修改,这类插件有挺多的,不过我在前文里推荐的Override next review interval for Easy answer button(插件代码:1499032797)个人认为比较方便易用。
另外我个人也有长期的计划,打算针对 anki 的缺陷提供一些插件支持。
- anki 该不该导入做好的卡组?
不推荐批量制卡 ,虽然有很多外部导入工具,但确实不推荐。
复习的卡片必须是你熟悉的,有一定难度的,你的核心知识。
而非核心的知识就可以放一边不用管了,搞个长期回顾的算法。
另外视情况,原则上不用别人的陌生卡片。
那些一股脑导入一堆别人做好的卡片的做法原则上是不对的,你必须对自己的卡片要有一定的了解,至少你想找他就能找到。
其他的闲言碎语
anki 和 supermemo 如何选择?
前言:
在阅读 @叶峻峣 翻译搬运的 supermemo 作者的一部分核心观点,以及自己几次简短的对 SM 的尝试后,我给出如下评价:
supermemo 的优点
SM18 算法比 SM2 算法优秀得多
我个人认为,SM18 算法绝对比 anki 的 SM2 算法优秀,毋庸置疑。
因为 SM2 算法至少有一个缺点,那就是会引起间隔的无限增长。短期使用 anki 不会感觉到有什么异常,长期使用就一定会有记不住知识的感觉。
SM2 只能说是在几十年前比单纯的遗忘曲线好那么一点点,和最先进的 SM18 算法绝对是比不过的,更何况很多商业的间隔重复学习软件都放弃了 SM2 算法,转用机器学习预测间隔,比如多邻国,quizlet 等。
而 SM18 算法能根据卡片的难度,调整复习的优先级队列,让你优先学习到比较简单的知识,提高复习效率;能根据你本应复习的时间和实际复习的时间的差值,动态调整下次的间隔时间,因为你的推迟复习势必造成遗忘率的改变,这个必须动态调整。
这些原生 anki 都做不到,总的来说,anki 在短期使用时记忆效果还不错,长期使用的记忆效果和效率都远远不如 supermemo。
以上只是我在日常使用中发现的 SM2 的不足和 SM18 的优越性,我相信还有更大的差距隐藏在其中。
方便实现增量阅读的各种功能。
supermemo 的另一大卖点是增量阅读。
增量阅读是一个将文章切碎了一点一点读一点一点转化的精读手段,配合 SM18 的回顾算法,能做到在非常细的尺度上对文章的高效记忆和学习,适合读一些比较难懂的书或文章。
针对增量阅读的学习特点,supermemo 有很多针对性开发出来的功能,比如导入书籍文章,并可以对其挖空,或制作成问答卡片,有很多方便整理的工具。
这个原生 anki 也没有,有些插件目前在做这一套增量阅读的工具,但还没有插件能在 anki 上实现 SM18 算法,因此做出来的增量阅读效果会差很多。
supermemo 的缺点
操作与交互
supermemo 虽然功能强大,但是操作也极为复杂,对新手极为不友好,如果从 anki 入门的间隔重复学习,那你短时间内 supermemo 的基础操作都很难搞懂,可能需要花几个月去适应他。
我认为这不是因为我们太笨,而是开发者太傲慢,没有站在用户体验的角度去优化他的软件,他选择了让用户自己承担作者因为傲慢而堆砌的按钮。
supermemo 的交互极为落后,看起来就像是十几年前的软件,比如他提供的网页导入功能只能在 IE 浏览器上用。
显然现在使用 IE 不是主流,而作者过于孤傲,懒得去适配 Chrome 等主流浏览器,则再次说明他没有优化用户体验的思维。
封闭
supermemo 的插件严重匮乏,是一个闭源软件,没有插件生态就很难保持活力,这也是 supermemo 不如 anki 火爆的原因之一。
supermemo 只有 windows 端,不支持 mac,linux,Android,iOS 端。
supermemo 也不允许你进行算法的参数调整,他认为自己的算法是最优秀的,无需调整。
一切都透露着封闭的味道,还是那句话,作者过于傲慢,不认为别人的想法能超越他。
SM18 的有效性质疑
- reddit/anki 上曾有人抱怨,他用了几个月的 supermemo,没有记住任何东西,
- https://www.reddit.com/r/Anki/comments/eq2fzh/making_anki_more_like_supermemo/
- 也有人曾实验,花两个月背日语单词,来对比 anki、supermemo、quizlet 的记忆效率、每天用时、卡片间隔时间。结果发现,supermemo 的记忆效果并没有明显好于 anki。
记忆保留率
每日回顾所用时间
- 特别是他提到:
Unfortunately, my posttest results showed that SuperMemo is not giving me similar long-term recall to Anki, and is nowhere close to 90%. I’m quite disappointed at this. It’s possible that the algorithm takes more data and time to adjust to an individual’s memory, but I am now quite skeptical of any claims that SM-18 is significantly superior to SM-2.
也就是说他质疑 SM18 显著好于 SM2,这个广为人知的陈述。
这表明 SM18 算法虽然点子多,功能性上比 SM2 强,但他的记忆效果上并不对任何人都有效。
anki 和 supermemo 的总评
简单易用又富有拓展性,是一个东西能流行起来的很重要的因素。
虽然 supermemo 的作者有很多优秀的想法,他的 SM18 算法一骑绝尘,但他的软件如果不针对用户体验做优化升级,那他永远会是小众产品。
他的软件确实拉胯,作为用户,我不会惯着这样傲慢的开发者。
他的想法也确实牛逼,作为开发者,我们应该尝试将他的想法搬到用户体验更好的软件上来。
虽然 SM18 算法是不公开的,我们若不用 supermemo,可能永远都体验不到他的神奇之处,但这世界上并不只有 SM18 一种优秀的间隔重复算法。
正如之前所提到的多邻国、quizlet 甚至是流利说,他们早期都使用过 SM2 算法,后来全都改为机器学习来预测间隔时间,
在 supermemo 作者写介绍间隔重复历史的文章里,他自己也承认这些软件在用机器学习做预测后,所达到的效果也是相当不错的,虽然他承认这个东西有一定效果,但还是傲娇地说 SM18 更科学,因为他们的出发点都是填鸭式教学
(sm 作者承认 quizlet 是竞争对手的信息来源:The true history of spaced repetition。
(机器学习能有效预测遗忘曲线的信息参考:increasing-learning-outcomes-through-spaced-repetition
还有 brainscape 采用他们自己独立设计的基于信念的间隔重复(confidence-based repetition 或 CBR),有大量的论文基础,而 sm 作者是不参与学术圈讨论的,所以可以把 CBR 看作是学术界的集体智慧,从而也有一定的可靠性。
因此虽然 sm2 效率比较低,我们要找更好的算法,但前面也介绍了,supermemo 并非高效间隔重复的唯一解,替代品也有,而我出于使用方便,不愿为 supermemo 作者的傲慢买单,我选择改进 anki。
先进的软件有很多,不是说你算法多么精妙,你就可以忽视用户体验写出难用的软件,用户体验是整体的,单一个算法没有配套的交互设计是不够的,不然搞什么 UI。
mathematica 复杂精妙到不知道哪里去了,入门用起来还是非常轻松,mathematica 装起来有几个 G,功能庞大,但是我若只想算算定积分,那也能几个符号就实现,背后有大量的参数设置功能按钮,但不会全部暴露给你,界面简洁无比。
但凡妄想只要有一个算法比较好,就可以天下无敌的人,需要好好反思自己是不是陷入了控制论思维,想想赛博朋克的结果吧,简单粗暴的算法控制人类的行为,造成了事与愿违的结果。
所以总结一下,我们应该学习 sm 作者的理念,将其运用到自己的工作学习中,但不要去用他的软件。
为什么选择 anki?
有人问我为什么不选择 quizlet,他有机器学习辅助预测不是比 anki 强吗?
我没有深入了解过 quizlet,但是前面提过,用机器学习来预测间隔是有论文支持的,有很多人做这方面的研究,而且现在学习电子化程度加深,机器学习有了海量的大数据来分析预测遗忘曲线,假以时日肯定能达到甚至超越 sm 作者本人设计的算法的。
但问题不仅在于记忆算法,quizlet 和其他商业软件有一样的毛病,就是私人定制化程度过低,你只能按照他给你的模板设计你的问答卡片,或用他提供的知识卡片学习,一般他们会针对大众学习这类知识的一些痛点推出针对性服务,所以你可以去试试 quizlet,如果效果不错,那你就用,感觉不好,你就回来用 anki。
商业软件追求低成本高收益,所以基本不会出现 anki 这么高定制化的可能,但是一旦他们发现一条固定学习方式的商机,他们立刻就能运作起来,把这条路走到最优秀。比如语言的学习,流利说的英语学习模式固定下来比 anki 要强很多倍,不仅仅是记忆算法强,流利说在整体上对人学习英语的帮助远远大于 anki。
而我们使用一个软件就是要看他的整体,所以学习英语我不会太推荐 anki,虽然 Anki 可以通过打插件之类的操作,来接近流利说的水准,可那你为什么不直接用现成的成熟产品呢?anki 就像一个产品原型孵化器,已经有数不清的学习软件脱胎自 anki。
而 anki 之所以能火这么久,未来还将继续火下去,不是因为他的 SM2 算法有多么先进,我看了很多插件作者的过往开发经历,都有过开发类似 SuperMemo 算法的插件项目,这说明他们都知道 anki 算法存在问题,想过改变 anki 而未能如愿,可他们依旧热爱 anki,贡献了五百多个插件,为什么?
因为 anki 定制化程度很高,我们甚至能修改底层代码来实现对任意知识的学习,这种自由精神是商业软件不敢触碰的底线,问渠那得清如许,为有源头活水来,火热的插件圈子造就了一批忠实的 anki 用户,他们遇到任何困难,首先想的是能否找到可以解决困难的插件,而不是换个软件,从而有了二次挽留用户的可能,这才是 anki 经久不衰的根源。
所以,如果你的学习需求不是定制化的,没有现成成熟的商业解决方案,那么高度定制化的 anki 依旧是有着最多可能性的最佳选择。
下面的内容将来会删除重写,现在可不必看。
推荐搭配 anki 的工具(待更新)
公式编辑:mathpix (可兼顾图床)
搜索类
everything
anytxt
笔记类
大纲笔记
roamresearch
dynalist
幕布
块笔记
notion
wolai
markdown 笔记
obsidian
思源
zettlr
typora
综合笔记
devonthink
欢迎加 QQ 群 891730352
在这里你可以讨论 anki,wolai,dynalist,roamresearch,obsidian,remnote,思源,devonthink,supermemo
https://zhuanlan.zhihu.com/p/270135184