【博士每天一篇文献-算法】连续学习算法之HNet:Continual learning with hypernetworks

news2024/9/23 19:18:26

阅读时间:2023-12-26

1 介绍

年份:2019
作者:Johannes von Oswald,Google Research;Christian Henning,EthonAI AG;Benjamin F. Grewe,苏黎世联邦理工学院神经信息学研究所
期刊: 未发表
引用量:379
Von Oswald J, Henning C, Grewe B F, et al. Continual learning with hypernetworks[J]. arXiv preprint arXiv:1906.00695, 2019.
本文提出了任务条件的超网络(元模型网络)作为一种适用于持续学习的神经网络模型,它通过使用使用一个较小的超网络来生成目标网络的权重,然后再结合限制权重更新的正则化方法(如EWC、SI、MAS)来实现连续学习。超网络是基于任务身份来生成权重,在这种学习模式下,任务是顺序呈现的,目标是在学习新任务的同时,保留或提升在先前任务上的性能,同时利用已获得的知识。然后加上连续学习中权重更新的正则化技术,使得超网络在生成权重时能够保留之前任务的学习成果。实验结果表明,这种方法在压缩模式下,超网络能够有效地用相对较少的参数来生成一个更大的目标网络的参数,也能实现长期记忆的保持。论文还探讨了任务嵌入空间的结构,并展示了任务条件超网络能够展示迁移学习的能力。
image.png
image.png
image.png

2 创新点

  1. 任务条件超网络:提出了一种新型的超网络,它能够根据任务身份生成目标网络的权重,从而实现对不同任务的适应。
  2. 任务嵌入学习:任务嵌入作为可学习的参数,使得超网络能够为每个任务生成独特的权重配置,增强了模型对任务之间差异的适应性。
  3. 持续学习中的灾难性遗忘解决方案:可以通过加入正则化机制,有效地解决灾难性遗忘问题。
  4. 模型压缩:利用分块超网络实现了模型压缩,使得超网络的参数数量可以少于目标网络的参数数量,从而减少了存储和计算资源的需求。
  5. 上下文无关推理:提出了在任务身份未知的情况下进行推理的策略,包括基于预测不确定性的任务推断和使用生成模型进行合成数据重放。

3 算法步骤

image.png

  1. 初始化超网络
    • 超网络是一个元模型(metamodel),其参数为 Θ h \Theta_h Θh,用于生成目标网络的权重 Θ t r g t \Theta_{trgt} Θtrgt
  2. 学习任务嵌入
    • 对于每个任务,学习一个任务嵌入向量 e ( t ) e(t) e(t),该向量为超网络提供任务特定的上下文。
  3. 目标网络权重生成
    • 使用超网络和任务嵌入向量,生成目标网络的权重配置 Θ t r g t = f h ( e , Θ h ) \Theta_{trgt} = f_h(e, \Theta_h) Θtrgt=fh(e,Θh)
  4. 正向传播与任务学习
    • 利用生成的权重 Θ t r g t \Theta_{trgt} Θtrgt和当前任务的数据 ( X ( t ) , Y ( t ) ) (X(t), Y(t)) (X(t),Y(t))进行正向传播,并通过反向传播更新超网络参数 Θ h \Theta_h Θh
  5. 权重更新正则化
    • 为了防止灾难性遗忘,使用一个正则化项来惩罚那些改变先前任务学习到的权重配置的参数更新。正则化项 L o u t p u t L_{output} Loutput确保了在训练新任务时,先前任务的权重配置 Θ h ∗ \Theta_h^* Θh保持稳定。
  6. 计算总损失
    • 总损失 L t o t a l L_{total} Ltotal由当前任务的损失 L t a s k L_{task} Ltask和输出正则化项 L o u t p u t L_{output} Loutput组成。
  7. 更新超网络参数
    • 使用优化算法(Adam)根据总损失 L t o t a l L_{total} Ltotal更新超网络的参数 Θ h \Theta_h Θh
  8. 记忆保持
    • 在学习新任务时,通过正则化项保持对先前任务的记忆,而不需要存储大量的数据。
  9. 任务条件超网络的压缩
    • 通过分块(chunking)策略,超网络可以迭代地生成目标网络的一部分权重,从而实现模型压缩。
  10. 上下文无关推理
  • 在某些情况下,任务身份在推理时可能不明确。本文提出了策略来推断任务身份,例如基于预测不确定性的方法或使用生成模型进行合成数据重放。
  • 预测不确定性的方法:给定一个输入样本,网络需要推断它属于哪个任务。使用超网络为所有已知任务生成权重配置,并使用这些权重在目标网络上进行前向传播。对于每个任务,计算网络输出的熵(或不确定性),低熵意味着高确定性。选择预测不确定性最低的任务作为输入样本的任务标签。
  • **任务推断网络:**训练一个辅助网络来预测输入样本的任务身份。使用超网络保护的合成数据和真实数据训练一个任务推断网络。根据任务推断网络的输出,选择相应的任务嵌入向量,并使用超网络生成目标网络的权重。
  • 生成重放:重放方法不需要考虑任务身份,统一输入模型预测。首先使用超网络生成的参数训练一个生成模型,在训练新任务时,从生成模型中合成先前任务的数据。将合成数据与当前任务的真实数据混合,用于训练目标模型。可以使用额外的任务推断网络来确定输入样本的任务身份。
  • 经验重放:重放方法不需要考虑任务身份,统一输入模型预测。在训练新任务时,将重放数据与当前任务的真实数据结合。在推理时,不依赖于任务上下文,直接使用训练过程中学到的权重进行前向传播。

