深度学习论文笔记(增量学习)——Overcoming catastrophic forgetting in neural networks

越来越懒,看的文献越来越多,做的总结越来越少,大概要写十几篇总结,寒假不知道写得完不…

主要工作

我将看过的增量学习论文建了一个github库,方便各位阅读地址

该文章由deepmind在2016年出品,其将抵抗灾难性遗忘的工作分为三步
1、选择对于旧任务而言,较为重要的权重
2、在第一步的基础上,对权重的重要性做一个排序
3、在学习新任务时,尽量使步骤二的权重不发生太大改变,即在损失函数中添加了一个正则项,重要性大的神经元权重变化大,则释加的惩罚也大

上述算法简称为EWC(elastic weight consolidation)

本文数学公式较多


motivation

在任务A上训练完毕后,得到模型,接着在任务B上训练,此时权重会发生很大改变,导致模型在任务A上的准确率下降,这便是灾难性遗忘(其实灾难性遗忘感觉像是从迁移学习中衍生出来的一个领域)

大脑的某些突触对于习得的知识巩固尤为重要,大脑会降低此类突触的可塑性,从而记忆过去习得的知识,以此为出发点,作者尝试在人工神经网络中识别对旧任务而言较为重要的神经元,并降低其权重在之后的任务训练中的改变程度

值得注意的是,识别出较为重要的神经元后,需要更进一步的给出各个神经元对于旧任务而言的重要性排序

在这里插入图片描述

如上图,首先假设task A与task B存在一个公共解,这个解应该是存在的(我们将task A与task B合在一起训练,得到的解便是公共解),如果我们不加限制,就和蓝箭头一样,新训练的模型在task A上的准确率不足,如果我们对每个权重施加L2惩罚,会出现绿箭头的情况,因为所有权重都不能发生太大改变,模型无法充分学习task B,EWC的目标即为红箭头,此类做法和knowledge distillation的本质基本一致,只是做法不同


method

给定数据集 D D D,我们的目标是找出一个最有可能出现的解 θ \theta θ,即目标为
l o g   P ( θ ∣ D ) (1.0) log\ P(\theta|D)\tag{1.0} log P(θD)(1.0)

此类目标和我们常用的极大似然估计不一致,其实这么理解也是可行的,对1.0进行变化,则有

l o g   P ( θ ∣ D ) = l o g P ( θ D ) P ( D ) = l o g P ( D ∣ θ ) P ( θ ) P ( D ) = l o g   P ( D ∣ θ ) + l o g   P ( θ ) − l o g   P ( D ) (1.1) \begin{aligned} log\ P(\theta|D)&=log \frac{P(\theta D)}{P(D)}\\ &=log \frac{P(D|\theta)P(\theta)}{P(D)}\\ &=log\ P(D|\theta)+log\ P(\theta)-log\ P(D) \tag{1.1} \end{aligned} log P(θD)=logP(D)P(θD)=logP(D)P(Dθ)P(θ)=log P(Dθ)+log P(θ)log P(D)(1.1)

假设 D D D由task A与task B的数据集 D A 、 D B D_A、D_B DADB组成,则有

l o g   P ( θ ∣ D ) = l o g   P ( θ ∣ D A D B ) = l o g   P ( θ D A D B ) P ( D A D B ) = l o g   P ( θ D B ∣ D A ) P ( D A ) P ( D B ∣ D A ) P ( D A ) = l o g   P ( θ D B ∣ D A ) P ( D B ∣ D A ) = l o g   P ( D B ∣ θ D A ) P ( θ ∣ D A ) P ( D B ∣ D A ) = l o g   P ( D B ∣ θ ) + log ⁡ P ( θ ∣ D A ) − l o g P ( D B ) (1.2) \begin{aligned} log\ P(\theta|D)=&log\ P(\theta|D_AD_B)\\ =&log\ \frac{P(\theta D_A D_B)}{P(D_AD_B)}\\ =&log\ \frac{P(\theta D_B|D_A)P(D_A)}{P(D_B|D_A)P(D_A)}\\ =&log\ \frac{P(\theta D_B|D_A)}{P(D_B|D_A)}\\ =&log\ \frac{P(D_B|\theta D_A)P(\theta|D_A)}{P(D_B|D_A)}\\ =&log\ P(D_B|\theta)+\log P(\theta|D_A)-log P(D_B) \end{aligned}\tag {1.2} log P(θD)======log P(θDADB)log P(DADB)P(θDADB)log P(DBDA)P(DA)P(θDBDA)P(DA)log P(DBDA)P(θDBDA)log P(DBDA)P(DBθDA)P(θDA)log P(DBθ)+logP(θDA)logP(DB)(1.2)
由于 D A D_A DA D B D_B DB相互独立,则有
P ( D B ∣ θ D A ) = P ( D B ∣ θ ) P ( D B ∣ D A ) = P ( D B ) \begin{aligned} P(D_B|\theta D_A)&=P(D_B|\theta)\\ P(D_B|D_A)&=P(D_B) \end{aligned} P(DBθDA)P(DBDA)=P(DBθ)=P(DB)

我也不知道论文给出式1.1的意图,式1.2是全文的核心

l o g   P ( D B ∣ θ ) log\ P(D_B|\theta) log P(DBθ)可用task B上的损失函数的负数代替,即 − L B ( θ ) -L_B(\theta) LB(θ),对于单标签分类任务而言,交叉熵损失函数的形式即为 l o g   P ( D B ∣ θ ) log\ P(D_B|\theta) log P(DBθ)

假设我们的模型有n个参数,第 i i i个参数记为 θ i \theta_i θi,n个参数相对于 D A D_A DA条件独立,则有
l o g   P ( θ ∣ D A ) = l o g   P ( θ 1 θ 2 . . . θ n ∣ D A ) = l o g   P ( θ 1 ∣ D A ) + l o g   P ( θ 2 ∣ D A ) + . . . + l o g   P ( θ n ∣ D A ) \begin{aligned} log\ P(\theta|D_A)&=log\ P(\theta_1\theta_2...\theta_n|D_A)\\ &=log\ P(\theta_1|D_A)+log\ P(\theta_2|D_A)+...+log\ P(\theta_n|D_A) \end{aligned} log P(θDA)=log P(θ1θ2...θnDA)=log P(θ1DA)+log P(θ2DA)+...+log P(θnDA)

l o g   P ( θ i ∣ D A ) log\ P(\theta_i|D_A) log P(θiDA)给出了给定数据集 D A D_A DA,哪个参数值出现的概率,如果某个参数值出现的概率大,则可认为该参数对于task A而言较为重要,但是估计 l o g   P ( θ i ∣ D A ) log\ P(\theta_i|D_A) log P(θiDA)的值是非常困难的,假设task A训练完毕后,对应的参数记为 θ A ∗ \theta_{A}^* θA,利用拉普拉斯近似,在使用mini batch的前提下,则可将 l o g   P ( θ i ∣ D A ) log\ P(\theta_i|D_A) log P(θiDA)看成均值为 θ A , i ∗ \theta_{A,i}^* θA,i,方差为该参数对应的Fisher information matrix对角线上的倒数(记为 F i F_i Fi)的高斯分布,式1.2可记为:

l o g   P ( θ ∣ D ) = − L B ( θ ) − 1 2 ∑ i = 1 n F i ( θ i − θ A , i ∗ ) 2 (1.3) log\ P(\theta|D)=-L_B(\theta)-\frac{1}{2}\sum_{i=1}^nF_i(\theta_i-\theta_{A,i}^*)^2\tag{1.3} log P(θD)=LB(θ)21i=1nFi(θiθA,i)2(1.3)

对于高斯分布而言,有
l o g   1 2 π e − ( w − u ) 2 2 δ 2 = l o g   1 2 π − ( w − u ) 2 2 δ 2 log\ \frac{1}{\sqrt{2\pi}}e^{-\frac{(w-u)^2}{2\delta^2}}=log\ \frac{1}{\sqrt{2\pi}}-\frac{(w-u)^2}{2\delta^2} log 2π 1e2δ2(wu)2=log 2π 12δ2(wu)2
常数对优化结果没有影响,所以式1.3省去了常数,优化目标为
max ⁡ θ l o g   P ( θ ∣ D ) = max ⁡ θ ( − L B ( θ ) − 1 2 ∑ i = 1 n F i ( θ i − θ A , i ∗ ) 2 ) \begin{aligned} \max_{\theta}log\ P(\theta|D)=&\max_{\theta}(-L_B(\theta)-\frac{1}{2}\sum_{i=1}^nF_i(\theta_i-\theta_{A,i}^*)^2) \end{aligned} θmaxlog P(θD)=θmax(LB(θ)21i=1nFi(θiθA,i)2)


min ⁡ θ ( L B ( θ ) + 1 2 ∑ i = 1 n F i ( θ i − θ A , i ∗ ) 2 ) ) \min_{\theta}(L_B(\theta)+\frac{1}{2}\sum_{i=1}^nF_i(\theta_i-\theta_{A,i}^*)^2)) θmin(LB(θ)+21i=1nFi(θiθA,i)2))

如果把第二项看成是正则项,添加控制系数 λ \lambda λ,则优化目标为
min ⁡ θ ( L B ( θ ) + λ 2 ∑ i = 1 n F i ( θ i − θ A , i ∗ ) 2 ) ) (1.4) \min_{\theta}(L_B(\theta)+\frac{\lambda}{2}\sum_{i=1}^nF_i(\theta_i-\theta_{A,i}^*)^2))\tag{1.4} θmin(LB(θ)+2λi=1nFi(θiθA,i)2))(1.4)


什么是拉普拉斯近似

问题:给定数据集 X X X,求模型的参数 W W W出现的概率,即 P ( W ∣ X ) P(W|X) P(WX),此处讲解一维拉普拉斯近似

拉普拉斯近似的定义:假设分布 P ( X ) = 1 z P ( Y ) P(X)=\frac{1}{z}P(Y) P(X)=z1P(Y) z z z为常数,拉普拉斯近似的目的在于求解一个高斯分布 P ( Y ) P(Y) P(Y)来近似 P ( X ) P(X) P(X)

参考文献:https://www.cnblogs.com/hapjin/p/8848480.html

求解:

依据条件概率公式,我们有
P ( W ∣ X ) = P ( X ∣ W ) P ( W ) P ( X ) P(W|X)=\frac{P(X|W)P(W)}{P(X)} P(WX)=P(X)P(XW)P(W)

由于我们无法直接求解 P ( W ∣ X ) P(W|X) P(WX),而 P ( X ) P(X) P(X)可以看成是常量,假设参数 W W W符合均匀分布,因此,我们可以通过求解 P ( X ∣ W ) P(X|W) P(XW)间接求得 P ( W ∣ X ) P(W|X) P(WX),此处满足拉普拉斯近似的定义,设 P ( X ∣ W ) P(X|W) P(XW)服从均值为 u u u,方差为 δ \delta δ的高斯分布, X X X已知, W W W为变量,则有

l o g   P ( X ∣ W ) = l o g   1 2 π − ( w − u ) 2 2 δ 2 (2.0) log\ P(X|W)=log\ \frac{1}{\sqrt{2\pi}}-\frac{(w-u)^2}{2\delta^2} \tag{2.0} log P(XW)=log 2π 12δ2(wu)2(2.0)

w ∗ w^* w使得 P ( X ∣ W ) P(X|W) P(XW)的一阶偏导为0,二阶偏导小于0,即 P ( X ∣ W ) P(X|W) P(XW)在该点具有极大值。 l o g   P ( X ∣ W ) log\ P(X|W) log P(XW)的一阶偏导为0,由式2.0的形式可知, w ∗ w^* w一定存在,设

f ′ ( W ) = ∂ l o g   P ( X ∣ W ) ∂ W f ′ ′ ( W ) = ∂ 2 l o g   P ( X ∣ W ) ∂ W 2 f'(W)=\frac{\partial log\ P(X|W)}{\partial W}\\ f''(W)=\frac{\partial^2 log\ P(X|W)}{\partial W^2} f(W)=Wlog P(XW)f(W)=W22log P(XW)

则有 f ′ ( w ∗ ) = 0 f'(w^*)=0 f(w)=0,在 W ∗ W^* W处对 l o g   P ( X ∣ W ) log\ P(X|W) log P(XW)进行二阶泰勒展开得:

l o g   P ( X ∣ W ) ≈ l o g   P ( X ∣ W ∗ ) + f ′ ( w ∗ ) + f ′ ′ ( W ∗ ) ( w − w ∗ ) 2 2 ≈ l o g   P ( X ∣ W ∗ ) + f ′ ′ ( w ∗ ) ( w − w ∗ ) 2 2 (2.1) \begin{aligned} log\ P(X|W) \approx & log\ P(X|W^*)+f'(w^*)+f''(W^*) \frac{(w-w^*)^2}{2}\\ \approx & log\ P(X|W^*)+f''(w^*) \frac{(w-w^*)^2}{2} \tag{2.1} \end{aligned} log P(XW)log P(XW)+f(w)+f(W)2(ww)2log P(XW)+f(w)2(ww)2(2.1)

比对2.0与2.1,可得
u = w ∗ δ 2 = − 1 f ′ ′ ( w ∗ ) \begin{aligned} u&=w^*\\ \delta^2&=-\frac{1}{f''(w^*)} \end{aligned} uδ2=w=f(w)1

式2.0得到求解,由此可得 P ( W ∣ X ) P(W|X) P(WX)

回到EWC,在task A上依据极大似然估计求得参数 θ A ∗ \theta_A^* θA满足
l o g   P ( D A ∣ θ A ∗ ) = l o g   P ( D A θ A ∗ ) P ( θ A ∗ ) = l o g   P ( D A θ A , 1 ∗ θ A , 2 ∗ . . . θ A , n ∗ ) − l o g   P ( θ A , 1 ∗ θ A , 2 ∗ . . . θ A , n ∗ ) = l o g   P ( θ A , 1 ∗ θ A , 2 ∗ . . . θ A , n ∗ ∣ D A ) + l o g   P ( D A ) − l o g   P ( θ A , 1 ∗ θ A , 2 ∗ . . . θ A , n ∗ ) (2.2) \begin{aligned} log\ P(D_A|\theta_A^*)&=log\ \frac{P(D_A\theta_A^*)}{P(\theta_A^*)}\\ &=log\ P(D_A\theta_{A,1}^*\theta_{A,2}^*...\theta_{A,n}^*)-log\ P(\theta_{A,1}^*\theta_{A,2}^*...\theta_{A,n}^*)\\ &=log\ P(\theta_{A,1}^*\theta_{A,2}^*...\theta_{A,n}^*|D_A)+log\ P(D_A)-log\ P(\theta_{A,1}^*\theta_{A,2}^*...\theta_{A,n}^*)\tag{2.2} \end{aligned} log P(DAθA)=log P(θA)P(DAθA)=log P(DAθA,1θA,2...θA,n)log P(θA,1θA,2...θA,n)=log P(θA,1θA,2...θA,nDA)+log P(DA)log P(θA,1θA,2...θA,n)(2.2)

各参数相互独立且对 D A D_A DA满足条件独立,式2.2可变为:
l o g   P ( θ A , 1 ∗ ∣ D A ) + l o g   P ( θ A , 2 ∗ ∣ D A ) + . . . + l o g   P ( θ A , n ∗ ∣ D A ) + l o g   P ( D A ) − ∑ i = 1 n l o g   P ( θ A , i ∗ ) (2.3) log\ P(\theta_{A,1}^*|D_A)+log\ P(\theta_{A,2}^*|D_A)+...+log\ P(\theta_{A,n}^*|D_A)+log\ P(D_A)-\sum_{i=1}^nlog\ P(\theta_{A,i}^*)\tag{2.3} log P(θA,1DA)+log P(θA,2DA)+...+log P(θA,nDA)+log P(DA)i=1nlog P(θA,i)(2.3)

假设各参数满足均匀分布,则 l o g   P ( D A ) − ∑ i = 1 n l o g   P ( θ A , i ∗ ) log\ P(D_A)-\sum_{i=1}^nlog\ P(\theta_{A,i}^*) log P(DA)i=1nlog P(θA,i)为常数,依据式2.3, l o g   P ( θ A , i ∗ ∣ D A ) log\ P(\theta_{A,i}^*|D_A) log P(θA,iDA)为极大值,因此task A上优化的参数可作为拉普拉斯近似的均值。


什么是Fisher information

参考文献:https://wiseodd.github.io/techblog/2018/03/11/fisher-information/(需翻墙)

不敲了,好累,直接贴图
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
最重要的是最后一个结论,

F = − E P ( x ∣ θ ) [ H l o g   P ( x ∣ θ ) ] F=-E_P(x|\theta)[H_{log\ P(x|\theta)}] F=EP(xθ)[Hlog P(xθ)]

