小样本学习记录————MAML的改进MAML++
小样本学习记录————MAML的改进MAML++
- MAML简单回顾
- MAML存在的问题
- 训练不稳定:
- 二阶导数代价
- 缺少批量归一化统计累计
- 共享(跨步骤)批次标准化偏差
- 共享内环(跨步和跨参数)学习速率
- 国定外循环学习率
- 对MAML的改进
- 梯度不稳定性→多步损耗优化(MSL)
- 二阶导数代价→导数顺序退火(DA)
- 缺少批次归一化统计累积→每步批次归一化运行统计(BNRS)
- 共享(跨步骤)批次归一化偏差→每步批次归一化权重和偏差(BNWB)
- 共享内环学习速率(跨步和跨参数)逐层→学习逐步学习率和梯度方向(LSLR)
- 固定外环学习率→余弦退火元优化器学习率(CA)
- 结果比对
在MAML中,我们了解了经典的元学习框架MAML,虽然MAML训练快效果好,但是仍然存在一些问题,在How to train your MAML中介绍了MAML的缺点和改进方法。
MAML简单回顾
在看MAML存在问题前先简单回顾一下MAML的内循环和外循环更新公式,如果需要详细了解可以看我的上一篇文章。https://blog.csdn.net/yunlong_G/article/details/121858650 。
内循环:对于一个子任务的b的第i次更新表示为:
θib=θi−1b−α∇θLSb(fθi−1b)\theta_i^b=\theta_{i-1}^b-\alpha\nabla_\theta \mathcal L_{S_b}(f_{\theta_{i-1}^b}) θib=θi−1b−α∇θLSb(fθi−1b)
外循环:对于完成第N个任务后更新参数表示为:
θ0=θ0−β∇θ∑b=1BLTb(fθNb(θ0))\theta_0 = \theta_0 - \beta\nabla_\theta \sum_{b=1}^B \mathcal L_{T_b}(f_{\theta_N^b(\theta_0)}) θ0=θ0−β∇θb=1∑BLTb(fθNb(θ0))
MAML存在的问题
从上图我们可以看到MAML在训练过程中不稳定,存在泛化能力弱的问题,以下分别介绍作者认为的几点原因。
训练不稳定:
模型没有跳跃连接的话,通过多个卷积层,梯度多次被相同的参数相乘,容易出现梯度爆炸和梯度消失。
二阶导数代价
MAML仅使用了一阶梯度,虽然迭代加快但是泛化能力不稳定。经尝试了使用一阶方法的进一步尝试(Nicholl等人,2018年),其中作者在基础模型上应用标准SGD,然后在N步之后从他们的初始化参数向基础模型的参数迈进一步。Reptile的结果各不相同,有的超过MAML,有的低于MAML。
缺少批量归一化统计累计
泛化能力弱的另一原因:使用当前批次的统计信息进行批次归一化,而不是累积运行统计信息。这导致批量归一化效率较低.因为学习的基数必须适应各种不同的均值和标准偏差,而不是单一的均值和标准偏差。另一方面,如果批量归一化使用累积的运行统计数据,它最终将收敛到某个全局平均值和标准差。
共享(跨步骤)批次标准化偏差
在每一个子任务的训练过程中偏差一致,认为所有的子任务都是一样的特征分布,但实际上不会全是一样的分布。
共享内环(跨步和跨参数)学习速率
使用了一个共享的学习率给所有的参数和更新步骤,这导致了两个问题
- 下降方向不一定是特定数据集的方向
- 搜索方法可能花费的时间长。
有为每一个网络单独设置学习率和更新方向,但是又计算工作量和存储器问题。
国定外循环学习率
使用了固定的外循环循环率也会降低MAML算法的泛化性能,优化变慢的原因。
对MAML的改进
梯度不稳定性→多步损耗优化(MSL)
将外循环的更新由原来完成内循环再进行更新 变为——》内循环每进行一步就计算损失,利用每一步损失的加权和更新。
θ=θ−β∇θ∑b=1B∑i=0NviLTb(fθib)\theta = \theta - \beta\nabla_\theta \sum_{b=1}^B \sum_{i=0}^N v_i\mathcal L_{T_b}(f_{\theta_i^b}) θ=θ−β∇θb=1∑Bi=0∑NviLTb(fθib)
- β\betaβ表示学习率
- B任务总数
- N内循环更新步数
- viv_ivi表示第i步的重要程度
- L\mathcal LL表示损失函数
二阶导数代价→导数顺序退火(DA)
MAML中为了提高计算效率使用一阶导数来进行整个训练,这是影响模型泛化的主要原因之一。MAML++作者通过实验发现前五十epoch使用一阶导数,然后再转为使用二阶导数可以得到不错的效果,而且没有梯度爆炸和梯度消失,相比只是用二阶导数更稳定。
缺少批次归一化统计累积→每步批次归一化运行统计(BNRS)
按当前批次的统计信息标准化 变为 ——》按步骤收集统计数据。为了每一步收集运行统计数据,需要实例化网络中每个批归一化层的运行均值和运行标准差集合N组(其中N是内环更新步骤的总数),并根据优化过程中采取的步骤分别更新运行统计数据。每一步的批归一化方法应该可以加速MAML的优化,同时潜在地提高泛化性能。
共享(跨步骤)批次归一化偏差→每步批次归一化权重和偏差(BNWB)
所有子任务共用一个偏差 变为——》内循环更新过程中每一步学习一组偏差。
共享内环学习速率(跨步和跨参数)逐层→学习逐步学习率和梯度方向(LSLR)
一样的学习率 变为——》 为网络中的每一层学习一个学习速率和方向,以及在执行步骤时学习基础网络的每个自适应的不同的学习速率。学习每个层的学习速率和方向,而不是每个参数,应该会减少所需的内存和计算量,同时在更新步骤中提供额外的灵活性。此外,对于学习到的每个学习率,将有N个该学习率的实例,每个步骤对应一个实例。通过这样做,参数可以自由地学习降低每一步的学习率,这可能有助于减轻过拟合。
固定外环学习率→余弦退火元优化器学习率(CA)
事实证明:余弦函数(LoshChilov&Hutter,2016)退火学习率在具有更高泛化能力的学习模型中是至关重要的。MAML++将余弦退火应用到元学习中,来代替有原来的固定学习率。
结果比对
- MSL可用于提升MAML的稳定性以及泛化性能,但会降低算法速率以及增加计算资源消耗。
- DA可以增加MAML训练效率以及缓解梯度爆炸、消失问题。
- LSLR可以减少Meta-SGD给MAML算法带来增加的存储消耗问题,同时可以有一个可学习的内循环学习率α\alphaα。
- CA可以为MAML带来动态调整的外更新学习率β\betaβ,可以帮助算法缓解次陷入次优解的问题。
- BNWB+BNRS可以提升MAML的泛化能力。
从下表中可以看出,上文提出的几种措施都对模型效果有了提高。MAML++在mini-imagenet数据集上内部一次循环就别其他方法都好了。
小样本学习记录————MAML的改进MAML++相关推荐
- 小样本学习记录————用于深度网络快速适应的模型不可知元学习(MAML)
小样本学习记录----MAML用于深度网络快速适应的模型不可知元学习 相关概念 小样本学习(Few-Shot Learning) 元学习(Meta-Learning) MAML思想 MAML算法 论文 ...
- 小样本学习记录————相似性计算经典网络结构(孪生网络、匹配网络、原型网络、 关系网络)
小样本学习记录----四种相似性计算经典网络结构 小样本学习记录----四种相似性计算经典网络结构 孪生网络(Siamese network) 匹配网络(Matching network) 原型网络( ...
- 小样本学习记录————利用所有数据的元学习Few-shot Text Classification with Distributional Signatures
小样本学习记录----利用所有数据的元学习Few-shot Text Classification with Distributional Signatures 在计算机视觉中,低水平的模式是可以跨学 ...
- 小样本学习数据集||Omniglot和miniImagenet||MAML算法测试
元学习论文总结||小样本学习论文总结 2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 CVPR2017-2019 ECCV2018 ICCV2017-2019 ICLR2017 ...
- 小样本学习记录————文本中特征空间的数据增强MEDA: Meta-Learning with Data Augmentation for Few-Shot Text Classification
MEDA: Meta-Learning with Data Augmentation for Few-Shot Text Classification 出发点 数据增强 球合成器 合成模块Synthe ...
- 深度学习网络学习记录 SRI-Net、改进Unet
一.SRI-Net(2019) 修改后的ResNet-101编码器生成多级特征F2.F3.F4,F2.F3和F4的空间分辨率分别为输入大小的1/4.1/8和1/16,解码器使用空间残差起始(SRI)模 ...
- 小样本学习--学习记录
之前在做课题的时候,把数据不均衡和小样本的概念混淆了,昨天看了一篇论文:< 面向小样本数据的机器学习方法研究综述 (陈良臣,傅德印)> ,这篇论文写的非常清晰.推荐阅读. 网上的一些综述整 ...
- 元学习入门详解(MAML算法及Reptile算法复现)
喜欢可点赞关注,并收藏,您的支持就是我的写作的动力 文章目录 1.1Motivation 1.2 什么是元学习 1.3 方法 1.4 对比 2 元学习相关算法 2.1 MAML 2.2 Reptile ...
- 基于MAML的改进方法总结
元学习是解决小样本学习问题的重要方法之一,现已取得较为优异的成绩.元学习方法大体上可以分为基于优化的和基于度量两种.基于度量的方法是非参数方法,包括孪生网络.关系网络.匹配网络等.基于优化的方法是参数 ...
- 谈谈实现小样本学习的两条路径
来源:混沌巡洋舰 小样本学习是当下机器学习界的一个核心课题.大数据是当下深度学习的咽喉,面临收集成本昂贵,甚至根本无法采集的弊端, 小样本学习的实践价值不言而喻.对于众多产业来说, 真正能够收集到大量 ...
最新文章
- Ubuntu18常用指令集合(更新中)
- 第十六周博客作业西北师范大学|李晓婷
- influxdb无法实现关联表_双汇:从棘手的InfluxDB+Redis到TDengine
- 获取Java接口的所有实现类
- iphone已停用怎么解锁_两种无密码解锁iPhone锁屏密码的方法
- 基于单片机步进电机ppt答辩_基于单片机的步进电机式汽车仪表的设计(含电路原理图,程序)...
- leetcode 341. 扁平化嵌套列表迭代器(dfs)
- 同比暴增3700%!百度取代谷歌成世界第二
- delphi 的插件机制与自动更新
- ios基础篇(十二)——UINavgationController的使用(三)ToolBar
- openCV 简单实现身高测量(二)
- web应用基本框架图
- 会说话的汤姆猫2 Talking Tom 2(含数据包) v2.0.3
- 用python花猫_Python竟能画这么漂亮的花,帅呆了(代码分享)
- 每次打开EXCEL文件都会出现一个空白sheet1窗口
- 2018年陕西文科生可以报计算机专业am,2018年高考志愿:文科生,可以报考哪些专业!...
- 【夜读】这一年,谢谢自己
- nrf52832 TWI/I2C 调试
- 浙江省c语言二级的笔试真题及答案,浙江省高等学校C语言二级----笔试部分真题2007-2010年.doc...
- 8大软件供应链攻击事件概述
热门文章
- PDF Reader Pro - 一款全能型PDF文件编辑器
- Nmap库ICMP主机探测
- 模糊聚类及matlab实现,matlab模糊聚类程序
- HTML5前端可以兼职做什么
- 运维基础实用知识点--软件篇
- steam服务器102修复,steam平台102代码错误怎么办 解决steam错误代码102图文教程
- 深度学习----GAN(生成对抗神经网络)原理解析
- 8分钟教你学会局域网邮箱服务器搭建
- 数据库课程设计——某工厂的物料管理系统(附Java源码与课程设计报告)
- 【无标题】How to Programe 2021 GMC Terrain Smart Key Programming by Autel IM508