当前位置: 首页 > article >正文

Meta Network||论文笔记

 

元学习论文总结||小样本学习论文总结

2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 CVPR2017-2019 ECCV2018 ICCV2017-2019 ICLR2017-2019 NIPS2017-2019

 

Meta-Learning论文笔记:Meta Network

Meta-Learning论文笔记:Meta Network

本文是对2017年ICML的一篇Meta-Learning论文的笔记论文连接。

MetaNet 是Meta Networks的缩写,具有用于跨任务快速泛化的体系结构和训练流程。

名词说明:Fast Weight 和 Slow Weight

模型的跨任务快速概括依赖于fast weight。神经网络中的参数通常是根据目标函数中的梯度下降来更新的,这个过程对于小样本学习是很慢的。一种更快的学习方法是利用一个神经网络预测另一个神经网络的参数,生成的参数称为快权值即fast weight。普通的基于SGD等优化的参数被称为慢权值即slow weight。

在 MetaNet 中,损失梯度信息被作为meta information ,用来生成快权重。在神经网络中,将慢权值和快权值结合起来进行预测。

多层叠加Layer Augmentation

模型:

整体架构:

如图,MetaNet的训练包括三个主要过程: meta information的获取、以及fast weight的生成和slow weight的优化,由base learner和meta learner共同执行。

MetaNet的整体结构

数据集和主要的函数说明:

  • 训练数据包含两种数据集:支持集 supportset\left\{x_{i}^{\prime}, y_{i}^{\prime}\right\}_{i=1}^{N}和训练集 \left\{x_{i}, y_{i}\right\}_{i=1}^{L}
  • Base learner简写为 b,是一个函数或神经网络。通过任务损失 loss_{\operatorname{task}} 估计主要任务目标。它的参数由慢权值 example-level的快权值 W^{*} 构成
  • 动态表征函数 u,对样本学习到一个嵌入。参数由慢权值 example-level快权值 Q^{*} 组成
  • Meta learner由快速权值生成函数 和 组成,参数为 和 G,它们的输入由损失梯度 \nabla_{W}和 \nabla_{Q} 构成,经过映射后生成 W^{*}和 Q^{*}和其对应慢权值维度相同

训练过程:

