「人は、覚えたことを1日で7割近く忘れる」
資格の勉強法を調べたことのある方なら、一度はこの話を目にしたことがあると思います。たいていは、なだらかに落ちていく曲線のグラフと一緒に、「エビングハウスの忘却曲線」として紹介されています。そして、こう続きます。「だから、復習が大切です」。
結論の「復習が大切」は、まったくそのとおりです。でも、そこに至る説明には、実は大きな誤解が含まれています。
エビングハウスが測ったのは、「どれだけ覚えているか」ではありませんでした。
日曜日の朝です。少しだけ、140年前の実験室をのぞいてみませんか。そこから、忘れることとの上手な付き合い方と、Pythonで組み立てる「忘れない勉強の時間割」までをお話しします。
この記事で分かること
- エビングハウスの忘却曲線が、本当は何を測っていたのか
- 「読み返す」より「思い出す」ほうが記憶に残る、という実験結果
- Ankiに採用されている復習アルゴリズム FSRS の忘却曲線の式
- 試験日から逆算して、復習のタイミングを決めるPythonスクリプト
- 資格を「取ったあと」も知識を保つための考え方
コードはPython 3.13の標準ライブラリだけで動きます。
第1章:140年前の、たった一人の実験
意味のない音節を、ひたすら覚える
ヘルマン・エビングハウスは、ドイツの心理学者です。1885年に『記憶について(Über das Gedächtnis)』という本を出し、人の記憶を初めて実験で数量的に調べた人物として知られています。
この実験が、なかなか壮絶です。
エビングハウスは、「子音・母音・子音」を組み合わせた、意味のない音節を大量に作りました。日本語で言えば「ぬぺか」「そみて」のような、何の意味もない文字列です。意味のある単語だと、連想の助けを借りて覚えやすくなってしまう。純粋な記憶の働きを測るには、意味のないものを使うしかない、と考えたのです。
そして、その音節を十数個並べたリストを、自分自身で、間違えずに暗唱できるまで覚えました。被験者は、エビングハウス本人ただ一人。それを、何年にもわたって繰り返しました。
想像してみてください。毎日、意味のない文字列を、一人で黙々と覚え続ける研究者の姿を。科学の進歩は、ときどき、こういう地道すぎる努力の上に成り立っています。
測ったのは、「覚え直す手間がどれだけ減ったか」
ここからが大事なところです。
エビングハウスは、リストを覚えたあと、一定の時間をおいてから、同じリストをもう一度、完璧に暗唱できるまで覚え直しました。そして、最初に覚えたときと比べて、覚え直しにかかる手間がどれだけ少なくて済んだかを測りました。これを**節約率(savings)**と言います。
たとえば、最初に覚えるのに20回の反復が必要で、覚え直しには10回で済んだなら、節約率は50%です。一度覚えたことの「痕跡」が、覚え直しを半分楽にしてくれた、という意味になります。
エビングハウスの節約率は、次のようになりました。2015年にオランダの研究者ムレ(Murre)とドロス(Dros)が、この実験の再現研究を発表していて、その論文に元のデータもまとめられています(PLoS ONE, 2015)。
| 覚えてからの時間 | 節約率 |
|---|---|
| 20分後 | 58.2% |
| 1時間後 | 44.2% |
| 約9時間後 | 35.8% |
| 1日後 | 33.7% |
| 2日後 | 27.8% |
| 6日後 | 25.4% |
| 31日後 | 21.1% |
1日後の節約率は33.7%。これを「1日後には33.7%しか覚えていない」、つまり「1日で7割近くを忘れる」と読んでしまったのが、冒頭の話の正体です。
でも、本当の意味はこうです。1日たったあとでも、覚え直しの手間は、最初の約3分の2で済んだ。
誤読すると、何が困るのか
「どっちでも同じでは?」と思われるかもしれません。でも、この違いは、勉強する人の気持ちにとって、けっこう大きいと私は思っています。
「1日で7割忘れる」と思っていると、昨日覚えたことを思い出せなかったとき、「ああ、やっぱり忘れた。昨日の勉強は無駄だった」と感じてしまいます。
でも、エビングハウスの実験が本当に示しているのは、思い出せなくなったように見えても、記憶の痕跡は残っていて、覚え直しを確実に楽にしてくれているということです。昨日の勉強は、無駄になっていません。今日の覚え直しを、3分の2の手間にしてくれています。
塵も積もれば山となる。忘れたように見える塵も、ちゃんと積もっているのです。
ちなみに、ムレとドロスの再現研究でも、エビングハウスの曲線とよく似た形が得られています。さらに、24時間後のあたりで、記憶が少し持ち直すような動きが見られることも報告されていて、睡眠による記憶の定着が関係しているのではないか、と考察されています。夜ふかしして詰め込むより、寝たほうがいい。昔から言われていることには、それなりの根拠があるようです。
第2章:読み返すより、思い出す
1週間後に差がついた実験
復習が大事なのは分かりました。では、どうやって復習するのがいいのでしょうか。
ここで紹介したいのが、2006年に心理学者のローディガー(Roediger)とカーピック(Karpicke)が発表した研究です(Psychological Science, Vol. 17, No. 3)。
学生たちに文章を読んでもらったあと、2つのグループに分けました。
- 何度も読み返すグループ
- 読んだあと、内容を思い出して書き出すテストを繰り返すグループ
そして、1週間後に、どれだけ内容を覚えているかを調べました。結果は、テストを繰り返したグループが61%、読み返したグループが40%。思い出す練習をしたほうが、ずっとよく覚えていたのです。
5分後には、逆だった
この研究で、私がいちばん面白いと思ったのは、別のところです。
実は、5分後にテストしたときは、読み返したグループのほうが成績がよかったのです。1週間後になって、初めて逆転しました。
これは、勉強法を選ぶうえで、とても大事なことを教えてくれます。読み返すと、その直後は「よく分かった」という手応えがある。 文章がすらすら頭に入ってくるので、覚えた気になる。でも、その手応えは、長くは続きません。
一方、思い出す練習は、やっている最中はしんどいです。思い出せないし、間違えるし、手応えがない。でも、そのしんどさこそが、記憶を長持ちさせているのです。
一昨日の記事で、見積もりについて「体感は当てにならない、計測しよう」と書きました。勉強も、まったく同じだと思います。「分かった気がする」という体感と、本当に身についているかどうかは、別のものです。
第3章:いつ思い出すのがいいのか ― FSRSの忘却曲線
Ankiの新しいアルゴリズム
「思い出す練習」を「ちょうどいいタイミング」で繰り返す。これを間隔反復(Spaced Repetition)と言います。そして、この「ちょうどいいタイミング」を計算してくれるのが、単語カードアプリのAnkiです。
Ankiは長いあいだ、1980年代に開発されたSM-2というアルゴリズムをもとに、復習のタイミングを決めていました。それが2023年のバージョン23.10で、**FSRS(Free Spaced Repetition Scheduler)**という新しいアルゴリズムを選べるようになりました。FSRSは、オープンソースで開発されている、大量の学習記録をもとに作られたアルゴリズムです。
忘却曲線の式
FSRSの考え方の中心にあるのが、次の忘却曲線です(FSRS-4.5の形)。
$$
R(t, S) = \left(1 + \frac{19}{81} \cdot \frac{t}{S}\right)^{-0.5}
$$
- $R$:思い出せる確率(Retrievability)
- $t$:最後に思い出してからの日数
- $S$:記憶の安定性(Stability)
ここで面白いのが、安定性 $S$ の定義です。$S$ は、「思い出せる確率が**90%**まで下がるのにかかる日数」として定義されています。実際、式に $t = S$ を入れると、$(1 + 19/81)^{-0.5} = (100/81)^{-0.5} = 9/10$ となって、ちょうど0.9になります。19/81という不思議な数字は、このためにあったわけです。
この式をPythonにすると、こうなります。
DECAY = -0.5
FACTOR = 19 / 81
def retrievability(t_days: float, stability: float) -> float:
return (1 + FACTOR * t_days / stability) ** DECAY
安定性が1日の記憶(覚えたばかりの記憶)について計算してみると、こうなりました。
| 経過日数 | 思い出せる確率 |
|---|---|
| 1日 | 90% |
| 2日 | 83% |
| 3日 | 77% |
| 7日 | 62% |
| 30日 | 35% |
「思い出せるうちに、思い出す」
この式を、逆向きに使うこともできます。「思い出せる確率が90%まで下がるのは、何日後か」を求めれば、それが次に復習すべきタイミングになります。
$$
t = \frac{S}{19/81} \left(R_{\text{目標}}^{1/(-0.5)} - 1\right)
$$
目標を90%にすると、$t = S$。つまり、安定性の日数がたったら、復習する。
FSRSのポイントは、思い出すたびに、安定性 $S$ が伸びていくことです。安定性が1日の記憶は1日後に復習しますが、そこで思い出せれば安定性が伸びて、次の復習は数日後になります。また思い出せれば、さらに伸びて、次は数週間後。復習の間隔が、どんどん広がっていくのです。
完全に忘れてから覚え直すのではなく、忘れかけたところで思い出す。 第1章の言葉で言えば、節約率が高いうちに、記憶を呼び起こす。これが、間隔反復の本質です。
第4章:試験日から逆算する、復習の時間割
スクリプト
この考え方を使って、試験日から逆算して、復習のタイミングを決めるスクリプトを書いてみました。8月9日(今日)に勉強を始めて、9月27日の試験を受ける、という想定です。
from datetime import date, timedelta
# FSRS-4.5 の忘却曲線: R(t, S) = (1 + FACTOR * t / S) ** DECAY
# S(安定性)は「思い出せる確率が90%まで下がるのにかかる日数」
DECAY = -0.5
FACTOR = 19 / 81
def retrievability(t_days: float, stability: float) -> float:
"""最後に思い出してから t 日後に、思い出せる確率"""
return (1 + FACTOR * t_days / stability) ** DECAY
def next_interval(stability: float, target: float = 0.9) -> float:
"""思い出せる確率が target まで下がる日数(= 次に復習すべきタイミング)"""
return stability / FACTOR * (target ** (1 / DECAY) - 1)
def plan(start: date, exam: date, first_stability: float = 1.0,
growth: float = 2.5, target: float = 0.9) -> tuple[list[date], date, float]:
"""試験日までの復習日を決め、最後の復習日と、そのときの安定性を返す。
growth は「1回思い出すごとに、安定性が何倍になるか」の仮定。
本物のFSRSは、問題の難しさや思い出せたかどうかで安定性の伸び方を変える。
ここでは考え方を見るために、思い出せた前提で一定倍にしている。
"""
reviews, last, s = [], start, first_stability
while True:
due = last + timedelta(days=max(1, round(next_interval(s, target))))
if due >= exam:
break
reviews.append(due)
last, s = due, s * growth
return reviews, last, s
if __name__ == "__main__":
start, exam = date(2026, 8, 9), date(2026, 9, 27)
after = exam + timedelta(days=30) # 試験の1か月後(実務で使う日)
print("--- 間隔を空けて復習する場合")
reviews, last, s = plan(start, exam)
for i, d in enumerate(reviews, 1):
print(f" {i}回目: {d:%m/%d}({(d - start).days}日目)")
print(f" 試験当日に思い出せる確率 : {retrievability((exam - last).days, s):.0%}")
print(f" 試験1か月後に思い出せる確率: {retrievability((after - last).days, s):.0%}")
print("--- 最初に1回覚えて、あとは試験3日前に1回見直すだけの場合")
cram_day = exam - timedelta(days=3)
# 見直しの日には、最初の記憶はほとんど残っていない。
# 「覚え直し」とみなして、安定性は初回と同じ1日にする
print(f" 見直した日に思い出せる確率 : {retrievability((cram_day - start).days, 1.0):.0%}")
print(f" 試験当日に思い出せる確率 : {retrievability((exam - cram_day).days, 1.0):.0%}")
print(f" 試験1か月後に思い出せる確率: {retrievability((after - cram_day).days, 1.0):.0%}")
このスクリプトの単純化について、正直に書いておきます
本物のFSRSは、問題の難しさや、思い出せたかどうか、どれくらい苦労したかによって、安定性の伸び方を細かく変えます。そのために、多くのパラメータを使っています。
このスクリプトでは、考え方を見ることを優先して、「毎回ちゃんと思い出せた」「思い出すたびに安定性が2.5倍になる」と単純化しています。実際の勉強の時間割は、Ankiなどのアプリに任せるのがおすすめです。
結果
$ python review_plan.py
--- 間隔を空けて復習する場合
1回目: 08/10(1日目)
2回目: 08/12(3日目)
3回目: 08/18(9日目)
4回目: 09/03(25日目)
試験当日に思い出せる確率 : 93%
試験1か月後に思い出せる確率: 87%
--- 最初に1回覚えて、あとは試験3日前に1回見直すだけの場合
見直した日に思い出せる確率 : 29%
試験当日に思い出せる確率 : 77%
試験1か月後に思い出せる確率: 34%
間隔を空けて復習した場合、復習は4回。間隔は1日、2日、6日、16日と広がっていき、**試験当日に思い出せる確率は93%**です。
一方、最初に1回覚えて、あとは試験の3日前に1回見直すだけの場合。見直した日には、思い出せる確率が29%まで落ちているので、実質的には覚え直しです。それでも、試験当日に思い出せる確率は**77%**あります。
正直に言うと、この数字を見たとき、私は少し意外でした。一夜漬けに近いやり方でも、試験当日だけなら、そこそこ戦えてしまうのです。試験直前の詰め込みが、昔から根強く支持されている理由も、このあたりにあるのかもしれません。
本当の差は、試験のあとに出る
でも、最後の行を見てください。試験の1か月後に思い出せる確率です。
- 間隔を空けて復習した場合:87%
- 直前に見直しただけの場合:34%
試験の当日にはあまり差がなかった2つのやり方が、1か月後には、これだけ差がつきます。
資格試験は、合格することがゴールではありません。AWSの認定資格なら、合格したあとに実際の設計や構築で、その知識を使います。試験の1か月後に、学んだことの3分の1しか思い出せないとしたら、それは「合格した」ことにはなっても、「身についた」ことにはなりません。
第5章:資格は、取ってからが長い
試験も、知識も、変わり続ける
ここで、資格の「その後」について、少し考えてみます。
たとえばAWSの認定資格は、有効期限が3年です。期限が来る前に、再認定を受けて更新する必要があります。最近では、再認定試験を受け直す方法に加えて、AWS Skill Builderでの学習によって認定を延長する仕組みも用意されるようになりました(AWS Recertification)。
試験の中身も変わり続けます。2026年7月には、AWS Certified Machine Learning Engineer – Associateの新しい版(MLA-C02)についての告知が、AWS公式のブログで出ていました。クラウドの世界では、サービスも、ベストプラクティスも、毎年のように変わります。
つまり、資格の勉強で覚えた知識は、一度覚えて終わりではなく、維持し続けるものなのです。そして、維持し続けるのに、間隔反復ほど向いた方法はありません。復習の間隔は、思い出すたびに数か月、半年と伸びていきます。一度しっかり身についた知識は、ときどき思い出すだけで、何年も保てるようになります。
教えることは、最高の「思い出す練習」
古代ローマの哲学者セネカは、友人への手紙の中で、こう書いています。
Homines dum docent discunt.
(人は、教えているあいだに学ぶ)
第2章のローディガーとカーピックの研究を思い出してください。思い出す練習が、記憶を強くするのでした。
人に何かを教えるとき、私たちは、頭の中にある知識を、一つひとつ思い出して、言葉にしています。これ以上の「思い出す練習」はありません。
技術記事を書くことも、同じです。この記事を書くために、私はエビングハウスの実験の数字も、FSRSの式も、何度も思い出し、確かめ、言葉にしました。たぶん、この記事を読んでくださったどなたよりも、書いた私自身がいちばん覚えています。アウトプットが勉強になる、というのは、記憶の仕組みから見ても、ちゃんと理にかなっているのです。
第6章:日曜の朝の、小さな習慣
最後に、ここまでの話を、実際の勉強にどう落とし込むかをまとめておきます。
1. カードは、間違えた問題から作る
問題集を解いて、間違えた問題があったら、それをカードにします。ポイントは、正解だけでなく、**「なぜ他の選択肢が間違いなのか」**もカードにすることです。AWSの試験なら、「この要件で、なぜ別のサービスではダメなのか」を自分の言葉で説明できるかどうかが、そのまま実力になります。
2. 読み返すのではなく、答えを隠して思い出す
カードを見たら、まず答えを見ずに、声に出すか、紙に書いて思い出します。思い出せなくても大丈夫です。思い出そうとしたこと自体に、意味があります。
3. 毎日少しずつ、を守る
間隔反復の時間割は、毎日少しずつ復習することが前提になっています。週末にまとめて2時間より、毎日15分のほうが、ずっと効きます。
4. 寝る
第1章の再現研究でも、睡眠との関係が考察されていました。試験前日の徹夜は、記憶の面から見ても、あまりいい作戦ではなさそうです。
5. 「思い出せなかった」を、失敗だと思わない
これがいちばん大事かもしれません。思い出せなかったカードは、覚え直しのチャンスです。エビングハウスが教えてくれたとおり、覚え直しは、最初に覚えるよりずっと楽です。
習うより慣れろ、と言います。間隔反復は、まさに「慣れる」ための仕組みです。最初は面倒に感じても、2週間も続ければ、毎朝のカードの復習が、歯みがきのような習慣になっていきます。
まとめ
| よくある誤解 | 本当のところ |
|---|---|
| 「1日で7割忘れる」 | エビングハウスが測ったのは節約率。1日後でも、覚え直しは最初の約3分の2の手間で済んだ |
| 読み返せば覚えられる | 直後の手応えは読み返しが上。でも1週間後は、思い出す練習のほうが61%対40%で上 |
| 復習は、忘れてからでいい | 思い出せる確率が90%くらいに下がった「忘れかけ」のタイミングで思い出すのが効率的 |
| 一夜漬けでも試験は通る | 当日だけならそこそこ戦える。でも1か月後には、87%対34%の差がつく |
| 資格は取ったら終わり | 有効期限も、試験の中身も、知識も変わる。維持し続けるものと考える |
おわりに:来週の日曜日に
この記事の最後に、ちょっとした実験をさせてください。
ここまでの内容を、あなたはどれくらい覚えているでしょうか。この記事を閉じる前に、次の3つの問いに、答えを見ずに答えてみてください。そして、来週の日曜日の朝に、もう一度同じ問いに答えてみてください。答えられなくても、がっかりしないでください。記事を開き直して読み返したとき、きっと最初に読んだときより、ずっと早く頭に入ってくるはずです。それが、エビングハウスの言う「節約」です。
問1:エビングハウスが忘却曲線の実験で測ったのは、何だったでしょう?
節約率。一度覚えたリストを覚え直すとき、最初に覚えたときに比べて、手間がどれだけ少なくて済んだか。「どれだけ覚えているか」ではありません。
問2:「読み返す」と「思い出す練習」、5分後のテストで成績がよかったのはどちら?
読み返しのほうでした。ただし1週間後には逆転して、思い出す練習のほうが上(61%対40%)になりました。
問3:FSRSの忘却曲線で、安定性 S は何を表す日数でしょう?
思い出せる確率が90%まで下がるのにかかる日数です。だから、目標を90%にすると、安定性の日数がたったところが次の復習日になります。
3問とも答えられた方は、もう十分に「思い出す練習」を始めています。
それでは、よい日曜日を。来週の日曜日に、また思い出してもらえたらうれしいです。
最後まで読んでいただき、ありがとうございました。「自分はこうやって覚えている」という勉強法があれば、ぜひコメントで教えてください。いいね・ストックをしていただけると、来週の日曜日に、この記事を思い出すきっかけになるかもしれません。
