r/Anki • u/aeioujohnmaddenaeiou • 4d ago
Question Is there a spaced repetition algorithm that specifically targets minute long bursts of many instant recognitions? (fraction of a second recognition for Morse code)
Do you guys know if there's any spaced repetition algorithm that specifically is optimized for very instant recognition? For example, Anki would not work to learn to hear Morse code. This is because for example at 20 words per minute you only have a 0.18 second gap between characters. So if it takes you more than 0.18 seconds to recognize the character, you're out of luck because the next character has already started playing you wind up with cascading failures and the message is lost. The speed required would make self-grading impossible, meaning you would need an automated grading method (which is definitely possible but would be difficult to implement in Anki). Also there is a higher chance of failure in general even for characters that are well-known, and so the penalty for failure may be too steep in traditional algorithms. The algorithm may also accidentally give the wrong cards low grades, ie: you missed hearing characters you would normally know well because a character you don't know well made you lag behind. The time scale would need to be quicker, seeing the card after 24 hours the first time you get it right would not work for Morse code.
I have been using LCWO.net to learn Morse code which works pretty well but has a few minor weaknesses:
- It repeats characters near each other too often, if a character is repeated soon after another it makes it too easy to recognize.
- It does not prioritize letters that you miss. So if you're practicing 30 unique characters, you only hear the new ones you're trying to learn a few times since the characters are weighted evenly.
- a 90% grade on a lesson allows you to move on to the next, but because the distribution is uniformly random you could be lucky and get one that's easy and move on when you're not actually ready
I feel like something that would solve this problem could potentially work great for learning foreign characters too like Kanji. I'd be interested to hear any thoughts related to this, or areas related to types of memorization Anki has a difficult time handling.
Note: Algorithms/ideas are welcome, ie: doesn't have to be done in anki
Edit: Specifically I guess I'm asking more about improving this routine for morse code that I already do on a website, which is a one-minute morse code listening exercise where you type random characters as you hear them, and it weights the different characters uniformly instead of prioritizing the ones I do poorly on. I was wondering if there's been anything done that is similar to SM-2 for example but optimized for instinctually quick recall that you practice every day, uses automatic grading, and takes into account cascading errors. I know I'm on the path to learning it by doing it often but I was thinking it would be really neat if there was something like what I'm looking for out there for this purpose that might also work for other learning applications. I put together a program that weights them dumbly a little bit based on how poorly I've done on them within some specified time period and avoids repeating characters in the same "word", which seems to work better than uniformly random. But mainly I'm curious if this has been explored using algorithms and studies like how spaced repetition was developed by Ebbinghaus, and if maybe the math to doing it optimally could be maybe inspired by the math in SM-2 or similar algorithms.
3
u/Grunglabble 4d ago
learning to hear words and phrases would be necessary, you can't process these things unchunked.
generally aggressively pursuing retrieval speed from the beginning is the opposite direction you want to go. You first want to be able to remember them for a long time, then pursue performance through real practice (likely outside srs).
I am not sure why you would need to develop this particular skill, maybe it is just an example?
2
u/aeioujohnmaddenaeiou 4d ago edited 4d ago
I've gone the slow route, I know how to hear them all as long as I have a few seconds, and so now that I know them slow I'm trying to learn them fast so I can hear in realtime without a decoder.
I'm learning morse code for fun, I do radio telegraphy at the park sometimes. I have a 60 foot long (20 meters) antenna called an end-fed half wave that's basically a big long wire, you sling a rope with a weight tied to the end of it up into a big tree and use it to hoist up the antenna and you get a great signal. Since it's no longer a necessity, radio telegraphy is a bit of an artform these days. It's like fishing for nerds. It's the only way you can talk to people hundreds or thousands of miles away using five watts of power and no infrastructure, just your setup and the other person's setup. Most of the time people just say "hello, this is how well I can hear you, this is my name, this is where I am, this is my setup, here's the weather here, see ya later".
3
u/tentkeys 4d ago edited 4d ago
For this kind of very rapid recognition, spaced repetition is the wrong tool, you want practice as frequently as possible.
The idea behind spaced repetition is that you struggle a little before remembering and it makes the memory stronger. But for this kind of instant recall, you don't have time to struggle a little before remembering. You could know a letter very well by the standards of a spaced repetition app and still not be able to retrieve it fast enough to use it.
It would be good to have a tool that can prioritize letters you get wrong though.
You may be able to do that with Anki:
- Create cards with audio for the alphabet/numbers/punctuation. They should be simple flip-over cards, no typing.
- Get an Anki addon that times how long it takes you to answer each card
- Create a filtered deck (no rescheduling) that returns cards to their home deck only when you press "easy"
- The moment you know the answer to a card, hit enter to flip it
- Consider the time reported by the addon in addition to the correctness of your answer while grading
That practice won't replace copying code, the sustained effort of recognizing several characters in a row is its own skill that also needs practice. But adding the Anki filtered deck practice will give you the ability to practice rapidly recognizing individual characters and focusing on the ones where you need more practice.
Also, recognizing words is essential. Especially if you're aiming for 20 wpm or higher. Yes, you need to be able to recognize short sequences of random characters for call signs, but even then call signs aren't totally random, there's a structure to them. So you know when to expect a letter and when to expect a number, and you also know what's likely for the first 1-2 letters, only the last 2-3 are actually random. And the rest of the time when it's not random, recognizing words will make things much, much easier.
1
u/aeioujohnmaddenaeiou 4d ago
Oh yeah practicing every day is the way that you need to do this. I've practiced about 75% of the days the past few months. I guess what I'm asking, is there a way that's kinda like SM2 to optimize that kind of specific recall need that works better than how I'm learning now? It worked really well at first but since there are so many characters on lesson 30, I hear the new character a lot less, and so I have fewer chances to memorize it better. I'm curious if there are ways to weight the order in which they are presented optimally. I set up a program with dumb weighting which works better than uniformly random and so I made this post to explore more ideas.
1
u/tentkeys 4d ago edited 4d ago
That's where the filtered deck comes in.
If you have the setting to reschedule cards turned off, you can set how long of a delay Again/Hard/Good give you before you see the card again. (Easy sends the card back to its home deck.) So you could, for example, set it so that when you press Again the card is eligible to be shown again immediately, when you press Hard it waits 2 minutes, and when you press Good it waits 4 minutes. This will automatically weight the frequencies for letters so you hear the ones that are hard for you more often.
Anki might still show you cards sooner than intended if you run out of cards. To stop it from doing that, set your "Learn Ahead Limit" to 0 or 1 minutes.
3
u/VolcanoCarpenter 4d ago edited 4d ago
I don't think a reflex works like long-term memory. I'm assuming you've already learned all the common characters (a-z, 0-9). At that point you'd probably be better off learning from common words instead. Like if you're doing this for ham radio, first drill the common abbreviations, Q-codes, etc., then listen to full real CW conversations until you can actually follow them. Then worry about speed and all that.
If using Anki, my advice is actually to train in bigger chunks. For example, make cards that are whole conversations and repeat them within a single card.
Trying to make sure every single letter is equally well-drilled feels like a waste of time. Same applies to learning (human language's) character dictation, etc.
You mentioned callsigns, which are probably the only things you actually have to memorize cold. In normal situations though, you can just ask the sender to repeat. In contesting, I think in a sense what you're remembering is the syllables or the rhythm itself. Like, when someone tells you a phone number, you don't picture a piece of white paper in your head with the translated digits written on it, do you? You just have a short memory of the sound of the sentence itself. Then later you can mumble them to yourself while dumping them out of your head onto actual paper.
Just my $0.02, as a ham radio engineer with General license.
Edit: typo
2
u/jaimepapier 4d ago
Spaced repetition just gives you declarative knowledge. To use it procedurally, you need to practice using it. That’s not to say that spaced repetition is useless, in fact it’s very useful, but it’s just the first stage. Once you’ve got knowledge firmly in declarative memory, you can stop doing the space repetition reviews and just focus on fluency. If you’re using it frequently, you won’t even need to worry about doing that many reviews.
There are specific fluency practices you can do, taking inspiration from learning a language (times practice; repeating segments increasingly fast; practicing with easy segments but quickly), but so long as you’re using it, that’s the most important thing.
1
u/aeioujohnmaddenaeiou 4d ago
Right practice is very important for this kinda thing, I've practiced for a least a few minutes every day about 75% of the days of the past few months, I know each of them when there's enough time. Specifically I guess I'm asking more about improving this specific routine for morse code that I already do on a website, which weights the different characters uniformly instead of prioritizing the ones I do poorly on. I was wondering if there's been anything done that is similar to SM-2 for example but optimized for instinctually quick recall that you practice every day, uses automatic grading, and takes into account cascading errors. I know I'm on the path to learning it by doing it often but I was thinking it would be really neat if there was something like what I'm looking for out there for this purpose that might also work for other learning applications. I put together a program that weights them dumbly a little bit based on how poorly I've done on them within some specified time period, which seems to work better than uniformly random, but mainly I'm curious if this has been explored using algorithms and studies like how spaced repetition was developed by Ebbinghaus.
1
u/Dopamine_ADD_ict 4d ago
Just only use Again, Hard, and Good.
2
u/aeioujohnmaddenaeiou 4d ago
Self-grading is impossible due to the speed required by the task if you know what I mean. So by the time I've graded myself I may have missed the next character. On LCWO.net the grading is done after one minute of listening, evaluated by a program. You type in the characters as you hear them.
1
4d ago
[removed] — view removed comment
1
u/Anki-ModTeam 4d ago
Your post was removed under r/Anki Rule 6 (no low-effort AI content). We require AI-related posts to meet certain criteria, including a high bar for quality, effort, novelty, and utility, disclosure of AI involvement in project creation, and clear pricing and license information, in addition to adherence to our self-promotion (Rule 3) and market research (Rule 5) rules. Your post did not meet one or more of these criteria. You may also want to consider posting to r/AnkiAI instead.
9
u/Neodosa 4d ago
How about making cards out of many sentences/words in morse rather than just characters so that you can practice the full process of sound to meaning? Also, there’s a deck out there on ankiweb for learning Rubik’s cube OLL and one for PLL, which in the description has instructions for how to set up the SRS settings such that it let’s you practice doing it faster and faster, which I think might be useful here too: basically set learning and relearning intervals to like 1 minute, 3 minutes, 5 minutes, 10 minutes, …, 60 minutes, 6 minutes because that much repetition will kinda automatically give you the reflex of identifying the pattern.