【学习】Meta Learning、

文章目录

  • 一、Meta Learning
      • 什么是元学习?
      • 元学习–第1步
      • 元学习–第2步
      • 元学习–步骤3
      • 架构
      • ML和Meta
      • 回顾GD
        • 学习好的初始化参数
        • 学习学习率
        • NAS寻找网络结构
        • data augmentation
        • Sample Reweighting
      • Few-shot Image Classification
    • 元学习与自我监督学习
    • 元学习和知识蒸馏
      • 元学习和领域适应
    • 元学习与终身学习


一、Meta Learning

元学习:学会学习
在学术界,我们的GPU不多,超参数不能全列举。机器能自动确定超参数吗?
【学习】Meta Learning、_第1张图片
回顾ML的三步骤
【学习】Meta Learning、_第2张图片
【学习】Meta Learning、_第3张图片
在这里插入图片描述

什么是元学习?

让机器学习找到这个方程。
【学习】Meta Learning、_第4张图片

元学习–第1步

学习算法中什么是可以学习的?组成:网络架构,初始参数,学习率。根据什么是可学习的对元学习进行分类。
【学习】Meta Learning、_第5张图片

元学习–第2步

为学习算法Fφ定义损失函数L(φ)。
【学习】Meta Learning、_第6张图片
【学习】Meta Learning、_第7张图片
【学习】Meta Learning、_第8张图片
我们如何知道一个分类器是好是坏? 在测试集上评估分类器。
训练和测试资料都是有标注的。

【学习】Meta Learning、_第9张图片
【学习】Meta Learning、_第10张图片
上面都是对同一个任务的训练,但是在元学习里面不止一个任务。

【学习】Meta Learning、_第11张图片
在典型的ML中,是基于训练示例来计算损失,但是在元学习上用的是测试资料计算loss。
【学习】Meta Learning、_第12张图片

元学习–步骤3

求出最好的参数和Fφ。在参数φ没办法求微分的时候可以用RL。
【学习】Meta Learning、_第13张图片

架构

使用训练任务的资料,运用上面的三步骤就能得到一个学习出来的算法Fφ * 。

然后使用测试任务里面的训练资料放到这个学出的算法里面得到一个分类器fθ * 。
然后把分类器用在测试任务里面的测试资料上得到结果。
训练任务是跟测试任务无关的任务。小任务学习是用一点标注的资料就能得到好的结果,这两个还是有区别的。在ML里面的测试资料是不能用的!在元学习里面需要使用。
【学习】Meta Learning、_第14张图片

ML和Meta

【学习】Meta Learning、_第15张图片
【学习】Meta Learning、_第16张图片
元学习——跨任务学习,ML——任务内学习
【学习】Meta Learning、_第17张图片
【学习】Meta Learning、_第18张图片
【学习】Meta Learning、_第19张图片
元学习的一次episode运算量大。
【学习】Meta Learning、_第20张图片
你所知道的关于ML的知识通常可以应用到元学习中:
过度适应训练任务,获得更多训练任务以提高结果,任务扩充,学习学习算法时也有超参数…,改善任务(元学习也应该有个验证集)
【学习】Meta Learning、_第21张图片

回顾GD

学习好的初始化参数

初始化参数θ0是随机取样的
【学习】Meta Learning、_第22张图片
好的初始化也很重要。
【学习】Meta Learning、_第23张图片
也需要随机种子和调参
【学习】Meta Learning、_第24张图片
预训练由代理任务训练。预训练和MAML很像,都可以找到一个好的初始化参数。区别:MAML需要标注资料,预训练没有标注资料。
【学习】Meta Learning、_第25张图片
预训练是把很多任务都混在一起训练,也可以说是多任务学习。
【学习】Meta Learning、_第26张图片
元学习也很像领域适应/迁移学习
【学习】Meta Learning、_第27张图片
MAML好在初始化的参数跟好参数接近。

学习学习率

【学习】Meta Learning、_第28张图片
【学习】Meta Learning、_第29张图片

NAS寻找网络结构

【学习】Meta Learning、_第30张图片
【学习】Meta Learning、_第31张图片
【学习】Meta Learning、_第32张图片
【学习】Meta Learning、_第33张图片
让网络可以微分:
【学习】Meta Learning、_第34张图片

data augmentation

【学习】Meta Learning、_第35张图片

Sample Reweighting

给不同的样品不同的重量
【学习】Meta Learning、_第36张图片
以上方法都是基于GD的。
【学习】Meta Learning、_第37张图片
所有训练和测试资料一起输入:
在这里插入图片描述

Few-shot Image Classification

Few-shot Image Classification·:每个类只有几个图像。
【学习】Meta Learning、_第38张图片在这里插入图片描述
【学习】Meta Learning、_第39张图片
【学习】Meta Learning、_第40张图片

元学习与自我监督学习

BERT和MAML都是找初始化的参数:
【学习】Meta Learning、_第41张图片
MAML学习初始化参数φ是通过梯度下降算法。因为GD也需要进行随机初始化,所以初始化参数φ0是什么?可以从BERT里面产生!
【学习】Meta Learning、_第42张图片
存在“学习差距”:自我监督的目标不同于下游任务,BERT预训练的任务有很多,但是不一定适配下游任务。但是MAML关心学会在训练任务中取得好的表现。MAML需要使用训练资料,但是BERT可以使用大量无标注资料。
【学习】Meta Learning、_第43张图片
在这里插入图片描述
【学习】Meta Learning、_第44张图片
BERT和元学习的联合会有好的结果。

元学习和知识蒸馏

【学习】Meta Learning、_第45张图片
让学生网络学习教师网络,但是我们不知道教师网络是好的还是不好的。
【学习】Meta Learning、_第46张图片
我们可以发现结果最好的老师网络不见得教的好!
我们可以用元学习让老师网络学习如何去教。
【学习】Meta Learning、_第47张图片
我们需要更新教师网络(加入温度参数,不用整个大网络都更新)让学生的结果是最好的(loss低)。

元学习和领域适应

我们不知道目标领域(训练阶段没有目标领域的数据),可以训练domain generalization来让网络在未知领域表现好。
【学习】Meta Learning、_第48张图片
【学习】Meta Learning、_第49张图片
使用训练领域中的一个领域作为伪目标域:
【学习】Meta Learning、_第50张图片
可以分别作为为目标域:
【学习】Meta Learning、_第51张图片
【学习】Meta Learning、_第52张图片
训练样本和测试样本可以具有不同的分布。训练任务和测试任务也可以有不同的分布。
【学习】Meta Learning、_第53张图片

元学习与终身学习

机器如果通过终身学习,会最终变很厉害!
【学习】Meta Learning、_第54张图片
但是实际上如果一个任务一个任务的训练,机器会产生灾难性遗忘的结果
【学习】Meta Learning、_第55张图片
解决灾难性遗忘:
【学习】Meta Learning、_第56张图片
元学习也可以用在这个过程中!可以用元学习学习参数更新的时候不忘记旧任务。
【学习】Meta Learning、_第57张图片
【学习】Meta Learning、_第58张图片
元学习也有毁灭性遗忘的问题:
【学习】Meta Learning、_第59张图片
元学习学会学习:
【学习】Meta Learning、_第60张图片
【学习】Meta Learning、_第61张图片
元学习不同任务有不同的模型,但是终身学习是一个任务学习多个任务。
【学习】Meta Learning、_第62张图片
【学习】Meta Learning、_第63张图片
【学习】Meta Learning、_第64张图片
MAML是用训练过的模型来计算loss 的,而预训练直接使用模型的参数进行计算loss。
【学习】Meta Learning、_第65张图片
【学习】Meta Learning、_第66张图片
【学习】Meta Learning、_第67张图片
【学习】Meta Learning、_第68张图片
【学习】Meta Learning、_第69张图片
一步到位训练出一个模型。在使用算法时,仍然要多次更新。few-shot学习的数据有限。MAML在训练的时候一般只更新一次。
每个任务:给定一个目标正弦函数y = a sin(x + b),从目标函数中采样K个点,使用样本估计目标函数。
【学习】Meta Learning、_第70张图片
预训练做的不太好,但是MAML做的好一点。
【学习】Meta Learning、_第71张图片
【学习】Meta Learning、_第72张图片
φi是初始参数
【学习】Meta Learning、_第73张图片
【学习】Meta Learning、_第74张图片
【学习】Meta Learning、_第75张图片
【学习】Meta Learning、_第76张图片
MAML是用两次更新的参数的方向来更新参数,预训练用的是每步更新参数的方向来更新参数。
【学习】Meta Learning、_第77张图片
上面的元学习比预训练好。

你可能感兴趣的:(学习,人工智能)