-
-
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
[Feature Request] Keep delta_t as floats #437
Comments
This obviously won't affect the scheduling as it is impossible to schedule a card at a specific time of a day, but it might improve accuracy of Originally posted by @nb9618 in #429 (comment) |
And the scheduler also only knows the elapsed days, which is an integer. |
But things are changing. When the scheduler will get integrated into Anki's rust backend, several limitations would be removed. I realise that all this would not happen very soon. But, while discussing things like this one, we should think of the long term. |
I wonder whether it's really that useful, as once intervals grow above a few days, the fractional part is rather meaningless. For the training portion, revlog entries record days, so you'd need to infer the actual elapsed time based on the timestamps. For reviewing, the way the code is currently structured, only days are available to the scheduler. |
I was thinking about how to differentiate between in-day and inter-day reviews when the information about day boundaries is not available. The easiest solution would be to pick a cut-off point, e.g. 12 hours, where any pair of reviews with the timestamp difference between them less than this point would be considered as having happened within the same day. There would be always a chance of misinterpreting corner cases, e.g. considering a review in the morning and then after 12 hours in the evening as having happened on different days, or a review late in the evening and then on the next day, in the early morning, as having happened on the same day. Depending on the chosen value of this point, the probability of these outcomes will change. A more complicated approach would be to define something like an S-curve (note: here I mean the shape of the curve, and it has no relation to As a side note, I'm now convinced that with implementing float delta_t's there would probably be no significant improvement on the prediction accuracy for small stabilities, and taking into account the fact that the optimizer is now built into Anki, the only benefit of this change that I see is that it will improve calculation of memory states for people who change time zones. |
The performance becomes worse. |
That's very strange. I wouldn't be very surprised if it was the same, but worse? That's unexpected. |
Sorry, I make a mistake in the pretrain stage. float delta_t is incompatible with the current pretrain implementation. So I round the delta_t in the pretrain stage. The final result is:
Only RMSE(bins) is improved slightly. |
I think it is not very strange. Because the memory consolidation and forgetting mainly happen during sleep. |
Weighted by number of reviews
Weighted by ln(number of reviews)
It doesn't improve the performance to keep delta_t as floats. I think it's OK to close this issue. |
Originally posted by @nb9618 in #429 (comment)
The text was updated successfully, but these errors were encountered: