ガイド

FSRSとは?数式なしでわかりやすく解説

FSRSを数式抜きでわかりやすく解説。安定度と難易度とは何か、復習のたびにどう変わるか、SM-2より的確にスケジュールできる理由を紹介します。

記憶の安定度とカードの難しさを表す二つの計器の間にカードがあり、次の復習日がカレンダーに示されている。

FSRS(Free Spaced Repetition Scheduler)は、フラッシュカードをいつ再び見せるかを、そのカードについて2つの情報をモデル化することで決めるオープンソースのアルゴリズムです。記憶がどれくらい持続しそうか(安定度)と、あなたにとってそのカードがどれだけ難しい傾向にあるか(難易度)です。全員に同じ数式を当てはめるのではなく、自分自身の復習履歴にモデルを適合させます。

結論

  • FSRSは、1つにまとめた数値ではなく、カードごとに安定度と難易度を別々に追跡します。
  • 安定度は、思い出せる確率が目標値まで下がるまでにかかる日数を見積もります。
  • 難易度は、タイミングとは関係なく、そのカードがあなたにとってどれだけ難しいかを見積もります。
  • 復習のたびに、どう評価したか、そして復習が予定より早かったか遅かったかに基づいて、両方の数値が更新されます。
  • 目標定着率を設定すると、FSRSはその目標と2つの数値を組み合わせて次の間隔を決めます。

FSRSとは実際に何なのか

FSRSは、インストールするソフトウェアではなく、スケジューリングのアルゴリズムです。フラッシュカードアプリの内部で動作し、カードごとに1つの問いに答えます。それは「これまでの復習からわかっていることを踏まえると、このカードは次にいつ出すべきか」という問いです。オープンソースプロジェクトとしてGitHub上のopen-spaced-repetitionで保守されており、手動で細かく設定しなくても従来の数式より精密に復習をスケジュールできることから、複数のフラッシュカードツールに採用されています。

名前の由来はシンプルです。オープンソースで無料で使えることからFree、間隔反復の仕組みの基盤である分散効果に基づいていることからSpaced Repetition、そして何を学ぶかではなく、いつ出すかを決めるスケジューリングだけがその役割であることからSchedulerです。どのカードを学習するかを選んだり、フラッシュカードを作成したりすることはなく、復習と復習の間隔を決めるだけです。

すべてを左右する2つの数値:安定度と難易度

従来のアルゴリズムは、カードごとに1つの数値、たいていは前回の答えに応じて増減する「易しさ」の値を追跡します。FSRSはこの1つの数値を2つに分けます。なぜなら、あるカードは本質的に難しくても一度覚えれば記憶にしっかり残ることがあり、逆に本質的に易しくても、十分な回数復習していなければすぐに薄れてしまうことがあるからです。

安定度は、そのカードを思い出せる確率が目標とする定着率まで下がると見込まれるまでの日数です。安定度が40であれば、このカードを復習しなくても、40日後に正しく思い出せる可能性はおおよそ目標どおりだということを意味します。安定度は、カードを正しく思い出すたびに大きくなる傾向があり、すでに正しく復習した回数が多いほど、その伸びは速くなります。

難易度は、そのカードがあなたにとってどれだけ難しい傾向にあるかを示す、独立した尺度です。前回の復習からの経過時間とは関係なく、それ自体のスケールで測られます。2枚のカードが今日は同じ安定度でも、難易度はまったく異なることがあります。一方は易しいけれど新しいので、今後の復習で安定度が急速に伸びます。もう一方は難しくて長く学習しているので、正解しても安定度の伸びは緩やかです。

この2つを分けておくことで、FSRSは「正解したけれど難しかった」場合と「正解して、しかも簡単だった」場合とで異なる反応ができます。この違いは、1つの易しさの数値だけでは十分に表せません。

1回の復習がモデルをどう更新するか

カードを復習するたびに、FSRSは3つの入力を使って両方の数値を更新します。あなたが付けた評価(Again、Hard、Good、Easyのいずれか)、それまでの安定度と難易度、そして前回の復習からアルゴリズムが予測していた時間と実際に経過した時間の差です。

  • 予定どおりか早めに正解した場合は安定度が上がります。すでに間隔が長かった場合はより大きく上がります。長い間隔を空けたあとに正しく思い出せたことは、短い間隔での正解よりも、記憶が長持ちする証拠として強いからです。
  • Easyと評価された正解は安定度をさらに大きく上げ、難易度をわずかに下げることがあります。簡単に正解できたということは、今後このカードにそれほど注意を払わなくてよいことを示唆するからです。
  • Hardと評価された復習は合格として扱われますが、安定度の伸びは小さくなり、難易度が上がることがあります。これは、そのカードが予定していたスケジュールが想定していたよりも脆いことを示すシグナルだからです。
  • 不正解(Again)の復習は、安定度を短い初期値に近い値までリセットし、難易度を上げます。失敗は、それまでのスケジュールが甘すぎたことをモデルに伝える、もっとも強いシグナルだからです。

だからこそ、今日まったく同じ評価をつけた2枚のカードでも、復習を終えたあとの次の間隔がまったく違うことがあります。モデルが反応しているのは、その評価そのものではなく、その評価に至るまでの復習全体の履歴だからです。

FSRSが復習履歴を必要とする理由

作られたばかりのカードには履歴がないため、FSRSはデフォルトの安定度と難易度の見積もりから始め、復習を重ねるたびにそれを洗練させていきます。これはコールドスタート問題と呼ばれることがあります。1、2回しか復習していないカードに対する初期の予測は、20回分の復習履歴を持つカードに対する予測より、どうしても粗くなります。

実際には、使えば使うほど、そして復習が積み重なるほど、FSRSは精度を増していきます。仮想的な平均的学習者に合わせて調整されているのではなく、あなた自身の合否パターンを使って、カード1枚1枚に合わせて調整されているのです。だからこそ、別のツールから何年分もの復習履歴をインポートすると、スケジュールがすぐに引き締まることがあります。すべてのカードをコールドスタートから始めるのではなく、初日からより多くの手がかりをアルゴリズムに与えられるからです。

FSRSとSM-2の違いをわかりやすく

SM-2 FSRS
カードごとに何を追跡するか 1つの「易しさ係数」 安定度と難易度を別々に
次の間隔をどう決めるか 前回の間隔に易しさ係数を掛ける 記憶モデルから思い出せる確率を予測し、目標定着率に合わせて解く
難しいが正解した答えへの反応 ほかの正解と同様に扱う 簡単な正解より安定度の伸びが小さい
復習パターンへの適応 カードごとに大まかに カードごとに適応し、モデル自体も復習履歴全体で最適化できる
設定項目 初期の易しさと間隔の倍率 目標定着率(目標の選び方を参照)

どちらのやり方も「間違っている」わけではありません。SM-2はシンプルで予測しやすく、何十年もフラッシュカードのスケジュールを担ってきました。FSRSはそのシンプルさと引き換えに、実際に忘れるタイミングとアルゴリズムが想定するタイミングとの差を縮めます。

目標定着率が実際に何を制御するか

FSRSは間隔を単独で決めるわけではありません。目標定着率と呼ばれる、自分で選んだ目標値に思い出せる確率を保つような間隔を逆算します。目標を90%に設定すると、その瞬間にテストされたら期限が来たカードのうちおよそ10枚中9枚を正しく思い出せるように復習がスケジュールされます。目標を80%に設定すると復習の間隔はさらに広がり、多少忘れる代わりに復習の総数を減らせます。

万能な正しい値は存在しません。目標を高くすると復習が増え、忘れる量は減ります。目標を低くすると復習は減り、その過程で忘れる量は増えます。適切な数値は、そのカードを忘れたときの損失がどれだけ大きいかによって変わります。試験範囲の内容には、しばらく使わない旅行用の語学デッキよりも高い目標がふさわしいでしょう。

StudyDailyはこれを隠さずに見せる

StudyDailyは、現行版のアルゴリズムであるFSRS-6を、すべてのカードで動かしています。次の間隔を裏側で計算するのではなく、Again、Hard、Good、Easyそれぞれの評価ボタンは、タップする前にその評価がもたらす間隔を表示します。評価を決める前にその結果が見えるため、安定度と難易度のモデルは理論上のものではなく、目に見えるものになります。

復習、統計、スケジューリングはすべて端末上で完結するため、日々の学習がネットワーク接続に左右されることはありません。別のFSRSベースのツールから移ってくる場合、StudyDailyのインポーターは互換性のあるエクスポートから既存の安定度と難易度の値を読み取り、すべてのカードをコールドスタートに戻すことはしません。インポートで実際に何が引き継がれ、何が引き継がれないかについては、移行で実際に何が保たれるかをご覧ください。

次に何をすべきか

易しいカードと難しいカードが混ざったデッキを開き、評価を変えるたびに間隔のプレビューがどう変わるか見てみてください。この5分間のテストは、数式の説明を読むよりも、FSRSがどう振る舞うかをよく教えてくれます。

  • よく知っているカードを復習し、Easyが示す間隔を確認する。
  • 難しいと感じるカードを復習し、Hardが示す間隔と比較する。
  • 目標定着率の設定を確認し、復習が多すぎる、あるいは少なすぎると感じたら調整する。
  • 復習を継続する。モデルは最初の完璧な予測ではなく、積み重なった履歴によって精度が上がっていく。

よくある質問

FSRSとは何の略ですか?

Free Spaced Repetition Scheduler(フリー・スペースド・レペティション・スケジューラー)の略です。単体のアプリではなくオープンソースのスケジューリングアルゴリズムで、各カードがいつ期限を迎えるかを決めるために、さまざまなフラッシュカードツールに組み込まれています。

FSRSはSM-2より優れていますか?

FSRSは、1つの易しさ係数を使う代わりに安定度と難易度を分けてモデル化し、自分自身の復習履歴に予測を適合させられるため、一般的により精密にスケジュールできます。SM-2はよりシンプルで長い実績がありますが、記憶そのものをモデル化するのではなく、直前の答えだけに反応します。

FSRSにおける「安定度」とは何ですか?

安定度とは、そのカードを思い出せる確率が目標定着率まで下がると見込まれるまでの日数です。安定度が高いカードは、復習の間隔を長く空けても正しく思い出せる可能性が高いままです。

FSRSがうまく機能するには、たくさんの復習が必要ですか?

最初の復習からデフォルトの見積もりを使って動作し、そのカードの復習が積み重なるほど精度が上がります。別のFSRS対応ツールから既存の復習履歴をインポートすると、すべてのカードをコールドスタートから始めるのではなく、モデルに最初から有利なスタートを与えられます。

このガイドで参照した情報源

ここで説明したアルゴリズムの仕組みは、open-spaced-repetitionプロジェクトが保守しているオープンソースのFSRSドキュメントとwikiに基づいています。StudyDailyの実装に関する記述は、製品自体のFSRS-6スケジューラーとインポーターに基づいており、このガイドの2026年6月15日の公開にあたって、上記の情報源と照合しています。

自分のカードでこの方法を試す

ブラウザでStudyDailyを開けます。端末内での学習にアカウントは不要です。

StudyDailyを開く

JulienはStudyDailyを開発し、一次資料と公開中の製品を基準に各ガイドを確認しています。

編集方針を読む

すべてのガイド