多任务深度学习结构通常是一个黑科技,由设计者决定哪些层共享。论文在深度网络的每一层学习任务间的共享结构,基于矩阵分解泛化技术进行tensor分解,实现端到端的深度网络信息共享。该方法可以用于同类和不同类的多任务学习。
由设计者定义的深度多任务网络通常在浅层共享,之后分叉成多个分离的层,每个任务都有损失函数。设计者通常需要明确共享结构:有多少个特定任务层,多少个任务不相干层,如果设计共享结构等问题。
论文提出的方法是浅层多任务学习方法的泛化,如(Evgeniou & Pontil, 2004; Argyriou et al., 2008;Kumar & Daumé III, 2012),在深度网络的每一层学习如何共享,或者学习共享结构。
同类多任务学习,每个任务对应一个单一输出,如MNIST字符识别分解为10个二分类任务。
不同类多任务:每个人物对应一个特别的输出集合,如属性识别。
论文提出的方法核心思想是使用张量分解,将模型每个参数集合,如FC层参数,卷积核张量,分解为共享的或特定任务的部分。
相关研究
多任务学习
现有的多任务算法假设输入与模型均是D维的向量,T个任务的模型可以组成大小为
张量分解
深度学习中,张量分解曾被用于挖掘张量少量的参数,用于压缩加速模型。该篇论文出于不同的目的分解张量,分解的参数包括卷积核、或者
参数化的DNN
给定一些辅助信息,DNN的权值动态生成。在speaker-adaptive语言识别中,数据中存在几个聚类,如性别、声学条件,说话人的模型可以认为是这些潜在任务的线性组合。每个说话人的权值矩阵式K个基矩阵的和,通过参数
方法描述
张量点积是矩阵点积的扩展,即如果张量A的尺寸为
1. 基于矩阵的信息共享
矩阵
2. 从单一输出到多输出
每个任务是
信息只在任务间共享,而某个任务的维度间不共享。张量分解的几种定义:Tucker,TT。
3. Tucker分解
给定N-way张量
4. TT分解
TT分解输出2个矩阵
深度多任务表示学习
每个任务,使用相同的结构学习。每个对应层的权重由权值共享结构的分解公式得到。在FC层后向传播过程,模型不直接学习3-way张量W,而是学习Tucker方法的
实验
按照以下步骤初始化模型,设置张量的rank:
首先以单任务学习方式训练DNN。然后逐层打包参数,作为张量分解的输入。在SVD应用之后,对相关的误差设置阈值,SVD获得合适的rank。因此,方法仅需要一个超参数,即最大重建误差,用以表示每一层的rank。共享只针对权值矩阵,偏置矩阵不共享。
1. 同类型多任务
MNIST分类任务,网络结构为LeNet,设置N(1~3)层为硬共享,通过交叉验证发现N=3时效果最好,User-defined模型前3层全部共享。论文方法前四层软共享。
2.不同类多任务
AdienceFaces人脸 数据库,性别2类,年龄8类,User-define前五层硬共享,论文方法前五层软共享。
3.量化共享程度
张量分解W=LS,S是
Omniglot多语言字母分类实验每层共享程度: