机器学习35:元学习的应用

摘要

本文介绍了元学习在多个方面的具体应用。首先,通过MAML等方法学习最优的初始化参数,使模型能够快速适应新任务。其次,元学习可用于学习优化器,自动调整更新策略。此外,网络架构搜索(NAS)利用元学习自动设计网络结构。最后,文章还提及了元学习在数据处理、样本重加权等领域的延伸应用,展现了元学习在自动化机器学习中的广泛潜力。

Abstract

This article introduces specific applications of meta-learning in various aspects. First, methods such as MAML learn optimal initialization parameters, enabling models to quickly adapt to new tasks. Second, meta-learning can be used to learn optimizers that automatically adjust update strategies. Additionally, Neural Architecture Search (NAS) leverages meta-learning to automatically design network structures. Finally, the article also mentions extensions of meta-learning in areas such as data processing and sample reweighting, demonstrating its broad potential in automated machine learning.

一.初始化参数

上周了解了元学习的基本概念,下面通过一些实例来了解在元学习中什么东西是可以被学习的。

一般我们最常用的学习算法就是梯度下降,在梯度下降中需要有一个网络架构,接着初始化参数,接着从训练资料中抽样一些资料出来计算其梯度,接着通过这个梯度更新参数得到接着重新计算梯度再更新参数,这样反复下去直到次数足够多后,将最终训练得到的参数将其输出。

在执行梯度下降过程中,可以进行训练的,首先就是初始化的参数,因为一般是通过随机初始化得到的,也就是从某一个固定的分布中抽取出来的。我们也知道对最后的结果往往有一定程度的影响,好的初始化参数与不好的最后的结果,过程中的运算量是有着巨大的差别。

所以我们能否通过一些训练任务,找出一个对总训练特别有帮助的初始化参数呢?是有的,比如模型无关元学习(MAML),以及MAML方法的变形元学习爬虫算法(Reptile)。这两个方法的核心目标都是寻找一组最优的模型初始化参数,使得模型在面对一个新任务时,仅需少量梯度下降步骤(通常为一步或几步),就能在该任务上取得优异的性能。

前面也提到做元学习时,也需要对超参数进行选择。所以在做MAML时,虽然要去学习一个初始化参数,但是在学习这个参数的过程中也有很多超参数需要自己决定。有篇文献提到了如何训练MAML,在这个过程中训练了三次MAML(使用了不同的超参数),发现有时候训练得好,有时候训练不起来。因此作者在该文献中提出了新的方法MAML++,希望MAML++能够训练得更好。

谈到MAML,找到一个好的初始化参数,就让我们想起前面学习的预训练中的自监督学习。在这个知识点中,我们也提到过好的初始化参数这个问题。在MAML中每个训练任务包含训练资料与测试资料,其根据这些训练任务找到一个好的初始化参数,然后用在测试任务上。但是在自监督学习中,是通过一大堆没有标签的资料,这些没有标记的任务通过预文本任务进行训练(如在BERT中通过填空题来训练模型),最后预训练的结果就是好的初始化参数。

而在预训练还没有自监督学习时,有另外一个想法是多任务训练(Multi-Task Training):同样有好几个任务的资料,然后将这些资料放在一起,将其当作一个任务进行训练,这样同样也可以找到好的初始化参数。并且在当前做有关元学习研究时,通常会将多任务训练的方法当作元学习的基准线。

这是因为这两个方法使用的资料都是一样的,只是MAML会将不同的任务分开,而多任务训练是将资料放在一起。

MAML的优点

对于MAML能够有好的效果是有两个不同的假设的。有一个假设就是MAML找出来的初始化参数可以使如梯度下降这种学习算法快速找到其任务中好的参数。另外一个假设认为这个初始化参数跟每一个任务上最终好的参数非常接近。

在一篇《Rapid Learning or Feature Reuse》中得到的结论就是Feature Reuse才是主要原因。

二.优化器

