深度学习(增量学习)—— Continual Learning by Asymmetric Loss Approximation with Single-Side Overestimation

前言

我将看过的增量学习论文建了一个github库,方便各位阅读地址,本文总结的论文位于Regularization文件夹

本文总结2019年ICCV论文《Continual Learning by Asymmetric Loss Approximation with Single-Side Overestimation》(下文简称ALASSO),这篇文献的出发点非常有趣,其利用一个二次函数模拟旧任务的损失函数,在学习第 T T T个任务时,损失函数由第 T T T个任务的损失函数以及模拟旧任务的损失函数两部分构成,从而抵抗灾难性遗忘。本论文针对task incremental任务,不是class incremental任务

本文公式较多,可能会对您在阅读上造成一丝不便,请各位见谅

motivation

设第 T T T个task,对应的损失函数记为 L T L_T LT,假设目前一共有 T T T个task, T T T个task的数据都可以使用,为了让模型具备这 T T T个task的功能,模型的损失函数为 l o s s = ∑ i = 1 T L i = L T + ∑ i = 1 T − 1 L i (式1.0) loss=\sum_{i=1}^T L_i=L_T+\sum_{i=1}^{T-1}L_i\tag{式1.0} loss=i=1TLi=LT+i=1T1Li(1.0)

因为式1.0假设所有数据都可以使用,所以式1.0不会造成遗忘。

在增量的setting中,由于学习task T时,task 1~T-1的数据已经无法使用,所以式1.0的 ∑ i = 1 T − 1 L i \sum_{i=1}^{T-1}L_i i=1T1Li部分将无法计算,我们只能使用 T − 1 T-1 T1时刻的模型, T − 1 T-1 T1时刻的模型,只有参数是可以使用的,那我们能不能让式1.0与参数扯上关系呢?我们将式1.0进行更改,变为
L T + ∑ i = 1 T − 1 L i = L T + ∑ i = 1 T − 1 ( L i f i n i s h + L i c h a n g e ( θ ) ) = L T + ∑ i = 1 T − 1 L i f i n i s h + ∑ i = 1 T − 1 L i c h a n g e ( θ ) (式1.1) \begin{aligned} L_T+\sum_{i=1}^{T-1}L_i&=L_T+\sum_{i=1}^{T-1}(L^{finish}_i+L_i^{change}(\theta))\\&=L_T+\sum_{i=1}^{T-1}L^{finish}_i+\sum_{i=1}^{T-1}L_i^{change}(\theta)\tag{式1.1} \end{aligned} LT+i=1T1Li=LT+i=1T1(Lifinish+Lichange(θ))=LT+i=1T1Lifinish+i=1T1Lichange(θ)(1.1)

L i f i n i s h L^{finish}_i Lifinish表示学习完task i后,task i对应的loss值,设此时对应的参数为 θ ^ i \hat\theta_i θ^i L i c h a n g e L_i^{change} Lichange表示对于task i而言,参数由 θ ^ i \hat\theta_i θ^i变为 θ \theta θ,loss值产生的变化,由于 L i f i n i s h L^{finish}_i Lifinish是固定的,所以在增量的setting下,优化目标变为
L T + ∑ i = 1 T − 1 L i c h a n g e ( θ ) (式1.2) L_T+\sum_{i=1}^{T-1}L_i^{change}(\theta)\tag{式1.2} LT+i=1T1Lichange(θ)(1.2)

现在的问题变为 ∑ i = 1 T − 1 L i c h a n g e ( θ ) \sum_{i=1}^{T-1}L_i^{change}(\theta) i=1T1Lichange(θ)的形式是什么样的,我们将在method部分进行介绍。


假设

论文中并没有明说有哪些假设,本部分为我认为论文idea成立所需要的假设。

假设一:假设有三组参数 θ 1 、 θ 2 、 θ 3 \theta_1、\theta_2、\theta_3 θ1θ2θ3,训练后,变为 θ 1 n 、 θ 2 n 、 θ 3 n \theta_1^n、\theta_2^n、\theta_3^n θ1nθ2nθ3n,此时loss的变化为
Δ L ( θ 1 n , θ 2 n , θ 3 n ) ≈ Δ L ( θ 1 n , θ 2 , θ 3 ) + Δ L ( θ 1 , θ 2 n , θ 3 ) + Δ L ( θ 1 , θ 2 , θ 3 n ) \Delta L(\theta_1^n,\theta_2^n,\theta_3^n)\approx \Delta L(\theta_1^n,\theta_2,\theta_3)+\Delta L(\theta_1,\theta_2^n,\theta_3)+\Delta L(\theta_1,\theta_2,\theta_3^n) ΔL(θ1n,θ2n,θ3n)ΔL(θ1n,θ2,θ3)+ΔL(θ1,θ2n,θ3)+ΔL(θ1,θ2,θ3n)

