-
-
Notifications
You must be signed in to change notification settings - Fork 139
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
FSRS like to optimize parameter 7 to 0.0 #695
FSRS like to optimize parameter 7 to 0.0 #695
Comments
Could you reproduce it in 50%+ cases? |
I think it's better to benchmark it on Anki 20k. |
Currently tested on 5 decks in Anki beta 2 and it improved it for all my decks.
|
@L-M-Sherlock we've talked about this before, and ran these kinds of benchmarks before. The conclusion here is the same - clamping barely affects the metrics. So it just comes down to preferences - do we want D to always change if the user pressed Good, even if it's a small change? I'd say yes. |
In principle, I like the suggestion, but experience suggests otherwise. In 20d2dae, L-M-Sherlock used 0.05 as the minimum value for this parameter. (It was called w[5] at that time.) But, using 0.05 as the minimum limit with my collection, not only made RMSE worse, but also increased the workload (parameters calculated with the new limit on exactly the same collection gave me a backlog of 900 extra cards). First reported in #342 (comment) L-M-Sherlock gave this explanation for the issue:
To fix the issue, he decreased the lower limit back to 0. I advised using a small but non-zero lower limit (such as 0.0003) His response was that such a low value won't result in any appreciable mean reversion and, thus, is no better than using 0.
|
Value 0.05 is way too high as in my N=1 case and small benchmark value of about 0.01 or close to it makes the difficulty scale and either improves RMSE or barely changes it. |
That's extremely weird, considering that the benchmarks show that the difference in RMSE between clamped w7 and unclamped is <1% |
My noob idea is do it both clamped and unclamped when that parameter is 0.0 and keep the params that are better but of course, you can deliberate on a better solution. |
@Expertium |
I don't know what you mean |
It's likely an extreme case. According to the benchmark, there are 50% users whose w[7] is less than 0.02. And 0 is the mode value of w[7]: |
That's what the OP is also saying. We want to find out the value that is the most optimal, not the value that the optimizer is most likely to produce. So, if using 0.01 (or maybe 0.005) as the lower limit of w[7] improves the RMSE for most users, we can consider that. |
I have tried w[7] >= 0.01 and w[7] >= 0.005, they both increased RMSE. So I decide to use 0.001. |
if you mostly want lowest RMSE and trust the gradient descent you can remove the clipper completely and you will improve all metrics by a bit, then w[7] most optimal value is actually negative
|
It's useful because the RMSE will increase significantly if I remove difficulty from the formula. |
I tried the newest optimizer with linear damping and it shifts the most optimal value of w7 even more into the negatives
|
But, your results show that the RMSE becomes worse when the clipper is removed. This brings me to the second point.
For such a complex model, we can't trust gradient descent fully. Finding the global minimum is probably not possible. So, we need to implement some rules to ensure that the results are as expected. The parameter clipper is one of those. |
For discussion about the difficulty variable and formula, please continue in #352 or open a new issue to propose your idea. |
FSRS 5 even more than 4.5 likes to optimize parameter 7 which also disables difficulty decay to 0.
Even manually changing the parameter after optimization results in better log loss and rmse(bins).
Probably needs more testing in benchmark, but setting minimum at about 0.0100 would fix this issue and improve the fit to data.
The text was updated successfully, but these errors were encountered: