【连续学习之随机初始化算法 】2024Nature期刊论文Loss of plasticity in deep continual learning

news2025/3/14 0:33:32

1 介绍

年份:2024

期刊:Nature

Dohare S, Hernandez-Garcia J F, Lan Q, et al. Loss of plasticity in deep continual learning[J]. Nature, 2024, 632(8026): 768-774.

本文提出的算法是“持续反向传播”(continual backpropagation),其关键步骤的技术原理是在标准的反向传播算法基础上,持续地、随机地重新初始化网络中一小部分使用最少的单元,以维持网络的多样性和可塑性。根据单元的贡献度(contribution utility)来选择重新初始化的单元。贡献度是通过计算单元的输出和其权重的乘积的绝对值来衡量的。

2 创新点

  1. 持续反向传播算法:提出了一种新的持续反向传播算法,该算法通过在每次迭代中随机重新初始化一小部分使用最少的单元,来维持网络的可塑性和多样性。
  2. 解决可塑性丧失问题:在深度连续学习环境中,标准深度学习方法会逐渐失去可塑性,本文的算法有效地解决了这个问题,使得网络能够在持续学习中保持性能。
  3. 实验验证:通过在ImageNet、CIFAR-100等经典数据集上的广泛实验,验证了持续反向传播算法在监督学习和强化学习问题中维持可塑性的能力。
  4. 对比分析:将提出的算法与传统反向传播、L2正则化、Shrink and Perturb等方法进行了对比,展示了其在维持网络可塑性方面的优势。
  5. 理论联系实际:文章不仅提出了理论算法,还将其实现在多种深度学习网络和学习算法中,证明了其广泛的适用性和有效性。
  6. 深入分析损失可塑性的原因:文章探讨了损失可塑性背后的几个可能原因,包括网络单元的死亡、权重大小的持续增长以及表示的低有效秩,并针对这些原因提出了解决方案。
  7. 开放资源:提供了实验数据和代码的公开访问,促进了研究的透明度和可重复性。

3 算法

3.1 算法原理

持续反向传播算法(Continual Backpropagation)是在标准反向传播算法的基础上进行的改进,其主要目的是在深度连续学习中维持网络的可塑性。算法的关键步骤如下:

  1. 初始化:网络的权重在训练开始前进行随机初始化。
  2. 前向传播:输入数据通过网络进行前向传播,计算预测值。
  3. 计算损失:根据预测值和真实值计算损失函数。
  4. 反向传播:根据损失函数对网络的权重进行反向传播,计算梯度。
  5. 权重更新:使用梯度下降方法更新网络的权重。
  6. 持续注入随机性:在每次迭代中,随机选择一小部分使用最少的单元进行重新初始化,以维持网络的多样性。
  7. 选择重新初始化的单元:根据单元的贡献度(contribution utility)来选择重新初始化的单元。贡献度是通过计算单元的输出和其权重的乘积的绝对值来衡量的。
  8. 保护新单元:新初始化的单元在一定数量的迭代内不会被再次重新初始化,以保护其不被立即覆盖。
  9. 重复:重复步骤2到8,直到训练结束。

3.2 算法步骤

  1. 初始化:随机初始化网络的权重 w 0 , w 1 , … , w L − 1 w_0, w_1, \ldots, w_{L-1} w0,w1,,wL1,其中 w l w_l wl是第 l l l层的权重。同时初始化每个单元的贡献度 u 1 , u 2 , … , u L − 1 u_1, u_2, \ldots, u_{L-1} u1,u2,,uL1为0。
  2. 前向传播:对于每个输入 x t x_t xt,进行前向传播以得到预测值 y t ′ y_t' yt
  3. 计算损失:根据预测值 y t ′ y_t' yt和真实值 y t y_t yt计算损失函数 L ( x t , y t ) L(x_t, y_t) L(xt,yt)
  4. 反向传播:根据损失函数 L ( x t , y t ) L(x_t, y_t) L(xt,yt)对网络的权重进行反向传播,计算梯度。
  5. 权重更新:使用梯度下降方法更新网络的权重:

w l = w l − α ⋅ ∂ L ∂ w l w_l = w_l - \alpha \cdot \frac{\partial L}{\partial w_l} wl=wlαwlL

其中, α \alpha α是学习率。

  1. 持续注入随机性:在每次迭代中,随机选择一小部分使用最少的单元进行重新初始化。具体步骤如下:
    • 对于每一层 l l l,计算每个单元的年龄 a l a_l al
    • 找出年龄大于成熟阈值 m m m的单元,即成熟单元。
    • 从成熟单元中随机选择 ρ ⋅ n l \rho \cdot n_l ρnl个单元进行重新初始化,其中 n l n_l nl是第 l l l层的单元数, ρ \rho ρ是替换率。
    • 重新初始化这些单元的权重为0,并将它们的贡献度 u l u_l ul和年龄 a l a_l al重置为0。
  2. 贡献度更新:对于每个单元,根据其输出和权重的乘积的绝对值更新其贡献度:

u l [ i ] = η ⋅ u l [ i ] + ( 1 − η ) ⋅ ∣ h l [ i ] ⋅ w l + 1 [ i , k ] ∣ u_l[i] = \eta \cdot u_l[i] + (1 - \eta) \cdot \left| h_l[i] \cdot w_{l+1}[i, k] \right| ul[i]=ηul[i]+(1η)hl[i]wl+1[i,k]

其中, h l [ i ] h_l[i] hl[i]是第 l l l层第 i i i个单元的输出, w l + 1 [ i , k ] w_{l+1}[i, k] wl+1[i,k]是连接第 l l l层第 i i i个单元到第 l + 1 l+1 l+1层第 k k k个单元的权重, η \eta η是贡献度的衰减率。

  1. 重复:重复步骤2到7,直到训练结束。

4 实验分析

随着任务数量的增加,传统反向传播算法的性能逐渐下降,表明了可塑性丧失。这意味着网络在连续学习新任务时,其学习能力逐渐减弱。

比较了本文算法持续反向传播(Continual Backpropagation)、L2正则化和Shrink and Perturb算法在相同连续学习任务中的表现。

标准PPO(Proximal Policy Optimization)学习算法在非静态蚂蚁问题上的表现。图中还展示了对PPO优化器(Adam)进行特别调整后的表现,以及添加持续反向传播或L2正则化后的表现。标准PPO算法在非静态蚂蚁问题上表现灾难性,即随着时间的推移,其性能急剧下降。对PPO的Adam优化器进行特别调整可以减轻这种失败,但并不能完全解决问题。添加持续反向传播或L2正则化是必要的,以确保算法能够长期保持良好的性能。

  1. 现有方法的局限性

    • 流行的深度学习方法(如Adam、Dropout和归一化)实际上增加了可塑性的损失。
    1. Adam优化器:Adam优化器是一种自适应学习率的优化算法,它结合了Momentum和RMSprop的特点。然而,文章中提到,Adam优化器在连续学习任务中可能会导致网络快速失去多样性,表现为有效秩的显著下降和死单元(即在所有样本中输出始终为零的单元)的增加,这些都是可塑性损失的标志。
    2. Dropout正则化:Dropout是一种常用的正则化技术,通过在训练过程中随机丢弃(即设置为零)一部分神经元的输出,以减少过拟合。但文章中指出,Dropout在某些情况下可能会加剧可塑性损失,尤其是在较高的Dropout率下,可能会导致网络中的一些单元在面对新任务时无法恢复活力。
    3. 归一化技术:归一化技术(如Batch Normalization)通过规范化层的输出来减少内部协变量偏移,加速训练过程。尽管归一化在初始任务中可能表现出较好的性能,但文章发现,在连续学习环境中,归一化技术可能会导致网络在后期任务中性能下降,这可能是因为归一化层在面对新任务时无法适应数据分布的变化。
  2. L2正则化的作用

    • L2正则化通过惩罚大权重来减少可塑性损失,防止权重过大,从而保持网络的可塑性。
  3. Shrink and Perturb方法

    • Shrink and Perturb通过缩小权重并添加随机噪声来减少可塑性损失,增加了网络的多样性。
  4. 持续反向传播算法

    • 提出了一种新的持续反向传播算法,通过在训练过程中重新初始化一小部分使用最少的单元来维持网络的可塑性。
  5. 持续反向传播的效果

    • 持续反向传播在多个任务中表现出色,几乎没有可塑性损失,并且能够在整个学习过程中保持高稳定秩和低死单元比例。
  6. 小权重与可塑性

    • 发现保持小权重的算法(如持续反向传播、L2正则化和Shrink and Perturb)能够减少可塑性损失。
  7. 随机性注入

    • 注入随机性(如持续反向传播和Shrink and Perturb)可以提高网络的有效秩和降低死单元数量,从而提高性能。
  8. 选择性重新初始化的优势

    • 持续反向传播选择性地重新初始化单元,这比全面重新初始化更有效,因为它可以利用已有的学习成果来加速新任务的学习。
  9. 算法的适应性

    • 持续反向传播算法能够适应不同的替换率,并且对于维持可塑性具有较宽的适用范围。