1. 表征函数的学习:将随机采样的支持集数据输入到表征(嵌入)函数 中,为了得到数据集的嵌入,利用表征损失 los s_{e m b} 来捕获表示学习目标,并将梯度作为meta information获取。其中损失函数为:\mathcal{L}_{i}=loss_{e m b}\left(u\left(Q, x_{i}^{\prime}\right), y_{i}^{\prime}\right)\\它的具体计算是随机抽取 对支持集样本的来计算嵌入损失:\mathcal{L}_{i}=loss_{e m b}\left(u\left(Q, x_{1, i}^{\prime}\right), u\left(Q, x_{2, i}^{\prime}\right), l_{i}\right)\\其中 l_{i} 是辅助标签:l_{i}=\left\{\begin{array}{ll}{1,} & {\text { if } y_{1, i}^{\prime}=y_{2, i}^{\prime}} \\ {0,} & {\text { otherwise }}\end{array}\right.\\其实也就是个二分类,属于所有的支持集样本嵌入做距离计算后经过映射或 sigmod 函数转化为概率,就成为二分类问题。每次任务损失反向传播得到其损失梯度信息:\nabla_{i}=\nabla_{Q} \mathcal{L}_{i}\\对函数 每次任务损失反向传播得到其梯度信息 \nabla_{Q} ,通过快权值生成函数 的映射得到快权值 Q^{*} :Q^{*}=d\left(G,\{\nabla\}_{i=1}^{T}\right)\\2. 快权值的生成:对每个支持集样本数据输入到Base learner函数 中,之后计算出预测的标签和支持集实际的标签通过交叉熵等损失函数计算 loss :\mathcal{L}_{i}=loss_{\operatorname{task}}\left(b\left(W, x_{i}^{\prime}\right), y_{i}^{\prime}\right)\\生成Base learner 的快权值需要支持集的meta information,即利用支持集的损失梯度信息:\nabla_{i}=\nabla_{W} \mathcal{L}_{i}\\函数 从损失梯度 \left\{\nabla_{i}\right\}_{i=1}^{N} 中学到一个映射,映射后得到快权值 \left\{W_{i}^{*}\right\}_{i=1}^{N} :

W_{i}^{*}=m\left(Z, \nabla_{i}\right)\\这个快权值 W_{i}^{*} 存储在 M=\left\{W_{i}^{*}\right\}_{i=1}^{N} 中。

3. 建立支持集的索引:利用参数为快权值 Q^{*} 和慢权值 Q 的表征函数 支持集进行建立索引(有快权值的支持集的嵌入) R=\left\{r_{i}^{\prime}\right\}_{i=1}^{N} :r_{i}^{\prime}=u\left(Q, Q^{*}, x_{i}^{\prime}\right)\\4. 建立训练集的索引:与上一步类似,通过具有慢权值和快权值的表征函数 训练集建立查询索引(对训练集的嵌入):r_{i}=u\left(Q, Q^{*}, x_{i}\right)\\5. 对快权值的读取:如果参数 W_{i}^{*} 存储在 M 中且索引 R 已经建立,用attention(这里的attention用余弦相似度计算存储索引和输入索引)在之前建立的所有支持集的索引 R 和每一个训练集的索引计算一个相似分数:a_{i}=attention\left(R, r_{i}\right)\\然后经过归一化后用于读取存储 M 得到最终的快权值:W_{i}^{*}=softmax\left(a_{i}\right)^{\top} M\\6. 训练集标签的预测:Base learner函数 有了慢权值 W 和快权值 W^{*} 后那么执行one-shot分类为:P\left(\hat{y}_{i} | x_{i}, W, W_{i}^{*}\right)=b\left(W, W_{i}^{*}, x_{i}\right)\\这里的 \hat{y}_{i} 是对 \left\{x_{i}\right\}_{i=1}^{L} 的预测输出,另外这里的输入也可以用训练集的嵌入 \left\{r_{i}\right\}_{i=1}^{L} 代替。最终训练集损失的计算:loss_{\operatorname{task}}\left(b\left(W, W_{i}^{*}, x_{i}\right), y_{i}\right)\\整个网络的训练参数是 \theta=\{W, Q, Z, G\} ,通过像反向传播算法去最小化任务损失 。

MetaNet的训练算法如图所述:

MetaNet论文中的算法

论文在Omniglot、Mini-ImageNet 和 MNIST 三种数据集上做了One-Shot实验,实验结果都不错,具体可以看一下论文。

总结:该模型利用损失梯度作为元信息来计算快权值,能够快速适应新的不同的任务,增强在训练样本少的情况下的学习效果。效果其实也不是很强,有很多可以改善的点,并且具体训练的时候因为生成快权值的神经网络参数较多或用的LSTM这样的网络所以比较慢。

http://www.lryc.cn/news/2420646.html

相关文章:

  • ssm+jsp计算机毕业设计大连东软人才培训中心oa系统tc617(程序+LW+源码+远程部署)
  • ★★★安博.牛耳嵌入式课程介绍★★★
  • Win11系统提示找不到jscript9Legacy.dll文件的解决办法
  • java中常用算法算法
  • AspNet MVC过滤器+实例
  • 【HTML基础-3】iframe框架详解及应用案例—实现页面嵌套
  • android获取外部sd卡路径,如何区分android中的内部和外部SD卡路径
  • 基于php+vue购物商城系统python-flask-django-nodejs
  • 在windows 本机 搭建 FTP 保姆保姆级教学
  • FMR-31模拟信号采集模块实现实时数据采集与处理
  • Nexus()下载与安装详解
  • weblogic的安装和配置
  • 单点登录(SSO)-- 实现单点登录的几种方式
  • 什么是单点登录?如何实现?
  • 基于STC12单片机恒温箱温度控制系统设计
  • Linux 内核模块编程
  • PGP加密,良好隐私密码法
  • 使用java语言编写一个简易的计算器(完整代码与详细步骤都有哦!)
  • 手把手教你实现Gitlab远程备份(超详细,图文并茂)
  • 基于Java+Jsp+Ssm+Mysql实现的Java Web家庭理财消费支出收支管理系统设计与实现
  • 为什么家中照明用LED灯越来越不耐用?
  • 多功能聊天软件的设计与开发——音频视频聊天模块
  • java汽车维修管理系统(开题+源码)
  • 92条 SVN命令
  • 史上最全免费收录网站搜索引擎登录口(经典)
  • 12个国外稳定无限量免费网盘
  • plsql 存储过程 批量提交_浅谈PetShop之使用存储过程与PLSQL批量处理(附案例)
  • html5 右侧客服代码,简洁右侧栏客服代码
  • F5 负载均衡器
  • ZFAKA-自动发卡收款平台全套搭建教程(含支付接口设置)