FSRS6记忆训练排程算法
FSRS是Free Spaced Repetition Scheduler的缩写这是一套开放的记忆训练排程算法。FSRS6是FSRS的第6版。截止2026年是FSRS的最新版本。记忆训练的核心是重复提取和多形式提取。需要记忆的内容叫做卡片。用户首先尝试对卡片内容进行提取例如给出单词要求用户回忆释义然后对提取过程给出主观难度评级。FSRS根据评级结果更新卡片的提取难度和提取稳定度并计算卡片下次提取训练时间。FSRS中存在4个关键概念R RRetrievability 可提取度表示卡片可以成功提取的概率。S SStability 提取稳定度定义为R RR从100%降低到90%所经过的时间。D DDifficulty 提取难度范围是[1,10]。G GGrade 主观提取难度评级包括4个值分别是Again提取失败1。Hard提取困难2。Good提取成功3。Easy提取容易4。用t tt表示两次提取训练间隔的天数。FSRS更新S SS的算法如下S ′ { S e w 17 ( G − 3 w 18 ) S − w 19 ( t 0 ) m i n ( w 11 D − w 12 ( ( S 1 ) w 13 − 1 ) e w 14 ( 1 − R ) , S ) ( t 1 , G 1 ) S ( 1 e w 8 ( 11 − D ) S − w 9 ( e w 10 ( 1 − R ) − 1 ) w 15 δ G 2 w 16 δ G 4 ) ( t 1 , G 1 ) S^\prime \begin{cases} S e^{w_{17} (G - 3 w_{18})} S^{-w_{19}} (t 0) \\ min(w_{11} D^{-w_{12}} ((S 1)^{w_{13}} - 1) e^{w_{14} (1-R)} ,S ) (t 1 , G 1) \\ S (1 e^{w_8} (11 - D) S^{-w_9} (e^{w_{10} (1-R)} -1) w_{15}^{\delta_{G2}} w_{16}^{\delta_{G4}}) (t 1 , G 1) \end{cases}S′⎩⎨⎧​Sew17​(G−3w18​)S−w19​min(w11​D−w12​((S1)w13​−1)ew14​(1−R),S)S(1ew8​(11−D)S−w9​(ew10​(1−R)−1)w15δG2​​w16δG4​​)​(t0)(t1,G1)(t1,G1)​其中δ G n { 1 ( G n ) 0 ( G ≠ n ) \delta_{Gn} \begin{cases} 1 (G n) \\ 0 (G \neq n) \end{cases}δGn​{10​(Gn)(Gn)​R RR的计算规则为R R ( t , S ) ( 1 f a c t o r ⋅ t S ) − w 20 f a c t o r 0.9 − 1 w 20 − 1 \begin{align*} R R(t,S) (1 factor \cdot \frac{t}{S})^{-w_{20}} \\ factor 0.9^{-\frac{1}{w_{20}}} - 1 \end{align*}RR(t,S)factor​(1factor⋅St​)−w20​0.9−w20​1​−1​D DD的计算规则为D ′ w 7 D 0 ( 4 ) ( 1 − w 7 ) ( D − w 6 ( G − 3 ) 10 − D 9 ) D^\prime w_7D_0(4) (1-w_7)(D -w_6(G-3)\frac{10-D}{9})D′w7​D0​(4)(1−w7​)(D−w6​(G−3)910−D​)D被截断到区间[ 1 , 10 ] [1,10][1,10]。这里的D 0 ( 4 ) D_0(4)D0​(4)是一个动态的值随着w 4 , w 5 w_4, w_5w4​,w5​的值而变化。S 0 ( G ) , D 0 ( G ) S_0(G), D_0(G)S0​(G),D0​(G)分别表示G GG对应的初始稳定度和初始难度计算公式为S 0 ( G ) w G − 1 D 0 ( G ) w 4 − e w 5 ⋅ ( G − 1 ) 1 \begin{align*} S_0(G) w_{G-1} \\ D_0(G) w_4 - e^{w_5 \cdot (G-1)} 1 \end{align*}S0​(G)D0​(G)​wG−1​w4​−ew5​⋅(G−1)1​对于预期的保留率D DDesiredR RRetention通常设置为90%距离下一次提取训练时间的天数间隔为I S f a c t o r ( D R − 1 w 20 − 1 ) I \frac{S}{factor}(DR^{-\frac{1}{w_{20}}}-1)IfactorS​(DR−w20​1​−1)前面的公式大量使用了参数w n w_nwn​。w ww是一个数组记录了21个可训练参数分别记为w 0 w_0w0​到w 20 w_{20}w20​。默认参数值为0.2120 1.2931 2.3065 8.2956 6.4133 0.8334 3.0194 0.0010 1.8722 0.1666 0.7960 1.4835 0.0614 0.2629 1.6483 0.6014 1.8729 0.5425 0.0912 0.0658 0.1542FSRS 采用机器学习和反向传播算法训练w ww数组让参数更贴近用户的实际情况。对于一般场景可以使用FSRS的初始w ww数组。参考资料 https://expertium.github.io/Algorithm.html