假设二:设训练task n之前的参数为 θ ^ k n − 1 \hat \theta_k^{n-1} θ^kn1,训练完task n之后的参数为 θ ^ k n \hat \theta_k^{n} θ^kn,参数从 θ ^ k n − 1 \hat \theta_k^{n-1} θ^kn1均匀变化为 θ ^ k n \hat \theta_k^{n} θ^kn(实际训练是不太可能的),造成的损失函数变化值是已知的,如下图白色部分:
在这里插入图片描述


method

在这里插入图片描述
上图表示在学习完MNIST数据集的第一个task(即task 1)之后,参数 θ ^ k \hat\theta_k θ^k变化(其他参数fix)引起的task 1 loss值的变化,依据上图,作者假设 L i c h a n g e ( θ ) L_i^{change}(\theta) Lichange(θ)应该是一个不对称的二次函数。在正式介绍这个不对称的二次函数之前,我们首先介绍一下SI。

SI假设 L i c h a n g e ( θ ) L_i^{change}(\theta) Lichange(θ)是一个对称的二次函数,其损失函数构造如下:
L n ( θ ) + c ∑ k Ω k n − 1 ( θ k − θ ^ k n − 1 ) 2 (式2.0) L^n(\theta)+c\sum_k\Omega_k^{n-1}(\theta_k-\hat\theta_k^{n-1})^2\tag{式2.0} Ln(θ)+ckΩkn1(θkθ^kn1)2(2.0)
Ω k n = w k n ( θ ^ k n − θ ^ k n − 1 ) 2 + Ω k n − 1 w k n = L n ( θ ^ k n − 1 ) − L n ( θ ^ k n ) (式2.1) \begin{aligned} \Omega_{k}^n&=\frac{w_k^n}{(\hat\theta_k^n-\hat\theta_k^{n-1})^2}+\Omega_{k}^{n-1}\\ w_k^n&=L^n(\hat \theta_k^{n-1})-L^n(\hat \theta_k^n)\tag{式2.1} \end{aligned} Ωknwkn=(θ^knθ^kn1)2wkn+Ωkn1=Ln(θ^kn1)Ln(θ^kn)(2.1)

L n ( θ ) L^n(\theta) Ln(θ)表示参数为 θ \theta θ时,task n n n的损失函数值, w k n w_k^n wkn表示参数由 θ ^ k n − 1 \hat \theta_k^{n-1} θ^kn1变化为 θ ^ k n \hat \theta_k^n θ^kn时,task n n n损失函数的变化值,则 w k n ( θ ^ k n − θ ^ k n − 1 ) 2 \frac{w_k^n}{(\hat\theta_k^n-\hat\theta_k^{n-1})^2} (θ^knθ^kn1)2wkn表示task n n n损失函数的单位平方变化率,并假设损失函数的单位平方变化率是固定的,此时 w k n ( θ ^ k n − θ ^ k n − 1 ) 2 ( θ ^ k − θ ^ k n ) 2 \frac{w_k^n}{(\hat\theta_k^n-\hat\theta_k^{n-1})^2}(\hat\theta_k-\hat\theta_k^{n})^2 (θ^knθ^kn1)2wkn(θ^kθ^kn)2表示参数为 θ ^ k \hat\theta_k θ^k时,task n n n损失函数的变化值。通过对式2.0进行变形,可以得知式2.0 focus了所有旧task,如下所示:
L n ( θ ) + c ∑ i = 1 n − 1 ∑ k w k i ( θ ^ k i − θ ^ k i − 1 ) 2 ( θ k − θ ^ k n − 1 ) 2 L^n(\theta)+c\sum_{i=1}^{n-1}\sum_k\frac{w_k^i}{(\hat\theta_k^i-\hat\theta_k^{i-1})^2}(\theta_k-\hat\theta_k^{n-1})^2 Ln(θ)+ci=1n1k(θ^kiθ^ki1)2wki(θkθ^kn1)2

