"it won't correct itself more than was designed for"
-- if the SM algorithm is flexible, it can correct itself a great deal.
The point is, I see no difference between a NN algorithm and the SM algorithm. They are both self-learning solutions.
where is the contradiction?
I'm sorry, my English is a bit poor - here (in quotation) by "more perfect intervals" I meant that FullRecall simply "learns" how particular user learns and optimizes repetitions just for him/her, so it's "more and more perfect" - the more one works with FullRecall, the better FullRecall is at scheduling repetitions for him/her.
It wasn't mean "more perfect than those from SuperMemo", to be precise.
(this was the "contradiction", right? Or I (yet) missed something?)
As I said - I'm not interested in SuperMemo's background algorithm, thus I cannot say for sure which algorithm (SuperMemo vs FullRecall) is better at scheduling repetitions.
SuperMemo background algorithm is complicated as hell, while FullRecall uses ANN which is very simple (well, ANN itself is not simple) but "learns itself", which is great.
FullRecall in the long-term could learn memory model of monkey, elephant, ET, or somebody who is mentally ill and has really weird memory, optimising repetinions pretty well for him, while algorithm in SuperMemo is probably not SO elastic.
Simply logic and knowledge about ANN tell us that ANN thanks to its plasticity *could* be (and IMHO is) better in long-term, once will grasp particular user memory model. To prove, or disprove it (which one will be really better in long-term) - we would have to make a test, a long one (moths, if not years), and based on many users.
SuperMemo is much better when it comes to number of features (incremental reading, multimedia, etc.), but FullRecall was developed with totally different approach in mind: to make something simple (and fast, and portable (linux/windows/freebsd)) as possible and use ANN idea, which SuperMemo World failed to realize (they tried using/implementing ANN, but without good results, IMHO because too complicated approach they took).
"FullRecall probably uses initial parameters designed for better-than-average users."
not true, just the opposite (I have very poor memory(*), and initial parameters was mainly based on my learning data)
(*) - because of BPD - kind of mental illness. in fact my poor memory was the reason I turn to use SuperMemo and I have later developed FullRecall (because of lack SuperMemo on Linux and FreeBSD, and I wanted to use ANN idea)
by-the-way, a quote from SuperMemo website:
"It has long been postulated that neural networks might provide the most sound basis for solving the repetition spacing problem in SuperMemo. Due to their plasticity, neural networks might provide the most valid way to detect the user profile and classify individual knowledge elements into difficulty classes. The algebraic solution developed by Dr. Wozniak is partly heuristic and is based on a number of assumptions that not always have a solid theoretical basis. [...]"
When somebody would ask me how to describe the difference in one sentence,I would say: SuperMemo is a self-adjusting algorithm, while FullRecall has a self-learning algorithm.
SM is paying alot of attention towards keeping the desired forgetting index/retention percentage. If you are have set your desired retention rate at 95% and the real one is at 90%, SM will keep intervals much shorter, while when the real one would be 96%, it would make next intervals significantly larger.
FR is a bit different in that respect. It knows from the past that for a similarly difficult item, you would usually still know it after 7 days, but most often forget after 9 days, so it will schedule the item for 7 days.
In other words, SM cares that you have 95% retention rate, FR cares that your item is scheduled on the most appropriate date when you still remember it but are close to forgetting it. Of course SM will care about the same as FR does, too, but it will be overridden by adjusting towards desired retention rate.
And, huh, I don't learn my English from neither of those, just other stuff, so neither SM nor FR to be blamed for it :).
Now, I don’t know much about the way Supermemo and FullRecall work internally. I mean: I don’t know much about Supermemo’s algorithm and FullRecall’s ANN. But reading the following sentences that describe FullRecall, I don’t see any difference in how FullRecall and Supermemo works from the outside, on the surface that is:
“[…] FullRecall simply "learns" how particular user learns and optimizes repetitions just for him/her […]”
“[FullRecall] it's "more and more perfect" - the more one works with FullRecall, the better FullRecall is at scheduling repetitions for him/her.”
“ANN also gets some data (e.g. number of repetitions, grade, and so on), and returns next optimal interval it computed.”
One could change the word “FullRecall” in these sentences with the word “Supermemo”, and “ANN” with “Supermemo’s algorithm” and I couldn’t spot that we are talking about another piece of software.
I think the two programs work in different ways perhaps when it comes to a software developer’s perspective, but they work in the same way when it comes to the user’s experience.
"FR is a bit different in that respect. It knows from the past that for a similarly difficult item, you would usually still know it after 7 days, but most often forget after 9 days, so it will schedule the item for 7 days"
AFAIK, SuperMemo tries to estimate the probability that you will still remember an item after X days. Then it chooses the interval according to your chosen Forgetting Index. If FI = 10%, it will set the review date to the day when you have a 90% chance of remembering the item. If you choose FI = 5%, it will set the review date to an earlier day.
If FullRecall doesn't have a parameter similar to FI, then SuperMemo would seem to be a more sophisticated solution.
BTW: How big is the NN used by FullRecall?
>>I think the two programs work in different ways perhaps when it comes to a software developer’s perspective, but they work in the same way when it comes to the user’s experience.
I don't think so. From what David is writing it looks as if FullRecall is able to adapt to each individual's memory in a unique way whereas Supermemo is only capable of doing that in a very limited way. As stated above it seems as if Supermemo is having problems with the repetition spacing which in fact haven't been solved yet. And it also looks as if Supermemo's algorithm is more or less based on assumptions but without enough theoretical background.
My view is that each individual is unique including his/her memory capabilities. As such repetition intervalls can be very different. (*) And as a result you would need an endless number of different algorithms to create optimum repetition spacing for each individual but which isn't possible this way.
I am not saying that Supermemo doesn't work. However, to me David's approach of applying neurol network technology instead seems to be much better suited to overcome this problem. At least in theory. And it shouldn't be so difficult to scientifically prove the superiority in effectiveness of FullRecall if it really works:
Why not get 2 volunteering testgroups of similar demographical background (eg. students within a certain range of age and no prior knowledge of the study material) and let them learn and memorize new material under standardised conditions:
eg. let both of them learn 10000 finnish words within 1 year whilst using a fixed amount of time for learning and memorizing each day - one group using and applying spacing intervalls of Supermemo and the other one using and applying spacing intervalls of FullRecall. No further learning (such as reading finnish books or listen finnish radio etc.) allowed.
After 1 year, a test would be made to compare the resulting retention rates of the 2 groups.
(*) David, for a better understanding of the possible differences between Supermemo and FullRecall:
as you have used both programmes - can you give us some real-world examples how the repetition spacing in your case was in the past/ would be if you learnt and memorized English words
a. with Supermemo
b. with FullRecall
"From what David is writing it looks as if FullRecall is able to adapt to each individual's memory in a unique way whereas Supermemo is only capable of doing that in a very limited way."
David did not say this. He said his NN is "probably more elastic". He also mentioned that he hasn't studied the algorithm of SuperMemo.
For all we know, SuperMemo might contain the equivalent of a neural network in its algorithm.
"And as a result you would need an endless number of different algorithms to create optimum repetition spacing for each individual but which isn't possible this way."
That's why algorithms use a thing called "variables".
Besides, a NN is an algorithm, too, you know.
Tom, not always is it necessary to study the algorithm in all details - sometimes it is better to study the general approach to come to conclusions.
Just to repeat that David quoted from Supermemo's website (!) that Supermemo is obviously having unsolved problems with the repetition spacing and where it seems as if neural networks is better suited for doing this type of job.
FullRecall is based on neural network which is why - at least in theory - it should be able to yield better results than Supermemo, i.e. either:
a. in getting a higher retention rate by using the same amount of time for memorizing or
b. in using less time when getting the same retention rate
In order to prove this claim I suggested to have an objective testing done. (Maybe as part of a thesis that could also include other systems such as Leitner's). I believe this way it would be possible to objectively evaluate whether and which memorization system isin fact the most efficient one; also, how big the difference would be.
From my limited knowledge of neural networks, I'd say the overall algorithm merely simulates the neural network. So you could say that the algorithm actually being utilised is the one implicit in the 'neuron' weightings. These weightings are constantly adjusted, which implies that the algorithm in use evolves. This is quite different to using a fixed algorithm which only changes its parameters.
Which is not to say its always better. You probably wouldn't use a neural network to do spreadsheet calculations. But neural networks are modelled on biological neurons, so maybe they're better for programs that deal with human learning.
you are right that "If FI = 10%, it will set the review date to the day when you have a 90% chance of remembering the item. If you choose FI = 5%, it will set the review date to an earlier day.". However in my experience, there is other significant factor involved, and it is your current/real forgetting index. Whether your current FI is higher or lower than the target FI influences the next scheduled review day significantly, as far as I have observed. Too much, for my taste. I still might be wrong as this is just an observation/feeling, no hard data to backup.
As for your idea of 2 volunteering groups, I think the goal here is not the retention rate (maybe secondary goal), but the main thing is whether it costs 10 minutes a day in one app and 30 minutes a day in second app on average. (As that is the main goal of all optimization algorithms - to save time needed to learn.)
Otherwise it is good idea, but I would consider a bit different approach: each person will test both apps, where every second word would be entered to the second app, so that the difficulty is approximately the same.
"David quoted from Supermemo's website (!) that Supermemo is obviously having unsolved problems with the repetition spacing"
You're misquoting! The article talks about "solving the repetition spacing problem". The word "problem" is used as in "mathematical problem", not as in "I have a problem with mathematics".
Besides, this is not a quote from an official SuperMemo World document. It's a quote from a paper written by a bunch of computer science students.
"These weightings are constantly adjusted, which implies that the algorithm in use evolves. This is quite different to using a fixed algorithm which only changes its parameters."
I see no difference between weights in NNs and parameters in algorithms. Perhaps you can show me the light.
This article was also written by the creator of SuperMemo (dr Piotr Wozniak) - look carefully.