简介
通过在相关的task上共享representation,我们在原本的任务上可以泛化得更好。这种方法就叫做Multi-Task Learning (MTL)。MTL还有别的说法:joint learning、learning to learn和learning with auxiliary tasks。如果optimize多个loss,就可以看作是MTL。
动机
可以把MLT看作是一种inductive transfer。Inductive transfer可以通过引入inductive bias改善模型。例如,L1正则化。
两种MTL方法
hidden layer的hard和soft参数共享的方法
Hard parameter sharing:所有task共享hidden layers,同时特定task输出层独立。
Soft parameter sharing: 每个task有自己的参数。不同model之间的参数距离进行正则化。
为什么MTL能work?
隐式的data augmentation:因为data都含有noise,多个task可以帮助忽视data-dependent noise。不同task有不同noise pattern,一个model同时学两个task,可以学到更general的representation。
注意力集中:MTL可以帮助model关注那些真正有用的features上(通过别的task提供evidence)。
Eavesdropping:一些feature对于某些任务可能比较难学,通过引入别的task可以学的更好。
Representation bias: MTL bias representation 使得task都可以接受。
Regularization
非神经元MTL模型
Block-sparse regularization
A是所有task的参数矩阵,具有稀疏性,用L1/Lq进行正则化。
Learning task relationships
因为上述稀疏性,每个task只使用一些feature。之前的方法都假设MTL中的task非常相关。如果任务不相关,可能会降低performance,这种现象叫做negative transfer。
限制task相关性:loss of clustering of tasks.
... 很多假定task关系的方法
MTL for Deep Learning
Deep Relationship Networks
在CV上,通常共享CNN,特定task使用独立的fc layers。在fc层,place matrix prior,让model学任务间的关系。
Fully-Adaptive Feature Sharing
从thin network开始用类似task grouping的标准动态扩展开。
Cross-stitch Networks
两个分离的model用soft parameter sharing。用cross-stitch unit通过之前layer的输出的combination允许model决定特定task的网络使用另外task的信息。
Joint Many-Task Model
包含几个NLP task的分层结构
Weighting losses with uncertainty
考虑每个task的不确定性,使用正交的方法。通过基于最大化Gaussian likelihood with task-dependent uncertainty的multi-task loss,调整每个task的相对权重。
Tensor factorisation
matrix factorisation的方法
Sluice Networks
综合Deep Learning中MTL方法例如hard parameter sharing、cross-stitch network和block-sparse regularization的方法。这个model可以学什么layer应该要share,什么layer学的representation最好。
在model中应该共享什么?
tasks若不是十分相关,hard parameter sharing 可能无效。
Auxiliary tasks
Related task
例如,自驾车中预测路的特征作为预测驾驶方向的辅助任务。学query分类和网页搜索。
Adversarial task
在domain adaptation方面取得成功。在一个例子中,adversarial task是预测input的domain,通过reverse adversarial task的gradient,使得adversarial task的loss最大,因为迫使model学分不清domain的representation,所以对于main task有帮助。
Hints
把预测feature当作auxiliary task。例如,预测input中是否含有positive或negative的词当作情绪分析的auxiliary task。
Focusing attention
auxiliary task 也可以用来让网络注意之前被忽视的地方。
Quantization smoothing
连续的feature对于training更有益处。使用量化的auxiliary task可能有帮助。
Predicting inputs
有些情况下,一些feature对于目标没有帮助。把feature当作输出可能有帮助。
Using the feature to predict the present
有些feature只有在做出预测之后才知道正确的结果,这种情况这个任务可以当作auxiliary task。
Representation learning
Autoencoder也可以看作是auxiliary task。
什么样的auxiliary task有帮助
对于main task在某种方面相关的。--使用同样的feature--有同样的inductive bias
通常,main task很快plateau,auxiliary task没有plateau可能会有帮助。