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

文章目录

  • 主要工作
  • motivation
  • method
    • 什么是拉普拉斯近似
    • 什么是Fisher information

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

主要工作

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

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

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

本文数学公式较多


motivation

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

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

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

深度学习论文笔记(增量学习)——Overcoming catastrophic forgetting in neural networks_第1张图片

如上图,首先假设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/(需)

不敲了,好累,直接贴图
深度学习论文笔记(增量学习)——Overcoming catastrophic forgetting in neural networks_第2张图片

深度学习论文笔记(增量学习)——Overcoming catastrophic forgetting in neural networks_第3张图片

深度学习论文笔记(增量学习)——Overcoming catastrophic forgetting in neural networks_第4张图片
最重要的是最后一个结论,

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的对角线上的值。

你可能感兴趣的:(增量学习)