Meta Learning

时间:2024-03-15 07:50:55


Meta learning就是learning to learn,字面意思就是学会学习。想一下人是怎么学会学习的:
采用一种学习方法(比如刷题/背题/背概念等)进行学习,然后得到反馈(成绩是否提高),如果是正的反馈(成绩不断提高),说明这种学习方法是有效的。

那么神经网络是如何学会学习的呢?
采用一种学习方法(对于神经网络来说,就是模型的参数)进行学习,然后得到反馈(误差关于参数的梯度),如果是正的反馈(梯度不断变小,意味着学习效果不断变好),说明这种学习方法是有效的。

执行体就是下图中的optimizee,也就是由它采用特定的学习方法进行学习,每种学习方法就对应着不同参数的optimizee模型,它在学习的过程中会不停地输出自己的loss关于参数的梯度,optimizer就是通过这个来评判这个学习方法(模型)的效果好不好的。optimizee需要从多种不同任务的training data中学习。

optimizer相当于一个判官,看到optimizee的梯度越来越小了,就知道optimizee当前采用的学习方法效果不错,就会沿着这个方向给出新的参数更新值,也就是给optimizee指定一个新的学习方法。当看到optimizee的梯度越来越大了,就知道得悬崖勒马了,会沿着其他方向给出参数更新值。总之,optimizer的工作就是要让optimizee在学习多种不同任务时的平均误差(误差的期望)最小。这样得到的optimizee才算是学习到了多种不同的任务。

可以认为optimizer是规则的制定者,optimizee是规则的执行者,optimizer根据optimizee执行的效果动态调整规则。


Meta Learning