Reparameterizing Convolutions for Incremental Multi-Task Learning without Task Interference论文阅读+代码解析

本篇论文来自2020年ECCV,论文地址点这里

一. 介绍

目前现有的工作主要集中在提高多任务性能或减少多任务(MTL)模型中的参数和计算数量。本文采用了不同的方法,明确解决了MTL中的增量学习和任务干扰问题。我们表明,这两个问题都可以简单地通过重新参数化神经网络的卷积运算来解决。特别是,基于任务条件MTL方向,我们建议将每个卷积分解为一个共享部分,该共享部分充当编码公共知识的滤波器组,以及为每个任务唯一地适应该公共知识的任务特定调制器。与现有作品不同,共享部分不可训练,无法明确避免负迁移。最值得注意的是,由于每个卷积中可以引入任意数量的任务特定调制器,因此我们的模型可以逐步解决更多的任务,而不会干扰先前学习的任务。

二. 方法介绍

2.1 问题定义

给定 P P P个任务以及输入的tensor x x x,我们的目标是学习一个函数 f ( x ; W s , W t i ) = y i f\left(\boldsymbol{x} ; W_s, W_t^i\right)=\boldsymbol{y}^i f(x;Ws,Wti)=yi,其中 W s W_s Ws表示为任务共享参数, W t i W_t^i Wti表示为任务特定参数。与现有方法不同的是,现有方法在网络的层级学习函数,即明确设计共享层和任务特定层,我们的目标是通过重新参数化卷积运算,并根据任务 i i i调整其行为,从而在块级学习 f f f,如下图b和图c所示。通过这样做,我们可以明确地解决MTL设置中的任务干扰和灾难性遗忘问题:
在这里插入图片描述

2.2 Reparameterizing Convolutions

我们定义一个卷积操作 f ( x ; w ) = y f(\boldsymbol{x} ; \boldsymbol{w})=y f(x;w)=y表示一个单任务的学习,如上图的(a), w ∈ R k 2 c i n \boldsymbol{w} \in \mathbb{R}^{k^2 c_{i n}} wRk2cin表示为这个卷机层的参数,其中 k k k为卷积核的大小, c i n c_{in} cin为输入通道。 x ∈ R k 2 c i n \boldsymbol{x} \in \mathbb{R}^{k^2 c_{i n}} xRk2cin为输入的tensor, y y y表示对应的标量。假设有 c o u t c_{out} cout个filters,那么这个卷机操作可以被重新写为 f ( x ; W ) = y f(\boldsymbol{x} ; \boldsymbol{W})=y f(x;W)=y。那么对于一个单任务有:
f ( x ; W 1 ) = y 1 , … , f ( x ; W P ) = y P f\left(\boldsymbol{x} ; W^1\right)=\boldsymbol{y}^1, \ldots, f\left(\boldsymbol{x} ; W^P\right)=\boldsymbol{y}^P f(x;W1)=y1,,f(x;WP)=yP
其中 W i W^i Wi以及 y i \boldsymbol{y}^i yi表示为任务特定的参数和对应的输出。我们的目标是去重新组合 f ( ⋅ ) f(\cdot) f()
f ( x ; W i ) = h ( x ; W s , W t i ) , ∀ i = 1 , … , P f\left(\boldsymbol{x} ; W^i\right)=h\left(\boldsymbol{x} ; W_s, W_t^i\right), \quad \forall i=1, \ldots, P f(x;Wi)=h(x;Ws,Wti),i=1,,P
以便使用一系列的共享参数 W s W_s Ws以及 W t i W^i_t Wti对于每一个卷积层。值得注意的是,在增加新的任务参数时,我们不需要去训练整个模型参数而只需要训练一个任务特定参数。为了找到一组近似于单个任务权重的参数 W t i W s W^i_tW_s WtiWs,则需要最小化Frobenius泛式 ∥ W t i W s − W i ∥ F \left\|W_t^i W_s-W^i\right\|_F WtiWsWi F。尽管由于其简单性,直接最小化该度量很有吸引力,但它也提出了一些主要的警告。(1) 它假设参数空间中的所有方向都以相同的方式影响任务i的最终性能,因此会受到统一的惩罚。然而,对于具有相同Frobenius范数的 W t i W^i_t Wti,两个不同的解可以产生截然不同的损失。(2)该近似是针对每个卷积层独立执行的,忽略了一个层中的不准确预测可能在后续层中产生的链效应。

