08- 优先队列
Note本文为翻译稿,原文信息如下:
原地址:Priority queue
优先级队列
优先级队列: 简介
人类的知识资源浩瀚无边。我们对获取知识的欲望通常超过我们的学习能力。渐进式学习使我们很容易输入大量的知识。然而,如果你不能有效地处理所有导入的知识,就有可能被不那么重要的学习主题所淹没,从而忽略了更重要的知识。这种状况是在 SuperMemo 中引入 优先级 的主要原因。
在增量学习中,所有的 元素 被组织成一个由 优先级 决定的序列。这个序列被称为优先级队列。优先级 是由该 元素 对学生的重要性决定的。当学生在某一天的学习时间不足时,优先级 较低的 元素 将首先被剔除。因此,只有高 优先级 的 元素 才能获得所需的记忆/保留 水平。在任何时候,优先级 较低的 元素 将更有可能被遗忘。
在学习当天,具有最高 优先级 的 元素 会被率先处理。
如果你一天都没有完成学习,也不要沮丧。有了 优先级队列,你就知道你已经尽力了,只有低 优先级 的材料还未学习。记住要使用 自动排序 和 自动延期,保证充分利用 优先级队列 的优势。
我们能学会整部《大英百科全书》吗?
在学习过程的早期,许多学生不屑于对学习材料进行优先排序。这种态度是由两个因素造成的:
- 在学习过程的早期,学习量较小
- 错误地相信人类的记忆力足以容纳想象中的所有知识
你认为你能够逐行逐句地记住整本 《大英百科全书》 吗?
你的答案可能是: ”我太懒了,我太忙了,但如果我有完整的一天来做这件事,我是可以的“。或者是 ”我不会,但我听说过一些天才能够做到!比如 Kim Peek?“。如果你认为记忆百科全书是有可能的,你很快就会意识到,你迫切需要优先级队列来帮助你克服一个大的惊喜:我们的记忆力远比你想象的要有限!
假设我们不考虑记忆系统突变的人类,那么背诵 《大英百科全书》 就会推翻 超级记忆理论,而该理论应当适用于所有健康的成年人。从超级记忆理论的角度出发,背诵 《大英百科全书》 几乎是不可能的。《大英百科全书》的 32 卷中有 4400 万字。这相当于 600 万个 SuperMemo 的 项目(” 人类记忆比位 ”),假设信息密集型文本的平均关键词提取率为 1:7。如果学习时间为 50 年,就有 18250 天,每天 330 个 项目。假设知识的最佳表现形式(比如说 《大英百科全书》 已经是 ” 完美的表述 ”),在给定的知识 留存 水平下,你不可能比使用 SuperMemo 学习得更快(它只是找到了最精确的方式),而且实践表明,从长远来看,要保持每天记忆 留存 超过 100 个 项目 的保留率是非常困难的。换句话说,一个聪明人就算穷尽一生,也很难用 SuperMemo 来完成被精确阐释的《大英百科全书》知识!
学习数量与留存之争
增量阅读 使得从互联网上输入大量的学习材料变得容易。默认情况下,所有输入的材料都进入了学习过程。因此,大量未经处理的信息开始与你认为最重要的知识片断争夺你的注意力。这是一个优先选项的冲突。一方面,你想确保高度 留存 你的关键性知识(如经典的 SuperMemo),另一方面,你迫切想要吸收更多的新知识。
在 SuperMemo 之前,你的学习主要是基于阅读、复习书籍或自己的笔记。在使用旧版 SuperMemos 时,你会把时间分给阅读(在纸上)和复习(在电脑上)。有了 增量阅读,这些相互竞争的过程被融为一体。你可以在 SuperMemo 中同时进行阅读和复习。然而,对于最贪婪的增量阅读者来说,优先权的天平总是危险地偏向于新的阅读,而牺牲了以前获得的知识。这来自于人类的天性。新的阅读提供了即时的满足感: ” 今天,我学到了一些新东西。我现在更聪明了 “。而复习已经学习过的材料,我们认为这是一种负担。人类总是对自己的记忆力不满意。总觉得大自然应该给我们一个自然的选择,即忘记什么,记住什么,而不需要付出痛苦的努力来复习我们已经知道的东西。
为了解决 ” 容量 ” 与 ” 留存 ” 之争,并解决优先级的冲突,你需要使用比旧版 SuperMemos 更好的工具。在 优先级队列(2006 年)出现之前,你需要使用一套复杂的工具来进行大量的学习,同时还要保证最重要的知识 留存。你会使用复杂的概念,如 A 因素、遗忘指数、子集学习、选择性推迟、重复排序 等。这些工具的自动化程度很低,需要你付出大量的努力去学习它们。在实践中,大多数增量读者将不得不选择最简单的优先级工具:自我控制。你可以通过限制你对知识的渴望来保护你之前的学习成果。
较新版本的 SuperMemos 使用了一个简单的、完全自动化的机制,将帮助你把大量的阅读和对最重要材料的高度 留存 结合起来。这种机制是基于 优先级队列 产生的。
增量阅读中的优先级偏差
在 SuperMemo 中,每个 元素 都有一个从 0% 到 100% 的 优先级。按 优先级 排序的 元素 构成 优先级队列。一个 元素 的优先级也可以表示为它在 优先级队列 中的位置。你的集合中最重要的 元素 位于 优先级队列 中的位置=1。该队列是一个相对队列。这意味着,如果你在位置=3 处插入一个重要的文章,所有在更高位置的 项目 和文章将在队列中向上移动一个位置(即向低 优先级)。因此,位置=999 的 元素 将被推到位置=1000,而之前位于位置=3 的 元素 现在将占据位置=4。队列中的前两个元素,即位置=1 和位置=2,将不会移动。优先级队列 的相对性将帮助你立即检查你的集合中每个 元素 当前的 优先级。在早期版本的 SuperMemo 中,你可以观察到高优先级的 元素 的聚集现象。例如,你可以积累大量 A-Factor=1.01 的题目,但实际上无法在这组题目中进行优先排序。(A-Factor=1.01 是可能的最低值,对应于最高 优先级)。
使用相对 优先级队列 的基本理由是存在一种认知偏见,我们将其称为优先级偏见。这种偏见使我们总是认为新发现的文章是极其重要的,应该进行阅读。新的文章之所以感觉是如此重要,是因为我们低估了先前导入的文章价值。我们的记忆无法对当前大量记忆中知识的重要性进行有效估计。它更不可能对储存在你的 增量阅读 过程中的大量知识(通常只有极小部分是你的长期记忆的一部分)的重要性进行估计。这直接导致了我们总是低估我们的知识量,我们在 增量阅读 中保留的知识量,以及这些知识量的重要性分布。这种心理机制也是反对普遍采用超级记忆法的主要原因。根据生理特征,人类在估计自己的知识规模、学习成本和遗忘的力量方面非常薄弱。因此,如果不深入了解 SuperMemo 是什么,人门很少会停下来发现使用 间隔性重复 的必要性。在 增量学习 的情况下,这种低估带来的危害性更大,因为增量学习要复杂得多,而且还没有用足够简单又恰如其分的术语来进行解释。
通过采用 优先级队列,SuperMemo 将帮助你直观地了解优先级偏差以及大量新材料迅速取代旧材料的学习重点的过程。此外,SuperMemo 高度自动化了你处理材料溢出的过程,并使高 留存率 与高学习量相协调。增量阅读 一直以其能将学习量带到前所未有的水平而自豪。有了优先队列,你几乎可以去掉节制的因素,进一步增加学习量,而不必过分担心你辛苦得来的知识。
SuperMemo 中的优先级队列
你可以通过以下方式定义 元素 的 优先级:
- 按住Alt+P、
- 通过点击学习栏上的优先级按钮
- 或者通过在 元素菜单 上选择 学习:优先级:修改。
要设置 元素 的 优先级,你可以选择 元素 在 优先级队列 中的位置(从 1 到 所有),或者你可以选择百分比值(从 0% 到 100%)。Position=1 对应的是Percent=0%。同样地,Position =Total 对应于 Percent = 100%。
低位置和低百分比意味着高优先级!这个反直觉的选择是由于你更有可能选择 0% 或 1% 的高 优先级,而不是 99% 或 100% 的低 优先级。输入数字2比输入数字98花费的时间要少得多(大约少 3-4 倍)。由于你很可能在一次学习过程中多次手动设置 优先级,这种反直觉的选择将在多年的学习中为你节省大量的输入时间。从长远来看,你可能会感谢 SuperMemo 中这种颠倒的设置!
你可以使用 学习:优先级:增加元素菜单(Shift+Ctrl+Up 箭头)来增加一个 元素 的 优先级,或者 学习:优先级:减少(Shift+Ctrl+Down 箭头)来减少它。这些操作也会影响 A 因素 的 主题。
你可以查看全部 优先级队列 “:优先级队列 在 主菜单 上。
确定优先级是困难的
每个人都在为确定 优先次序 而纠结,因为人们很难承认有些事情并不是那么重要。在美好的事物中,对知识的渴求和创造力之间存在着一种关联。如果你总是在 优先事项 上纠结,那么这可能是一个很好的指示,只要你赢得这场战斗,学会诚实地确定优先次序。
要很好地确定优先次序,你只需要知道最重要的材料有 0% 的 优先权,而你最不重要的材料是 100%。你需要培养一种感觉,即在队列中,一条信息属于哪里。如果你认为所有的东西都是 ” 最优先 ” 的,那么你显然还处于道路的起点。挑选两个 项目,问自己一个问题: ”如果我忘记/删除一个,会是哪一个?” 这个练习将帮助你区分不同 项目 的不同功能和功能背后的不同价值。另一个练习是:尝试给 项目 以尽可能低的 优先级,你可以忍受让它变成 10% 吗?如果是 20% 呢?如果是 66%,世界会不会崩溃?通过一些有意识的努力,你会意识到你可以在没有那些知识的情况下生存(毕竟,大多数人根本不使用 SuperMemo,也能生存)。经过几个月的训练,你会在这方面变得更好。
如果你一直偷看 保护统计,你可能也会意识到,发送超出你平时优先保护的 项目 数量会帮助你暂时将它们清除出视野。这样一来,如果你因为创建了太多的 cloze 删除 挤占了你的处理通道,你可能真的会把大部分的项目送出保护区,而只关注一两个有关知识本质的项目。
SuperMemo 不会对你的优先级工作有多大帮助,除非你手动使用 时间间隔(比如说,说 ”这个不能等 30 天,我必须在 11 天内看到它”)。这就告诉 SuperMemo,优先级 必须提高。
排序重复的工作
在高容量的 增量阅读 过程中,你可能在一天内得到的 元素 比你在一周内处理的更多。因此,你必须从最高优先级的 元素 开始审查你的流程。低优先级的 元素 可能会在队列中徘徊数月或数年。高优先级的 项目 应该在 SuperMemo 认为最合适的时间被审查。只有这样,你才能满足你对高优先级材料所要求的 遗忘索引 标准,同时没有限制你对知识渴望。更简单地说,在一个超负荷的学习过程中,SuperMemo 关于 ” 优秀记忆 ” 的承诺将只适用于你最优先的材料。优先级 越低,留存率 越低(见:工具:统计:分析:图表:遗忘指数与优先级的实验证据)。
默认情况下,你的复习内容会在每个学习日开始时被自动排序(除非你取消选择 学习:排序:自动排序复习内容)。这意味着,在某一天复习的 元素 将按 优先级 排序。除了 自动排序 外,你还可以在任何时候用 学习:排序:现在排序来手动排序学习队列。
你会很快发现,严格按照 优先级 标准执行的精确排序有严重的缺陷。一方面,由于优先级偏差,你很快用当前兴趣的东西取代过去的高质量材料。这将是你回到前 SuperMemo 的时代,你不断地阅读新材料,而忘记了你之前所学习的内容。新材料总是让人感觉非常重要,并且有将你之前的学习材料转移到低优先级的趋势。此外,你可能会因大量新文章的涌入而压倒经典的 SuperMemo 重复(即问答复习)。同样,你没有确保以前学习的内容充分消化,而是不断地阅读新材料,忘记旧材料。
SuperMemo 通过让你定义,解决了 优先级偏差 的问题和 主题 大量涌入的问题:
- 学习中 主题 的比例
- 学习队列的随机化程度。
图: SuperMemo 中的排序标准。在学习队列中只允许有一小部分耗时的 主题。这个比例的选择是为了最大限度地提高学习的乐趣和效率:足够的新材料的流入与你以前学过的知识回顾相结合。学习顺序中允许有一定程度的随机性。这样,你就可以重新发现那些被大量新材料的涌入而 优先 取代的珍贵文章。在本例中,主题 显示出比 项目 更高的随机化程度。
你可以通过 Learn : Sorting : Sorting criteria来确定排序标准。你需要不断尝试来调整 主题 的比例和随机化的程度。这都取决于你的目标和偏好。如果这个过程中接纳的 主题 太少,你将不会获得很多新的知识。如果你接纳了太多 主题,你就会开始忘记以前学过的材料。如果你把学习队列随机化的程度设置得太高,整个优先级机制就会解体,对高优先级材料的 留存 就会下降。如果你严格按照 优先级 对重复的内容进行排序,由于优先级的偏差,新材料将不断取代旧材料。即使某些 优先级偏差 不那么突出的 项目 重复,一定程度的随机化也会帮助你提高不太受重视的 项目 的 优先级,分散从同一 摘录 中产生的 空格,并通过提高整体学习速度(通过 间隔效应)来补偿一些 留存 的损失。
主题 的比例告诉你,与 项目 相比,你在复述过程中会得到多少 主题。如果你想确保你对以前添加的材料保持较高的 保留率(根据 SuperMemo 的定义),你就不能用过多的新材料(新的 题目)使学习超负荷,因为你将没有足够的时间来做日常 项目 复习。在一个健康的学习过程中,你应该把的流入量限制在 1:4 或更少(即每个 主题 至少重复 4 个项目)
随机重复
为了确保你对 收集 的学习材料的内容和分布有一个充分的了解,你应该常常进行随机重复。这是为了防止视野狭窄和 优先级偏差 现象。你可以用 ”学习 ” 来进行随机重复: 随机:随机重复(Shift+Ctrl+F11),或者用 工具:怜悯 与 标准: 排序选项设置为随机化。
偶尔的随机重复可能会带来启发,因为它们不会对材料中的任何部分产生影响。你的学习不会因为 元素 比例的增加而产生偏差,例如:短间隔 元素、长间隔 元素、特定的 元素 类型(如文章、摘录、cloze 删除 等)、元素 内容(如 知识树 的特定 分支)、元素 处理的程度,也不是(最重要的)元素 的优先级。随机重复将帮助你了解可能存在的不好趋势,如新材料的过度流入,由于频繁的重新安排而导致的低 保留率,新创建的 cloze deletions 制定不恰当,所获得的知识质量较低,过度强调某些主题而牺牲其他主题等等。不过最重要的是,随机重复应该能帮助你感受到 优先级偏差。你会注意到,然后立刻受到诱惑,在专注于新材料流入的同时,提高了大段材料的优先级。
确定优先次序规则手册
- 学会处理新 元素 的 优先级。尝试将整个 集合 可视化,并学会在整个知识范围内定位 元素。尽量放松,专注于知识的本身的 优先级(除非在截止日期或考试的压力下)。如果你所有新 元素 的 优先级 都是 1-10%,你就知道你不坦率了。一些新材料必须降低到 80-90%。有些事情你想知道,但你并不真正需要知道。你可以将它们添加到 收藏 中,但要坦率地降低 优先级。你了解电影明星吗?没关系。但是,除非你想自己(或类似)成为一名演员,否则你应该给明星应得的 95-99%。
- 在此过程的早期,你可能很难感觉到 30% 和 60% 优先级 之间的差异。或者,你可以始终将 优先级 设置为 1%。SuperMemo 在小数点后四位显示 优先级 的事实会让你觉得你的 优先级 不够。你要忽略这些感觉。你可以从 3 分制开始:1%、33% 和 88%。你越优先考虑,感觉就越自然和流畅。你要有耐心。
- 降低优先级是非常困难和非常痛苦的,但是,这可能是你在重载 集合 中成功的关键。希望提高任何事情的 优先级 是非常容易的。你需要训练你的大脑允许低 优先级!你需要开始一些知识(至少到 优先级 较低的领域)!你不可能知道你想知道的一切!(除非你想知道很少)
- 定期检查 工具 :统计 : 分析 :使用 :优先级保护 :项目(Shift+Alt+A 打开此选项卡,就像你上次离开时一样)。优先级保护是最可靠的指标,表明你的 收藏 中有多少比例可以实际满足你 要求的遗忘指数 标准。例如,如果你的优先级保护为 3%,你就知道 3%-100% 优先级 范围内的任何知识都是安全的!如果一直高估优先级,项目 将挤在高优先级位置,并且优先级保护参数将非常低。如果你是理性的,你将增加优先级保护参数的数值,并使最优先的 项目 不被延迟和遗忘。你会惊讶于在短短几天内(更不用说在更长的时间内)通过集中精力和取消优先级来增加优先级保护的速度有多快!请参阅下图中的示例。这样的努力将为你的知识质量创造奇迹。重要性应该永远压倒紧迫性和情绪。
- 常规检查 工具:统计:统计:保护。此参数告诉你在给定会话中设法切入最高优先级材料的程度(这相当于一天的优先级保护)。如果这些数字变得非常低,你需要开始降低你的 项目(或 主题)的优先级。只要你保持合理的 优先级,你不需要控制对感兴趣材料数量的导入。
- 最重要的时刻,要对 元素 或元素集进行优先排序: 在 项目 失败时,你需要重新考虑 优先级。经常失败的 项目 是导致进展缓慢的最大因素。降低它们的 优先级 是补救的方法之一(也可以通过诱导 间隔效应 或减少干扰来帮助你增强记忆)。 在文章导入时,高 优先级 将确保尽早阅读,然而,一旦你开始阅读,你如果想取消 优先级,只给重要的 摘录 高 优先级 你可以为整篇文章设置 优先级,然后依次拆分(在阅读时自己拆分或程序自动拆分)。边阅读边拆分文章,然后在 浏览器的处理菜单 上用 ” 优先级:扩展 ” 来扩展所有 子元素 的 优先级,这样做会更简单。一旦你完成了文章的阅读,一些生成的 摘录 和 空缺处 将被赋予更高的 优先级(根据你的决定),而大多数 元素 的 优先级 将根据文章的 优先级 进行自动设置。这通常会是一个高于应有的 优先级。因此 优先级:建议每次你完成阅读一篇文章时,都要进行传播。 给予新 内容 一个非常高的 优先级 是有意义的,这能确保它们至少被复习一次以 ” 内化 ” 在你的记忆中。然而,一旦第一次复习成功结束,你未来在更长的 时间间隔 内回忆的可能性更大一些,你可以提供一个更可靠的 优先级,这通常比第一次为了产生 cloze 删除 而优先 摘录 的时候要低。如果你仍然担心遗忘,你可以等待建立更可靠的 优先级,直到第三或第四次审查。等待的时间越长,你就越有可能在这期间忘记真正重要的东西。
- 如果你在较低的 优先级 和较高的 优先级 之间犹豫不决,较低的 优先级 总是会更好! (由于 优先级偏差,可能会使你的学习通道被挤占)
- 如果你跳过一些日常的重复训练,项目保护会下降(如 分析:使用中的优先保护)。如果你不能很好地确定 优先次序,项目保护也会下降。保持高项目保护的最好方法是定期学习,大量学习,并提供可靠的优先级评估。
- 如果你在一个超负荷的 收藏 中进行可靠的 优先级 评估,你 测得的遗忘指数 将会增加。然而,它将更可靠地反映你对 收藏 中实际知识的掌握程度。要看 遗忘指数 如何随 优先级 变化,请看 工具:统计:分析:图表:遗忘指数与优先级的关系。
- 如果你手动改变 间隔时间,元素的 优先级 就会改变。如果你缩短了 间隔时间,优先级 就会自动增加。如果你推迟下一次重复,优先级 将下降。
- 优先级保护有时会在一天内下降很大的幅度。但这只要不成为一种趋势,就不必要担心。例如,如果你发现一组 clozes 的 优先级 太低,而你在整组中提高了该 优先级,所有一直未完成的 项目 但不在未完成队列的前面的项目都将影响第二天的项目保护测量。这是一个单日的现象。然而,你也会注意到大规模上调整 优先级 产生的破坏性影响。说 ” 该 分支 非常重要 ” 很容易,而不分青红皂白地改变 优先级 就很难挽回损失。
- 如果你好奇哪个推迟的 项目 减少了你的项目保护(优先级保护),请选择 查看:最近: 推迟,在 浏览器菜单 上选择 子项: 项目,然后按优先级排序(例如,通过点击“上一个”列标题)。违规的 项目 应该落在顶部。它将告诉展示你的项目保护是如何下降的。这是前一天学习中错过的最优先的 项目。
- 了解文章相对重要性的一种简单方法是查看元素 优先级 对话框 (Alt+P) 中的“之后”和“之前”字段。
图: 了解文章相对重要性的一个简单方法是查看元素优先级对话框(Alt+P)中的”之前“和”之后“字段。在图片中,维基百科 Donald Trump 的一篇关于禁止穆斯林的文章摘录 获得了 64% 的优先权。这一优先级与关于航天飞机飞行成本和关于轨道前额皮层的 项目 相当。
- 终身学习和学校学习之间的主要区别在于,学校人为地扭曲了学习材料的优先级。在考试前,一段材料必须得到高优先级和高处理,而在考试后,同样的材料必须现实地重新评估(这通常意味着优先级成倍下降,严重稀释了过载的内容)。
优先级队列: 概要
- SuperMemo 使用 优先级队列,其中所有的 元素 在学习过程中按其 优先级 排列
- 最高的 优先级 是 0%。最低的 优先级 是 100%。
- SuperMemo 可以 自动推迟未完成的材料 的剩余时间
- SuperMemo 使用 优先级队列 对学习队列进行 自动排序。这意味着,每天你将首先得到高优先级的 元素。
- 优先级队列 使得学习中的需求得到节制;然而,它并没有完全解决 优先级偏差 的问题。
- SuperMemo 通过严格限制流入学习过程中的 主题 来实现自动节制。
- SuperMemo 通过用户定义的 学习队列排序 的随机化程度来帮助你对抗 优先级偏差。
- 在严重超负荷的学习过程中,低 优先级 材料的 留存率 将大幅下降。
- 降低 元素 的优先级是痛苦的,但它是你长期成功的关键。由于 优先级偏差,较低的 优先级 几乎总是比较高的 优先级 好!
- 工具:统计:分析:使用:优先保护:项目可以用来检查超负荷学习过程中的项目保护程度。
- 工具:统计:统计:保护 可以用来检查一个人在某一天处理最优先材料的进度
- 优先级队列 将帮助你增加学习量,并仍然增加最优先级材料的 留存率。
讨论
若阁下有独到的见解或新颖的想法,诚邀您在文章下方留言,与大家共同探讨。
反馈交流
其他渠道
版权声明
版权声明:所有 PKMer 文章如果需要转载,请附上原文出处链接。