元学习(Meta Learning)
元学习介绍
元学习希望使得模型获取调整超参数的能力,使其可以在获取已有知识的基础上快速学习新的任务。
元学习目的
元学习和机器学习的区别在于:机器学习是先人为调参,之后直接训练特定任务下深度模型。元学习则是先通过其它的任务训练出一个较好的超参数,然后再对特定任务进行训练。
这些超参数可以是初始化参数、选择优化器、定义损失函数、梯度下降更新参数等。
元学习流程
在机器学习中,训练单位是样本数据,通过数据来对模型进行优化;数据可以分为训练集、测试集和验证集。
在元学习中,训练单位是任务,一般有两个任务分别是训练任务(Train Tasks),和测试任务(Test Task)。
(1)训练任务
在训练任务中给定 h h h个子训练任务,每个子训练任务的数据集分为 Support set 和 Query set。
- 首先通过这 h h h个子任务的 Support set 训练 ,分别训练出针对各自子任务的模型参数 θ k ∗ \theta^*_k θk∗。
- 然后用不同子任务中的 Query set 分别去测试 θ k ∗ \theta^*_k θk∗的性能,并计算出预测值 P i k q P^{kq}_i Pikq和真实标签 Y i k q Y^{kq}_i Yikq的损失 l k l_k lk。
- 接着整合这 h h h个损失函数为 L ( φ ) L(\varphi) L(φ): L ( φ ) = l 1 + . . . + l k + . . . + l h L(\varphi)=l_1+...+l_k+...+l_h L(φ)=l1+...+lk+...+lh
- 最后利用梯度下降法去求出超参数 φ \varphi φ去更新参数 { θ i ∗ } i = 1 k \{\theta^*_i\}^k_{i=1} {θi∗}i=1k,从而找到最优的超参设置 φ ∗ \varphi^* φ∗;如果 φ ∗ \varphi^* φ∗不可求,则可以采用强化学习或者进化算法去解决。
(2)测试任务
测试任务是正常的机器学习的过程,它将数据集划分为训练集和测试集。
训练任务的目的是找到一个好的超参设置 φ ∗ \varphi^* φ∗,利用这个先验知识可以对特定的测试任务 f f f进行更好的进行训练。
参考文献: