什么是元学习
元学习介绍
元学习希望能够使得模型获取调整超参数能力,使其可以在获取已有的知识基础上,快速学习新任务。
元学习目的
元学习和机器学习的区别在于:机器学习是先人为调参,之后直接训练特定任务下的深度学习模型,元学习则是先通过其他的任务训练出一个较好的超参数。然后再对特定的任务进行训练。
这些超参数可以是初始化参数、选择优化器、定义损失函数、梯度下降更新参数等等。
元学习流程
在机器学习中,训练单位是样本数据,通过数据来对模型进行优化,数据可以分为
训练集、测试集和验证集
训练集、测试集和验证集
训练集、测试集和验证集
在元学习中,训练单位是任务,一般有两个任务,分别为
训练任务
训练任务
训练任务(Train tasks),和测试任务Test task。
训练任务
在训练任务中,给定 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的损失 I k I_k Ik
- 接着整合这 h h h个损失函数 L ( ϕ ) L(\phi) L(ϕ)
- L ( ϕ ) = l 1 + l 2 + l 3 + ⋯ , + l h L(\phi) = l_1 + l_2 + l_3 + \cdots,+ l_h L(ϕ)=l1+l2+l3+⋯,+lh
- 最后利用梯度下降法去更新超参数 ϕ \phi ϕ去更新参数
测试任务
测试任务是正常机器学习的过程,其将数据集划分为训练集和测试集。
训练任务的目的是找到一个好的超参数设置
ϕ
∗
\phi^*
ϕ∗
利用这个先验知识,可以对特定的测试任务
f
f
f进行更好的训练。