大多数深度学习算法都采用基于梯度的方法做优化,但是这种方式需要大量的sample
来更新算法,元学习(learn to learn
)算法主要是解决算法如何在任意的loss function
下收敛,而不是单个task
的loss function
。这样的算法提取的是更高层次的信息。
在基于梯度的优化算法里面,如果我们通过某种方式知道了整个的概率分布,那么就可以通过很少次迭代得到最优的那个值,但是因为现在的算法大部分时间都在期望网络自己通过数据去学这个分布,因此就会比较慢。这也正是optimization-based
算法来解决的问题。
Model-agnostic meta-learning (MAML)
Model-agnostic meta-learning
(MAML)通过为每个task
提供一个更好的初始化参数来做到这件事情。如何做到这件事情呢?一种方式是在不同的task
上train
网络,当给定一个新的task
时,此时的网络就已经有个一个较好的初始化参数了,因此很少的迭代次数就能有较好的效果。
如上图所示实线θ \thetaθ表示为meta learning
学习得到的初始化参数,然后对应不同的task
,就能够很快地适应找到对应task
的参数,如虚线所示。
model-agnostic meta-learning
可以被用到任意的一种model
算法中,像分类、回归、强化学习等。
假设我们想要依据MAML
做一个分类模型f θ ,步骤如下:
这种方式比Siamese networks
、matching networks
、memory-augmented neural networks
在Omniglot
和mini-ImageNet
的效果都要好。
LSTM Meta-Learner
LSTM Meta-Learner
训练一个LSTM
学习如何更新。
常见的梯度更新方式为:
其中θ t是在时刻t tt的参数,∇ L t 是在时刻t tt的loss
梯度,α t是时刻t 的学习率。
LSTM cell
的更新方式为:
cell-update equation
和gradient descent update
很像,可以看作:
LSTM meta-learner algorithm
算法结构如下图所示: