【博士每天一篇文献-算法】改进的PNN架构Progressive learning A deep learning framework for continual learning

简介: 本文提出了一种名为“Progressive learning”的深度学习框架,通过结合课程选择、渐进式模型容量增长和剪枝机制来解决持续学习问题,有效避免了灾难性遗忘并提高了学习效率。

阅读时间:2023-12-24

1 介绍

年份:2020
作者:Haytham Fayek,Lawrence Cavedon,Hong Ren Wu,皇家墨尔本理工大学计算机技术学院
期刊: Neural Networks
引用量:43
Fayek H M, Cavedon L, Wu H R. Progressive learning: A deep learning framework for continual learning[J]. Neural Networks, 2020, 128: 345-357.
提出了一种名为“Progressive learning”的深度学习框架,解决持续学习问题。Progressive learning 框架包含三个主要步骤,分别是Curriculum(课程)、Progression(渐进)和Pruning(剪枝)。课程是指主动从一组候选任务中选择一个任务进行学习。渐进是指通过添加新参数来增加模型的容量,这些新参数利用之前任务中学习到的参数,同时学习当前新任务的数据,而不会受到灾难性遗忘的影响。剪枝是指用来抵消随着学习更多任务而增加的参数数量,同时减轻不相关的先前知识可能对当前任务造成的负面前向迁移。
image.png
image.png
image.png

2 创新点

  1. 全新的框架: 提出了Progressive learning框架,这是一个针对持续学习设计的深度学习框架,它综合了课程(Curriculum)、渐进(Progression)和剪枝(Pruning)三个步骤。
  2. 主动任务选择: 通过课程过程主动选择下一个要学习的任务,这一策略考虑了当前的知识状态,并可能导致任务难度的自然发展。
  3. 模型容量增长: 渐进过程通过添加新参数(称为渐进块)来增加模型的容量,这些新参数利用之前任务中学习到的参数,同时避免了灾难性遗忘。
  4. 参数剪枝机制: 剪枝过程用于抵消随着学习新任务而增加的参数数量,并减少不相关的先前知识可能对当前任务造成的负面前向迁移。
  5. 避免灾难性遗忘: 通过仅训练新添加的参数,而保持之前块中的参数不变,从而避免了在学习新任务时对旧任务知识的灾难性遗忘。
  6. 特征重用: 使用连接操作而不是求和操作来鼓励特征的重用,这简化了模型的优化并改善了梯度流动。
  7. 贪婪逐层剪枝: 基于深度网络中各层特征特异性不同的直觉,提出了一种贪婪逐层剪枝方法,该方法按层剪枝权重,以减少参数数量而不影响性能。
  8. 跨领域评估: 在图像识别和语音识别两个领域对Progressive learning进行了评估,证明了其在相关任务中相比于独立学习、迁移学习、多任务学习和相关持续学习基线的优势。
  9. 更高效的学习速度: 展示了Progressive learning在相关任务中可以更快地收敛到更好的泛化性能,同时使用更少的专用参数。

3 相关研究

3.1 相关概念

(1)负面前向迁移(Negative Forward Transfer)
是指在一个学习系统尝试学习新任务时,之前学到的知识或经验对新任务的性能产生负面影响的现象。这通常发生在新任务与之前的任务不相关或者只有很少相关性的情况下。
正向迁移(Positive Transfer)是指从先前的任务中学习到的知识中获益,这些知识可以帮助系统更快地学习新任务然而,如果先前学到的知识与新任务的要求不一致或相冲突,就可能导致负面前向迁移,从而干扰新任务的学习过程,使得性能下降。例如,假设一个机器学习模型首先在识别猫的图片上进行了训练,然后转向识别狗的图片的任务。如果模型在识别猫方面学得太好,它可能会错误地将一些狗的图片识别为猫,因为它之前学到的特征对于新任务不够通用,这就是负面前向迁移的一个例子。

3.2 相关论文

