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

简介: 本文提出了一种基于任务条件超网络(Hypernetworks)的持续学习模型,通过超网络生成目标网络权重并结合正则化技术减少灾难性遗忘,实现有效的任务顺序学习与长期记忆保持。

阅读时间: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),其参数为 $ \Theta_h $​,用于生成目标网络的权重 $ \Theta_{trgt} $​。
  2. 学习任务嵌入
    • 对于每个任务,学习一个任务嵌入向量 e(t),该向量为超网络提供任务特定的上下文。
  3. 目标网络权重生成
    • 使用超网络和任务嵌入向量,生成目标网络的权重配置 $ \Theta_{trgt} = f_h(e, \Theta_h) $。
  4. 正向传播与任务学习
    • 利用生成的权重 $ \Theta_{trgt} $和当前任务的数据 (X(t),Y(t))进行正向传播,并通过反向传播更新超网络参数 $ \Theta_h $​。
  5. 权重更新正则化
    • 为了防止灾难性遗忘,使用一个正则化项来惩罚那些改变先前任务学习到的权重配置的参数更新。正则化项 $ L_{output} $​确保了在训练新任务时,先前任务的权重配置 $ \Theta_h^* $​保持稳定。
  6. 计算总损失
    • 总损失 $ L_{total} $​由当前任务的损失 $ L_{task} $​和输出正则化项 $ L_{output} $​组成。
  7. 更新超网络参数
    • 使用优化算法(Adam)根据总损失 $ L_{total} $​更新超网络的参数 $ \Theta_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架构。

目录
相关文章
|
9天前
|
算法 JavaScript 前端开发
第一个算法项目 | JS实现并查集迷宫算法Demo学习
本文是关于使用JavaScript实现并查集迷宫算法的中国象棋demo的学习记录,包括项目运行方法、知识点梳理、代码赏析以及相关CSS样式表文件的介绍。
第一个算法项目 | JS实现并查集迷宫算法Demo学习
|
13天前
|
XML JavaScript 前端开发
学习react基础(1)_虚拟dom、diff算法、函数和class创建组件
本文介绍了React的核心概念,包括虚拟DOM、Diff算法以及如何通过函数和类创建React组件。
15 2
|
2月前
|
机器学习/深度学习 人工智能 资源调度
【博士每天一篇文献-算法】连续学习算法之HAT: Overcoming catastrophic forgetting with hard attention to the task
本文介绍了一种名为Hard Attention to the Task (HAT)的连续学习算法,通过学习几乎二值的注意力向量来克服灾难性遗忘问题,同时不影响当前任务的学习,并通过实验验证了其在减少遗忘方面的有效性。
52 12
|
2月前
|
机器学习/深度学习 算法 计算机视觉
【博士每天一篇文献-算法】持续学习经典算法之LwF: Learning without forgetting
LwF(Learning without Forgetting)是一种机器学习方法,通过知识蒸馏损失来在训练新任务时保留旧任务的知识,无需旧任务数据,有效解决了神经网络学习新任务时可能发生的灾难性遗忘问题。
100 9
|
2月前
|
算法 Java
掌握算法学习之字符串经典用法
文章总结了字符串在算法领域的经典用法,特别是通过双指针法来实现字符串的反转操作,并提供了LeetCode上相关题目的Java代码实现,强调了掌握这些技巧对于提升算法思维的重要性。
|
2月前
|
算法 NoSQL 中间件
go语言后端开发学习(六) ——基于雪花算法生成用户ID
本文介绍了分布式ID生成中的Snowflake(雪花)算法。为解决用户ID安全性与唯一性问题,Snowflake算法生成的ID具备全局唯一性、递增性、高可用性和高性能性等特点。64位ID由符号位(固定为0)、41位时间戳、10位标识位(含数据中心与机器ID)及12位序列号组成。面对ID重复风险,可通过预分配、动态或统一分配标识位解决。Go语言实现示例展示了如何使用第三方包`sonyflake`生成ID,确保不同节点产生的ID始终唯一。
go语言后端开发学习(六) ——基于雪花算法生成用户ID
|
5天前
|
传感器 算法 C语言
基于无线传感器网络的节点分簇算法matlab仿真
该程序对传感器网络进行分簇,考虑节点能量状态、拓扑位置及孤立节点等因素。相较于LEACH算法,本程序评估网络持续时间、节点死亡趋势及能量消耗。使用MATLAB 2022a版本运行,展示了节点能量管理优化及网络生命周期延长的效果。通过簇头管理和数据融合,实现了能量高效和网络可扩展性。
|
2天前
|
算法 数据挖掘
基于粒子群优化算法的图象聚类识别matlab仿真
该程序基于粒子群优化(PSO)算法实现图像聚类识别,能识别0~9的数字图片。在MATLAB2017B环境下运行,通过特征提取、PSO优化找到最佳聚类中心,提高识别准确性。PSO模拟鸟群捕食行为,通过粒子间的协作优化搜索过程。程序包括图片读取、特征提取、聚类分析及结果展示等步骤,实现了高效的图像识别。
|
1月前
|
算法 BI Serverless
基于鱼群算法的散热片形状优化matlab仿真
本研究利用浴盆曲线模拟空隙外形,并通过鱼群算法(FSA)优化浴盆曲线参数,以获得最佳孔隙度值及对应的R值。FSA通过模拟鱼群的聚群、避障和觅食行为,实现高效全局搜索。具体步骤包括初始化鱼群、计算适应度值、更新位置及判断终止条件。最终确定散热片的最佳形状参数。仿真结果显示该方法能显著提高优化效率。相关代码使用MATLAB 2022a实现。
|
1月前
|
算法 数据可视化
基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真
奇异谱分析(SSA)是一种基于奇异值分解(SVD)和轨迹矩阵的非线性、非参数时间序列分析方法,适用于提取趋势、周期性和噪声成分。本项目使用MATLAB 2022a版本实现从强干扰序列中提取趋势线,并通过可视化展示了原时间序列与提取的趋势分量。代码实现了滑动窗口下的奇异值分解和分组重构,适用于非线性和非平稳时间序列分析。此方法在气候变化、金融市场和生物医学信号处理等领域有广泛应用。
下一篇
无影云桌面