4 实验分析

(1)不同方法的回归拟合表现
image.png
虚线表示真实函数,而标记点则展示了模型预测的结果。超网络能够顺序地学习一系列逐渐增加次数的多项式函数,并且能够很好地拟合每个任务的函数,即使在顺序学习的过程中也是如此。微调方法虽然在新任务上可能表现良好,但会牺牲对旧任务的记忆,导致先前任务的性能下降。
(2)Permuted MNIST基准测试上的实验结果
image.png
超网络在模型参数数量较少的情况下实现有效的持续学习,即使在压缩比低于1的情况下也能保持较高的准确率。
(4)Permuted MNIST和Split MNIST实验中不同持续学习方法的平均测试准确率
image.png

  • EWC:在线弹性权重固化(online Elastic Weight Consolidation)。
  • SI:突触智能(Synaptic Intelligence)。
  • DGR:深度生成性重放(Deep Generative Replay),具体为DGR+distill。
  • HNET+ENT:基于超网络的方法,使用预测分布的熵来推断任务身份(仅在CL1中使用HNET)。
  • HNET+TIR:使用超网络保护的识别-重放网络(基于变分自编码器VAE)来从输入模式中推断任务。
  • HNET+R:主分类器通过混合当前任务数据和由超网络保护的VAE生成的合成数据进行训练。

任务条件超网络(HNET)在持续学习环境中,尤其是在需要顺序学习并记忆多个任务的场景中,具有显著的性能优势。这些方法能够有效地解决灾难性遗忘问题,并在不同任务之间实现有效的知识迁移。
(5)Split MNIST基准测试中任务嵌入空间的二维可视化
image.png
图a中在低维(二维)嵌入空间中,模型也能够实现高分类性能,并且几乎没有遗忘。
图b中最后一个任务占据了一个有限的高性能区域,当远离该嵌入向量时,性能逐渐下降,但下降是平滑的。这表明即使在有限的嵌入空间内,模型也能够为每个任务找到一个相对独立的区域,以保持其性能。
(4)持续学习基准测试
image.png
使用超网络保护的ResNet-32模型显示出几乎没有任何遗忘的现象。最终的平均性能(红色)与每个任务训练结束后立即测试的性能(蓝色)相匹配,这表明模型在学习新任务时能够保留对先前任务的记忆。从红色线高于紫色线看出,表明利用先前学习的知识比从头开始训练每个任务的性能更好。当禁用超网络的正则化项时(黄色),模型表现出强烈的遗忘现象。这表明正则化项在防止灾难性遗忘中起着关键作用。

5 思考

