On Memory

kuniga.me > NP-Incompleteness > On Memory

On Memory

27 Dec 2022

This post is an assortment of some of my thoughts related to memory.

Memorization

When I was little I had a sticker album containing many types of dinosaurs and I recall memorizing most of their names. When Pokémon came out, I memorized the names of the 150 of them. I also like studying languages and that involves absorbing a lot of new vocabulary.

See caption.
Figure 1: Sample pages from the dinosaur sticker album I had when I was little (source)

All this said, I hated and still hate the deliberate act of working to memorize things. I remember as painful the time when I was studying history for college admissions and had to use flash cards.

In college I thought I would be free from rote memorization but some subjects like Databases and Networks required a fair degree of those. It’s then not surprising that I didn’t like them.

I was astounded to read Michael Nielsen’s essay [1] recommending the use of a memorization app, Anki, for deep technical subjects. My reaction is due to Nielsen being a PhD in physics who co-wrote the reference textbook in Quantum computing, Quantum Computation and Quantum Information, so not the kind of scholar I would think would rely on memorization.

However, he makes very good points in his essay, so I definitely recommend the read. One quote I particularly liked:

Human beings have a complex relationship to difficult activities, and often dislike performing them, unless strongly motivated (in which case they may become pleasurable).

This debate is also discussed in Jordan Elenberg’s How not to be wrong [4] on whether memorization should be encouraged in math education. Some educators think there’s too much memorization in today’s math teaching and we should reform it. Elenberg makes a case that some memorization is needed, for example the multiplication of single digits (e.g. people memorize that $6 \times 7$ is 42 instead of using some indirect method).

Reading

When I re-read Sapiens by Yuval Noah Harari in 2020, I didn’t remember most of the content. This also happens when I revisit a very old post on my blog.

This makes me sad because it seems like I wasted my time reading some content that I didn’t retain. There’s some consolation in thinking that:

  1. It might have changed the way I think or see the world, even though I cannot directly attribute to a particular idea or book.
  2. I still remember a small percent of it, perhaps the most important points.
  3. I enjoyed reading it.

Some strategies I’ve tried to retain more content is to take more detailed notes (see External Memory) and creating more associations, for example reading about history of places I’m traveling to or have visited (see Zettelkasten).

Nielsen mentions books in his essay [1] as well but advises against using Anki to memorize their contents, it being too cumbersome to do thoroughly. Perhaps a middle ground could be to select 5-10 things to remember from a book and “Ankify” them.

Writing

Another way to remember what I read is to write about them. I already take notes, but often times notes are “write-only”, meaning I never get back to them again. Writing posts is a little bit better because I often need to re-read the post many times to improve the writing and fix typos.

But again, writing posts is not 100% reliable in remembering as I mentioned above. As with reading books, I’ve also tried creating more associations by adding a section Related Posts to my posts. This provides an opportunity for me to revisit previous posts and occasionally find interesting connections. A recent good example was noticing how Topological spaces has some vague similarity with Matroids [3].

One idea for incorporating Anki in my posts is to add another section to every post, perhaps called Key ideas, which could be 3-5 bullet points in form of a question, covering the key points from the post. I’d then add these bullet points to my Anki cards.

External Memory

I don’t think I have a good memory, so I try to enhance it via external memory. Examples include maintaining a public cheat sheet, having a personal wiki for work, and writing notes from books I read on Google Docs.

Once these memories are stored in digital format, the challenge is finding them. Google Docs usually work pretty well because of its search mechanism. For my cheat sheet it’s usually more efficient to remember in which page it is located. But since my blog content is on Github, I can use its code search as well.

Thinking in database terms, I’m trying to keep an index in my brain and the bulk of the data externally. Our memory also serves as cache (write-through and read-through). The deliberate act of memorizing things is a cache warming.

Zettelkasten

According to Wikipedia [2],

Zettelkasten or card file consists of small items of information stored on paper slips or cards that may be linked to each other (…). It has often been used as a system of note-taking and personal knowledge management.

I tried using Zettelkasten a bit but found hard to keep up since my setup was not very convenient. But to me, a core principle of this system is the linking, since association is a good for remembering (see Nielsen’s Cultivate strategies for elaborative encoding / forming rich associations in [1]).

I’ve tried incorporating this principle in my blog posts as I mentioned in the Writing section above.

Metaphysics

Finally I think memory is deeply associated with our identity and our notion of self. For instance, consider this thought experiment: suppose it was possible to completely overwrite someone’s memory and you were given someone else’s memory. Would you think you are your current self with strange memories or you’re that someone else but in a different body?

Nielsen’s essay touches on this as well [1]:

In some measure we become what we remember, so we must be careful what we remember

I initially read this as poetic or hyperbolic but after some deliberation, I think this is a much more literal truth.

Conclusion

I kept having thoughts related to memory so I wanted to write it down to organize them more explicitly. I’ve historically just written these in private documents, but decided to write a public post for the added benefit of spending more time thinking about it and making it more clear in general.

I’m glad I did, since it made me do some reading and I ran into Nielsen’s essay which has a lot of useful information. I’ve been trying Anki for a few days since then and it hasn’t been as bad as I expected and hope this habit will stick.

Releated Posts

CPU Cache - I think it’s inevitable for us programmers to avoid making analogies between computers and our brains, like I did in the section External Memory. The idea of co-locating processing and memory also reminds me of the CPU cache.

Turing Machines and Undecidability - Memory is an important component in computability. The type of computation finite automata can perform is evaluating regular expressions, while if we equip it with memory (in a form of a stack), we get Turing machines, general purpose computing machines, capable of doing the same computations of any computer and possibly of the human brain.

References