目录
论文信息
Nichol A , Achiam J , Schulman J . On First-Order Meta-Learning Algorithms[J]. 2018.
本文主要考虑元学习
问题,即存在一个任务分布(a distribution of tasks),从这个分布中抽取许多任务来训练元学习模型(或代理),使其在处理从这个分布中抽取的以前从未遇到过的任务时能更快的学习(即表现得更好)。
本文通过分析一系列仅在元学习更新(meta-learning update)过程中使用一阶微分(first-order derivation)就能在新任务上实现快速微调的关于参数初始化的算法,验证了一阶元学习算法在一些完善的few-shot分类基准上的有效性,同时还对这些算法的可行性进行了理论分析。
这些一阶元学习算法主要包括MAML的近似表示(忽略二阶微分)——first-order MAML(简记:FOMAML)以及本文提出的Reptile算法。
是函数的一阶偏导数以一定方式排列成的矩阵,其体现了一个可微方程与给出点的最优线性逼近。
\[ F=\begin{cases} f_1(x_1,\cdots,x_n)\f_2(x_1,\cdots,x_n)\\cdots\f_m(x_1,\cdots,x_n)\\end{cases} \]
\[ J = [\frac{\partial f}{\partial x_1} \cdots \frac{\partial f}{\partial x_n}] =\begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \cdots & \frac{\partial f_1}{\partial x_n} \\vdots & \ddots & \vdots \\frac{\partial f_m}{\partial x_1} & \cdots & \frac{\partial f_m}{\partial x_n} \end{bmatrix} \]
\[ \begin{array}{*{20}{l}} {f{ \left( {x} \right) }{\begin{array}{*{20}{l}} {=f{ \left( {\mathop{{x}}\nolimits_{{0}}} \right) }+{f \prime }{ \left( {\mathop{{x}}\nolimits_{{0}}} \right) }{ \left( {x-\mathop{{x}}\nolimits_{{0}}} \right) }+\frac{{f '' { \left( {\mathop{{x}}\nolimits_{{0}}} \right) }}}{{2!}}\mathop{{ \left( {x-\mathop{{x}}\nolimits_{{0}}} \right) }}\nolimits^{{2}}+ \cdots +\frac{{\mathop{{f}}\nolimits^{{ \left( {n} \right) }}{ \left( {\mathop{{x}}\nolimits_{{0}}} \right) }}}{{n!}}\mathop{{ \left( {x-\mathop{{x}}\nolimits_{{0}}} \right) }}\nolimits^{{n}}+\mathop{{R}}\nolimits_{{n}}{ \left( {x} \right) }}\\end{array}}}\\end{array} \]
一个解析表达式按照泰勒公式成无穷级数(或者多项式),根据所研究的定义域,每一个展开项所贡献的大小是不会都相同的,根据它们对解析表达式精确值的贡献大小将这些项分门别类地叫做领头阶、次领头阶、次次领头阶…
摘自:维基百科(https://en.wikipedia.org/wiki/Transduction_(machine_learning))
- 转导(Transduction):从观察到的特定(训练)案例到特定(测试)案例的推理。
- 归纳(Induction):从观察到的训练案例到一般规则的推理,然后将其应用于测试案例。
示例:
给出一个点的集合,其中一些点被标记了为A,B或C,但是大多数点没有被标记,用?表示。训练的目的是预测所有未标记点的“最佳”标签。
采用归纳的思想,是使用有标记的点来训练监督学习算法,然后让其预测所有未标记的点的标签。但是,对于这个问题,监督学习算法将仅具有五个标记点,建立捕获该数据结构的模型肯定会很困难。例如,如果使用最近邻居算法,则即使很明显可以看到中间附近的点与标记为“ B”的点属于同一个群集,也有可能会被标记为“ A”或“ C”。
MAML优化过程的公式化表示:
\[
\min_{\phi}\mathbb{E}_{\mathcal{T}}[L_{\mathcal{T},B}(U_{\mathcal{T},A}(\phi))]
\]
对于给定的任务\(\mathcal{T}\),内循环中使用训练样本\(A\) 进行优化,然后使用测试样本 \(B\) 计算得到损失,外循环使用损失对初始化参数求梯度,即可得出新任务上参数的优化方向。
\[ g_{MAML}=\frac{\partial L_{\mathcal{T},B}(U_{\mathcal{T},A}(\phi))}{\partial \phi}=L^{\prime}_{\mathcal{T},B}(\tilde{\phi})U^{\prime}_{\mathcal{T},A}(\phi), \qquad where \quad \tilde{\phi}=U_{\mathcal{T},A}(\phi)) \]
其中 \(U^{\prime}_{\mathcal{T},A}(\phi)\) 可以视为是关于 \(U_{\mathcal{T},A}(\phi)\) 的雅可比矩阵,而 \(U_{\mathcal{T},A}(\phi)\) 可以视为是对初始化参数向量累加了一系列的梯度向量, \(U_{\mathcal{T},A}(\phi)=\phi+ g_1 + g_2 + \dots +g_k\) 。
FOMAML的简化:
将梯度向量视为常量,即可将雅可比矩阵转化为恒等操作(identity operation),所以可以简化外循环优化过程中所使用的梯度公式。
\[ g_{FOMAML}=L^{\prime}_{\mathcal{T},B}(\tilde{\phi}) \]
具体流程如下:
- 采样任务\(\mathcal{T}\) ;
- 对初始化参数执行更新操作,得到\(\tilde{\phi}=U_{\mathcal{T},A}(\phi))\);
- 利用 \(\tilde{\phi}\) 计算对 \(\phi\) 的梯度,得到 \(g_{FOMAML}=L^{\prime}_{\mathcal{T},B}(\tilde{\phi})\)
- 将\(g_{FOMAML}\) 应用到外部循环优化中。
算法描述
算法最后一步的模型参数更新的batch版本,可以写为如下形式:
\[
\phi \leftarrow \phi +\epsilon \frac{1}{n} \sum_{i=1}^{n}(\tilde{\phi_i}-\phi)
\]
其中\(\tilde{\phi_i}=U^{k}_{\mathcal{T}_i} \left\{ \phi \right\}\) ,表示在第i个任务上对参数的更新操作。
这个算法与在损失期望上进行的联合训练十分相似。
当k=1时,算法对应于期望损失的随机梯度下降(SGD)。
\[
\begin{align}
g_{Reptile,k=1} & =\mathbb{E}_{\mathcal{T}}\mathrm{[\phi-U_{\mathcal{T}}(\phi)]/\alpha}\ & =\mathbb{E}_{\mathcal{T}}\mathrm{[\nabla_{\phi}L_{\mathcal{T}}(\phi)]}
\end{align}
\]
当k>1时,更新过程包含了\(L_{\mathcal{T}}\) 的二阶乃至更高阶的微分项。
更新过程中的领头阶(Leading Order)展开
直觉是:
使用泰勒序列展开来近似表示Reptile与MAML的更新过程,发现两者具有相同的领头项(leading-order terms)——领头阶(第一项)起着最小化期望损失的作用;次领头项(第二项)及后续项最大化任务内的泛化性。
最大化同一任务中不同minibatch之间梯度的内积,对其中一个batch进行梯度更新会显著改善另一个batch的的表现。
表达式定义(\(i\in[1,k]\) 指代不同的batch)
\[
\begin{align}
&g_i=L^{\prime}_i(\phi_{i})\quad(在SGD过程中获得的梯度)\ &\phi_{i+1}=\phi_i-\alpha g_i\quad(参数更新序列)\ &\bar{g_i}=L^{\prime}_i(\phi_1)\quad (起始点梯度)\ &\bar{H_i}=L^{\prime \prime}_i(\phi_1)\quad (起始点Hessian矩阵,即二阶梯度)
\end{align}
\]
将SGD过程中获得的梯度,按照泰勒公式展开
近似表示MAML梯度(\(U_i\) 表示在第\(i\)个minibatch上对参数向量的更新操作)
领头阶展开
当k=2时,三者的一般表示形式为:
\[
\begin{align}
&g_{MAML}=\bar{g_2}-\alpha\bar{H_2}\bar{g_1}-\alpha\bar{H_1}\bar{g_2}+O(\alpha^2)\ &g_{MAML}=g_2=\bar{g_2}-\alpha\bar{H_2}\bar{g_1}+O(\alpha^2)\ &g_{Reptile}=g_1+g_2=\bar{g_1}+\bar{g_2}-\alpha\bar{H_2}\bar{g_1}+O(\alpha^2)\ \end{align}
\]
其中:
- 类似于\(\bar{g_1}\quad \bar{g_2}\)的项就是领头项,用于最小化联合训练损失;
- 类似于\(\bar{H_2}\bar{g_1}\)的项就是次领头项,作用是最大化不同批次数据上得到的梯度的内积。
在进行minibatch采样,取三种梯度的期望时,上述两种领头项分别用AvgGrad和AvgGradInner表示(k=2):
三种算法梯度的期望表示形式可以化为:
扩展到k>2的情况有:
- 可以看到三者AvgGradInner与AvgGrad之间的系数比的关系是:MAML > FOMAML > Retile。
- 这个比例与步长\(\alpha\),迭代次数\(k\) 正相关。
找到一个接近所有解流形(Solution Manifolds)的点
直觉:
Reptile收敛于一个解,这个解在欧式空间上与每个任务的最优解的流形接近。
用 \(\phi\) 表示网络初始化,\(\mathcal{W_{T}}\) 表示任务\(\mathcal{T}\)上的最优参数集。优化过程的最终目标是找到一个\(\phi\)使得其与所有任务的\(\mathcal{W_{T}}\) 之间的距离最小。
\[
\min_{\phi}\mathbb{E}_{\mathcal{T}}[\frac{1}{2} D(\phi,\mathcal{W_T})^2]
\]
对参数\(\phi\)的梯度为:
在Reptile中每一次迭代相当于采样一个任务然后在上面执行一侧SGD更新。
实际情况下,很难直接计算出\(P_{\mathcal{W_T}}(\phi)\),即使得\(L_T\) 取得最小值的p。因此在Reptile中,用初始化参数\(\phi\)在\(L_T\) 上执行k步梯度下降后得到的结果来代替最优化参数\(\mathcal{W^{\star}_{T}(\phi)}\)。
Few-Shot Classification(少样本分类)是少样本学习中的一类任务,在这类任务中,存在一个元数据集(Meta-Data Set),包含了许多类的数据,每类数据由若干个样本组成,这种任务的训练通常与K-Shot N-way分类任务绑定在一起,具体理解参见《关于N-Way K-Shot 分类问题的理解》。
建立与MAML一样的CNN训练模型,在Ominglot和MiniImageNet数据集上进行训练与测试,实验结果如下:
从两个表格中的数据可以看出,MAML与Reptile在加入了转导(Transduction)后,在Mini-ImageNet上进行实验,Reptile的表现要更好一些,而Omniglot数据集上正好相反。
通过在内循环中使用四个不重合的Mini-Batch,产生梯度数据\(g_1,g_2,g_3,g_4\) ,然后将它们以不同的方式进行线性组合(等价于执行多次梯度更新)用于外部循环的更新,进而比较它们之间的性能表现,实验结果如下图:
从曲线可以看出:
Reptile和FOMAML在内循环过程中都是使用的SGD进行的优化,在这个优化过程中任何微小的变化都将导致最终模型性能的巨大变化,因此这部分的实验主要是探究两者对于内循环中的超数的敏感性,同时也验证了FOMAML在minibatch以错误的方式选取时会出现显著的性能下降情况。
mini-batch的选择有两种方式:
采用不同的mini-batch选取方式在FOMAML上进行实验,发现随着内循环迭代次数的增多,采用分尾方式的FOMAML模型的测试准确率要高一些,因为在这种情况下,测试的数据选取方式与训练过程中的数据选取方式更为接近。
当采用不同的批次大小时,采用共尾方式选取数据的FOMAML的准确性会随着批次大小的增加而显著减小。当采用full-batch时,共尾FOMAML的表现会随着外循环步长的加大而变差。
共尾FOMAML的表现如此敏感的原因可能是最初的几次SGD更新让模型达到了局部最优,以后的梯度更新就会使参数在这个局部最优附近波动。
Reptile有效的原因有二:
当执行SGD更新时,MAML形式的更新过程就已经被自动包含在其中了,通过最大化模型在不同批次数据之间的泛化能力,从而使得模型在微调(fine-tune)时能取得显著的效果。
原文:https://www.cnblogs.com/veagau/p/11816163.html