(1)参数正则化范式
旨在为先前任务找到参数重要性的度量,这些度量可以用来在新任务训练期间适应性地调整或惩罚它们的扰动,从而减轻灾难性遗忘,例如弹性权重整合(Kirkpatrick et al., 2017)和突触智能(Zenke, Poole, & Ganguli, 2017)。
(2)功能正则化范式
通过在损失函数中引入正则化项来对抗灾难性遗忘,该项在新任务训练期间惩罚模型在一些先前任务上训练的输出与当前任务训练时的偏差,例如学习不遗忘(Li & Hoiem 2016)和通过蒸馏适应(Hou, Pan, Loy, Wang, & Lin, 2018)。
Li Z, Hoiem D. Learning without forgetting[J]. IEEE transactions on pattern analysis and machine intelligence, 2017, 40(12): 2935-2947.
Hou S, Pan X, Loy C C, et al. Lifelong learning via progressive distillation and retrospection[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 437-452.
(3)架构范式通过为每个新任务添加新的自适应参数来规避灾难性遗忘,例如块模块化神经网络(Terekhov et al., 2015)、渐进神经网络(Rusu et al., 2016)和残差适配器(Rebuffi, Bilen, & Vedaldi, 2017)。
Terekhov A V, Montone G, O’Regan J K. Knowledge transfer in deep block-modular neural networks[C]//Biomimetic and Biohybrid Systems: 4th International Conference, Living Machines 2015, Barcelona, Spain, July 28-31, 2015, Proceedings 4. Springer International Publishing, 2015: 268-279.
Rusu A A, Rabinowitz N C, Desjardins G, et al. Progressive neural networks[J]. arXiv preprint arXiv:1606.04671, 2016.
Rebuffi S A, Bilen H, Vedaldi A. Learning multiple visual domains with residual adapters[J]. Advances in neural information processing systems, 2017, 30.
(3)经验重放范式存储先前任务中看到的数据,要么是直接的,例如梯度情景记忆(Lopez-Paz & Ranzato, 2017),要么通过生成模型进行压缩(Shin, Lee, Kim, & Kim, 2017),并在训练中利用多任务目标,通过在训练过程中重放先前任务中看到的数据,结合新引入的任务(Isele & Cosgun, 2018)。
Lopez-Paz D, Ranzato M A. Gradient episodic memory for continual learning[J]. Advances in neural information processing systems, 2017, 30.
Shin H, Lee J K, Kim J, et al. Continual learning with deep generative replay[J]. Advances in neural information processing systems, 2017, 30.
Isele D, Cosgun A. Selective experience replay for lifelong learning[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2018, 32(1).
(4)元学习范式,即学习如何学习
Al-Shedivat M, Bansal T, Burda Y, et al. Continuous adaptation via meta-learning in nonstationary and competitive environments[J]. arXiv preprint arXiv:1710.03641, 2017.

4 算法

4.1 算法步骤

  • 初始化:选择一组候选任务和相应的数据集。
  • 对于每个任务:
    • 使用课程策略选择下一个任务。
    • 使用渐进过程训练新的任务模型(渐进块)。
    • 如果是学习后续任务,使用剪枝过程来优化模型。
    • 更新已学习任务和处理过的数据集的集合。

4.2 算法原理

  1. 课程(Curriculum):从一组候选任务中确定接下来要学习的任务,考虑当前的知识状态。对每个候选任务训练和评估一个简单的分类或回归模型,使用已有的特征。选择性能最好的任务作为下一个学习任务,即利用已学习特征最能解决的任务。
  2. 渐进(Progression):通过添加新参数来增加模型的容量,以便学习新任务,同时利用之前任务中学到的参数。为每个新任务实例化并训练一个新的多层神经网络(称为渐进块),它除了层内连接外,还从现有渐进块的相应前层接收输入。即使用连接操作将前一层的输出与之前所有块的前一层输出连接起来,形成输入。仅训练新添加的渐进块中的参数,而保持之前块中的参数不变,避免灾难性遗忘。

image.png

  1. 剪枝(Pruning):抵消由于连续学习新任务导致的参数数量增长,并减轻负面前向迁移。在每个渐进块训练收敛后,迭代地剪枝每层中权重大小最小的一部分,并继续训练以补偿被剪枝的权重。使用贪婪策略剪枝,按照从小到大的顺序逐渐增加剪枝量,直到性能下降为止,从而找到最优的剪枝量。基于网络中不同层学习到的特征特异性不同,初期层更倾向于被剪枝,因为它们学习到的特征更通用。

image.png

5 实验分析

(1)渐进学习方法的消融实验,对比11个图像识别任务上的准确性
image.png
可以观察到渐进学习在多数或所有任务上的准确率普遍高于独立学习。这表明通过渐进学习,模型能够更有效地利用先前任务学到的知识来提高新任务的学习效率和性能。独立学习在每个任务上的表现可能相对一致,因为它不依赖于之前任务学到的知识,每次任务都是从零开始学习。
(2)学习效率
image.png
根据课程策略的结果排序的,这可能意味着任务的难度或复杂性是逐渐增加的。
渐进学习曲线显示出比独立学习更快的下降趋势,这表明渐进学习方法能够更快地收敛到较低的验证误差,即学习速度更快。渐进学习之所以能够更快地学习,是因为它能够利用之前任务中学到的知识,避免了每次都从头开始学习。
(3)剪枝过程前后的对比
image.png
图A在应用剪枝过程之前,随着任务数量的增加,模型的总参数数量显著增加。剪枝过程有效地减少了模型的总参数数量,这有助于控制模型的复杂度,防止过拟合。
图B中固定参数的数量可能随着任务的增加而增加,但剪枝过程有助于减少这些参数的数量,这表明剪枝不仅影响当前正在训练的块,也可能影响之前块中的参数。
图C中自适应参数的数量代表了当前任务正在训练的新参数。剪枝过程可能对这些参数有显著影响,通过去除不重要的参数来优化模型结构。
(4)剪枝(Pruning)步骤对不同网络层的影响
image.png
与网络的深层相比,网络的初始层(接近输入层的层)更倾向于被剪枝。这表明初始层学到的特征在后续任务中可能更容易被替代或被认为是冗余的。由于在渐进学习中,先前块学到的特征可以在新的块中被重用,因此,后续块可以依赖于之前块中学习到的更通用的特征,从而减少了对初始层特征的需求。
(5)四个语音识别任务上的性能对比
image.png
四个语音识别任务可能包括自动语音识别(ASR)、语音情感识别(SER)、说话人识别(SR)和性别识别(GR)。
可以观察到,渐进学习方法在某些任务上可能表现更好,这表明它能够利用之前任务学到的知识来提高新任务的学习效率和性能。渐进学习方法可能在新任务上收敛得更快,因为它不需要每次都从零开始学习,而是可以利用之前任务中学到的特征。
(6)四个语音识别任务上的学习效率
image.png
渐进学习在多数或所有任务上显示出比独立学习更快的下降趋势,这表明它能够更快地学习并减少训练过程中的错误率。

6 思考

(1)本文在PNN的结构上结合了课程学习和剪枝的过程,创新型一般。

相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
目录
相关文章
|
3月前
|
机器学习/深度学习 人工智能 资源调度
【博士每天一篇文献-算法】连续学习算法之HAT: Overcoming catastrophic forgetting with hard attention to the task
本文介绍了一种名为Hard Attention to the Task (HAT)的连续学习算法,通过学习几乎二值的注意力向量来克服灾难性遗忘问题,同时不影响当前任务的学习,并通过实验验证了其在减少遗忘方面的有效性。
74 12
|
3月前
|
机器学习/深度学习 算法 计算机视觉
【博士每天一篇文献-算法】持续学习经典算法之LwF: Learning without forgetting
LwF(Learning without Forgetting)是一种机器学习方法,通过知识蒸馏损失来在训练新任务时保留旧任务的知识,无需旧任务数据,有效解决了神经网络学习新任务时可能发生的灾难性遗忘问题。
222 9
|
3月前
|
机器学习/深度学习 算法 机器人
【博士每天一篇文献-算法】改进的PNN架构Lifelong learning with dynamically expandable networks
本文介绍了一种名为Dynamically Expandable Network(DEN)的深度神经网络架构,它能够在学习新任务的同时保持对旧任务的记忆,并通过动态扩展网络容量和选择性重训练机制,有效防止语义漂移,实现终身学习。
58 9
|
3月前
|
存储 机器学习/深度学习 算法
【博士每天一篇文献-算法】连续学习算法之HNet:Continual learning with hypernetworks
本文提出了一种基于任务条件超网络(Hypernetworks)的持续学习模型,通过超网络生成目标网络权重并结合正则化技术减少灾难性遗忘,实现有效的任务顺序学习与长期记忆保持。
45 4
|
3月前
|
存储 机器学习/深度学习 算法
【博士每天一篇文献-算法】连续学习算法之RWalk:Riemannian Walk for Incremental Learning Understanding
RWalk算法是一种增量学习框架,通过结合EWC++和修改版的Path Integral算法,并采用不同的采样策略存储先前任务的代表性子集,以量化和平衡遗忘和固执,实现在学习新任务的同时保留旧任务的知识。
88 3
|
6天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
5天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
5天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
16 1
服务架构的演进:从单体到微服务的探索之旅
|
4天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
24 5
|
7天前
|
监控 API 微服务
后端技术演进:从单体架构到微服务的转变
随着互联网应用的快速增长和用户需求的不断演化,传统单体架构已难以满足现代软件开发的需求。本文深入探讨了后端技术在面对复杂系统挑战时的演进路径,重点分析了从单体架构向微服务架构转变的过程、原因及优势。通过对比分析,揭示了微服务架构如何提高系统的可扩展性、灵活性和维护效率,同时指出了实施微服务时面临的挑战和最佳实践。
25 7