Reparameterized Convolution: 我们实现了Reparameterized Convolution(RC) W t i W s W^i_tW_s WtiWs为两个2D的卷机层,其中间不存在非线性。其中 W s W_s Ws的filter大小为k,而 W t i W^i_t Wti为一个1x1的矩阵。我们直接利用SGD对 W t i W^i_t Wti进行优化而保持 W s W_s Ws不变。

Normalized Feature Fusion: 我们使用 w t i \boldsymbol{w}^i_t wti表示任务特定参数 W t i W^i_t Wti的一行,在训练任务特定参数时,我们将每一个分解为两个量:一个向量 v t i ∈ R c o u t \boldsymbol{v}_t^i \in \mathbb{R}^{c_{o u t}} vtiRcout,一个标量 g t i g^i_t gti
w t i = g t i v t i ∥ v t i ∥ \boldsymbol{w}_t^i=g_t^i \frac{\boldsymbol{v}_t^i}{\left\|\boldsymbol{v}_t^i\right\|} wti=gti vti vti
其中 ∣ ∣ ⋅ ∣ ∣ ||\cdot|| ∣∣∣∣表示为欧几里得泛式,将这个称为Normalized Feature Fusion(NFF)。与无约束相比,NFF提供了更简单的优化过程,它强制向量变为一个单位向量,并且指向最佳的优化方向。向量泛数 ∣ ∣ w t i ∣ ∣ = g t i ||\boldsymbol{w}^i_t||=g^i_t ∣∣wti∣∣=gti独立学习新生成的filter的规模从而了解激活程度。归一化权重张量通常用于加快优化过程的收敛速度。

Response Initialization: 我们基于矩阵张量分解文献的发现,网络权重响应位于低维子空间。我们进一步假设这样的子空间对于多个任务是有益的,因此对于MTL设置下的网络初始化是有益的。为此,我们确定了一个有意义的响应子空间,用于生成更好的filter W s W_s Ws,与在ImageNet上通过预先训练 W s W_s Ws直接学习的结果相比。让我们使用 W m W^m Wm表示在ImageNet上进行预训练的权重。我们使用 y ˉ \bar{\boldsymbol{y}} yˉ表示n个输出值 Y Y Y的平均。我们计算协方差矩阵的特征分解 Y Y T = U S U T Y Y^T=U S U^T YYT=USUT(使用SVD分解),其中 U U U是列上有特征向量的正交矩阵, S S S则是相应特征值的对角矩阵。因此我们可以初始化参数 W s W_s Ws U T W m U^TW^m UTWm W t i W^i_t Wti为U。

三. 代码解析

代码地址点这里
本篇论文的整体代码模型都很复杂,我就根据自己的理解讲解一下主要的方法。
在这里插入图片描述

首先是任务特定参数的构建,在文中他描述为1x1的conv,并且为 R c o u t c o u t \R^{c_{out}c_{out}} Rcoutcout,其实是忽略了1x1的kernel size项,这里在每一个resnet-block中都添加了相应的项,对应到low_level_reduce。
在这里插入图片描述

在文中提到了NFF,这里可以发现,我们徐需要构建v和g,g是一个泛数,v的话就是直接对应原本的参数w。

在这里插入图片描述
最后是为了确保初始化的工作,可以发现利用已经预训练的模型进行特征值的求解和参数分解。具体的工作大家可以自行阅读源码。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值