值得注意的是,式2.1是针对单个参数计算的,我对其理解是除了第 k k k个参数以外,其他参数fix前提下,loss值的变化,而正常的训练会导致多个参数同时发生变化,这里利用了假设一
ALASSO是对SI的改进,其假设 L i c h a n g e ( θ ) L_i^{change}(\theta) Lichange(θ)是一个不对称的二次函数,其损失函数构造如下:
L n ( θ ) + c ∑ k L s n − 1 ( θ k ) L s n − 1 ( θ k ) = Ω k n − 1 ( θ k − θ ^ k n − 1 ) 2   i f   α ( θ k ) > 0 L s n − 1 ( θ k ) = ( a Ω k n − 1 + ϵ ) ( θ k − θ ^ k n − 1 ) 2   i f   α ( θ k ) ≤ 0 α ( θ k ) = ( θ k − θ ^ k n − 1 ) ( θ ^ k n − 1 − θ ^ k n − 2 ) \begin{aligned} &L^n(\theta)+c\sum_kL^{n-1}_s(\theta_k)\\ L^{n-1}_s(\theta_k)&=\Omega_k^{n-1}(\theta_k-\hat \theta_k^{n-1})^2\ if\ \alpha(\theta_k)>0\\ L^{n-1}_s(\theta_k)&=(a\Omega_k^{n-1}+\epsilon)(\theta_k-\hat \theta_k^{n-1})^2\ if\ \alpha(\theta_k)\leq0\\ \alpha(\theta_k)&=(\theta_k-\hat \theta_k^{n-1})(\hat \theta_k^{n-1}-\hat \theta_k^{n-2}) \end{aligned} Lsn1(θk)Lsn1(θk)α(θk)Ln(θ)+ckLsn1(θk)=Ωkn1(θkθ^kn1)2 if α(θk)>0=(aΩkn1+ϵ)(θkθ^kn1)2 if α(θk)0=(θkθ^kn1)(θ^kn1θ^kn2)

a是一个超参数,一般大于1, α ( θ k ) \alpha(\theta_k) α(θk)为一个控制阀门,用于判断应该选择哪一个二次函数,其判断依据为,如果参数 θ k \theta_k θk位于 θ ^ k n − 1 \hat \theta_k^{n-1} θ^kn1 θ ^ k n − 2 \hat \theta_k^{n-2} θ^kn2之间,依据假设二,loss值是已经观测过的,此时的 Ω k n − 1 \Omega_k^{n-1} Ωkn1是可靠的,即单位平均变化率是可靠的,否则,由于loss值未观测到, Ω k n − 1 \Omega_k^{n-1} Ωkn1是不可靠的,此时施加的惩罚会更大。

Ω k n = L n ( θ ^ k n ) − L n ( θ ^ k n − 1 ) ( θ ^ n k − θ ^ k n − 1 ) 2 + c L s n − 1 ( θ ^ k n − 1 ) − L s n − 1 ( θ ^ k n ) ( θ ^ n k − θ ^ k n − 1 ) 2 \Omega_k^n=\frac{L^n(\hat\theta_k^n)-L^n(\hat\theta^{n-1}_k)}{(\hat\theta^k_n-\hat\theta_k^{n-1})^2}+c\frac{L_s^{n-1}(\hat\theta_k^{n-1})-L_s^{n-1}(\hat\theta_k^n)}{(\hat\theta^k_n-\hat\theta_k^{n-1})^2} Ωkn=(θ^nkθ^kn1)2Ln(θ^kn)Ln(θ^kn1)+c(θ^nkθ^kn1)2Lsn1(θ^kn1)Lsn1(θ^kn)

第一项表示task n的单位平均变化率,第二项表示旧任务的单位平均变化率,由于 L s n − 1 ( θ ^ k n − 1 ) = 0 L_s^{n-1}(\hat\theta_k^{n-1})=0 Lsn1(θ^kn1)=0(看上面关于 L s n − 1 ( θ ^ k n − 1 ) L_s^{n-1}(\hat\theta_k^{n-1}) Lsn1(θ^kn1)计算的公式),则有
Ω k n = L n ( θ ^ k n ) − L n ( θ ^ k n − 1 ) ( θ ^ n k − θ ^ k n − 1 ) 2 − c L s n − 1 ( θ ^ k n ) ( θ ^ n k − θ ^ k n − 1 ) 2 \Omega_k^n=\frac{L^n(\hat\theta_k^n)-L^n(\hat\theta^{n-1}_k)}{(\hat\theta^k_n-\hat\theta_k^{n-1})^2}-c\frac{L_s^{n-1}(\hat\theta_k^n)}{(\hat\theta^k_n-\hat\theta_k^{n-1})^2} Ωkn=(θ^nkθ^kn1)2Ln(θ^kn)Ln(θ^kn1)c(θ^nkθ^kn1)2Lsn1(θ^kn)

与SI相比,ALASSO旧任务的单位平方变化率不是固定的,而是随着参数的变化而动态变化的。

论文的Parameter Decoupling部分在此不做总结,感觉上作者这个做法非常奇怪,并且个人认为并不能解决作者提到的问题。

实验部分在此不做总结,有兴趣的同学可以浏览原论文

在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值