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-6.md.
  • 繁體中文
  • FSRS-6

    FSRS-6 有 21 個可訓練權重,包括可訓練的遺忘曲線衰減和同日穩定性參數。

    共用符號和 Model 契約請參閱模型概覽。

    公式來源

    已依據 awesome-fsrs Wiki — FSRS-6 核對。

    遺忘曲線與間隔

    令正衰減值 d=w20d = w_{20},並選取 FF,使 R(S,S)=0.9R(S, S) = 0.9:

    F=0.9−1/d−1,R(t,S)=(1+FtS)−dF=0.9^{-1/d}-1,\qquad
    R(t,S)=\left(1+F\frac{t}{S}\right)^{-d}
    
    I(r,S)=SF(r−1/d−1)I(r,S)=\frac{S}{F}\left(r^{-1/d}-1\right)
    

    nextInterval 會將結果四捨五入為整數天,並確保至少為一天。

    初始記憶

    S0(G)=clamp⁡(wG−1,Smin,Smax)S_0(G)=\operatorname{clamp}\left(w_{G-1},S_{min},S_{max}\right)
    
    D0(G)=w4−ew5(G−1)+1,Dinitial=clamp⁡(D0(G),1,10)D_0(G)=w_4-e^{w_5(G-1)}+1,\qquad
    D_{initial}=\operatorname{clamp}\left(D_0(G),1,10\right)
    

    難度

    ΔD=−w6(G−3),D∗=D+ΔD10−D9\Delta D=-w_6(G-3),\qquad
    D^*=D+\Delta D\frac{10-D}{9}
    
    D′=clamp⁡(w7D0(4)+(1−w7)D∗,1,10)D'=\operatorname{clamp}\left(w_7D_0(4)+(1-w_7)D^*,1,10\right)
    

    複習後的穩定性

    當 t>0t > 0 或 enableShortTerm 未啟用時,評分決定使用以下哪個分支。

    公式使用複習前的 DD 和 SS。Hard 時 HG=w15H_G = w_{15},否則為 11;Easy 時 EG=w16E_G = w_{16},否則為 11。

    啟用 enableShortTerm 時,CC 等於複習前的穩定性乘以 exp⁡(−w17w18)\exp(-w_{17}w_{18});否則 C=SC = S:

    Sf=min⁡(w11D−w12((S+1)w13−1)ew14(1−R),C)S_f=\min\left(w_{11}D^{-w_{12}}\left((S+1)^{w_{13}}-1\right)e^{w_{14}(1-R)},C\right)
    
    Sr=S[1+ew8(11−D)S−w9(ew10(1−R)−1)HGEG]S_r=S\left[1+e^{w_8}(11-D)S^{-w_9}\left(e^{w_{10}(1-R)}-1\right)H_GE_G\right]
    
    Sraw′(G)={Sf,G=1Sr,G∈{2,3,4}S'_{raw}(G)=
    \begin{cases}
    S_f,&G=1\\
    S_r,&G\in\{2,3,4\}
    \end{cases}
    

    CC 是目前實作對遺忘後穩定性的上限,並不是單獨設定的穩定性下限。最後,模型透過 clamp 將 Sraw′S'_{\mathrm{raw}} 限制在 Smin⁡S_{\min} 到 Smax⁡S_{\max} 之間。

    同日更新

    這裡的「同日」指模型收到 elapsedDays = 0,模型本身不檢查日曆日期。經過時間由直接呼叫方或 scheduler 的 chrono 決定。

    當 enableShortTerm 已啟用且 t=0t = 0 時:

    sinc=S−w19ew17(G−3+w18)s_{inc}=S^{-w_{19}}e^{w_{17}(G-3+w_{18})}
    
    S′=clamp⁡(Sm,Smin,Smax),m={sinc,G=1max⁡(sinc,1),G≥2S'=\operatorname{clamp}\left(Sm,S_{min},S_{max}\right),
    \qquad
    m=\begin{cases}
    s_{inc},&G=1\\
    \max(s_{inc},1),&G\ge2
    \end{cases}
    

    Hard、Good 和 Easy 不會讓穩定性低於目前值;Again 可以降低穩定性。