导读
自由间隔重复调度算法
名称中的「自由」是什么意思?
FSRS 支持自由复习,可以提前,也可以推迟,算法会根据记忆模型进行适应。
同时,间隔重复是实现自由学习的基础技术之一。
FSRS 可以在本地运行,无需担心泄露自己的学习数据。
算法的原理是什么?
本算法基于 SuperMemo 作者 Piotr Wozniak 提出的 DSR 模型开发。FSRS 在此基础上,根据论文 A Stochastic Shortest Path Algorithm for Optimizing Spaced Repetition Scheduling 中的 DHP 模型进行改进。
该模型考虑了影响记忆的三个变量:难度(difficulty),稳定性(stability)和可提取性(retrievability)。
稳定性指的是记忆的存储强度,越高,记忆遗忘得越慢。可提取性指的是记忆的检索强度,越低,记忆遗忘的概率越高。
在本模型中,考虑了以下记忆规律:
能简单描述一下算法吗?
FSRS 的记忆公式: Free Spaced Repetition Scheduler
有现成的算法库吗?
- 调度器:
- TypeScipt module: ts-fsrs
- Golang module: go-fsrs
- Python package: py-fsrs
- Rust crate: rs-fsrs
- Clojure library: cljc-fsrs
- Dart package: dart-fsrs
- Ruby gem: rb-fsrs
- Swift package: swift-fsrs
- Android library: android-fsrs
- Exlixir library: ex_fsrs
- 优化器:
- Python package (stable): fsrs-optimizer
- RS crate (stable): fsrs-rs
- run fsrs-rs in the browser: fsrs-browser
Free Spaced Repetition Scheduling Algorithm
What does the ‘Free’ mean in the name?
The algorithm (FSRS) supports reviewing in advance or delay. It’s free for users to decide the time of review. And it will adapt to the user’s memory.
Meanwhile, spaced repetition is one essential technology to achieve free learning.
FSRS runs entirely locally and has no risk under others’ control.
What is the principle of FSRS?
FSRS is based on the DSR model proposed by Piotr Wozniak, the author of SuperMemo. FSRS is improved with the DHP model introduced in the paper: A Stochastic Shortest Path Algorithm for Optimizing Spaced Repetition Scheduling.
The model considers three variables that affect memory: difficulty, stability, and retrievability.
Stability refers to the storage strength of memory; the higher it is, the slower it is forgotten. Retrievability refers to memory’s retrieval strength; the lower it is, the higher the probability that the memory will be forgotten.
In the present model, the following memory laws are considered:
- The more complex the memorized material, the lower the stability increase.
- The higher the stability, the lower the stability increase (also known as stabilization decay)
- The lower the retrievability, the higher the stability increase (also known as stabilization curve)
Can you briefly describe FSRS?
The formula of memory on FSRS: The Algorithm
Have a library of FSRS?
- Scheduler:
- TypeScipt module: ts-fsrs
- Golang module: go-fsrs
- Python package: py-fsrs
- Rust crate: rs-fsrs
- Clojure library: cljc-fsrs
- Dart package: dart-fsrs
- Ruby gem: rb-fsrs
- Swift package: swift-fsrs
- Android library: android-fsrs
- Elixir library: ex_fsrs
- Optimizer:
- Python package (stable): fsrs-optimizer
- RS crate (stable): fsrs-rs
- run fsrs-rs in the browser: fsrs-browser
发表第一篇评论