【深度学习】神经网络灾难性遗忘(Catastrophic Forgetting,CF)问题

news/2025/1/15 13:07:53/

文章目录

  • 1. 什么是灾难性遗忘?
  • 2. 为什么会存在灾难性遗忘?
    • 2.1 网络权重的更新
    • 2.2 没有有效的记忆机制
    • 2.3 任务间数据分布差异
  • 3. 目前解决方案
    • 3.1 弹性权重保持(Elastic Weight Consolidation, EWC)
    • 3.2 其他方法

1. 什么是灾难性遗忘?

灾难性遗忘(Catastrophic Forgetting)是指在神经网络,尤其是深度学习模型中,当模型在学习新的任务时,往往会遗忘之前学过的任务或知识。这种现象通常发生在连续学习过程中,即模型必须依次学习多个任务时。随着新任务的学习,模型会在不加保护的情况下丧失对旧任务的记忆或表现,导致旧任务的性能显著下降。

2. 为什么会存在灾难性遗忘?

灾难性遗忘的根源通常来自于以下几个方面:

2.1 网络权重的更新

  • 深度神经网络在训练过程中,模型的权重会不断更新,以便最小化当前任务的损失函数。当学习新任务时,新的数据会影响网络中的权重,从而导致网络忘记先前学习的任务的信息。特别是在任务之间没有共享的知识结构时,新的训练数据可能会“覆盖”先前任务的知识。

2.2 没有有效的记忆机制

  • 大多数神经网络模型没有一种内建的记忆机制来保留旧任务的知识。新的任务训练时,旧任务的信息往往会丢失,模型只能“记住”当前的任务。

2.3 任务间数据分布差异

  • 在连续学习中,不同任务的数据可能有不同的分布(即数据的统计特性不同)。这种数据分布的差异会导致模型在学习新任务时必须调整其权重,而这些调整会破坏对先前任务的适应性。

3. 目前解决方案

3.1 弹性权重保持(Elastic Weight Consolidation, EWC)

该方法通过对模型的权重施加额外的正则化约束,使得在学习新任务时,网络会尽量保留对旧任务的重要权重。EWC通过计算权重对损失的敏感度,并对重要权重施加惩罚,从而避免模型在训练新任务时大幅度改变这些权重。

主要原理:

EWC 基于 费舍尔信息矩阵(Fisher Information Matrix)的概念来衡量每个网络权重对于当前任务的"重要性"。对于不同任务,EWC通过惩罚不重要的权重的变化,确保在学习新的任务时尽可能保留对旧任务的知识。

权重重要性度量:

假设我们已经训练了一个模型 θ ∗ \theta^* θ 来完成一个任务, EWC目标是通过计算权重的重要性来确保我们不会在训练新的任务时过度修改这些权重。权重的重要性可以通过计算 费舍尔信息矩阵 来估计。费舍尔信息矩阵 F F F 是一个由模型输出的似然函数的二阶导数矩阵,它度量了模型预测对于不同权重的敏感度。一个权重的费舍尔信息越大,说明它对于当前任务的预测越重要。因此,EWC将惩罚那些在训练过程中改变了重要权重的操作。

正则化项:

EWC通过在损失函数中加入正则化项来实现对重要权重的约束。具体地,在原有损失函数的基础上,EWC增加了一项惩罚项:

L ( θ ) = L task ( θ ) + λ ∑ i F i 2 ( θ i − θ i ∗ ) 2 L(\theta) = L_{\text{task}}(\theta) + \lambda \sum_i \frac{F_i}{2} (\theta_i - \theta_i^*)^2 L(θ)=Ltask(θ)+λi2Fi(θiθi)2

  • L t a s k ( θ ) L_{task} (\theta) Ltask(θ) 是当前任务的损失函数
  • θ i \theta_i θi 是模型中第 i i i 个权重
  • θ i ∗ \theta_i^* θi 是在旧任务中学习到的权重
  • F i F_i Fi 是第 i i i 个权重的费舍尔信息值,衡量了该权重对旧任务的重要性
  • λ \lambda λ 是超参数,用来控制正则化的强度

通过这个正则化项,EWC确保在训练新任务时,不会让模型的某些重要权重(即那些对于先前任务至关重要的权重)发生过大的变化。换句话说,EWC通过惩罚权重的变化来确保模型在学习新任务时不会忘记旧任务。

3.2 其他方法

  • 迁移学习(Transfer Learning):利用旧任务的知识作为新任务的基础,在此基础上微调模型参数,从而减少对旧知识的干扰。在实际应用中,迁移学习可以通过冻结部分网络层来保护旧任务的知识。
  • 元学习(Meta-learning):通过训练一个能够快速适应新任务的元模型,使得模型在面对新任务时不容易遗忘旧任务。元学习通过在元任务上进行训练,提升模型在多个任务间的泛化能力。
  • 记忆增强网络(Memory-Augmented Networks):记忆增强网络(如神经图灵机、可微分神经计算机)通过引入外部记忆单元来保存重要的任务信息。这样,模型能够随时访问这些记忆来防止遗忘。
  • 增量学习(Incremental Learning):增量学习方法是指在训练过程中,模型根据新的任务或数据逐步更新,而不会重新训练整个模型。这种方法能够有效减少灾难性遗忘,通过适当的增量更新策略保留旧任务的信息。
  • 生成对抗网络(GAN)与自监督学习:一些研究提出通过生成对抗网络或自监督学习来保持旧任务的知识。这些方法通过生成任务相关的数据样本,帮助模型更好地记住已学的知识。
  • 经验重放(Experience Replay):经验重放是一种通过保存一定量的历史数据,并在新任务训练时反复回顾旧任务的经验,从而减少灾难性遗忘的方法。这种方法在强化学习中使用得比较广泛,但也可以应用于神经网络的训练中。

http://www.ppmy.cn/news/1563322.html

相关文章

JavaRestClient 客户端初始化+索引库操作

1. 介绍 ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。 Elasticsearch目前最新版本是8.0,其java客户端有很大变化。不过大多数企业使用的还是8以下版本 2. 客户端初始化 在elastic…

Level2逐笔成交逐笔委托毫秒记录:今日分享优质股票数据20250114

逐笔成交逐笔委托下载 链接: https://pan.baidu.com/s/18YtQiLnt06cPQP1nRXor0g?pwd4k3h 提取码: 4k3h Level2逐笔成交逐笔委托数据分享下载 基于Level2的逐笔成交和逐笔委托数据,这种毫秒级别的记录能分析出许多关键信息,如庄家意图、虚假动作&#…

day01-HTML-CSS——基础标签样式表格标签表单标签

目录 此篇为简写笔记下端1-3为之前笔记(强迫症、保证文章连续性)完整版笔记代码模仿新浪新闻首页完成审核不通过发不出去HTMLCSS1 HTML1.1 介绍1.1.1 WebStrom中基本配置 1.2 快速入门1.3 基础标签1.3.1 标题标签1.3.2 hr标签1.3.3 字体标签1.3.4 换行标…

uniapp页面高度设置(铺满可视区域、顶部状态栏高度、底部导航栏高度)

这里说几种在uniapp开发中,关于页面设置高度的几种情况。宽度就不说了哈,宽度设置百分比都会生效。 首先我们要知道平时开发中,如果说没在uniapp做特殊处理,即正常情况下,所有的页面(.vue文件)中都是没有高度的(和vue一样),也就是说给最外层的的view标签设置高度为1…

cmake 编译ffmpeg的Android 的 so文件的cmake内容

确保你的开发环境已经设置好,包括安卓NDK和相应版本的FFmpeg源码。 下载并配置FFmpeg源码。 git clone https://git.ffmpeg.org/ffmpeg.gitcd ffmpeg 使用NDK-build或者cmake来编译FFmpeg。 5. 在ffmpeg路径下,新建build.sh , 下载MYSYS&#xff0c…

设计模式-结构型-组合模式

1. 什么是组合模式? 组合模式(Composite Pattern) 是一种结构型设计模式,它允许将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得客户端对单个对象和组合对象的使用具有一致性。换句话说,组合模式允…

亿道三防丨三防笔记本是什么意思?和普通笔记本的优势在哪里?

三防笔记本是什么意思?和普通笔记本的优势在哪里? 在现代社会中,笔记本电脑已经成为人们工作和生活中不可或缺的一部分。然而,在一些特殊行业或环境中,普通笔记本电脑由于其脆弱性和对环境条件的敏感性,往…

夯实前端基础之CSS篇

知识点概览 这一篇是讲CSS的,前面还有一篇总结HTML的哦~夯实前端基础之HTML篇,后面还会更新其他系列哦~ 一、必知必会 1. html中引入样式的几种方式? 内联样式(html元素的style属性)内部样式表(style标签…