5 思考

(1)本文中如何评价学习能力?如何评价可塑性?

  1. 学习能力的评价
    • 正确分类的百分比:在监督学习任务中,通过测量测试集上正确分类的图像百分比来评估网络在每个任务上的学习能力。
    • 累积奖励:在强化学习任务中,使用累积奖励作为主要性能度量,即在一系列动作中,代理获得的总奖励。
    • 性能比较:将连续学习(增量学习)的网络性能与从头开始训练的网络性能进行比较,以评估学习能力。
  2. 可塑性的评价
    • 性能下降:可塑性丧失表现为随着任务的增加,网络性能的下降。如果网络在后续任务中的表现不如早期任务,这直接表明了可塑性的丧失。
    • 单位活跃度:通过测量网络中活跃度低于1%的单元数量的增加来评估可塑性。如果许多单元变得不活跃或冗余,这表明网络的可塑性在下降。
    • 稳定秩:通过计算网络表示的稳定秩来评估可塑性。稳定秩低意味着网络单元不提供多样性,这与可塑性丧失有关。
    • 权重大小:通过监测网络权重的平均大小来评估可塑性。权重的持续增长可能与可塑性丧失有关,因为大的权重可能导致学习速度变慢。
    • 算法比较:通过比较不同算法(如标准反向传播、L2正则化、Shrink and Perturb、持续反向传播)在连续学习任务中的表现,来评估它们维持可塑性的能力。

(2)在网络结构中哪些部分实现重更新初始化?

  1. 识别低效单元
    • 算法会监测网络中每个单元的贡献度(contribution utility),这是一个衡量单元对其下游消费者重要性的指标。贡献度低的单元被认为是低效的。
  2. 选择性重初始化
    • 只有那些成熟(即经过一定数量的更新迭代)且贡献度低的单元会被选中进行重初始化。这样做是为了保护新加入的单元不被立即重置,因为它们需要时间来成熟并展示其价值。
  3. 重初始化过程
    • 对于被选中的单元,其输入权重会被重新从初始分布中采样,而输出权重则被设置为零。这样做是为了确保重新初始化的单元不会立即影响网络已经学到的功能。
  4. 更新单元状态
    • 重初始化的单元的贡献度和年龄会被重置,以便它们可以重新开始学习和适应新的任务。
  5. 网络层级
    • 重初始化可以在网络的任何层级进行,但通常关注那些对最终输出影响最大的单元,这些单元通常位于网络的较深层。
  6. 替换率(Replacement Rate)
    • 算法中有一个参数称为替换率(ρ),它控制着在每次迭代中被重初始化的单元的比例。这个比例通常设置得非常小,意味着在大量的更新迭代中只有极少数单元会被替换。

(3)如何计算神经元贡献度?

  1. 定义贡献度
    • 对于第 l l l层的第 i i i个单元,其贡献度 u l [ i ] u_l[i] ul[i]是其所有输出连接的贡献度之和。
  2. 计算每个连接的贡献度
    • 每个连接的贡献度是单元的输出和其权重的乘积的绝对值。对于连接第 l l l层第 i i i个单元到第 l + 1 l+1 l+1层第 k k k个单元的权重 w l + 1 [ i , k ] w_{l+1}[i, k] wl+1[i,k],其贡献度为:

∣ h l [ i ] ⋅ w l + 1 [ i , k ] ∣ \left| h_l[i] \cdot w_{l+1}[i, k] \right| hl[i]wl+1[i,k]

其中, h l [ i ] h_l[i] hl[i]是第 l l l层第 i i i个单元的输出。

  1. 更新贡献度
    • 贡献度是一个运行平均值,使用衰减率 η \eta η来更新。对于第 l l l层的第 i i i个单元,其贡献度 u l [ i ] u_l[i] ul[i]在时间 t t t的更新公式为:

u l [ i ] = η ⋅ u l [ i ] + ( 1 − η ) ⋅ ∑ k = 1 n l + 1 ∣ h l [ i ] ⋅ w l + 1 [ i , k ] ∣ u_l[i] = \eta \cdot u_l[i] + (1 - \eta) \cdot \sum_{k=1}^{n_{l+1}} \left| h_l[i] \cdot w_{l+1}[i, k] \right| ul[i]=ηul[i]+(1η)k=1nl+1hl[i]wl+1[i,k]

其中, n l + 1 n_{l+1} nl+1是第 l + 1 l+1 l+1层的单元数。

  1. 初始化贡献度
    • 在训练开始时,所有单元的贡献度被初始化为0。
  2. 重初始化单元的贡献度
    • 当一个单元被重初始化时,其贡献度被重置为0。

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

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

相关文章

【NODE】01-fs和path常用知识点

前言 最近在使用express-generator知识进行搭建前后端通信,其中有些知识点涉及到nodejs的fs和path核心模块,因此另写一篇文章进行介绍和代码案例练习。 fs(文件系统)和 path 是 Node.js 的核心模块,用于文件操作和路径…

两分钟解决:vscode卡在设置SSH主机,VS Code-正在本地初始化VSCode服务器

问题原因 remote-ssh还是有一些bug的,在跟新之后可能会一直加载初始化SSH主机解决方案 1.打开终端2.登录链接vscode的账号,到家目录下3.找到 .vscode-server文件,删掉这个文件4.重启 vscode 就没问题了

干货ScottPlot4向ScottPlot5迁移

干货ScottPlot4向ScottPlot5迁移 干货满满1.背景2.需求的引出3.先说结论1.好消息2.坏消息 4.迁移的部分笔记ColorScottPlot.PlottableScottPlot.Plottables中的对象如何定义添加 ScottPlot.Plottable.ScatterPlot 对象ScatterPolygonMarker也类似 Scatter的marker formsPlot1Re…

Github优质项目推荐(第九期)

文章目录 Github优质项目推荐(第九期)一、【tldraw】,37.1k stars - 在 React 中创建无限画布体验的库二、【zapret】,9.1k stars - 独立(无需第三方服务器)DPI 规避工具三、【uBlock】,48.3k s…

学习threejs,THREE.PlaneGeometry 二维平面几何体

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️HREE.PlaneGeometry 二维平…

力扣矩阵-算法模版总结

lc-73.矩阵置零-(时隔14天)-12.27 思路:(23min22s) 1.直接遍历遇0将行列设0肯定不行,会影响后续判断,题目又要求原地算法,那么进一步考虑是否可以将元素为0,其行列需要设为0的位置给存储下来,最后再遍历根据…

面向对象的设计原则与设计模式

目的 设计模式的目的是提高代码的重用性,可读性、可扩展性、可靠性,使程序呈现高内聚,低耦合的特性 原则 单一职责原则 假设有一个class负责两个职责,一旦发生需求变更,修改其中一个职责的逻辑代码,有可能…

网络安全词云图与技术浅谈

网络安全词云图与技术浅谈 一、网络安全词云图生成 为了直观地展示网络安全领域的关键术语,我们可以通过词云图(Word Cloud)的形式来呈现。词云图是一种数据可视化工具,它通过字体大小和颜色的差异来突出显示文本中出现频率较高…

Jsonlizer,一个把C++各类数据转成 Json 结构体的玩意儿

这段时间突发奇想,觉得可以弄一个Json和C各种数据类型互转的工具,因为Json在进行数据储存的时候,有一些先天的优势,传统的C的序列化方式是将数据序列化到流数据里面,而流数据是典型的串行结构(或则说是一维…

删除拼排序链表中的重复元素(最优解)

题目来源 82. 删除排序链表中的重复元素 II - 力扣(LeetCode) 题目描述 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1: 输入:head…

OpenHarmony-5.PM 子系统(2)

电池服务组件OpenHarmony-4.1-Release 1.电池服务组件 Battery Manager 提供了电池信息查询的接口,同时开发者也可以通过公共事件监听电池状态和充放电状态的变化。电池服务组件提供如下功能: 电池信息查询。充放电状态查询。关机充电。 电池服务组件架…

深入浅出 Linux 操作系统

深入浅出 Linux 操作系统 引言 在当今数字化的时代,Linux 操作系统无处不在。从支撑互联网巨头庞大的数据中心,到嵌入智能家居设备的微型芯片,Linux 都发挥着关键作用。然而,对于许多人来说,Linux 仍笼罩着一层神秘的…

uniapp 文本转语音

uniapp 文本转语音 基于 Minimax API 的 UniApp 文本转语音工具,支持文本分段、队列播放、暂停恢复等功能。目前只内置了 Minimax文本转语音Minimax 的语音生成技术以其自然、情感丰富和实时性强而著称 API_KEY、GroupId 获取方法 https://platform.minimaxi.com…

前端图像处理(二)

目录 一、上传 1.1、文件夹上传以及进度追踪 1.2、拖拽上传 1.3、图片裁剪上传原理 二、图片布局 2.1、渐进式图片 2.2、图片九宫格 2.3、轮播图(Js) 2.3.1、3D动画轮播图 2.3.2、旋转切换的轮播图 2.4、卡片移入翻转效果 2.5、环绕式照片墙 一、上传 1.1、文件夹…

3.BMS系统原理图解读

一、BMS电池板 (1)电池的连接关系:串联 (2)采样控制点:CELL0 - CELL5 (3)端子P1和P3:BAT和BAT- (4)开关S1:控制充放电回路的机械开关 二、BMS控制板 (1)主控MCU 电源 复位 晶振 (2)LED指示灯:4电量指示 1调试指…

用于汽车碰撞仿真的 Ansys LS-DYNA

使用 Ansys LS-DYNA 进行汽车碰撞仿真汽车碰撞仿真 简介 汽车碰撞仿真是汽车设计和安全工程的一个关键方面。这些仿真使工程师能够预测车辆在碰撞过程中的行为,从而有助于改进安全功能、增强车辆结构并符合监管标准。Ansys LS-DYNA 是一款广泛用于此类仿真的强大工具…

使用Java和不同HTTP客户端库发送各种Content-Type类型请求

1. 引言 在HTTP协议中,Content-Type头用于指示请求或响应中数据的媒体类型。了解和正确设置Content-Type 对于确保客户端和服务器之间正确解析数据至关重要。本文将介绍如何使用Java 和 不同的HTTP客户端发送各种Content-Type 类型的请求。 2. 常见的Content-Type…

YOLO11改进-注意力-引入自调制特征聚合模块SMFA

本篇文章将介绍一个新的改进机制——SMFA(自调制特征聚合模块),并阐述如何将其应用于YOLOv11中,显著提升模型性能。随着深度学习在计算机视觉中的不断进展,目标检测任务也在快速发展。YOLO系列模型(You Onl…

【单片机通讯协议】—— 常用的UART/I2C/SPI等通讯协议的基本原理与时序分析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、通信基本知识1.1 MCU的参见外设1.2 通信的分类按基本的类型从传输方向上来分 二、UART(串口通讯)2.1 简介2.2 时序图分析2.3 UART的…

Docker 部署 plumelog 最新版本 实现日志采集

1.配置plumelog.yml version: 3 services:plumelog:#此镜像是基于plumelog-3.5.3版本image: registry.cn-hangzhou.aliyuncs.com/k8s-xiyan/plumelog:3.5.3container_name: plumelogports:- "8891:8891"environment:plumelog.model: redisplumelog.queue.redis.redi…