对于一维函数而言, H l o g   P ( x ∣ θ ) = ( l o g   P ( x ∣ θ ) ) ′ ′ H_{log\ P(x|\theta)}=(log\ P(x|\theta))'' Hlog P(xθ)=(log P(xθ)),假设我们有 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn,n个采样点,则 F = − E P ( x ∣ θ ) [ H l o g   P ( x ∣ θ ) ] = − 1 n ∑ i = 1 n ( l o g   P ( x i ∣ θ ) ) ′ ′ F=-E_P(x|\theta)[H_{log\ P(x|\theta)}]=-\frac{1}{n}\sum_{i=1}^{n}(log\ P(x_i|\theta))'' F=EP(xθ)[Hlog P(xθ)]=n1i=1n(log P(xiθ))

在mini-batch的前提下,假设有 m m m个样本,记为 x 1 , x 2 , . . . , x m x_1,x_2,...,x_m x1,x2,...,xm,则EWC的目标函数为
L B ( θ ) − λ 2 ∑ i = 1 n ∑ j = 1 m ( l o g   P ( x j ∣ θ i ) ) ′ ′ ( θ i − θ A , i ∗ ) 2 = L B ( θ ) + λ 2 ∑ i = 1 n F i ( θ i − θ A , i ∗ ) 2 \begin{aligned} L_B(\theta)-\frac{\lambda}{2}\sum_{i=1}^n\sum_{j=1}^m(log\ P(x_j|\theta_i))''(\theta_i-\theta_{A,i}^*)^2=L_B(\theta)+\frac{\lambda}{2}\sum_{i=1}^nF_i(\theta_i-\theta_{A,i}^*)^2 \end{aligned} LB(θ)2λi=1nj=1m(log P(xjθi))(θiθA,i)2=LB(θ)+2λi=1nFi(θiθA,i)2
常数 1 m \frac{1}{m} m1可以从 λ \lambda λ中抽取,之所以要强制转成Fisher information,是因为Fisher information是一个一阶导数,计算资源可以得到节约,Fisher information计算公式如下:

F j = 1 m ∑ i = 1 m ( ∂ l o g   P ( x i ∣ θ j ) ∂ θ j ) 2 (式3.0) F_j=\frac{1}{m}\sum_{i=1}^m(\frac{\partial log\ P(x_i|\theta_j)}{\partial \theta_j})^2\tag{式3.0} Fj=m1i=1m(θjlog P(xiθj))2(3.0)

论文很短,但是公式推导省略了一堆,后面的公式较为混乱,有错误亦或是不懂可在评论区指出,论文里有一句话,如下黄线所示:
在这里插入图片描述

有同学不懂为啥是Fisher information matrix的对角线,对于分类任务而言,目标函数只有一个,参数有多个,式3.0其实就是Fisher information matrix的对角线上的值。

  • 23
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
Capsule Networks for Computer Vision: A Survey 胶囊网络在计算机视觉中的应用:一篇综述 Abstract: 摘要: Capsule Networks (CapsNets)是一种新颖的深度神经网络架构,旨在克服传统卷积神经网络(CNNs)的一些限制,例如旋转不变性和视角不变性。Capsule Networks使用胶囊来表示图像或对象的各个特征,并且能够学习对象的姿态和空间关系。本文旨在提供对Capsule Networks的综述,重点介绍其在计算机视觉中的应用。我们首先介绍了Capsule Networks的基本原理和结构,并讨论了其与CNNs的区别。然后,我们概述了Capsule Networks在图像分类、目标检测、语义分割和图像生成等任务中的应用。接下来,我们总结了当前在Capsule Networks领域的最新研究进展,并讨论了该领域未来的发展方向。 Capsule Networks (CapsNets) are a novel deep neural network architecture aimed at overcoming some of the limitations of traditional Convolutional Neural Networks (CNNs), such as rotational and viewpoint invariance. Capsule Networks use capsules to represent various features of an image or object and are capable of learning the pose and spatial relationships of objects. This paper aims to provide a survey of Capsule Networks, with a focus on their applications in computer vision. We first introduce the basic principles and structure of Capsule Networks and discuss their differences with CNNs. Then, we outline the applications of Capsule Networks in tasks such as image classification, object detection, semantic segmentation, and image generation. Next, we summarize the latest research developments in the field of Capsule Networks and discuss future directions in this field.
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值