终身学习(Lifelong Learning)

前言

        虽然深度学习在很多任务上取得了成功, 但是其前提是训练数据和测试数 据的分布要相同 一旦训练结束模型就保持固定 不再进行迭代更新 并且 ,要想一个模型同时在很多不同任务上都取得成功依然是一件十分困难的事情. 比如在围棋任务上训练的 AlphaGo 只会下围棋 对象棋一窍不通 如果让 AlphaGo去学习下象棋, 可能会损害其下围棋的能力 这显然不符合人类的学习过程 我们在学会了下围棋之后, 再去学下象棋 并不会忘记下围棋的下法 人类的学习是一直持续的, 人脑可以通过记忆不断地累积学习到的知识 这些知识累积可以在不同的任务中持续进行. 在大脑的海马系统上 新的知识在以往知识的基础上被快速建立起来; 之后经过长时间的处理 在大脑皮质区形成较难遗忘的长时记忆. 由于不断的知识累积 人脑在学习新的任务时一般不需要太多的标注数据

内容

        终身学习 Lifelong Learning ), 也叫 持续学习 Continuous Learning ),是指像人类一样具有持续不断的学习能力, 根据历史任务中学到的经验和知识来帮助学习不断出现的新任务, 并且这些经验和知识是持续累积的 不会因为新的任务而忘记旧的知识。
终身学习流程图
        在终身学习中, 假设一个终身学习算法已经在历史任务𝒯1 , 𝒯 2 , ⋯ , 𝒯𝑚 上学习到一个模型, 当出现一个新任务 𝒯 𝑚+1 这个算法可以根据过去在 𝑚 个任务上学习的知识来帮助学习第 𝑚 + 1 个任务 同时累积所有的 𝑚 + 1 个任务上的知识. 这个设定和 归纳迁移学习 十分类似 但归纳迁移学习的目标是优化目标任务的性能, 而不关心知识的累积 而终身学习的目标是持续的学习和知识累积 另外, 终身学习和 多任务学习 也十分类似 但不同之处在于终身学习并不在所有任务上同时学习. 多任务学习是在使用所有任务的数据进行联合学习 并不是持续地一个一个的学习.

终身学习的灾难性遗忘问题该如何避免?

        在终身学习中, 一个关键的问题是如何避免 灾难性遗忘 Catastrophic Forgetting), 即按照一定顺序学习多个任务时 在学习新任务的同时不忘记先前学会的历史任务. 比如在神经网络模型中 ,一些参数对任务𝒯 𝐴 非常重要 如果在学习任务 𝒯 𝐵 时被改变了 就可能给任务 𝒯 𝐴 造成不好的影响.
        在网络容量有限时,学习一个新的任务一般需要遗忘一些历史任务的知识 .而目前的神经网络往往都是过参数化的, 对于任务 𝒯 𝐴 而言有很多参数组合都可以达到最好的性能. 这样 在学习任务 𝒯 𝐵 可以找到一组不影响任务𝒯𝐴 而又能使得任务𝒯 𝐵 最优的参数
     解决灾难性遗忘的方法有很多. 我们这里介绍一种 弹性权重巩固 Elastic Weight Consolidation,EWC) 方法。

EWC方法

        在机器学习中,弹性权重巩固(Elastic Weight Consolidation,EWC)是一种解决灾难性遗忘问题的方法,它用于在学习新任务时保留之前任务的知识。在传统的机器学习中,当我们使用一个模型来学习一个新任务时,通常会忘记之前已经学到的知识,这被称为灾难性遗忘。

        弹性权重巩固通过对模型中每个参数的重要性进行建模,并将其视为先前任务的知识,来解决灾难性遗忘问题。具体来说,EWC方法根据之前任务的损失函数曲线的曲率和参数的敏感度,计算每个参数的重要性权重。然后,这些权重被用来范围化每个参数的权重更新步长,以便在学习新任务时保护先前任务的知识。

        EWC方法的核心思想是在保护先前任务的相关参数的同时,允许当前任务的参数发生一定的改变。通过限制参数的变动范围,EWC可以在学习新任务时平衡先前任务的知识保留和新任务的学习需求。

EWC方法包含以下几个步骤:

  1. 训练一个基础模型来完成第一个任务,并且记录下该模型的参数;

  2. 为第一个任务计算每个参数的 Fisher信息矩阵,并将其用于计算每个参数的重要性权重;

  3. 训练新模型来完成第二个任务,并在训练过程中使用重要性权重来规范化参数更新;

  4. 重复以上步骤,通过使用不同的 Fisher信息矩阵和重要性权重来处理多个任务。

        总结来说,弹性权重巩固是一种用于解决机器学习中灾难性遗忘问题的方法,通过对参数重要性建模和限制参数变动范围来保护先前任务的知识。它可以帮助机器学习模型在学习新任务时保持对之前任务的记忆和知识。

Fisher矩阵

        Fisher信息矩阵是统计学中的一种工具,常用于估计参数的方差和协方差。在机器学习中,Fisher信息矩阵也被用来度量模型参数对损失函数的敏感度,从而可以用于衡量参数的重要性。

对于一个参数向量θ和一个损失函数L(θ),Fisher信息矩阵的定义如下:

I(θ) = E[(∇L(θ)) * (∇L(θ))^T]

其中,∇L(θ)表示损失函数L(θ)相对于参数θ的梯度,*表示矩阵乘法,(·)^T表示矩阵的转置操作,E[·]表示期望值。

        Fisher信息矩阵的每个元素I_ij表示损失函数L对参数 θ_ i 和 θ_ j 的共同变化的敏感度程度。如果一个参数的Fisher信息矩阵的某个元素的值很大,那么说明该参数对损失函数的变化非常敏感,即该参数在模型训练中起到了重要的作用。

        在机器学习中,特别是在梯度下降等优化算法中,Fisher信息矩阵通常用于计算参数更新的步长。使用Fisher信息矩阵进行归一化可以保护先前任务的知识并避免灾难性遗忘,如EWC方法中所使用的。

        需要注意的是,计算Fisher信息矩阵通常需要对整个训练数据集进行遍历和计算梯度,因此在大规模数据集和复杂模型中可能会变得非常耗时和昂贵。因此,在实际应用中,通常会采用一些近似方法来估计Fisher信息矩阵或使用其它代替方法来解决参数重要性的衡量问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值