# 1995 年:超媒體 SuperMemo
[TOC=2,5]
## SM-8 算法在山間小屋中誕生
1995 年,[SuperMemo](https://supermemo.guru/wiki/SuperMemo) 重寫。這是個好時機,可以利用 [SM-6 算法](https://supermemo.guru/wiki/Algorithm_SM-6)采用后四年以來的數據,實現新的[間隔重復](https://supermemo.guru/wiki/Spaced_repetition)算法。
1995 年 3 月,在漢諾威的 CeBIT 展會上,我們看到了 Borland 開發的全新開發環境:Delphi。它與舊的 Borland Pascal 完全不可同日而語 ,并為 [SuperMemo](https://supermemo.guru/wiki/SuperMemo) 開啟了數十個開發機會。我們決定按照我的[博士論文](https://supermemo.guru/wiki/Economics_of_learning)中描繪的思路重新設計程序。不僅能實現[間隔重復](https://supermemo.guru/wiki/Spaced_repetition)之外,我們還想加入知識結構和超媒體。[項目](https://supermemo.guru/wiki/Item)不會是一團亂麻,用戶將能夠建立[知識樹](https://supermemo.guru/wiki/Knowledge_tree)。告別只有問題、答案、圖片、聲音的模板,我們希望掌握所有可能的組件類型,這些組件可以聚合成新的超媒體形式來更好表達知識。還有一個夢想,那就是可編程的 SuperMemo,其中開發者編寫自己的程序來實現各種各樣的練習,包括程序練習、盲打練習或者解一元二次方程。于此同時,我們收集了很多數據,這些數據表明 [SuperMemo](https://supermemo.guru/wiki/SuperMemo) 中使用的算法可以得到改進。例如,[最優系數矩陣](https://supermemo.guru/wiki/OF_matrix)的數學性質已經相當明顯。
1995 年 5月,我帶上我的奔騰電腦,前往波蘭南部一處偏遠的山上小屋去研究這些想法。那是完全與世隔絕的 100 天,只有[Krzysztof Biedalak](https://supermemo.guru/wiki/Krzysztof_Biedalak) 的一次簡短拜訪打斷了我,其間我和他重新同步了對未來 [SuperMemo](https://supermemo.guru/wiki/SuperMemo) 的設想。到 1995 年 9 月,新的算法已經就緒,我在自己的數據上測試了這個算法。回到波茲南后,我開始逐步將我所有的學習過程從 [SuperMemo 7](https://supermemo.guru/wiki/SuperMemo_7) 中的多個[集合](https://supermemo.guru/wiki/Collection)轉移到開發出的新環境,我親切地稱為「Genius」。兩年后,直到新程序終于可以包含 SuperMemo 7 中的所有功能了,Genius 才成為 [SuperMemo 8](https://supermemo.guru/wiki/SuperMemo_8)。
開發 SM-8 算法中,最重要的數據是[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)和 [OF 矩陣](https://supermemo.guru/wiki/OF_matrix)數據,通過 [SuperMemo 6](https://supermemo.guru/wiki/SuperMemo_6) 和 [SuperMemo 7](https://supermemo.guru/wiki/SuperMemo_7) 收集可得。這些數據減少了算法中的猜測成分。開發 SM-8 算法與開發 [SM-17 算法(2014-2016)](https://supermemo.guru/wiki/Algorithm_SM-17) 相比是相當輕松了,開發 SM-17 算法時我有龐大如山的間隔重復歷史數據需要處理,而且對精度和[優良指標](https://supermemo.guru/wiki/Universal_metric)的要求也增加了兩倍。SM-17 算法光開發就花了整整兩年,然而 SM-8 算法從設計,實現,到充分測試僅用了 100 天。
算法 SM-8 的主要想法:
- 基于實時近似實現精確求解 [OF 矩陣](https://supermemo.guru/wiki/OF_matrix)。為描述矩陣,我想找出精準的數學函數,并對矩陣進行實時更新,而不是使用 [SuperMemo 5](https://supermemo.guru/wiki/SuperMemo_5) 以來的矩陣平滑手段。很容易確定有一個負指數冪函數決定了 [OF](https://supermemo.guru/wiki/O-Factor)=f(RepNo) (用今天的術語就是 [Slnc](https://supermemo.guru/wiki/Stability_increase)(https://supermemo.guru/wiki/Stability_increase)=f(S))在確定[難度](https://supermemo.guru/wiki/Difficulty)對 [Slnc](https://supermemo.guru/wiki/Stability_increase)(https://supermemo.guru/wiki/Stability_increase) 的影響上有更多的猜測成分。將項目難度([A-系數](https://supermemo.guru/wiki/A-Factor))映射到 Slnc(D-系數)的函數描述了隨著穩定性/間隔增加,[穩定性增長](https://supermemo.guru/wiki/Stability_increase)減少,對于這個函數我使用了線性近似。這個近似沿用到了今天。是個好猜測。
有了對 OF 矩陣的良好定義,我就可以精確定義項目[難度](https://supermemo.guru/wiki/Difficulty)了: [E-系數](https://supermemo.guru/wiki/E-Factor)變化不定,按用戶心思由[評分](https://supermemo.guru/wiki/Grade)手動控制,相比之下,我希望讓難度絕對不變,于是便有 [A-系數](https://supermemo.guru/wiki/A-factor),定義為穩定性設為 R=0.9 時第一次[重復](https://supermemo.guru/wiki/Repetition)后的[穩定性增長](https://supermemo.guru/wiki/Retrievability) 。這樣設定后,[SuperMemo](https://supermemo.guru/wiki/SuperMemo) 每次重復便有可能調整項目難度,方法是按照 [OF 矩陣](https://supermemo.guru/wiki/OF_matrix)得到的預期表現,修正對項目表現的擬合。
- 將第一次[評分](https://supermemo.guru/wiki/Difficulty)與 [A-系數](https://supermemo.guru/wiki/Grade)聯系起來,從而更快確定初始[難度](https://supermemo.guru/wiki/A-factor)。這個機制不很有用,也不太重要,因為即便有更多重復歷史,項目難度也是很模糊的概念。這樣看來,用戶需要注意的是,好好表述每個項目,保證每個項目都很簡單才是上策。
- 基于遺忘次數進行指數擬合,來近似確定[遺忘](https://supermemo.guru/wiki/Lapse)后第一個間隔。這種方法的最大價值,是破除一個迷思,即記憶遺忘之后,縮短間隔能夠提高學習速度。有些基于 [SM-2](https://supermemo.guru/wiki/Algorithm_SM-2) 算法的軟件的作者選擇縮短間隔,但這種做法已證實是錯的。一些基于 [Leitner 系統](https://supermemo.guru/wiki/Leitner_system)變體的軟件中也有使用這個做法,如 [Duolingo](https://supermemo.guru/wiki/Duolingo).
- 將[評分](https://supermemo.guru/wiki/Grade)與[遺忘指數](https://supermemo.guru/wiki/Forgetting_index)關聯起來的做法是無效的,對改進算法也無益。真相很久之后才被揭露。最后斷言花了十年才得出:評分和遺忘指數的聯系非常微弱。基于 [SM-2 算法](https://supermemo.guru/wiki/Algorithm_SM-2)的直覺只對了一點點
有趣的是,SM-8 算法并不需要元素有完整的間隔重復歷史。記錄完整重復歷史的功能在 1996 年 2 月才實現。不要求完整歷史的好處是容易時間,缺點是,一旦用戶在學習過程中進行了手動干預,算法就沒有這種干預的記錄,也就無法防御不正確數據的輸入。二十年后 [SM-17 算法]的實現,當然也仰仗于完整的間隔重復歷史。
1995 年 8 月 16 日,星期三,我在算法 SM-8 中對自己的數據進行了第一次「實地」間隔重復學習。為了這次測試,我「貢獻」了一個小型集合,含有 100 個項目,主要是數字的助記掛鉤。在接下來的兩年里,我逐漸將我所有的其他集合適配到新算法和新的 SuperMemo 環境。在 1997 年,我的所有知識終于被整合到單獨一個結構良好的數據庫中。從 1995 年到 1997 年,這種數據庫稱為「知識系統」。今天,我們只稱作[集合](https://supermemo.guru/wiki/Collection)(如知識集合)。
時至今日,這 1995 年誕生的算法的核心仍在 [SuperMemo 17](https://supermemo.guru/wiki/SuperMemo_17) 中默默運行。用戶如果對 [SM-17 算法](https://supermemo.guru/wiki/Algorithm_SM-17)建議的間隔不滿意,仍可根據該舊算法選擇間隔。
## 絕對項目難度
從 SuperMemo 1.0 到 SuperMemo 3.0,[E-系數](https://supermemo.guru/wiki/E-Factor)和 [O-系數](https://supermemo.guru/wiki/O-Factor) 定義相同(即連續間隔的比率)。這兩個系數用于近似衡量項目[難度](https://supermemo.guru/wiki/Difficulty)(E-系數越高,項目越容易)。然而,[間隔重復優化](https://supermemo.guru/wiki/Algorithm_SM-2) 會迫使 E-系數對應上[穩定性增長](https://supermemo.guru/wiki/Stability_increase),可后者會隨著[穩定性](https://supermemo.guru/wiki/Stability)而下降。換句話說,[算法 SM-2](https://supermemo.guru/wiki/Algorithm_SM-2) 中,從定義上[項目](https://supermemo.guru/wiki/Item)會被標記為越來越「難」,因為它們會被連續重復。這有點違反直覺,而用戶似乎從未注意到。
從 SuperMemo 4.0 開始,E-系數被用于索引 O-系數的矩陣。E-系數仍然用來反映項目的難度,以及計算 O-系數。然而,它們可以與 O-系數不同,從而更好地反映難度。
從 SuperMemo 4 到 SuperMemo 7,給定一個數據庫,其中材料的難度會決定 O-系數和 E-系數的關系。比如,在簡單的集合中,初始 O-系數(也就是第一次重復和假定的初始[難度](https://supermemo.guru/wiki/Difficulty)的O-系數)會相對較高。屢次重復的表現決定了 E-系數,那么即使在簡單集合中項目的 E-系數,也會低于在困難集合中的相同難度的項目。在 [SuperMemo 8](https://supermemo.guru/wiki/SuperMemo_8) 引入 [A-系數](https://supermemo.guru/wiki/Collection)(https://supermemo.guru/wiki/A-Factor)后,一切都改變了。A-系數是「綁定」到 O-系數矩陣的第二行上的。這樣 [A-系數](https://supermemo.guru/wiki/Collection)(https://supermemo.guru/wiki/A-Factor)便是項目難度的絕對衡量指標。**A系數的值不因集合內容而變化。**比如,如果 A 系數是 1.5, 那么第三次重復前的間隔,就會比第一個間隔長 50%.
存檔警告:[為什么使用文字檔案?](https://supermemo.guru/wiki/Why_use_literal_archives%3F)
[A-系數](https://supermemo.guru/wiki/A-Factor)是與[集合](https://supermemo.guru/wiki/Collection)中每個[元素](https://supermemo.guru/wiki/Element)相關的數字。A-系數決定了在學習過程中,[間隔](https://supermemo.guru/wiki/Interval)變大的程度。A-系數越高,間隔的增加就越快。A-系數反映了項目的[難度](https://supermemo.guru/wiki/Difficulty)。A-系數越高,[項目](https://supermemo.guru/wiki/Item)越容易。最難的項目的 A-系數等于 1.2。A-系數被定義為第二個[最優間隔](https://supermemo.guru/wiki/Optimum_interval)和第一個最優間隔的比值。
## 遺忘后的間隔
SM-8 算法中的遺忘后間隔近似法否定了兩個迷思:
- 縮短遺忘后的間隔是個好主意(這個想法在 1991-2000 年期間被多次提出過)
- 第一個間隔應該總是 1 天(一些舊的 SuperMemo 解決方案如此)
在下面的圖表中,我們可以看到,如果連續遺忘,最優的遺忘后間隔不斷變短。這無非說明,較高的遺忘次數,僅僅來自表述得很差勁的項目,或者那些語義上難以記憶,或者有其他干擾知識的項目。對于以 Lapse=10 開始的記憶,我建議用「[有毒](https://supermemo.guru/wiki/Toxic_memory)」這個術語來表達它們對學習過程的影響。如果大腦拒絕記憶一個信息那么多次,我們應該明白:這個知識的表述很糟糕,或者由于其他原因(例如與學習有關的壓力,如在學校)而變得有毒。
存檔警告:[為什么使用文字檔案?](https://supermemo.guru/wiki/Why_use_literal_archives%3F)
**首個間隔** - 第一次重復后的第一次間隔的長度,取決于某個項目被遺忘的次數。注意,這里的第一次重復是指遺忘后的第一次重復,而**不是**項目創建以來的第一次重復。換句話說,一個重復了兩次的項目在被遺忘后,其重復次數將等于 1 而不等于 3。首個間隔畫成圖線,得到了指數回歸曲線,這條曲線近似描述了不同次數的記憶錯誤(包括與新記憶的項目相對應的零錯誤類別)對應的第一區間長度。在下圖中,藍色圓圈對應于學習過程中收集的數據(圓圈越大,記錄的重復次數越多)。
[](https://supermemo.guru/wiki/File:First_interval.jpg)
> 圖注:上圖涵蓋了了超過 130,000 次重復的數據,根據這張圖,新記憶的項目在 7 天后重復是最理想的。然而,遺忘了 10 次的項目(這在 SuperMemo 中是很少見的)需要 2 天間隔之后出現。(由于按對數縮放,圓圈的大小與數據樣本并不成正比;Lapses=0 的重復情況遠遠大于 Lapses=10 的情況,這一點在**[分布](http://help.supermemo.org/wiki/Analysis#Distributions) : [Lapses](http://help.supermemo.org/wiki/Analysis#Lapses)**中可以看出)
## 首次評分與 A-系數的關系
將首次評分與預估項目難度相關聯的做法,是為了剛開始學習時,對項目按難度進行分類。這種相關性似乎很弱,而且極其依賴于用戶心中的評分系統。對于一些用戶來說,兩者幾乎沒有相關性可言(圖片#1)。對其他用戶來說,兩者相關性足夠強,能覆蓋全部的難度范圍(A-系數)(圖片#2)。
[](https://supermemo.guru/wiki/File:First_Grade_vs_A-Factor_All.jpg)
[](https://supermemo.guru/wiki/File:First_Grade_vs_A-Factor_Molie.jpg)
此外,從算法 SM-8 發展而來的 SM-11 算法,允許用戶提早重復。這些重復對于[間隔效應](https://supermemo.guru/wiki/Spacing_effect) 有作用,但是,它們仍然被歸入圖標數據中,并使得困難項目的評分被高估。若[漸進閱讀](https://supermemo.guru/wiki/Incremental_reading)得到廣泛使用,圖線將更加平緩。
[SM-17 算法](https://supermemo.guru/wiki/Algorithm_SM-17)不將評分與難度關聯,而是根據整個重復歷史計算難度。實踐表明,即使這樣做,估計難度也很困難,因而學習的好做法是讓所有項目都足夠簡單(用公認的記憶法的說法就是,與學生的其他知識相契合)。
存檔警告:[為什么使用文字檔案?](https://supermemo.guru/wiki/Why_use_literal_archives%3F)
**首次評分與 A-系數** - G-AF 圖將項目的首次評分與其 A-系數的最終估計值聯系起來。在每次重復時,當前元素過往的 A-系數估計值被從圖中刪除,并添加新的估計值。[SM-15 算法](https://supermemo.guru/wiki/Algorithm_SM-15)用這個圖來快速估計 A-系數的第一個值,此時只有首次重復中得到的首個評分是已知的。
## 評分 vs. 遺忘指數
通過將評分與預期的遺忘指數(預測的[可提取性](https://supermemo.guru/wiki/Retrievability))相關聯,我希望能估計出遺忘指數(實際[可提取性](https://supermemo.guru/wiki/Retrievability)的重復后估計)。這種相關性似乎很弱,因為所有用戶自己都有一套評分準則,而這套準則往往前后不一致。評分和可提取性的關聯可歸因于這個事實:復雜的項目評分更差,而且往往遺忘得更快(至少在開始時)。在這個意義上,評分更好地反映了[復雜性](https://supermemo.guru/wiki/Complexity),而非[可提取性](https://supermemo.guru/wiki/Retrievability)。
如下圖所示,預期遺忘指數的整個范圍似乎都落在 3 分左右。
[](https://supermemo.guru/wiki/File:Grade_vs_Forgetting_Index.jpg)
對于評分 <=3,我們可以讀取最大的估計遺忘指數,對于評分 >=4,我們可以讀取最小的估計遺忘指數。從這個角度來看,兩個等級系統對算法的影響與六個等級系統完全相同。
對于其他用戶來說,預期遺忘指數的某些取值下,評分曲線甚至可能達到峰值,就好像評分反映了記住棘手項目的愿望(寬松的評分)。
[SM-17 算法](https://supermemo.guru/wiki/Algorithm_SM-17) 大范圍使用了可提取性,是在重復后估計的。然而,可提取性是根據大量的召回數據和預期的可提取性計算出來的。評分與可提取性的相關性數據也有所收集,但是這兩者的相關性可以忽略不計。
存檔警告:[為什么使用文字檔案?](https://supermemo.guru/wiki/Why_use_literal_archives%3F)
**評分與遺忘指數** - FI-G 圖將[預期遺忘指數](http://help.supermemo.org/wiki/Forgetting_index#expected_forgetting_index)與重復評分聯系起來。你需要了解[算法 SM-15](https://supermemo.guru/wiki/Algorithm_SM-15) 才能理解這個圖。你可以想象,[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)圖的縱軸上可能使用平均評分而不是[保留率](https://supermemo.guru/wiki/Retention)。把平均評分與[遺忘指數](https://supermemo.guru/wiki/Forgetting_index)相關聯,就會得到 FI-G 圖。這個圖表是用來計算[估計遺忘指數](http://help.supermemo.org/wiki/Forgetting_index#estimated_forgetting_index)的,而估計遺忘指數又用來對評分進行歸一化處理(對于延遲或提前的重復),并估計項目的 A-系數的新值。評分是用如下公式計算出來的:*Grade=expA/*FI+B*,其中 A 和 B 是對復重復期間收集的原始數據進行指數回歸的參數。
每次重復后,根據預期遺忘指數和實際評分來更新 FI-G 圖。預期遺忘指數可以很容易地從重復間隔,和從 OF 矩陣中計算出的最佳間隔中計算出。預期遺忘指數的值越高,評分就越低。利用評分和 FI-G 圖,我們可以計算出估計遺忘指數,即在完成項目重復后,估算得出的項目重復之前的遺忘概率。由于遺忘和回憶的隨機性,同一個項目或許能回憶起來,或許回憶不起來,這取決于大腦當前的整體認知狀態;即使所有貢獻記憶的突觸的記憶強度和可提取性是/以前是相同的!這樣,我們就可以談論一個剛剛回憶(或未被回憶)的項目的重復前回憶概率。這個概率由估計遺忘指數表示。
## SM-15 算法
SM-8 算法經過多年的改進,演變成 SM-11 算法(2002),然后是 SM-15 算法(2011)。這里我只介紹最新的版本:SM-15 算法(在 SuperMemo 15、SuperMemo 16 中使用,并作為 SuperMemo 17 的備份算法)。
二十年來, SM-8 算法得到的關鍵改進有:
- 穩定性索引改善:從 SuperMemo 8 (1997) 開始,算法不再使用重復次數,而是使用「[重復類別](https://supermemo.guru/wiki/Repetition_category)」的概念,大致相當于[穩定性](https://supermemo.guru/wiki/Stability)
- 容許提前重復和延遲重復,從 SuperMemo 11 (2002) 開始:使用一種啟發式方法將[間隔效應](https://supermemo.guru/wiki/Spacing_effect)納入考慮
- 將 U-系數中的時間表示從 60 天延長到 15 年(2011)
- 根據超過原 U-系數范圍的重復推遲,糾正[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)數據(2011)
存檔警告:[為什么使用文字檔案?](https://supermemo.guru/wiki/Why_use_literal_archives%3F)
為能計算最優重復間隔,SM-15 算法儲存了單個項目的回憶記錄(即學習中的評分),將其用來估計某個記憶軌跡的當前強度,以及項目背后的知識(項目)的難度。項目難度反映了記憶的復雜性,以及在腦中留下穩定而不模糊的記憶所需的精力。SuperMemo 將[目標回憶率](https://supermemo.guru/wiki/Forgetting_index)作為優化標準(如 95%),來計算出滿足這一標準的間隔。最優間隔的函數以矩陣表示(OF 矩陣),并根據學習過程的結果隨時修改。盡管滿足優化標準是相對容易的,但算法的復雜性來自于在已知的記憶模型下,收斂速度最大化的需要。
**重要!**SM-15 算法僅用于計算項目重復的時間間隔。主題的復習時間間隔是用完全不同的算法計算的(這里不做描述)。主題復習的時間是為了管理閱讀順序而優化的,而非為了提升記憶。在 SuperMemo 中,長期記憶主要是借助項目形成的,這些項目是按照 SM-15 算法計算的時間表來復習的。
對 SM-15 算法更詳細的描述如下:
1. 最優間隔:使用以下公式計算重復間隔:
> I(1)=OF[1,L+1]
>
> I(n)=I(n-1)*OF[n,AF]
>
> 其中:
>
> - OF - 最優系數矩陣,在重復過程中有所修改
> - OF[1,L+1] - 第一行和 L+1 列上的 OF 矩陣元素的值
> - OF[n,AF] - 與第 n 次重復對應的 OF 矩陣元素的值,項目難度為 AF
> - L - 某一項目被遺忘的次數(取自「[memory **L**apses](https://supermemo.guru/wiki/Lapse)」
> - AF - 反映某一項目絕對難度的數字(取自「[**A**bsolute difficulty **F**actor](https://supermemo.guru/wiki/A-Factor)」)
> - I(n) - 某一項目的第 n 個重復間隔
2. 提前重復:由于重復可能提前(如考試前的強制復習),用于計算最優間隔的實際最佳系數(OF)要減去 dOF,利用考慮到學習中間隔效應的公式:
> *dOF*=dOFmax**a*/(thalf+*a*)
>
> dOFmax=(OF-1)*(OI+thalf-1)/(OI-1)
>
> 其中:
>
> - *dOF* - **[間隔效應](https://supermemo.guru/wiki/Spacing_effect)**引發的 OF 下降
> - *a* - 與最優安排相比,重復時機提前的天數(注意,如果 *a*=0,則 OF 沒有變化,也就是說,重復時間與最優安排吻合)
> - dOF_max - *a* 趨向于無限時 *dOF* 的近似極限(注意,對于 a=OI-1,下降量將是 OF-1,相當于重復間隔不增加)
> - t_half - 復習后[突觸穩定性](http://super-memory.com/english/2vm.htm)達到預期增長一半的復習提前天數(目前這個值大約相當于最優間隔長度的 60%,如果材料結構良好)。
> - OF - 最優系數(即 OF[n,AF],在第 n 個間隔給定 AF 的值)
> - OI - [最優間隔](https://supermemo.guru/wiki/Optimum_interval)(從 OF 矩陣中計算出)
3. **延遲重復**:由于在重復時可能出現延遲,OF 矩陣的索引實際上不是重復,而是重復類別。例如,如果第 5 次重復是延遲的,OF 矩陣被用來計算[重復類別](https://supermemo.guru/wiki/Repetition_category),即與重復前使用的間隔對應的重復次數的理論值。例如若[重復類別](https://supermemo.guru/wiki/Repetition_category)取 5.3,便有 I(5)=I(4)*OF[5.3,AF],其中 OF[5.3,AF] 是從 OF[5,AF] 和 OF[6,AF] 得出的中間值
4. **最優間隔矩陣**:SuperMemo 并不存儲最優間隔矩陣,雖然部分早期版本有存。作為替代,SuperMemo 記錄最優系數矩陣,由此可以轉換為最優間隔矩陣(由第 1 點中的公式)。第 1 點中使用的最優系數矩陣來自遺忘的數學模型和類似的矩陣,這些矩陣的數據來自一些集合多年重復練習數據。其初始設置按照水平中下的學生取值。在重復過程中,隨著學生記憶的數據越來越多,矩陣逐步得到修改,進而更接近實際學生的記憶屬性。經過多年的重復,新數據可以反過來用于生成更準確的初始 OF 矩陣。在SuperMemo 17中,這個矩陣可以通過**[工具](http://help.supermemo.org/wiki/Tools_menu):[統計](http://help.supermemo.org/wiki/Tools_menu#Statistics):[分析](http://help.supermemo.org/wiki/Analysis):[3-D圖表](http://help.supermemo.org/wiki/Analysis#3-D_Graphs):O-系數矩陣**以 3D 方式查看。
5. **項目難度**:絕對項目難度系數([A-系數](https://supermemo.guru/wiki/A-Factor)),在第 1 點中表示為 AF,表示一個項目的難度(AF 越高,項目越容易)。值得注意的是,AF=OF[2,AF]。換句話說,AF 表示第二次重復后的最優間隔增長系數。這也等同于給定項目的最高間隔增長系數。與 SuperMemo 6 和 SuperMemo 7 中使用的[算法 SM-6](https://supermemo.guru/wiki/Algorithm_SM-6) 中的 [E-系數](https://supermemo.guru/wiki/E-Factor) 不同,[A-系數](https://supermemo.guru/wiki/A-Factor)表示絕對的項目難度,不依賴同一學習材料集合中其他項目的難度。
6. **從 RF 矩陣中計算出 OF 矩陣**:OF 矩陣元素的最優值是通過一些近似流程從 RF 矩陣中得出的,RF 矩陣的定義與 OF 矩陣大體相同(見第 1 點),只不過 RF 矩陣的值取自真實學習過程。一開始,OF 矩陣和 RF 矩陣是相同的;然而 RF 矩陣中的項在每次重復時都會被修改,OF 矩陣的新值是通過使用近似程序從 RF 矩陣計算出來的。OF 矩陣實際上是 RF 矩陣的平滑形式。簡單地說,RF 矩陣在任何給定的時刻都對應于從學習過程中得到的最優擬合值;然而,每個元素被認為本身上就是最優擬合元素,即從其他 RF 元素的值中抽象出來。同時,OF 矩陣被認為是整體上是最佳匹配的。換句話說,在重復過程中,RF 矩陣是逐條計算的,而 OF 矩陣是 RF 矩陣的一個平滑副本。
7. **遺忘曲線**:RF 矩陣的各個元素是根據每個元素的[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)單獨近似計算出來的。每條[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)都對應著不同的重復次數和 [A-系數](https://supermemo.guru/wiki/A-Factor)值(或在第一次重復的情況下的遺忘次數)。RF 矩陣元素的值與遺忘曲線通過[目標遺忘指數](http://help.supermemo.org/wiki/Forgetting_index#requested_forgetting_index)得出的知識保留點的時間點相對應。例如,對于一個新項目的第一次重復,如果[遺忘指數](https://supermemo.guru/wiki/Forgetting_index)等于 10%,四天后[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)所表示的[知識保留率](https://supermemo.guru/wiki/Retention)下降到 90% 以下,那么 RF[1,1] 的值就取為 4。這意味著所有進入學習過程的項目將在四天后被重復使用(假設矩陣 OF 和 RF 在第一列的第一行沒有差異)。這滿足了 SuperMemo 的主要前提,即當遺忘概率等于 100% 減去以百分比表示的[遺忘指數](https://supermemo.guru/wiki/Forgetting_index)時,就應該進行重復。在 SuperMemo 17 中,[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)可以用**[工具](http://help.supermemo.org/wiki/Tools_menu):[統計](http://help.supermemo.org/wiki/Tools_menu#Statistics):[分析](http://help.supermemo.org/wiki/Analysis):[遺忘曲線](http://help.supermemo.org/wiki/Analysis#Forgetting_Curves)**(或用**[工具](http://help.supermemo.org/wiki/Tools_menu):[統計](http://help.supermemo.org/wiki/Tools_menu#Statistics):[分析](http://help.supermemo.org/wiki/Analysis):[三維曲線](http://help.supermemo.org/wiki/Analysis#3-D_Curves)**)查看。
[](https://supermemo.guru/wiki/File:Forgetting_curves.jpg)
> 圖:[工具](http://help.supermemo.org/wiki/Tools_menu) : [統計](http://help.supermemo.org/wiki/Tools_menu#Statistics) : [分析](http://help.supermemo.org/wiki/Analysis) : [遺忘曲線](http://help.supermemo.org/wiki/Analysis#Forgetting_Curves)為 20 個重復次數類別乘以 20 個A-系數類別。在圖片中,藍色圓圈代表在重復過程中收集的數據。圓圈越大,記錄的重復次數就越多。紅色曲線對應的是通過指數回歸得到的最佳擬合[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)。對于結構不良的材料,[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)是彎彎曲曲的,即不完全是指數型的。水平的水藍色線條與要求的遺忘指數相對應,而垂直的綠色線條表示近似的[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)與要求的遺忘指數線相交的時間點。這個時間點決定了相關的 [R-系數](https://supermemo.guru/wiki/R-Factor)的大小,并間接決定了[最優間隔](https://supermemo.guru/wiki/Optimum_interval)的取值。對于第一次重復,[R-系數](https://supermemo.guru/wiki/R-Factor)與第一個[最優間隔](https://supermemo.guru/wiki/Optimum_interval)相對應。[O-系數](https://supermemo.guru/wiki/O-Factor)和 [R-系數](https://supermemo.guru/wiki/R-Factor)的值顯示在圖表的頂部。它們后面是用于繪制圖表的重復案例的數量(即 21,303)。在學習過程的開始,沒有重復的歷史,也沒有重復的數據來計算 [R-系數](https://supermemo.guru/wiki/R-Factor)。在你的第一個[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)繪制出來之前,需要一些時間。據此,射頻矩陣的初始值取自一個低于平均水平的學生的模型。不使用平均學生的模型是因為從較差的學生參數向上收斂的速度比相反方向的收斂要快。顯示在頂部的**偏差**參數告訴你負指數曲線對數據的擬合程度。偏差越小,擬合效果越好。偏差是以平方差的平均數的平方根計算的(如最小二乘法中所用)。
[](https://supermemo.guru/wiki/File:AFactor_3D_Curve.jpg)
> 圖:單一條目難度和不同記憶穩定性水平下的遺忘曲線族的三維表示(對 U-系數進行歸一化)。
[](https://supermemo.guru/wiki/File:Cumulative_forgetting_curve.jpg)
> 圖: 混合[復雜性](https://supermemo.guru/wiki/Complexity)與混合[穩定性](https://supermemo.guru/wiki/Stability)的學習材料的疊加[遺忘曲線](https://supermemo.guru/wiki/Forgetting_curve)。該圖是通過疊加 400 條遺忘曲線得到的,其歸一化后的衰減常數為 0.003567,這相當于在呈現的時間跨度的 100% 時回憶率為 70%(即圖中右邊緣的 [R](https://supermemo.guru/wiki/Retrievability)=70%)。圖中包括了 401,828 個重復的案例。單個曲線用黃色數據點表示。累積曲線由藍色數據點表示,顯示所有 400 條曲線的平均回憶率。圓圈的大小與數據樣本的大小相對應。
8. 從遺忘曲線計算出 OF 矩陣:OF 矩陣是由 RF 矩陣推導出來的:
1. 沿 RF 矩陣每一列的 [R-系數](https://supermemo.guru/wiki/R-Factor)下降的定點冪近似(定點對應于近似曲線通過 [A-系數](https://supermemo.guru/wiki/A-Factor)值的第二次重復),
2. 對于所有列,計算 D-系數,這個系數表示冪近似的衰減常數,
3. D-系數在整個 RF 矩陣列中的變化的線性回歸,以及
4. 找出D-系數圖中擬合最佳的直線,利用它們的斜率和截距,計算出整個 OF 矩陣。在這最后一步中使用的確切公式超出了本說明的范圍。
注意,OF 矩陣的第一行的計算方式有所不同。第一行對應從 RF 矩陣第一行得到的最優擬合指數曲線。每次重復后都會進行一遍上述流程。換句話說,一旦收集到新的遺忘曲線數據,理論上最佳的 OF 矩陣值就會被更新,即在重復期間,一旦當學生提供評分,說明回憶正確還是錯誤(即遺忘)(在[ SM-6 算法](https://supermemo.guru/wiki/Algorithm_SM-6) 中,必須使用單獨的近似程序 Approximate 來尋找最契合的 OF 矩陣,而且重復時使用的 OF 矩陣可能與它的最優擬合值有很大差別)
9. **項目難度**:[A-系數](https://supermemo.guru/wiki/A-Factor)的初始值通過該項目的首次評分,以及首次評分與 [A-系數](https://supermemo.guru/wiki/A-Factor)的相關圖([G-AF 圖](http://help.supermemo.org/wiki/Analysis#First_Grade_vs._A-Factor))計算得出。該圖在每次重復后被更新,同時會計算新的 [A-系數](https://supermemo.guru/wiki/A-Factor)近似值,并將其與項目的首次評分相關聯。每次重復后,還會進一步計算真實的 [A-系數](https://supermemo.guru/wiki/A-Factor)值的近似值,綜合運用評分、OF 矩陣和顯示評分與預期遺忘指數對應關系的相關圖([FI-G 圖](http://help.supermemo.org/wiki/Analysis#Grade_vs._Forgetting_Index))等。用于計算初始 [A-系數](https://supermemo.guru/wiki/A-Factor)的評分需經過歸一化,即根據實際使用的間隔和目標為 10% 遺忘指數的最佳間隔之間的差異進行調整
10. **評分與預期遺忘指數的相關性**:FI-G 圖在每次重復后,根據[預期遺忘指數](http://help.supermemo.org/wiki/Forgetting_index#expected_forgetting_index)和實際評分來更新。[預期遺忘指數](http://help.supermemo.org/wiki/Forgetting_index#expected_forgetting_index)可以很容易地從重復之間使用的間隔和從 OF 矩陣計算的[最優間隔](https://supermemo.guru/wiki/Optimum_interval)中得出。[預期遺忘指數](http://help.supermemo.org/wiki/Forgetting_index#expected_forgetting_index)的值越高,評分就越低。從評分和 FI-G 圖(見:**[工具](http://help.supermemo.org/wiki/Tools_menu):[統計](http://help.supermemo.org/wiki/Tools_menu#Statistics):[分析](http://help.supermemo.org/wiki/Analysis):[圖表](http://help.supermemo.org/wiki/Analysis#Graphs)**中的 [FI-G 圖](http://help.supermemo.org/wiki/Analysis#Grade_vs._Forgetting_Index)),我們可以計算出[估計遺忘指數](http://help.supermemo.org/wiki/Forgetting_index#estimated_forgetting_index),它相當于在假設的重復前階段,對剛剛重復的條目的遺忘概率的重復后估計。由于遺忘和回憶的隨機性,同一個條目可能被回憶,也可能不被回憶,這取決于大腦當前的整體認知狀態;即使所有貢獻突觸的記憶強度和可檢索性是/是相同的這樣,我們就可以談論一個剛剛被回憶(或未被回憶)的條目的重復前回憶概率。這個概率用[估計遺忘指數](http://help.supermemo.org/wiki/Forgetting_index#estimated_forgetting_index)表示。
11. **計算 A-系數**:從(1)[估計遺忘指數](http://help.supermemo.org/wiki/Forgetting_index#estimated_forgetting_index),(2)間隔長度和(3)OF 矩陣,我們可以很容易地計算出 [A-系數](https://supermemo.guru/wiki/A-Factor)的最準確值。請注意,[A-系數](https://supermemo.guru/wiki/A-Factor)相當于 OF 矩陣的索引,而利用[估計遺忘指數](http://help.supermemo.org/wiki/Forgetting_index#estimated_forgetting_index),便能在 OF 矩陣找出一列,使得[最優間隔](https://supermemo.guru/wiki/Optimum_interval)相當于實際使用的間隔,該間隔已針對[估計遺忘指數](http://help.supermemo.org/wiki/Forgetting_index#estimated_forgetting_index)距離[期望遺忘指數](http://help.supermemo.org/wiki/Forgetting_index#requested_forgetting_index)的偏差進行修正。在每次重復時,計算舊的 [A-系數](https://supermemo.guru/wiki/A-Factor)和新的 [A-系數](https://supermemo.guru/wiki/A-Factor)的估計值的加權平均。在計算新的最優重復間隔時,新得到的 [A-系數](https://supermemo.guru/wiki/A-Factor)被用于 OF 矩陣的索引
總結一下。重復的結果是計算出一套參數表征學生記憶:RF 矩陣,[G-AF 圖](http://help.supermemo.org/wiki/Analysis#First_Grade_vs._A-Factor),以及 [FI-G 圖](http://help.supermemo.org/wiki/Analysis#Grade_vs._Forgetting_Index)。它們還用于計算各個項目的 [A-系數](https://supermemo.guru/wiki/A-Factor),以刻畫所學材料的難度。對 RF 矩陣進行平滑處理可得出 [OF 矩陣](https://supermemo.guru/wiki/OF_matrix),并由此計算不同難度([A-系數](https://supermemo.guru/wiki/A-Factor)),和適用不同重復次數的項目的最優重復間隔(或在第一次重復的情況下的[遺忘次數](https://supermemo.guru/wiki/Lapse))。一開始,所有學生的記憶參數都按照水平中下的學生取值(比按照水平中等或中上的學生取值收斂得更快),而所有 [A-系數](https://supermemo.guru/wiki/A-Factor)都被假定為相等(未知)。
- CONTRIBUTING
- 我永遠不會送我的孩子去學校
- 01.前言
- 02.箴言
- 03.腦科學
- 04.學習內驅力
- 05.學校教育對學習內驅力的影響
- 06.學習內驅力和獎勵
- 07.學習內驅力與習得性無助
- 08.教育抵消進化
- 09.毒性記憶
- 10.為什么學校會失敗
- 11.最佳推動區
- 12.自然創造力周期
- 13.大腦進化
- 14.嬰兒管理
- 15.嬰兒的大腦怎樣不起作用
- 16.童年失憶癥
- 17.幼兒園的苦難
- 18.壓力適應力
- 19.童年的激情
- 20.為什么孩子們討厭學校
- 21.爬山類比
- 22.術語表
- 23.參考文獻
- 24.拓展閱讀
- 25.摘要
- 間隔重復的歷史
- 01.前言
- 02.1985 SuperMemo 的誕生
- 03.1986 SuperMemo 的第一步
- 04.1987 DOS 上的 SuperMemo 1.0
- 05.1988 記憶的兩個組成部分
- 06.1989 SuperMemo 適應用戶的記憶
- 07.1990 記憶的通用公式
- 08.1991 采用遺忘曲線
- 09.1994 遺忘的指數性質
- 10.1995 SuperMemo 多媒體
- 11.1997 采用神經網絡
- 12.1999 選擇名稱——間隔重復
- 13.2005 穩定性增長函數
- 14.2014 SM-17 算法
- 15.間隔重復的指數發展
- 16.記憶研究的摘要
- 17.剖析成功與失敗
- 18.尾聲