Best Learning Steps for FSRS

When will the actual learning steps before graduation for newly introduced cards be incorporated into the algorithm of FSRS? I saw somewhere on the subreddit that the developers are working on it.

For the time being, how can I in some way find my optimal set of learning and relearning steps? FSRS normally takes only the first step into account, but additional steps do come into play regarding actual. retention.

I feel like these steps alongside the relearning steps after failure are crucial for long-term retention.

Here is a formula I came up with for short-term retention:
image

A suggestion I have is that learning steps can be automatically changed based on my set retention and difficulty of the card based on previous history.

@dae @L.M.Sherlock @Danika_Dakika @Expertium

It’s not planned right now.

I saw somewhere on the subreddit that the developers are working on it.

Not really. LMSherlock tried using the same formulas that we use for long-term memory to see if they provide a good fit to short-term memory, seems like the answer is “No”.

I feel like these steps alongside the relearning steps after failure are crucial for long-term retention.

Right now we have no data to support such a conclusion. On the contrary: Reddit - Dive into anything

Finally, can you explain the rationale behind your formula?

1 Like

Pretty simple math really. Firstly I took inspiration from this formula from SM-17.

So I started with this as my base formula (excuse me for my handwriting, I figured it would be easier for me to just write it all out).

But then this would give me the shape of a graph that I would not associate with what I would imagine to be the relationship between set number of intervals and retention on the next day.

However, this could be easily rectified if I just switch up the signs.

Here you can start to see the X axis could be my number of intervals and the y axis be my retention rate. It becomes asymptotic towards the end.

So here is my new formula.

So I need a constant which tries to depict my memory to work with. This cannot be achieved without actually having some data to begin with. So the more tries there is, the better. (kind of like FSRS needing at least 1000 reviews).

So I let R for example be 98% retention rate (which is absurdly high) and a set number of learning intervals be 4. The rest is just basic highschool level math.

I ended this as my memory constant. By repeating this multiple times and taking the average, it should become more accurate.I don’t know I could make this be more dynamic though.
image

Now I can go again, but this time with a constant being already present, I cannot now set my desired retention rate which then, by solving for the intervals set, would give me the number of learning steps that should be put into Anki.

image

I found this equation to be surprisingly accurate in depicting my next-day-retention. It doesn’t however tell me how I should space my steps or if they are efficient at all.

It holds up well to other simple memory curves that I made

Maybe all of this is just anecdotal, but maybe the developers could use this as an idea to begin with and start incorporating short-term-memory or learning intervals into FSRS as well.

Maybe @L.M.Sherlock, @Danika_Dakika @dae could come and have a look at this.

1 Like

I can help with many things, but not algorithm formulas. :sweat_smile:

From strictly anecdotal perspective, I have found the utility of any specific learning-step setup is impacted heavily by how focused I am during studying, whether I’m studying all in one session or across multiple, what else is impacting my energy level that day, etc. Since the intervals of the steps can’t vary dynamically (and retroactively!) based on my “study-mood” – I find it’s best just to pick a happy medium and call it good!

1 Like

I figured averaging out all of that through this constant should account for these fluctuations in mood, ability, energy etc. etc.

Can you tag people that you know whom this may interest regarding Ankis algorithm?

@Expertium @moderators @dae @L.M.Sherlock @NameLessGO Any insights

Please don’t spam ping, you pinged Dae and LMSherlock two times already before this message.

4 Likes

Could you display your formula with mathjax? It’s hard to read for me.

I don’t know to work with Mathjax, but here is a more readable version and less confusing, :sweat_smile:

Used Mathcha to rewrite in mathjax(the writing is ok, but export/screenshot them in light mode/theme)

t = x (set number of intervals) from the image above, forgot to change the variable

Pretty simple math really. Firstly I took inspiration from this formula from SM-17.


Source: Algorithm SM-17 - supermemo.guru

So I started with this as my base formula (excuse me for my handwriting, I figured it would be easier for me to just write it all out).

image

