For AI agents: the complete documentation index is available at https://open-spaced-repetition.github.io/ts-fsrs/zh-TW/llms.txt, the full documentation bundle is available at https://open-spaced-repetition.github.io/ts-fsrs/zh-TW/llms-full.txt, and this page is available as Markdown at https://open-spaced-repetition.github.io/ts-fsrs/zh-TW/guide/model/fsrs-7.md.
  • 繁體中文
  • FSRS-7

    遷移指南

    只重建記憶狀態、不重新安排下次複習時間的遷移步驟見 v6 與 FSRS-7 遷移指南。

    FSRS-7 使用 34 個權重和兩個記憶分量。記憶狀態包含 stability(慢分量)、stabilityFast(快分量)和 difficulty。

    記憶狀態與符號

    沿用共用符號,以 SsS_s 表示 stability,SfS_f 表示 stabilityFast。兩者單位均為天,但都不等於混合回憶機率降至 90% 時的間隔。難度同時影響慢分量曲線及其混合權重。

    公式使用經過邊界限制的複習前狀態:兩種穩定性均在 [0.0001, 36500] 內,難度在 [1, 10] 內。經過時間 tt 使用小數天,曲線計算採用 max⁡(t,0)\max(t,0)。「快」和「慢」是分量名稱,並不保證兩種穩定性的大小順序。

    初始記憶

    對於新記憶狀態,令 CsC_s 和 CfC_f 分別表示慢、快穩定性的邊界裁剪,CDC_D 表示裁剪到 [1, 10]。

    Ss,0=Cs(wG−1),Sf,0=Cf(0.8Ss,0)S_{s,0}=C_s(w_{G-1}),\qquad S_{f,0}=C_f(0.8S_{s,0})
    
    D0(G)=w4−ew5(G−1)+1,Dinitial=CD(D0(G))D_0(G)=w_4-e^{w_5(G-1)}+1,\qquad D_{initial}=C_D(D_0(G))
    

    雙分量遺忘曲線

    快分量:

    df=−clamp⁡(w23Sfw33−0.3,0.01,0.95)d_f=-\operatorname{clamp}(w_{23}S_f^{w_{33}-0.3},0.01,0.95)
    
    Ff=exp⁡(min⁡(ln⁡w25df,60))−1F_f=\exp\left(\min\left(\frac{\ln w_{25}}{d_f},60\right)\right)-1
    
    Rf(t)=(1+FftSf)dfR_f(t)=\left(1+F_f\frac{t}{S_f}\right)^{d_f}
    

    慢分量:

    ds=−clamp⁡(w24,0.01,0.95)d_s=-\operatorname{clamp}(w_{24},0.01,0.95)
    
    Fs=(w261/ds−1)e(D−5)(w32−0.3)F_s=(w_{26}^{1/d_s}-1)e^{(D-5)(w_{32}-0.3)}
    
    Rs(t)=(1+FstSs)dsR_s(t)=\left(1+F_s\frac{t}{S_s}\right)^{d_s}
    

    混合權重與回憶機率

    兩個權重均為正的未正規化係數,取決於記憶狀態,而非經過時間。分量的原始回憶機率不等於它對混合結果的貢獻。

    af=w27Sf−w29,as=w28Ssw30e(D−5)(w31−0.5)a_f=w_{27}S_f^{-w_{29}},\qquad  a_s=w_{28}S_s^{w_{30}}e^{(D-5)(w_{31}-0.5)}
    
    R(t)=afRf(t)+asRs(t)af+as(1−2ε)+ε,ε=10−5R(t)=\frac{a_fR_f(t)+a_sR_s(t)}{a_f+a_s}(1-2\varepsilon)+\varepsilon,\qquad\varepsilon=10^{-5}
    

    algorithm.curve(t, state) 回傳 fast、slow、fastWeight、slowWeight、retrievability 和 derivative。前兩項是原始回憶機率;組合時應先正規化權重。最後的微小調整使機率避開 0 和 1,因此 R(0)=0.99999R(0)=0.99999。

    複習後的穩定性

    對於某一分量的穩定性 xx、回憶機率輸入 qq 和參數偏移 kk,定義遺忘後的值和成功回憶後的更新:

    Lk(x,q)=min⁡(x,wk+3((x+1)wk+4−1)e(1−q)wk+5)L_k(x,q)=\min\left(x,w_{k+3}((x+1)^{w_{k+4}}-1)e^{(1-q)w_{k+5}}\right)
    
    Hk,G={wk+6,G=21,G≠2,Ek,G={wk+7,G=41,G≠4H_{k,G}=\begin{cases}w_{k+6},&G=2\\1,&G\ne2\end{cases},\qquad E_{k,G}=\begin{cases}w_{k+7},&G=4\\1,&G\ne4\end{cases}
    
    Uk(x,q,G)=x[1+ewk−1.5(11−D)x−wk+1(e(1−q)wk+2−1)Hk,GEk,G]U_k(x,q,G)=x\left[1+e^{w_k-1.5}(11-D)x^{-w_{k+1}}(e^{(1-q)w_{k+2}}-1)H_{k,G}E_{k,G}\right]
    
    Tk(x,q,G)={Lk(x,q),G=1max⁡(Lk(x,q),Uk(x,q,G)),G∈{2,3,4}T_k(x,q,G)=\begin{cases}L_k(x,q),&G=1\\\max(L_k(x,q),U_k(x,q,G)),&G\in\{2,3,4\}\end{cases}
    

    慢分量使用 k=7k=7 和混合機率 RR;快分量使用 k=15k=15 和原始快分量機率 RfR_f。所有更新均使用複習前的難度。明確傳入 retrievability 會替代慢分量更新和難度更新使用的 RR,但不會替代快分量的 RfR_f。

    評分為 Again 時,先將新的快穩定性限制為新的慢穩定性的 80%,再套用狀態邊界:

    S~s=T7(Ss,R,G),S~f=T15(Sf,Rf,G)\widetilde S_s=T_7(S_s,R,G),\qquad \widetilde S_f=T_{15}(S_f,R_f,G)
    
    Ss′=Cs(S~s),Sf′=Cf({min⁡(S~f,0.8S~s),G=1S~f,G≥2)S'_s=C_s(\widetilde S_s),\qquad S'_f=C_f\left(\begin{cases}\min(\widetilde S_f,0.8\widetilde S_s),&G=1\\\widetilde S_f,&G\ge2\end{cases}\right)
    

    複習後的難度

    Again 按混合回憶機率縮放難度變化。均值回歸係數固定為 0.01:

    ΔD=−w6(G−3){R+0.1,G=11,G≥2\Delta D=-w_6(G-3)\begin{cases}R+0.1,&G=1\\1,&G\ge2\end{cases}
    
    D′=CD(0.01D0(4)+0.99(D+10−D9ΔD))D'=C_D\left(0.01D_0(4)+0.99\left(D+\frac{10-D}{9}\Delta D\right)\right)
    

    實作將三個新狀態值四捨五入至小數點後八位,再裁剪到各自邊界。FSRS-7 對小數經過時間(包括零)使用同一套更新,沒有單獨受 enableShortTerm 控制的同日公式。學習步驟排程仍屬於 middleware 策略。

    間隔計算

    nextInterval(state, r) 透過數值方法求出混合曲線達到目標機率的經過時間。它依賴全部三個狀態欄位,回傳小數天。

    R(I;Ss,Sf,D)=rR(I;S_s,S_f,D)=r
    

    實作先驗證 0<r<10<r<1,將目標限制到 [0.0001, 0.9999],達到上界時回傳零。其餘情況在對數時間上執行最多七次有界 Newton 更新;回憶機率誤差超過 0.001 時回退到二分搜尋。結果受 sMax 限制,因此極端目標可能無法達到。

    設定與遷移

    FSRS-7 需要獨立的 34 個權重。參數遷移函式會為空輸入提供預設值,非空輸入則必須包含 34 個權重。FSRS-3 至 FSRS-6 的權重和記憶狀態無法直接轉換為 FSRS-7。遷移卡片資料時,請使用基於 FSRS-7 的排程器,透過 reschedule 重播複習歷史、重建記憶狀態,並保留小數經過天數。上面的 0.8 係數用於初始化及 Again 更新。