(1)使用分块超网络(Chunked Hypernetworks)的主要动机和优势是什么?

  1. 模型压缩
    • 在现代深度神经网络中,权重的数量通常非常庞大。分块超网络通过分批次生成目标网络的权重,可以减少所需的存储空间和计算资源。
  2. 参数效率
    • 分块超网络允许使用较少的参数来控制目标网络的权重,这使得模型更加参数高效,尤其是在资源受限的环境中。
  3. 灵活性
    • 分块超网络提供了一种灵活的方式来生成目标网络的权重,可以根据不同任务的需求调整生成的权重块。
  4. 任务特定权重生成
    • 通过为每个任务学习特定的任务嵌入向量,分块超网络可以生成适合特定任务的权重,从而提高任务的性能。
  5. 减少灾难性遗忘
    • 在持续学习场景中,分块超网络可以通过正则化技术保护先前任务的知识,减少在学习新任务时对旧任务知识的遗忘。

如果不使用分块超网络,可能会有以下影响:

  1. 存储需求增加
    • 需要存储整个目标网络的权重,这在权重数量庞大时会占用大量存储空间。
  2. 计算成本增加
    • 在训练和推理过程中,需要处理更多的参数,这会增加计算资源的消耗。
  3. 灾难性遗忘
    • 在持续学习环境中,如果不采取措施保护先前任务的知识,学习新任务时可能会遗忘旧任务的知识,导致性能下降。
  4. 泛化能力受限
    • 没有分块超网络的灵活性,可能难以为不同的任务生成最优的权重配置,从而影响模型在新任务上的泛化能力。
  5. 训练难度增加
    • 直接在目标网络上进行训练可能会使得模型更难收敛,尤其是在任务之间存在显著差异的情况下。
  6. 资源分配不均
    • 在没有模型压缩的情况下,可能无法有效地利用有限的计算和存储资源,导致资源分配不均。

(2)只有在分块的超网络结构中借鉴了PNN架构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1933937.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决虚拟机与主机ping不通,解决主机没有vmware网络

由于注册表文件缺失导致,使用这个工具 下载cclean 白嫖就行 https://www.ccleaner.com/ 是 点击修复就可以了

《TF2.x》强化学习手册-P47-P59-TD时序差分-Monte_carlo蒙特卡洛预测与控制算法

文章目录 实现时序差分学习前期准备实现步骤工作原理 构建强化学习中的蒙特卡洛预测和控制算法前期准备实现步骤工作原理 实现时序差分学习 时序差分(Temporal Difference ,TD)算法。TD算法是一种预测值或目标值校正的方法,用于强…

JRT实体视图查询

JRT的设计目标就是多数据库支持,对于爬行周边数据提供DolerGet解决爬取多维数据问题。但是对于通过父表字段筛选子表数据就不能通过DolerGet取数据了,因为查询到的父表数据没有子表数据的ID。 比如下面表: 我需要按登记号查询这个登记号的报…

tree组件实现折叠与展开功能(方式2 - visible计算属性)

本示例节选自vue3最新开源组件实战教程大纲(持续更新中)的tree组件开发部分。考察Vue3 Composition API形式的计算属性的用法,computed可以单独用在ts文件中,实现ts的计算属性类型的定义。 父节点属性 在IFlatTreeNode中定义父节…

Blackbox AI:你的智能编程伙伴

目录 Blackbox AI 产品介绍 Blackbox AI 产品使用教程 Blackbox AI体验 AI问答 代码验证 实时搜索 探索&代理 拓展集成 总结 Blackbox AI 产品介绍 Blackbox是专门为程序员量身定制的语言大模型,它针对20多种编程语言进行了特别训练和深度优化,在AI代…

MySQL JDBC

JDBC:Java的数据库编程 JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是 Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java 开…

MySQL:基础操作(增删查改)

目录 一、库的操作 创建数据库 查看数据库 显示创建语句 修改数据库 删除数据库 备份和恢复 二、表的操作 创建表 查看表结构 修改表 删除表 三、表的增删查改 新增数据 插入否则更新 插入查询的结果 查找数据 为查询结果指定别名 结果去重 where 条件 结…

tree组件实现折叠与展开功能(方式1 - expandedTree计算属性)

本示例节选自vue3最新开源组件实战教程大纲(持续更新中)的tree组件开发部分。考察响应式对象列表封装和computed计算属性的使用,以及数组reduce方法实现结构化树拍平处理的核心逻辑。 实现思路 第一种方式:每次折叠或展开后触发…

经纬恒润全新第二代行泊一体域控制器成功量产

随着L2自动驾驶功能的普及,整车架构的升级,传统分布式控制器已不能适应市场的发展,如何以低成本高性能实现高阶自动驾驶功能的落地, 成为了众多整车厂的迫切需求,行泊一体域控制器应运而生。据高工数据显示,2023年仅1-…

NVIDIA GPU 监控观测最佳实践

1、DCGM 介绍 DCGM(Data Center GPU Manager)即数据中心 GPU 管理器,是一套用于在集群环境中管理和监视 Tesla™GPU 的工具。它包括主动健康监控,全面诊断,系统警报以及包括电源和时钟管理在内的治理策略。它可以由系…

TypeScript 基础类型(一)

简介 它是 JavaScript 的超集,具有静态类型检查和面向对象编程的特性。TypeScript 的出现,为开发者提供了一种更加严谨和高效的开发方式。 主要特点: 、静态类型检查。 通过静态类型检查,开发者可以在编译时发现错误&#xff0…

大气热力学(8)——热力学图的应用之一(气象要素求解)

本篇文章源自我在 2021 年暑假自学大气物理相关知识时手写的笔记,现转化为电子版本以作存档。相较于手写笔记,电子版的部分内容有补充和修改。笔记内容大部分为公式的推导过程。 文章目录 8.1 复习斜 T-lnP 图上的几种线8.1.1 等温线和等压线8.1.2 干绝热…

搬运5款我觉得超级好用的软件

​ 今天再来推荐5个超级好用的效率软件,无论是对你的学习还是办公都能有所帮助,每个都堪称神器中的神器,用完后觉得不好用你找我。 1.PDF阅读——Sumatra PDF ​ Sumatra PDF 是一款 PDF 阅读器,它的界面简洁,使用起…

乐尚代驾一项目概述

前言 2024年7月17日,最近终于在低效率的情况下把java及其生态的知识点背的差不多了,投了两个礼拜的简历,就一个面试,总结了几点原因。 市场环境不好 要知道,前两年找工作,都不需要投简历,把简历…

DevExpress WPF中文教程 - 为项目添加GridControl并将其绑定到数据

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

小程序-3(页面导航+页面事件+生命周期+WXS)

目录 1.页面导航 声明式导航 导航到tabBar页面 导航到非tabBar页面 后退导航 编程式导航 后退导航 导航传参 声明式导航传参 编程式导航传参 在onload中接收导航参数 2.页面事件 下拉刷新 停止下拉刷新的效果 ​编辑 上拉触底 配置上拉触底距离 上拉触底的节…

函数返回右值的一点学习研究

https://zhuanlan.zhihu.com/p/511371573?utm_mediumsocial&utm_oi939219201949429760 下面情况下不会调用: DPoint3d fun1() {return DPoint3d{1,2,3}; // 默认构造 }int main() {DPoint3d&& a fun1();a.y 20;int i 0;i; } 下面情况下&#xff0c…

【内网穿透】如何本地搭建Whisper语音识别模型并配置公网地址

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

数据库管理的艺术(MySQL):DDL、DML、DQL、DCL及TPL的实战应用(下:数据操作与查询)

文章目录 DML数据操作语言1、新增记录2、删除记录3、修改记录 DQL数据查询语言1、查询记录2、条件筛选3、排序4、函数5、分组条件6、嵌套7、模糊查询8、limit分页查询 集合操作union关键字和运算符in关键字any关键字some关键字all关键字 联合查询1、广义笛卡尔积2、等值连接3、…

【.NET全栈】ASP.NET开发Web应用——站点导航技术

文章目录 前言一、站点地图1、定义站点地图文件2、使用SiteMapPath控件3、SiteMap类4、URL地址映射 二、TreeView控件1、使用TreeView控件2、以编程的方式添加节点3、使用TreeView控件导航4、绑定到XML文件5、按需加载节点6、带复选框的TreeView控件 三、Menu控件1、使用Menu控…