Spaced Repetition - My Principles
Note: I use org-drill
in Emacs as my Spaced Repetition system.
Principles
The Master Principle: Never forget anything important twice. Whenever you forget something, add it.
Add flashcards for concrete details that you forgot. “That guy… what’s his name…” - add it. “That sort of thing…” - add it. No more “thing” or “sort of like a” or “kind of”. Know the precise term. There will be a network of concrete things you have forgotten (or perhaps never really encoded). Add them all.
However, don’t add what you have just learned. Wait till you actually need it and can’t remember it. Trying to predict the future invariably goes wrong - I overvalue the fact in the moment - and I dilute my flashcards with useless facts. Waiting for an actual use means that my flashcards pull their weight and, in turn, I cherish and review them enthusiastically.
Make it a question you need to answer. Pose an actual real-world problem whose solution you have to find, instead of some passive fact whose parts you have to guess (sometimes based on the surrounding words). Ideally, it should be of the form: given a Situation, how do you get the desired Outcome?
Q: X and Y have happened. How do you make Z happen? :drill:
A: Do [Foo] and [Bar]
This way you are forced to classify the situation and use the resulting cue to retrieve your solution from long-term memory. Otherwise, you would just use the context to merely recognize the solution, which probably still involves retrieving from long-term memory, but doesn’t make you categorize the situation from scratch like in real life. This actually prepares you better for the actual task, which is what you want.
Don’t try to memorize dictionary definitions themselves. Insist on seeing the word used. Otherwise, you’re just reciting empty sounds. For example, “invidious - containing or implying a slight or showing prejudice”. Huh? I’ve failed to define that word three times so far now. It would be far better to test for a usage - “invidious comparisons”.
Don’t add flashcards en masse, especially straight from a book. That just burdens you when you’re busy. Instead, create flashcards by hand - those are the ones you most care about, such as the Haskell function \\
you forgot or why you don’t feel motivated to work on your learning algorithm (not appropriately challenging).
Separate two-way associations: Avoid fancy multi-cloze flashcards
Corollary: It’s a mistake to have a flashcard that tests more than one association.
Why? Because then the number of days till review no longer represents the strength of an association! You lose the reassuring properties we saw above.
This means that if I have a clozed flashcard - one where you may be tested on either of two associations with equal chance - and I know one association better than the other, then half of the time during review, I will confidently mark the flashcard as “remembered” and keep pushing it into the future when, in reality, I don’t remember it at all and need to strengthen it.
For example, If I’m asked for the meaning of the word “petulant”, I may be able to tell that it means being “easily irritated or annoyed”. However, if I’m asked for a word to describe someone who is “easily irritated or annoyed”, I may not be able to narrow it down to “petulant”. But the review interval doesn’t pinpoint that weakness. If I was asked for “petulant” the first time, I may give a good answer and thus push the next review date farther into the future, thus making it seem like I know this definition, when I really don’t.
Instead, I should treat them as two separate associations and judge my memory of them individually.
Insist on Exemplars
Don’t allow yourself to parrot back a definition. Force yourself to give an exemplar so that you can actually use this concept in real life. For example, I “know” that “opprobrium” means “harsh criticism or censure” - but I don’t know where to apply it! I can’t recall seeing it used (and didn’t bother to write down the example when I first noticed my ignorance).
Spaced Repetition Techniques
Use pictures. They form richer, unique cues as compared to words. (h/t Fluent Forever)
Another recommendation to use images:
My original Anki decks were all words. Now, I lean on images as heavily as possible. I find, at least for my sort of mind, that most of understanding something is learning to visualize and manipulate it mentally.
Review your flashcards religiously:
Yes, no lazy days. Don’t ever skip a day of anki.
..
I review >100 cards a day, every single day, with essentially no days off.
Stats
Measure your speed of recall by Time per Drill. I usually take around 10s per drill. When things are slow, 15s per drill. And when going well, 7s per drill.
Recently, when taking notes from a book, I took around 30 seconds to create one drill. I assume I can create other drills much faster, especially for familiar things that I’ve simply forgotten. Still, using this as the upper bound, if I want to create around 50,000 drills in the next 6 years, then I would need to spend around 420 hours creating the drills. Also, I take a maximum of 15 seconds to review one drill. Assuming that I’ll face each drill around 15 times in my lifetime, that means I will spend a total of 15 x 15 + 30 seconds = around 4 minutes per drill. Let’s even that out to 5 minutes per drill. This matches Gwern’s estimate of around 5 minutes per drill in a lifetime.
Assume that I will review my scheduled drills every day, no matter how long it takes. So, now, I just have to budget the time for adding new drills.
If I want to build 50,000 drills in the next 5 years, I would need to add (50000 / (300 * 5)) = 33 drills per day.
If I want to build 20,000 drills in the next 5 years, I would need to add around 13.2 drills per day.
If I want to build 10,000 drills in the next 5 years, I would need to add around 6.6 drills per day.
That last number looks most likely because I’m hitting around 7 drills per day for the last 10 days (August 2015).
Resources
Gwern, of course.
Org Drill Wish List
Feature: Allow a separate “learning” session, where you can fail new items several times without penalty. This could be done using a simple cram session consisting only of new items.
Feature: Allow me to resume a cram session after editing. Right now, I think it just forgets the whole state. Cramming (or learning) is not first-class right now.
comments powered by Disqus