brjathu / iTAML

Official implementation of "iTAML : An Incremental Task-Agnostic Meta-learning Approach". CVPR 2020
96 stars 16 forks source link

Something strange in the Algorithm 1.. #12

Closed hhhusiyi-monash closed 4 years ago

hhhusiyi-monash commented 4 years ago

Hi Jathushan,

Thanks for your awesome work. Though I have a quesion in your paper. In Page3 Algorithm 1, line 3, we should do 'e iteration' on task '[1,t]' to update the model parameters. It confused me that under the setting of life long learning or we say incremental learning, the old task data except that were saved in Memory before is forbidden to use again once we train the model on the new task. e.g. When task k was about to train to update the parameters, the data from task 1 to task k-1 should never be used again except exemplar that was stored in Memory before. If we could do iteration on the old tasks or old data other than exemplar data, the training method should belong to Joint Training but not Life long learning anymore. Wonder if i miss something and could you explain that for me pls?

Best. C

brjathu commented 4 years ago

We do not use all the previous data, we only use a small subset in the memory as in previous works.

Yes, for e iterations, we train [1,t] models. That means for each e iterations, we train separate t models, using new data and memory. Sorry if it was confusing.

In line 3, The mini-batch is sampled from the new data D(t) and the memory buffer M(t-1) for the previous tasks. So the inner loop update is done, only using the new data and memory buffer.

Also, you can see from Figure 2, the training data is the union of new data and the memory buffer.

I hope this answers your question, feel free to reach me if you have any question :)

hhhusiyi-monash commented 4 years ago

Got it and thanks for your reply.

Here is another question, same in Algorithm 1 line 13. I notice that if the line 13 is in outer loop, then variable 'i' will be constant equal to 't'. Is that right? and that means the final parameter is the combination of several(e) model parameter (with same training procedure in e iteration, and i think the inner loop is almost a standard incremental learning procedure) . So i guess the outer loop may serve as an ensemable procedure (and we know 'esemable learning' can improve the model performance a lot)? Wonder if i miss something again and could you explain that for me pls?

Best C

brjathu commented 4 years ago

Thanks, well ensemble is usually take the weighted average of the predictions. Here we don't do like that, outer loop update is a avarage of the model weights, not predictions. It's similar to the reptile algorithm.

hhhusiyi-monash commented 4 years ago

Understand. Thank you for your prompt and accurate reply.