除了可以学习初始化参数,元学习还可以学习优化器。如在更新参数时,需要决定学习率相关超参数,这时就可以运用元学习进行学习。像这样的想法在很早之前就有了,如2016年就有一篇《Learning to Learn by Gradient Descent by Gradient Descent》中就直接学习了这个优化器。

其中ADAM、RMSprop等是人工设计的优化器,而该论文作者的优化器LSTM中的参数是根据训练任务自动学习出来的,结果如上。

三.网络架构

除了训练初始化的参数以及优化器,还可以训练网络架构。而针对训练网络架构这一系列的研究就叫做网络架构搜索(Network Architecture Search,NAS)。

在NAS中我们是将网络架构当作,同时意味着我们要找一个去最小化Loss,所以其做微分就是有问题了。这时就要用到我们前面说到的没有办法微分时采用强化学习硬做是可以解决的。

如何通过强化学习硬做,我们可以将当作agent的参数,然后强化学习中这个agent的输出就是网络架构的相关超参数,所以接下来就是要去训练agent让其使最大化奖励(-L())。我们可以通过下面这张图更清楚地知道典型的NAS是在做什么。

这里将agent当作周期性网络,其每次都会输出一个跟网络架构有关的参数,有了这些参数就可以建出一个神经网络,建完这个网络后就去训练,接下来就进行强化学习。

但实际上若硬要改下网络架构,使其变得可以微分也是可以的这个经典的做法叫做可微分架构搜索(DARTS)。

四.其他小点

1.数据处理

除了上面提到的,数据处理也是可能可以学习的。

我们都知道在训练网络时可能会做数据增强,所以我们可以去训练机器去自动寻找数据增强。

2.样本重加权

在训练过程中,有时需要给不同的样本不同的加权,但是如何给每一个数据不同的加权就会有不同的策略。对于这个策略是可以通过学习学出来的,让机器学习到更具数据的特性自动决定说样本的权重要如何设计。

除了上面提到的,元学习可以在语音、自然语言处理上进行运用。就如下图展现的在前几年元学习就运用在多方面上。

总结

文系统阐述了元学习在初始化参数、优化器、网络架构等方面的实际应用。通过MAML等技术,元学习能够从多个任务中学习到高效的初始化策略;通过学习优化器,实现了梯度下降过程的自动化;NAS则将元学习引入网络结构设计,提升了模型的自适应能力。此外,元学习在数据增强与样本加权中的探索,进一步拓展了其应用边界,为自动化机器学习提供了有力支撑。

相关推荐
Echo_NGC22372 小时前
【卷积神经网络 CNN】一文讲透卷积神经网络CNN的核心概念与演进历程
人工智能·深度学习·神经网络·目标检测·机器学习·自然语言处理·cnn
achi0102 小时前
Ubuntu 24 Desktop LTS 部署 AI 智能体 OpenClaw
人工智能·ai agent·openclaw·openclaw 安装·openclaw 部署·ubuntu openclaw·agent 部署
吴佳浩 Alben2 小时前
CUDA_VISIBLE_DEVICES、多进程与容器化陷阱
人工智能·pytorch·语言模型·transformer
想七想八不如114082 小时前
SQL操作学习
数据库·sql·学习
用户2704272838122 小时前
排查 OpenClaw token 暴涨:MEMORY.md 藏了83行废话,3个Cron任务静默失败
人工智能
郑同学zxc2 小时前
机器学习19-tensorflow4.2
人工智能·机器学习
zxsz_com_cn2 小时前
设备预测性维护方案设计的关键要素
大数据·人工智能
格林威2 小时前
工业相机参数解析:曝光时间与运动模糊的“生死博弈”
c++·人工智能·数码相机·opencv·算法·计算机视觉·工业相机
KG_LLM图谱增强大模型2 小时前
EICopilot:基于LLM智能体和大规模知识图谱的企业信息智能搜索与探索系统
人工智能·知识图谱