But then this would give me the shape of a graph that I would not associate with what I would imagine to be the relationship between set number of intervals and retention on the next day.

However, this could be easily rectified if I just switch up the signs.

Here you can start to see the X axis could be my number of intervals and the y axis be my retention rate. It becomes asymptotic towards the end.

So here is my new formula.

image

So I need a constant which tries to depict my memory to work with. This cannot be achieved without actually having some data to begin with. So the more tries there is, the better. (kind of like FSRS needing at least 1000 reviews).

So I let R for example be 98% retention rate (which is absurdly high) and a set number of learning intervals be 4. The rest is just basic highschool level math.

I ended this as my memory constant. By repeating this multiple times and taking the average, it should become more accurate.I don’t know I could make this be more dynamic though.
image

Now I can go again, but this time with a constant being already present, I cannot now set my desired retention rate which then, by solving for the intervals set, would give me the number of learning steps that should be put into Anki.

image

I found this equation to be surprisingly accurate in depicting my next-day-retention. It doesn’t however tell me how I should space my steps or if they are efficient at all.

It holds up well to other simple memory curves that I made

Maybe all of this is just anecdotal, but maybe the developers could use this as an idea to begin with and start incorporating short-term-memory or learning intervals into FSRS as well.

1 Like

Do you mean the Retention is the retention of the next day? I don’t know how to calculate the retention for each step with your formula.

Yeah like if I repeated each piece of information a certain amount of times, what would my predicted retention of those pieces of information turn out to be the day after.
image

So for example, my learning steps are 1s 5min 30min 2h

That is 4 steps.
So my x in this equation is 4

The constant k however depends on YOUR memory strength, which means I have to get a first run of your reviews to find out what k is.

So for example, with x being my number of steps set as 4,
I reviewed my graduated cards the next day, and my retention turned out to be 85%. (R=85/100=0.85)

Put your R and x into the equation.
image

After solving the equation for k, k becomes:
image

This would try to depict my memory state and average difficulty for your cards for that particular day. Now obviously short-term-memory being much more unpredictable, you need to do this multiple times with more sets of data of yours. (you need to have kept a record of next-day-retention. Anki does not have this automated, yet at least)

Now that I have found my OWN k, I can now put it in the equation to try and predict the retention for different numbers of steps, which is the main point of this equation
image

So what if for example, what would happen if I used only three learning steps.
image

It predicts that
image

My retention rate would drop down to appox. 76%

This can be used in a different way. For example, how many learning steps do I need to achieve a 90% retention the next day.

image

image

About 5 learning steps it is.

And that should be about it. I would like for the devs to try it. It is a simple formula and I am not math graduate or anything. I just found that it somehow works. Maybe the devs could use it as a starting point to try and incorporate short-term-memory into Anki as well.

I’m doing some related research on short-term memory. Here is the code and dataset. Maybe you can use them to check your idea.

Woah this is massive. Problem is I dont know how much about coding so I cannot test it…
One thing I forgot to mention is, that this equation can be shifted into a forgetting curve as well.
It is a simple
image
using the same k as before.

Here is how it would like, withy y=1 being a 100% recall probability and x being units of time.

And it does look similar to many forgetting curves I found in your folders.

image
image
image

I am not sure if I can test it though. Maybe someone else can?

Also, how does FSRS deal with newly introduced cards that have failed to be recalled by the user? I sometimes see different graduation steps. How does FSRS differentiate, when it can only take the first learning step into account?

1 Like

For real though. You have now pinged dae and Sherlock 4 times in this thread despite being asked not to before. It’s not polite.

Unless a user actively opts out they will be notified about new posts in a thread they have participated in. If they want to follow this thread they already have every opportunity to do so without you pinging them.

1 Like

Point taken. My bad. I am new to this forum

1 Like

It doesn’t differentiate. The stability of good,good in intraday learning steps is equal to the stability of good,again,good,good in intraday learning steps.

1 Like

But wouldn’t it be more accurate if the other steps were also taken into account? What is the reasoning behind this?