Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clear confusion regarding the schedulers and algorithms.md #592

Merged
merged 7 commits into from
Jan 19, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 48 additions & 36 deletions docs/tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,125 +127,137 @@ Since the tool is experimental, it is better to use your intuition to come up wi

# FAQ

Q1: Which platforms support FSRS?
Q1: I am confused about v2, v3, FSRS v4, etc. Can you explain what's the difference?

A1: As of December 2023, FSRS is supported in the desktop version (Windows, Mac, and Linux), in AnkiWeb (browser version), and in AnkiMobile (iOS). AnkiDroid (Android) doesn't support FSRS yet, but you can use FSRS if you switch to the alpha version.
A1: v2 scheduler (algorithm: SM2): this is the old Anki scheduler, not supported in Anki 23.10 or newer.

v3 scheduler (algorithm: SM-2 or FSRS): this is a new scheduler for Anki. It handles the order of cards, timezones, and some deck options differently. It does not change the formulas that are used to calculate interval lengths.

SM-2: a simple 30-year-old algorithm developed by Piotr Wozniak, the creator of SuperMemo. Due to its simplicity, it's quite popular and is still used in flashcard apps to this day. It's the default Anki algorithm.

FSRS, or Free Spaced Repetition Scheduler: an open-source algorithm that combines machine learning techniques with universal memory formulas. It has recently been integrated into Anki as an alternative to SM-2. The v3 scheduler must be enabled in order to use FSRS. There are two versions of FSRS: FSRS v4 and FSRS-4.5. They have the same number of parameters, but the shape of the forgetting curve has been changed. All *newest* versions of Anki use FSRS-4.5, but some older versions, such as Anki 23.10, use FSRS v4.

***

Q2: Which platforms support FSRS?

A2: As of December 2023, FSRS is supported in the desktop version (Windows, Mac, and Linux), in AnkiWeb (browser version), and in AnkiMobile (iOS). AnkiDroid (Android) doesn't support FSRS yet, but you can use FSRS if you switch to the alpha version.

If you are using AnkiDroid and don't want to use the alpha version, you can enable the "auto-reschedule after sync" option in the FSRS helper add-on on your Desktop. This way, when you sync your reviews from AnkiDroid to Desktop, they would be automatically rescheduled according to the FSRS algorithm. For best results, it is recommended to sync the reviews daily. Keep in mind that if you use this option, you will need to make a full sync from AnkiWeb once you update to the new version of AnkiDroid with built-in FSRS.

***

Q2: Does FSRS change the way the card's ease changes?
Q3: Does FSRS change the way the card's ease changes?

A2: Anki's built-in ease factor doesn't affect anything once FSRS is enabled. This is also why a lot of settings, such as Starting Ease, are hidden once FSRS is enabled.
A3: Anki's built-in ease factor doesn't affect anything once FSRS is enabled. This is also why a lot of settings, such as Starting Ease, are hidden once FSRS is enabled.

***

Q3: Once I started using FSRS on my existing deck, if I ever wanted to go back to using Anki's built-in algorithm for the same deck, would that still be possible?
Q4: Once I started using FSRS on my existing deck, if I ever wanted to go back to using Anki's built-in algorithm for the same deck, would that still be possible?

A3: Yes, just turn FSRS off. However, the intervals will not change after turning off FSRS.
A4: Yes, just turn FSRS off. However, the intervals will not change after turning off FSRS.

***

Q4: I'm sure I have >1000 reviews, yet when I try to optimize parameters for my preset, I get an error telling me that I don't have enough reviews. Is that a bug?
Q5: I'm sure I have >1000 reviews, yet when I try to optimize parameters for my preset, I get an error telling me that I don't have enough reviews. Is that a bug?

A4: FSRS only takes into account one review per day. If you review a card multiple times per day, only the chronologically first review will be used by the optimizer. Also, if your deck has subdecks, ensure that the preset is also applied to the subdecks, not just to the parent deck.
A5: FSRS only takes into account one review per day. If you review a card multiple times per day, only the chronologically first review will be used by the optimizer. Also, if your deck has subdecks, ensure that the preset is also applied to the subdecks, not just to the parent deck.

***

Q5: My first interval is too long! Is this normal?
Q6: My first interval is too long! Is this normal?

A5: In short, giving long first intervals is one of the strengths of FSRS. Don't be surprised if your first interval for "Good" is close to a week and your first interval for "Easy" is several weeks long. Read further for a deeper explanation:
A6: In short, giving long first intervals is one of the strengths of FSRS. Don't be surprised if your first interval for "Good" is close to a week and your first interval for "Easy" is several weeks long. Read further for a deeper explanation:

For many users, the default algorithm (SM-2) tends to show new cards at unnecessarily short intervals. So, when users switch to FSRS, they tend to feel that the intervals given to new cards are too large. But these larger intervals match the desired retention better. By using these larger intervals, FSRS can prevent many of the unnecessary reviews that happen when using SM-2. So, it is advisable to try using these larger first intervals for a few days and see how it goes. It's worth mentioning that for mature cards, the opposite is true: FSRS is more conservative than SM-2.

If you still want to decrease the intervals, you can increase your desired retention. But note that this will decrease all the intervals, not just the first intervals.

***

Q6: Suppose I have a parent deck with its own preset, and each subdeck has a different preset. When I click on the parent deck to review a card that came from a subdeck, will the parameters of the preset of the parent deck be applied to the card, or the parameters of the preset of the subdeck that this card came from?
Q7: Suppose I have a parent deck with its own preset, and each subdeck has a different preset. When I click on the parent deck to review a card that came from a subdeck, will the parameters of the preset of the parent deck be applied to the card, or the parameters of the preset of the subdeck that this card came from?

A6: The latter. Simply put, if you have something like ParentDeck::SubDeck, and the card came from the subdeck, the parameters of the preset corresponding to the subdeck will be applied.
A7: The latter. Simply put, if you have something like ParentDeck::SubDeck, and the card came from the subdeck, the parameters of the preset corresponding to the subdeck will be applied.

***

Q7: I only use "Again" and "Good", will FSRS work fine?
Q8: I only use "Again" and "Good", will FSRS work fine?

A7: Yes. In fact, FSRS is actually more accurate for people who rarely use "Hard" and "Easy" than for people who use all 4 buttons a lot.
A8: Yes. In fact, FSRS is actually more accurate for people who rarely use "Hard" and "Easy" than for people who use all 4 buttons a lot.

Also, unlike SM-2, FSRS doesn't suffer from the problem of "Ease Hell". This problem is solved by mean reversion of difficulty. If you press good continuously, the difficulty will converge to $D_0(3)$. For more details, read [The Algorithm](https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm).

However, note that you should not change your rating habits. This is because FSRS uses your past rating history to determine optimal intervals for your future reviews.

***

Q8: How can I grade the card to make FSRS more effective?
Q9: How can I grade the card to make FSRS more effective?

A8: The grade should be chosen based only on how easy it was to answer the card, not how long you want to wait until you see it again. For example, if you habitually avoid the easy button because it shows long intervals, you can end up in a negative cycle: you'd be making the "easy" situations even rarer, and "Easy" intervals will become longer and longer. This means you should ignore the intervals shown above the answer buttons and instead focus on how well you recall the information.
A9: The grade should be chosen based only on how easy it was to answer the card, not how long you want to wait until you see it again. For example, if you habitually avoid the easy button because it shows long intervals, you can end up in a negative cycle: you'd be making the "easy" situations even rarer, and "Easy" intervals will become longer and longer. This means you should ignore the intervals shown above the answer buttons and instead focus on how well you recall the information.

It's also very important to not press "Hard" when you forget a card. Press "Again" if you forgot it, and press "Hard" only if you recalled it after a lot of hesitation.

If you still want to see a deck sooner rather than later, for example because you have an exam coming up, you can use the Advance function of the Helper add-on. Advance is the preferable method because it doesn't skew the grading history of the cards.

***

Q9: How can I confirm that FSRS is working?
Q10: How can I confirm that FSRS is working?

A9: Review a new card, remember what intervals you saw above the answer buttons. Undo review. Now set the desired retention either to 0.99 (maximum) or to 0.7 (minimum), and review the card again. You should see different intervals. Alternatively, download the [Helper add-on](https://ankiweb.net/shared/info/759844606) and enable "Display memory state after answer".
A10: Review a new card, remember what intervals you saw above the answer buttons. Undo review. Now set the desired retention either to 0.99 (maximum) or to 0.7 (minimum), and review the card again. You should see different intervals. Alternatively, download the [Helper add-on](https://ankiweb.net/shared/info/759844606) and enable "Display memory state after answer".

***

Q10: Is it better to use the same parameters for all my cards or use different presets with different parameters?
Q11: Is it better to use the same parameters for all my cards or use different presets with different parameters?

A10: The answer to this question depends entirely on how similar your material is. For example, if you are learning Japanese and geography, it is recommended to use two different presets with different parameters. If you have two decks with Japanese vocabulary, you should use the same preset for both of them.
A11: The answer to this question depends entirely on how similar your material is. For example, if you are learning Japanese and geography, it is recommended to use two different presets with different parameters. If you have two decks with Japanese vocabulary, you should use the same preset for both of them.

***

Q11: How often should I re-optimize parameters?
Q12: How often should I re-optimize parameters?

A11: Once per month should be more than enough.
A12: Once per month should be more than enough.

***

Q12: What will happen if I review my cards on a device where FSRS is not supported (or disabled) and then on another device where FSRS is enabled?
Q13: What will happen if I review my cards on a device where FSRS is not supported (or disabled) and then on another device where FSRS is enabled?

A12: Your intervals will become inaccurate, but it won't corrupt your cards and make them unusable. It will just make FSRS bad at what it's supposed to do: maintain your retention at a specified level.
A13: Your intervals will become inaccurate, but it won't corrupt your cards and make them unusable. It will just make FSRS bad at what it's supposed to do: maintain your retention at a specified level.

***

Q13: Does FSRS take into account delays?
Q14: Does FSRS take into account delays?

A13: Yes, it does. In FSRS, a delay in reviewing (i.e., overdue reviews) affects the next interval as follows:
A14: Yes, it does. In FSRS, a delay in reviewing (i.e., overdue reviews) affects the next interval as follows:

As the delay increases, retrievability (R) decreases. If the review was successful, the subsequent stability (S) would be higher. However, instead of increasing linearly with the delay like the SM-2/Anki algorithm, the subsequent stability converges to an upper limit, which depends on your FSRS parameters. For details, see [The Algorithm](https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm).

***

Q14: Does FSRS take into account the time that I spend reviewing a card?
Q15: Does FSRS take into account the time that I spend reviewing a card?

A14: No, FSRS only needs interval lengths and grades. However, the amount of time you spend on reviews is used when calculating optimal retention using the "Compute optimal retention (experimental)" feature.
A15: No, FSRS only needs interval lengths and grades. However, the amount of time you spend on reviews is used when calculating optimal retention using the "Compute optimal retention (experimental)" feature.

***

Q15: My log loss and RMSE are extremely high, how do I fix this?
Q16: My log loss and RMSE are extremely high, how do I fix this?

A15: There is no way to fix that, the only thing you can do is keep doing reviews. FSRS is more accurate for people who have a lot of data.
A16: There is no way to fix that, the only thing you can do is keep doing reviews. FSRS is more accurate for people who have a lot of data.

***

Q16: Why my retention in young cards is significantly lower than mature cards?
Q17: Why is my retention of young cards significantly lower than my retention of mature cards?

A16: When your cards' stability is very low, the best interval should be shorter than 1 day. But Anki doesn't allow the long-term interval shorter than 1 day. So the retention of young cards would be lower than mature cards.
A17: When your cards' stability is very low, the best interval should be shorter than 1 day. But Anki doesn't allow cards that are in the "review" phase to have intervals shorter than 1 day, only cards in the "learning" or "relearning" phase can have such short intervals. As a result, FSRS ends up giving you suboptimal intervals that are too long.

For more details, please this post: https://www.reddit.com/r/Anki/comments/193x8kn/a_specific_case_where_fsrs_couldnt_ensure_the/
For more details, please read this post: https://www.reddit.com/r/Anki/comments/193x8kn/a_specific_case_where_fsrs_couldnt_ensure_the/

***

Q17: My retention is poor with the default parameters, and the first interval is definitely too long for me. How to solve it?
Q18: My retention is poor with the default parameters, and the first interval is definitely too long for me. How do I solve it?

A17: The default parameters are generated from 20k collections. It's a median values for 20k sets of parameters. Thus, inevitably, half of the new users will find that their retention are lower than desired, while the other half will discover that their retention exceed their desired. It's just a matter of degree. It also holds on for the default SM-2.
A18: The default parameters are generated from 20k collections. They are the median values of 20k sets of parameters. Thus, inevitably, half of the new users will find that their retention is lower than desired retention, while the other half will discover that their retention exceeds their desired retention.

If you have enough reviews (at least 1000 reviews), you can optimize FSRS for yourself. If you haven't, and the true retention is lower than your desired significantly (greater than 10%), I recommend increasing the desired retention until you have enough reviews for optimization.
If you have enough reviews (at least 1000 reviews), you can optimize FSRS parameters to personalize them for yourself. If you don't have enough reviews and the true retention is significantly lower than your desired retention, I recommend increasing the desired retention until you have enough reviews for optimization. You can check your true retention using the Helper add-on, just Shift + Left Mouse Click on Stats.

***

Expand Down