RunFaps
Andy Matuschak
Andy Matuschak patreon

Memory systems and problem-solving practice

🕑 Added 2023-04-01 05:08:53 +0000 UTC

Comments

Andy Matuschak

Eric, thank you so much for this very detailed answer and all the example screenshots. I spent a lot of time with this, and I learned a great deal! It's extremely instructive to see how people use these systems for larger and more complicated tasks.

Eric 'Siggy'

@Andy: here is some more detail which I think gets at your "encoding" question! I often process them fairly lightly, but sometimes end up making several cards for one practice problem. I've got some examples of the "lightly processed" variety of card posted here (scroll down for math): https://imgur.com/a/7dpMHhc *Selecting* what to learn is probably the most significant part of my encoding process. Most domains have a lot of basic properties that you are expected to know by heart when solving problems—I like to create cards to prove a lot of those properties. If a worked example (or proof in the wild) uses a property I don't know about (say, the tail-sum-formula for probability theory, or an infinite sum I am uncomfortable with), I stop and learn those first with their own cards. In this sense, creating cards from worked examples works a little bit like vocabulary-building: I start by making sure each step makes sense and filling any holes in my knowledge at that level, before moving on to how the full proof works. —— But then, in the simple case, I state the theorem/problem to be solved on the front (possibly re-writing it in my own words if the original is complicated). And then the proof/solution simply goes on the back. Before I have worked through it myself, I might start with a a photo/screenshot of the solution. Once I've solved it "in my own words," though, I replace the textbook solution with a mixture of LaTeX & MathJax that I feel clearly expresses (my variation of) the solution. This works well for straightforward problems such as "find the velocity of a particle moving vertically at earth's surface if wind resistance is proportional to speed" (which boils down to posing and solving a differential equation). I find that I will often tweak the solution text months later, as my understanding of a problem improves. Often there is a gap in my knowledge I don't realize at first (as you pointed out in the OP!)—but after the 4th or 5th time of doing a problem I will realize it myself, or else have learned more from my readings so I can go back and improve a solution (or correct it, in the occasional case that I really bungled and memorized something incorrect!). —— For more complex cases—which either have a great many steps, or casually use concepts that I am not very familiar with (so my brain can't easily "chunk" the solution into intuitive pieces), I sometimes follow a strategy of 1. breaking a card that has a long solution into several cards for each part, and 2. still keeping the original large card (which pulls all the pieces together). This is often the strategy I need to use SRS to learn proofs I encounter "in the wild." It gives me some pressure toward the "minimum information principle"—practice cards are more complex than flash cards, and synthesize more, but smaller is still better IMO. Example: I recently read a classic paper that proved that estimation of distribution algorithms (a kind of optimization method) converges with various kinds of selection operators. I wanted to learn one of those proofs: but since the sub-domain was new to me mathematically, my practice cards looked something like: Q. In the mathematical theory of EDAs, what expression is used to formalize truncation selection for an infinite population model? A. [big hairy equation here] <— this one is just a declarative recall card, but I consider it a "practice card" when the answer is long enough that doing it with pen and paper is much easier than doing it verbally Q. When proving the convergence of an EDA under truncation selection, how do you show that the expected fitness at t + 1 is always less than at t (E(t+1) < E(t))? A. [proof of that property here] Q. When proving the convergence of an EDA under truncation selection, how do you show convergence once you know that E(t+1) < E(t)? So I end up with four cards for one proof. —— The main advantage here is that a) I get most of my practice through smaller cards, so my deck doesn't become unbearable to review, and 2) the scheduler will be better at having me focus on the parts of proofs that are *hard for me,* rather than busywork (repeating full proofs). Incidentally, this same strategy of breaking long exercises into pieces, but also practicing the full ensemble from time to time, is also how I approach piano repertoire practicing with Anki (ex. "Play the Moonlight Sonata 1st Movement" becomes "Play the Moonlight... part A, the C#m introduction," "... starting from part C, the fun A♭ run"). I've been pretty happy with that strategy for piano as well (having to know how to start a piece from multiple points in its middle is useful too!).

Andy Matuschak

Yes, expertise reversal is another implication from the CLT theory family! In this context, it would suggest that you'd want to adjust the worked example <> problem-solving over time according to expertise.

Andy Matuschak

Thank you for sharing! Can you say anything about how you encode the worked examples from your readings?

Eric 'Siggy'

To clarify, I was referring to 25 or 50 within a *subject* (like “chess,“ or “optics”) rather than a single concept (which rarely deserves more than a liberal handful of cards). Mastering a subject (at least with SRS as the primary learning strategy) ultimately requires hundreds of cards at least, so 25 is a drop in the bucket. For my process, I distinguish sharply between “flash cards” and “practice cards.” I configure the latter to roughly follow a Leitner walk, and (unlike flash cards) I very often bury them: because practice involves procedural (not just declarative) memory, repeating a card I got wrong (or just found difficult) for several days in a row seems beneficial (especially for, say, piano practice, but also for math proofs). Creating practice cards is easy, because I can just harvest exercises from a textbook (or from the wild, for more advanced material). Keeping up with the reviews is a different story. Not only are the cards more time consuming, but they usually require special tools or conditions: ex. “Pencil and paper to do a physics problem,” “quiet space to recite a poem/read a passage in Spanish,” or “a martial arts dummy to demonstrate a technique.” This means they don’t satisfy the traditional Anki paradigm of “do your reviews while standing in line at the grocery store,” and I have to be intentional about keeping up with them to avoid a backlog. I still make flash cards for anything they are a good fit for, since flash cards are always easier to maintain.

Robert Cobb

Really interesting! The Yeo and Fazio paper is awesome, the finding of a 'switch' for novices and experts vividly reminded me of the Expertise Reversal Effect from Kalyuga and Sweller (2003). I hadn't seen the transfer-appropriate processing research before, it seems really relevant! Having a tight feedback loop and tons of points of observation for generating and testing your model sounds awesome, I'm so glad to hear you have this process!

I'm curious about your approach to SRS problem practice: how easily does it scale? Writing 25+ cards for a single concept is daunting.

Adam Zolyak

I appreciate you sharing this summary and analysis of your experience and findings. It's interesting how much of this reminds me of the reasons I enjoy being a software engineer as I find it to be an almost endless source of challenge, learning, and feedback loops with an ever-changing set of schemas to keep the challenge alive. Your discussion about learning in conversation also reminds me a lot of the practice of rubber ducking and pairing with other software engineers which is a practice I normally employ a few times per day when I get stuck and the challenge is too much.

Eric 'Siggy'

Ooh, what a relevant review & discussion! The hard distinction the studies you summarize make between "practicing problems" and "reading worked examples" surprises me. As one who does use SRS to schedule problem practice, I find that my favorite way to study is to hoover up all the "worked examples" in a chapter into Anki, and then practice solving them along the SRS schedule. My hunch is that it comes back to the over-emphasis our educational culture places on "inventing" or "finding" the solution for yourself, instead of using memory: in fact, over long intervals, IMO recalling a solution you first read (or saw a teacher demonstrate) is a great way to cement problem-solving ability and a genuine understanding of the problem. Particularly since at longer intervals, you necessarily rely less on rote memorization and more on conceptual understanding. &gt; "it’s probably not necessary to have a truly bottomless pool: if practice is widely distributed, you could probably get away with practicing a small handful of structural variations." This has definitely been my experience with math/physics, chess exercises, and go exercises (tsumego). A bank of just 5 or 10 exercises suffers from overly recognizable prompts that induce silly pattern recognition ("oh, if the queen is in the bottom-left, that mean's there's a checkmate in the top-right"; "if there's a differential equation, it can always be solved with an integrating factor")---just as memory-system skeptics would fear. But I find that this problem vanishes very quickly as the pool grows. By 25 or 50 problems (even just loosely from the same domain), I almost never have the problem of "remembering the right solution for the wrong reasons." This can be accelerated by adding problems that are designed to be similar, but differ in a critical way. For example, a chess position that differs by just one piece (such that the solution totally changes); or a go problem that is unsolvable (so the answer is "nothing can be done: the group is dead!"). The latter are hard to find, though, as most books focus on solvable problems! How well all of this prepares me for *far* transfer I can't say. But it has given me pleasant progress with self-study! &gt; "one that memory system designers consistently ignore: the appropriate intervention for a “wrong” answer will vary enormously with the nature of the prompt" Love this point. It definitely applies to "simpler" domains like language learning too. I often say that if I get grammar wrong on a card, but I don't understand *why* I got it wrong, then that means it's a bad/difficult card (in the context of my knowledge—I talk about this in a post here with some examples: https://medium.com/euthyphroria/when-the-inductive-method-fails-learning-very-complex-grammar-with-anki-4ea4c4174ee4). In any domain, the epiphany we're looking for when we get a card wrong is "oh! I got that wrong—but I see why!" rather than "oh! I got that wrong! Darn, guess I'll try harder next time."

Andy Matuschak

Argh, oops, I always worry I'm going to miss one or two. Hopefully fixed now for future listeners—thanks for telling me. :)

Pavol Vaskovic

Very informative. I wasn’t even bothered to learn about how you deal with mistakes in narration by making a pause and saying “cut”, then rereading the passage. Accidental teaching and learning! Thanks!


More Creators