关联项目:edu-companion(智能伴学系统) 系列:Thoughts Memo × ZhiHuArchive 专题整理延伸阅读
大多数人提到 Anki,第一反应是”背单词”或”记知识点”。但 Thoughts Memo 社区(以 FSRS 算法作者叶峻峣为代表)对 Anki 的理解远不止于此——他们把 Anki 的间隔重复系统(SRS, Spaced Repetition System)当作一种通用的思维训练框架,从记忆层一直延伸到概念理解和刻意练习。
本文基于 ZhiHuArchive 中数十篇相关文章的精华,系统地拆解 Anki 的用法层次、背后的科学原理,以及它对 edu-companion 这类 AI 伴学系统的启示。
Ebbinghaus 遗忘曲线告诉我们:学完一个东西后,如果不复习,记忆呈指数衰减——1 小时后忘掉约 50%,1 天后忘掉约 70%。
但有一件事比这更关键——间隔效应:
在即将遗忘的时刻进行回忆,比任何其他时间点的复习都更高效。
这就是 SRS 的核心思想。Anki 通过指数退避算法(exponential backoff)自动安排每次复习的时间:你回答得越容易,卡片被推到越远的未来;回答得越困难,它在近期再次出现。
SRS 的另一个科学支柱是检索效应(Testing Effect,也称测试效应):
从记忆中主动提取信息,比重新阅读或复习笔记,能更大幅度地增强长期记忆。
| 方法 | 长期保持率(1周后) | 花费时间 |
|---|---|---|
| 重读笔记 | ~30% | 中等 |
| 划线标注 | ~20% | 少 |
| 自我测试(主动回忆) | ~60-80% | 多(但更值) |
这解释了 Anki 最根本的设计原则:每张卡片都是一次主动回忆的练习,不是被动浏览。
SRS 的另一条核心原则来自 SuperMemo 的作者 Piotr Wozniak:
一张卡片应该只测试一个最小信息单元。
原因在于工作记忆的容量限制——如果一张卡片同时测试两个互不依赖的事实,其中任何一个被忘记都会导致整张卡片失败,但你无法知道是哪个没记住。
反例:“法国的首都是巴黎,德国的首都是柏林。” → 正面问”法国首都是?“,背面想答”巴黎”还是”柏林”?混乱。
正例: - Q:法国的首都是? → A:巴黎 - Q:德国的首都是? → A:柏林
这是整个体系中最核心的部分。大部分人在层次一就停下了,而真正的高手能走到层次三。
做什么:把需要记忆的事实做成 Q&A 卡片,每天过一定数量的复习。
适合: - 背单词(最经典场景) - 记忆公式、定理、日期 - 记忆代码片段、API 用法 - 记忆解剖图、化学结构等可视化内容
典型卡片设计:
Q: 拉格朗日中值定理的公式是什么?
A: 若 f(x) 在 [a,b] 连续、在 (a,b) 可导,则 ∃ ξ∈(a,b) 使得
f'(ξ) = (f(b) - f(a))/(b - a)
局限性:停留在这个层次,Anki 只是一个”记忆维持工具”。它能让你不忘公式,但无法帮你理解为什么这个公式成立,更无法训练你在实际问题中选择用哪个公式。
这是 Thoughts Memo 社区强调的核心层次。
做什么:不满足于记忆事实,而是设计卡片来强迫自己推理。卡片不是问”是什么”,而是问”为什么”、“怎么区分”、“在什么情况下适用”。
为什么有效:写卡片本身就是深度学习过程。要把一个概念压缩成一张好的卡片,你不得不:
数学示例对比:
| 层次 | 卡片 | 效果 |
|---|---|---|
| 一(基础记忆) | Q: 罗尔定理的条件?A: f(a)=f(b) | 背完忘,不会用 |
| 二(概念理解) | Q: 如果 f 在 [a,b] 连续、在 (a,b) 可导,且 f(a)=f(b),你能推出什么?为什么不直接说导数处处为零? | 强迫你思考 Rolle 定理的结论和前提的关系 |
概念理解卡片的常见模式:
1. 比较题:
Q: 中值定理的三个版本(Rolle/Lagrange/Cauchy),它们的条件递进关系是什么?各比前一个多加了什么条件?
2. 边界题:
Q: 为什么 Rolle 定理要求 f(a)=f(b)?如果去掉这个条件,结论变成什么?→ 退化为 Lagrange 中值定理
3. 反例题:
Q: 如果 f 在 (a,b) 上不连续,Rolle 定理还成立吗?给一个反例。
4. 应用题(场景式):
Q: 证明方程 x³ + x - 1 = 0 在 (0,1) 内有实根。用什么定理?为什么?
Andy Matuschak(《量子国度》作者)的用法:他不止是”复习卡片”,而是把卡片看作与未来的自己对话。他设计的卡片常常是开放式的:
Q: 我昨天读的那篇关于认知负荷的论文,它的核心论点是什么?它和 Sweller 的原论文有什么不同?
这种卡片不是考记忆,而是让自己在未来的某一天被拉回到一个思考场景中。
这是最高层次的用法,也是文章 SRS 多大程度上算刻意练习? 的核心论点。
核心论证:Anders Ericsson 提出的”刻意练习”有四个特征:
| 刻意练习的特征 | SRS 如何满足 |
|---|---|
| 1. 聚焦弱点 | FSRS 算法自动追踪每张卡片的难度和稳定性。错的卡片出现频率更高——系统天然在”补短板” |
| 2. 即时反馈 | 每次回答后自己打分(Again = 没记住 / Hard = 勉强 / Good = 记得 / Easy = 太简单),立即知道自己哪里没掌握 |
| 3. 逐步改进 | 间隔逐渐拉长(从 1 天 → 4 天 → 15 天 → 2 个月…),每次复习都在不同的时间线上”加固”记忆 |
| 4. 个性化 | 你打的分决定了你的学习曲线,每个人的复习节奏完全不一样 |
当然,SRS 不完全等同于刻意练习——因为你做的不是”有教练指导的高强度训练”,而是自我引导的间歇性提取。但它的自动聚焦弱点机制,确实让它在自我学习中扮演了刻意练习的角色。
如何实践层次三: 1. 不是为了”复习完”而刷卡片,而是每次看到卡片时刻意延长思考时间,多想一步 2. 对自己打 Grade 保持诚实——“这题我其实没记住,只是凭上下文猜的” → 选 Again 3. 定期淘汰”太简单”的卡片,换更高难度的问题形式 4. 把多个知识点的卡片交错出现(interleaving),而不是按主题分组复习
ZhiHuArchive 中有 8+ 篇文章专门讨论卡片设计,以下是提炼出的铁律:
❌ 选择题式:
题目中 f(a)=f(b) 且 f 在 [a,b] 连续导出什么结论?
A) Rolle 定理 B) Lagrange 定理 C) Cauchy 定理
→ 你靠排除法就能选对,没有真正提取
✅ 生成式:
Q: 什么条件下可以应用 Rolle 定理?写出完整的结论。
A: f 在 [a,b] 连续、(a,b) 可导、f(a)=f(b) ⇒ ∃ξ∈(a,b), f'(ξ)=0
→ 你得从零开始回忆定理的完整表述
❌ 模式匹配卡片(所有问题都是同一句式):
Q: [定理名]的条件是什么?
A: [罗列条件]
→ 你只是记住了"问条件→罗列条件"这个套路,根本没理解
✅ 多角度卡片:
同一知识点设计 3-5 种不同角度的问法:
1. 正向:Rolle 定理给我们什么结论?
2. 逆向:如果 ξ 处导数为 0,能推出什么条件?
3. 应用:证明这个方程有根——用什么定理?怎么用?
4. 变式:如果 f(a)≠f(b),结论如何变化?
5. 联系:Rolle 定理是 Lagrange 中值定理的特例——为什么?
同一张事实,可以设计 3 种问法轮流出现:
方式 A(正向):
Q: 法国首都是?
A: 巴黎
方式 B(反向):
Q: 巴黎是哪个国家的首都?
A: 法国
方式 C(关联):
Q: 法国和德国的首都分别是?
A: 巴黎、柏林
Anki 本身不自动做这种变体设计——需要你手动创建多张卡片。但效果显著。
❌ False/True 题:
Q: Rolle 定理要求 f(a)=f(b)。T/F
→ 事实性判断太简单,不需要提取
✅ 开放题:
Q: Rolle 定理中 f(a)=f(b) 这个条件的直观意义是什么?
A: 函数在区间两端取值相同,意味着如果中间有变化就必须"先上后下"或"先下后上",因此必然有极值点,极值点导数为零
Anki 的”暂停”(Suspend)和”降级”(Bury)功能比直接删除更智慧:
有些材料当前不相关,但以后可能用上。直接删了就没了,以后得重新做卡片。暂停/降级让它先沉下去,等合适的时机再浮现。
没有新卡片,复习会枯燥脱节。
这是被很多人忽视的点。如果你只复习旧卡片、不添加新内容,每天的复习就变成了”机械地在旧知识上打转”。新卡片给复习系统注入活水——新知识和旧知识之间会产生连接(elaborative encoding),让所有记忆更牢固。
FSRS(Free Spaced Repetition Scheduler)是由叶峻峣(Jarrett Ye)开发的次世代间隔重复算法,现已集成到 Anki 官方作为可选调度器。
原来的 Anki 调度算法使用一个固定的”难度”参数,通过一个简单的 heuristic 公式计算下次复习时间:
间隔 = 上一次间隔 × 难度因子
问题:所有人的学习曲线被强行压缩成相同的形状,不考虑个体差异。
FSRS 使用四个可学习参数来建模记忆:
| 参数 | 含义 | 实际问题 |
|---|---|---|
| 稳定性(Stability) | 这个记忆能保持多久 | 有些东西你 1 个月后还记得,有些 1 天后就忘 |
| 难度(Difficulty) | 这个材料本身有多难 | 简单的对话 vs. 复杂的数学定理,需要的复习频率不同 |
| 可提取性(Retrievability) | 当前这一刻,你记住它的概率 | 算法根据时间推算,决定今天要不要复习 |
| 响应多样性 | 你打分时的”手感”差异 | 有些人喜欢给 Easy,有些人保守只给 Good——算法自适应 |
简化版描述:每次你回答完一张卡片,FSRS 会根据你的回答历史和该卡片的特征,动态调整它的下次出现时间。如果你连续两次答对了,它不会像传统算法那样简单地翻倍间隔,而是根据你的个人记忆模式计算出最优时间。
基于前文的原则,以下是针对高等数学(或任何数学课程)的具体方案:
建议按”三层结构”组织牌组:
📁 高数(牌组)
├── 📁 Ch5_定积分(子牌组)
│ ├── 📄 基础记忆层 → 公式、定理、定义
│ ├── 📄 概念理解层 → 为什么成立、怎么用
│ └── 📄 综合应用层 → 证明题思路、方法比较
├── 📁 Ch6_微分方程
│ └── ...
└── 📁 Ch7_多元微积分
└── ...
基础记忆层(层次一):
Q: 写出牛顿-莱布尼茨公式
A: ∫_a^b f(x)dx = F(b) - F(a),其中 F'(x) = f(x)
概念理解层(层次二):
Q: 为什么牛顿-莱布尼茨公式要求 f 在 [a,b] 上连续?
提示:考虑一个在 [a,b] 上不连续但有原函数的函数
A: 如果不连续,积分可能不收敛,或 F(b)-F(a) 的差值与
黎曼和极限不对应。连续性保证了黎曼积分存在且与
原函数的差值一致。
综合应用层(层次三):
Q: 计算 ∫_0^π sin²x dx 至少用 2 种方法。
(提示:降幂公式 / 对称性)
A: 方法一(降幂):sin²x = (1-cos2x)/2
= ∫_0^π (1-cos2x)/2 dx = [x/2 - sin2x/4]_0^π = π/2
方法二(对称性):∫_0^π sin²x dx = ∫_0^π cos²x dx
且 sin²x + cos²x = 1
所以 2∫_0^π sin²x dx = ∫_0^π 1 dx = π ⇒ 原式 = π/2
通法总结:对称性和恒等式是简化定积分的利器——
遇到 sin²/cos²,优先考虑对称性而非直接积分。
| 时段 | 做什么 | 时间 |
|---|---|---|
| 上午 | 新卡片 + 常规复习(无特殊处理) | 15-20 min |
| 下午/晚上学完新内容后 | 制作 3-5 张新卡片(当天学的内容、当天做错的题) | 10 min |
| 周末 | 批量设计”概念理解”卡片(回顾本周弱点) | 20-30 min |
| 考前一周 | 暂停所有已掌握的卡片,集中攻克”Again”率 > 20% 的弱卡 | 按需 |
| 误区 | 正确做法 |
|---|---|
| 一天加 50 张新卡片 | 一天加 5-10 张,质量优先。太多新卡片会导致复习堆积 |
| 只看”Good”和”Easy”,不打 Again | 诚实打分——Again 不可怕,可怕的是”假装会了” |
| 卡片的正面全部是”Q: …“,反面全是”A: …” | 多样化格式:填空题、类比题、列举题、反向题交替 |
| 从来没删过卡片 | 定期(每月)整理牌组:合并重复卡片、删除无关的、改写模糊的 |
edu-companion 当前的”向量检索式复习”(material search 基于 embedding 相似度)处于层次零——让用户回顾材料片段。升级路径清晰:
在解析题库时,对每个知识点自动生成多角度理解卡片:
# 示例:从知识点生成多角度问题
知识点: "牛顿-莱布尼茨公式"
→ 正向问题: "牛顿-莱布尼茨公式的内容是什么?"
→ 逆向问题: "如果知道 F(b)-F(a) = 5,且 F'(x)=f(x),能推出什么?"
→ 条件变式: "如果 f 在 [a,b] 上不连续,公式还成立吗?"
→ 应用场景: "计算 ∫_0^1 e^x dx 用什么方法?"
→ 联系问题: "这个公式和定积分的定义有什么关系?"引入类似 FSRS 的记忆模型,不只是”推荐相似材料”,而是追踪每个知识点的掌握曲线:
最理想的状态是——edu-companion 不仅能帮助用户记忆和理解,还能诊断用户在综合应用层面的薄弱点:
用户做了 3 道定积分证明题都卡在”构造函数”这一步 → 系统识别到”构造辅助函数”的技能缺陷 → 推送专门训练这个技能的 5 道递进题 → 同步推送对应的概念卡片:“构造辅助函数时,通常从哪些条件出发?”
这就是 Math Academy 四组件模型中”诊断算法 + 任务选择算法”的工程实现。
| 层次 | 目标 | 卡片设计关键词 | edu-companion 对标 |
|---|---|---|---|
| 一 | 维持记忆 | Q&A、最小信息、事实 | 当前:材料回顾 |
| 二 | 概念理解 | 比较、反例、边界、场景 | 近期目标 |
| 三 | 刻意练习 | 弱点聚焦、交错、诚实反馈 | 远期目标 |
Anki 的真正力量不在于”让你不忘”,而在于它逼迫你把知识从”模糊知道”变成”清晰提取”。每一次回答卡片,都是在大脑里重新走一遍推理路径——次数多了,那条路就变成了高速公路。
延伸阅读: - SRS 可用于发展概念性理解 - SRS 促进应用综合创造 - SRS 多大程度上算刻意练习? - 用 SRS 掌握数学概念 - 记忆系统与解题练习 - SRS 让你误以为记忆很差