I was intrigued some years ago by an article that described software that helps one memorize more or less arbitrary collections of information with great accuracy and long-term retention. An example of this is SuperMemo. The basic concept is spaced repetition, which is basically a flash card approach where the key concept is how often to repeat the cards to most effectively train one's memory. Does this interest anyone? I've always wanted to learn Andrew Marvell's To His Coy Mistress. I expect it would surely be helpful for job-related information as well.

The Wikipedia page on spaced repetition says:

There are several families of algorithms for scheduling spaced repetition:
Neural networks based
Leitner system: 5 stages and an arbitrary number of stages
* SM-family of algorithms (SuperMemo): SM-0 (a paper implementation) to SM-15 (in SuperMemo 15)

Some have theorized that the precise length of intervals does not have a great impact on algorithm effectiveness,[6] although it has been suggested by others that the interval (expanded vs. fixed interval, etc.) is quite important; the experimental data regarding this point are mixed.

The SM-15 algorithm is described here but is pretty confusing to me. I'm especially intrigued by the prospect of a neural-network-based approach to this. I know that neural networks are quite good at taking simple input (did I remember the information? yes/no) and 'learning' to generate some output, but I'm only just beginning to contemplate this idea. Seems to me the interface stuff is pretty obvious: prompt the user with a cue or question (e.g., a picture) and have them provide the response (e.g., the name of the person in the picture). I'm guessing the tricky part is calculating how frequently to prompt someone with information over time (more frequently if they don't remember, less frequently if they do) such that the memorization happens with the least number of exposures.

Any thoughts on formulating an algorithm would be most welcome.

    Have you seen Anki?

    I think it's in Python, and it is available on GitHub. Probably has an algo ....

      dalecosp;11044979 wrote:

      Have you seen Anki?

      I think it's in Python, and it is available on GitHub. Probably has an algo ....

      Ooooh nice. There's a wikipedia page for it and the home page is here. They have an Ubuntu installer.

      Sadly, it's based on the old SuperMemo algorithm SM2 instead of SM15. I have no idea if this really makes much difference or not.

        It looks like Anki's scheduling code is in sched.py. Sadly, I don't know python and there are no comments so this might be pretty gnarly to figure out.

          Write a Reply...