【多任务学习】多任务学习中的任务选择机制(Task Selection Policies for Multitask Learning)

Task Selection Policies for Multitask Learning

多任务学习和迁移学习虽然经常被分别表述,但其实二者的思想和任务都是一直的:利用其他数据的知识来提升任务目标的性能。在大多数多任务学习中,可以随着主任务学习进度的变化,选择、控制不同辅助任务的使用频率,通过这样的方法可以随着主任务的变化,给与最适合的辅助样本来提高性能。Curriculum Learning 是一个非常有意思的方法,他的思想是通过对数据集中所选择的任务进行难度排序,让网络模型先学习比较简单的任务,之后再学习比较复杂的任务,这样可以使模型训练的更快、更好。
多任务学习的四个问题:

  1. 什么样的多任务学习是有效的,是否会有无效或负迁移的情况。
  2. 那一部分的参数需要被迁移。
  3. 模型训练过程中,是否所有数据都需要被使用。
  4. 计算资源应当如何被分配。

本文的目标意在解决不同分任务在整体训练过程中有多少占比,换句话说是不同辅助任务对主任务的重要程度。
本文将一个具有N个任务的课程看作一个N-臂赌博机问题,在每一轮t中任务选择方法可以选择一个任务进行运行,同时得到运行过后的结果,这个任务选择方法的目的是让每一次选择都可以的到尽可能好的问题。那么本文的最终目的就是自动的找到一个最合适的任务选择方法
最基本的任务原则机制有两种,一种是使用随机选择的方式,还有一种比较简单的选择方式是以数据集大小为准则,分配选择机理。
随机选择:
π t R A N D O M ( k ) = 1 N \pi_{t}^{\mathrm{RANDOM}}(k)=\frac{1}{N} πtRANDOM(k)=N1
按样本数量选择:
π t TASK ⁡ S I Z E ( k ) = ∣ D k ∣ ∑ j = 1 N ∣ D j ∣ \pi_{t}^{\operatorname{TASK} \mathrm{SIZE}}(k)=\frac{\left|D^{k}\right|}{\sum_{j=1}^{N}\left|D^{j}\right|} πtTASKSIZE(k)=j=1NDjDk

在[1]中作者有一个假设:任务选择方法会产生一个大纲(大的选择方向,syllabus ):把注意力集中在难度递增的任务上。这使得作者们设计并评估了几种不同的编码方法来衡量训练过程进展到一个样本水平奖励函数的速度。他们发现训练的过程中prediction gain基本上可以指出最优的任务选择方法应当是什么样的。这就意味这通过这个原理,我们不用一步步的训练任务选择方法,而是可以通过前期的几个任务选择方法直接预测出后面的最优的选择方法。(这就像我们训练一个深度神经网络,本来是通过训练集的数据一次一次的调整网络参数,让网络中的参数一步一步的达到最优值(虽然大多数情况都是局部最优),但现在有了一个映射关系,或者说是一个先验知识,那我们就不需要一步一步的把训练集的数据都跑一下,就可以直接得出网络的最终参数。)
prediction gain的定义是:样本训练前后的变化
L k ( x , θ π E X P 3. S ) − L k ( x , θ π E x P 3. S ′ ) L_{k}\left(\mathbf{x}, \theta_{\pi^{\mathrm{EXP} 3 . \mathrm{S}}}\right)-L_{k}\left(\mathbf{x}, \theta_{\pi \mathrm{ExP} 3 . S}^{\prime}\right) Lk(x,θπEXP3.S)Lk(x,θπExP3.S)
所以counterfactual estimation的目的就是使用旧的任务选择方法数据来改进该策略,而不需要与环境进行进一步的交互。

learning pilicies using counterfactual estimation

那么到这里就可以将我们要解决的问题分为两个步骤

  1. 如何对一个任务选择机制进行评价
    这类似训练神经网络过程中我们需要确定一个损失函数,在这里我们设定的这个损失函数是加入了先验知识的(即当前任务选择机制训练前后的收益可以预测最优选择机制的位置)
  2. 如果训练一个任务选择机制
    这里是最终我们需要一个数学模型来实现我们的任务选择机制,就像训练一个神经网络需要搭建网络模型。
    有了上面的两个步骤,我们就可以训练我们的任务选择机制了。

反事实估计(counterfactual estimation )

在多臂赌博机的训练过程中,依据任务选择机制π选择任务,之后将数据 X t \mathbf{X}_{t} Xt送入模型进行进行训练,从而得到这次训练的反馈 r t ( x t ) r_{t}\left(\mathbf{x}_{t}\right) rt(xt)。每一个x被选择的概率是 P ( x ∣ π ) P(\mathbf{x} | \pi) P(xπ),这里的π是使用这种任务选择机制后的期望收益。
V ( π ) = E x ∼ P ( x ∣ π ) [ r ( x ) ] = ∑ x P ( x ∣ π ) r ( x ) V(\pi)=\underset{\mathbf{x} \sim P(\mathbf{x} | \pi)}{\mathbb{E}}[r(\mathbf{x})]=\sum_{\mathbf{x}} P(\mathbf{x} | \pi) r(\mathbf{x}) V(π)=xP(xπ)E[r(x)]=xP(xπ)r(x)
可以从 P ( x ∣ π ) P(\mathbf{x} | \pi) P(xπ)的采样轨迹中估计出 V ( π ) V(\pi) V(π)
V ^ ( π ) = 1 T ∑ t = 1 T r t ( x t ) \hat{V}(\pi)=\frac{1}{T} \sum_{t=1}^{T} r_{t}\left(\mathbf{x}_{t}\right) V^(π)=T1t=1Trt(xt)
在反事实估计中,任务是通过来自π的一系列信息来估计出一个万物按不同的任务选择方式的评价 V ( π C ) V\left(\pi^{\mathrm{C}}\right) V(πC),我们无法通过 π C \pi^{\mathrm{C}} πC来进行训练来得到结果,只能通过间接的方法估计出 V ( π C ) V\left(\pi^{\mathrm{C}}\right) V(πC)
V ( π C ) = ∑ X P ( x ∣ π C ) r ( x ) = ∑ X P ( x ∣ π C ) P ( x ∣ π ) P ( x ∣ π ) r ( x ) = ∑ X P ( x ∣ π ) P ( x ∣ π C ) P ( x ∣ π ) r ( x ) = E x ∼ P ( x ∣ π ) [ P ( x ∣ π C ) P ( x ∣ π ) r ( x ) ] \begin{aligned} V\left(\pi^{\mathrm{C}}\right) &=\sum_{\mathbf{X}} P\left(\mathbf{x} | \pi^{\mathrm{C}}\right) r(\mathbf{x}) \\ &=\sum_{\mathbf{X}} P\left(\mathbf{x} | \pi^{\mathrm{C}}\right) \frac{P(\mathbf{x} | \pi)}{P(\mathbf{x} | \pi)} r(\mathbf{x}) \\ &=\sum_{\mathbf{X}} P(\mathbf{x} | \pi) \frac{P\left(\mathbf{x} | \pi^{\mathrm{C}}\right)}{P(\mathbf{x} | \pi)} r(\mathbf{x}) \\ &=\mathbb{E}_{\mathbf{x} \sim P(\mathbf{x} | \pi)}\left[\frac{P\left(\mathbf{x} | \pi^{\mathrm{C}}\right)}{P(\mathbf{x} | \pi)} r(\mathbf{x})\right] \end{aligned} V(πC)=XP(xπC)r(x)=XP(xπC)P(xπ)P(xπ)r(x)=XP(xπ)P(xπ)P(xπC)r(x)=ExP(xπ)[P(xπ)P(xπC)r(x)]
我们可以通过使用Monte Carlo(蒙特·卡罗方法(Monte Carlo method),是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法)来近似 V ( π C ) V\left(\pi^{\mathrm{C}}\right) V(πC),让其只依赖于从 P ( x ∣ π ) P(\mathbf{x} | \pi) P(xπ)中取得的样本。
V ^ I S ( π C ) = 1 T ∑ t = 1 T P ( x t ∣ π C ) P ( x t ∣ π ) r t ( x t ) \hat{V}_{\mathrm{IS}}\left(\pi^{\mathrm{C}}\right)=\frac{1}{T} \sum_{t=1}^{T} \frac{P\left(\mathbf{x}_{t} | \pi^{\mathrm{C}}\right)}{P\left(\mathbf{x}_{t} | \pi\right)} r_{t}\left(\mathbf{x}_{t}\right) V^IS(πC)=T1t=1TP(xtπ)P(xtπC)rt(xt)
P ( x ∣ π C ) > 0 ⟹ P ( x ∣ π ) > 0 P\left(\mathbf{x} | \pi^{\mathrm{C}}\right)>0 \quad \Longrightarrow \quad P(\mathbf{x} | \pi)>0 P(xπC)>0P(xπ)>0约束下这种估计是无偏的。但是这种估计方式是有缺陷的,当在 P ( x t ∣ π ) P\left(\mathbf{x}_{t} | \pi\right) P(xtπ)非常小的时候,估计出的重要性参量 P ( x t ∣ π C ) P ( x t ∣ π ) \frac{P\left(\mathbf{x}_{t} | \pi^{\mathrm{C}}\right)}{P\left(\mathbf{x}_{t} | \pi\right)} P(xtπ)P(xtπC)将会非常的大,这个缺陷会导致在实际估计时,对于发生概率小的样本和发生概率大的样本之间有个非常大的差异,从而导致整体效果变差。在这篇文章中,作者选择了一个改进过的方法,weighted importance
sampling estimator,具体公式如下。
Z = 1 T ∑ t = 1 T P ( x t ∣ π C ) P ( x t ∣ π ) Z=\frac{1}{T} \sum_{t=1}^{T} \frac{P\left(\mathbf{x}_{t} | \pi^{\mathrm{C}}\right)}{P\left(\mathbf{x}_{t} | \pi\right)} Z=T1t=1TP(xtπ)P(xtπC)

V ^ W I S ( π C ) = V ^ I S ( π C ) Z \hat{V}_{\mathrm{WIS}}\left(\pi^{\mathrm{C}}\right)=\frac{\hat{V}_{\mathrm{IS}}\left(\pi^{\mathrm{C}}\right)}{Z} V^WIS(πC)=ZV^IS(πC)
这里其实相当于对所有计算出的评价值经行了一个归一化,这是一个非常经典的思想。

任务选择机制的优化(Policy improvement)

在有了一个可以评价任务选择机制的方法之后,我们的目标是在这个评价方法之上找到一个良好的任务选择方法,类比到深度学习中,就像我们现在已经确定了一个损失函数,现在需要确定我们的模型是什么样子,之后将模型公式带入损失损失函数中,将整个问题归结到一个最优化问题上,之后用计算机进行优化计算。
在本文中作者选择的任务选择方法的表达形式为:
π ω , t C ( k ) = e ω k ∑ j = 1 N e ω j \pi_{\omega, t}^{\mathrm{C}}(k)=\frac{e^{\omega_{k}}}{\sum_{j=1}^{N} e^{\omega_{j}}} πω,tC(k)=j=1Neωjeωk
其实可以看出这个公式和softmax的公式非常像,在这里不介绍softmax分类器的优点了,有需要的同学可以看相关的论文。
max ⁡ ω V ^ W I S ( π ω , t C ) \max _{\omega} \hat{V}_{\mathrm{WIS}}\left(\pi_{\omega, t}^{\mathrm{C}}\right) maxωV^WIS(πω,tC)
所以我们整个寻找最好的任务选择方法的过程可以归一化到求如下公式的最大值的问题当中:
max ⁡ ω [ V ^ W I S ( π ω , t C ) + λ H ( π ω , t C ) ] \max _{\omega}\left[\hat{V}_{\mathrm{WIS}}\left(\pi_{\omega, t}^{\mathrm{C}}\right)+\lambda \mathrm{H}\left(\pi_{\omega, t}^{\mathrm{C}}\right)\right] maxω[V^WIS(πω,tC)+λH(πω,tC)]
和深度学习问题一样,在这种训练方法中,一些反馈最好的点并不一定是我们想要的实验结果,这有些类似于过拟合,所以在上面公式的基础上,作者加入了正则化的方法来提高模型的效果。

Reward

在课程学习的任务中,需要定义一个reward来经行训练,一遍情况下一个最大化希望值r的选择机制在任务训练结束同样将会最小化平均任务损失(这相当于最小化损失函数同样会最大化模型准确率)
max ⁡ π E x ∼ P ( x ∣ π ) [ r ( x ) ] ≈ min ⁡ π L ( θ π ) \max _{\pi} \underset{\mathbf{x} \sim P(\mathbf{x} | \pi)}{\mathbb{E}}[r(\mathbf{x})] \approx \min _{\pi} \mathcal{L}\left(\theta_{\pi}\right) maxπxP(xπ)E[r(x)]minπL(θπ)
但在作者的实验当中,发现用这种Reward并不能很好的得到结果,所以作者选择使用了如下的reward:
Δ L = L k ( x t , θ t ) − L k ( x t − δ k , θ t − δ k ) r t = { 1.0 − e − L k ( x t , θ t )  if  Δ L &lt; 0 0  otherwise  \begin{aligned} \Delta_{L} &amp;=L_{k}\left(\mathbf{x}_{t}, \theta_{t}\right)-L_{k}\left(\mathbf{x}_{t-\delta_{k}}, \theta_{t-\delta_{k}}\right) \\ r_{t} &amp;=\left\{\begin{array}{ll}{1.0-e^{-L_{k}\left(\mathbf{x}_{t}, \theta_{t}\right)}} &amp; {\text { if } \Delta_{L}&lt;0} \\ {0} &amp; {\text { otherwise }}\end{array}\right.\end{aligned} ΔLrt=Lk(xt,θt)Lk(xtδk,θtδk)={1.0eLk(xt,θt)0 if ΔL<0 otherwise 

思想总结

在训练一个模型(或者在这里是一个任务选择机制)的过程中,我们可以有两种方法,一种是基于数据的方法,在海量的数据中通过最优化方法让模型学习到相应的知识。另外一种方法是在训练过程设计中,引入更多的先验知识,这样可以减少数据的依赖量,同样可以减少模型的训练难度。在传统的模式识别过程中,往往使用人工设计特征描述子的方法来提取特征,之后将特征送入支撑向量机之类的分类器中,这一类方法往往只需要很少的数据量。在这个工作当中,使用了反事实估计(counterfactual estimation )的方法,和课程学习的思想,这些工作其实都是将先验信息加入整个模型训练过程,这种方法可以让模型的训练速度更快,效果更好。
作者在文中还做了一些实验,效果都非常好,如果有需要的可以去看一下原文。

注:本文的主要内容来自:John Glover and Chris Hokamp,Task Selection Policies for Multitask Learning,2019

[1]Alex Graves, Marc G Bellemare, and Jacob Menick.2017. Automated Curriculum Learning for Neural Networks.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
几篇CVPR关于multi-task的论文笔记整理,包括 一、 多任务课程学习Curriculum Learning of Multiple Tasks 1 --------------^CVPR2015/CVPR2016v--------------- 5 二、 词典对分类器驱动卷积神经网络进行对象检测Dictionary Pair Classifier Driven Convolutional Neural Networks for Object Detection 5 三、 用于同时检测和分割的多尺度贴片聚合(MPA)* Multi-scale Patch Aggregation (MPA) for Simultaneous Detection and Segmentation ∗ 7 四、 通过多任务网络级联实现感知语义分割Instance-aware Semantic Segmentation via Multi-task Network Cascades 10 五、 十字绣网络多任务学习Cross-stitch Networks for Multi-task Learning 15 --------------^CVPR2016/CVPR2017v--------------- 23 六、 多任务相关粒子滤波器用于鲁棒物体跟踪Multi-Task Correlation Particle Filter for Robust Object Tracking 23 七、 多任务网络的全自适应特征共享与人物属性分类的应用Fully-Adaptive Feature Sharing in Multi-Task Networks With Applications in Person Attribute Classification 28 八、 超越triplet loss:一个深层次的四重网络,用于人员重新识别Beyond triplet loss: a deep quadruplet network for person re-identification 33 九、 弱监督级联卷积网络Weakly Supervised Cascaded Convolutional Networks 38 十、 从单一图像深度联合雨水检测和去除Deep Joint Rain Detection and Removal from a Single Image 43 十一、 什么可以帮助行人检测?What Can Help Pedestrian Detection? (将额外的特征聚合到基于CNN的行人检测框架) 46 十二、 人员搜索的联合检测和识别特征学习Joint Detection and Identification Feature Learning for Person Search 50 十三、 UberNet:使用多种数据集和有限内存训练用于低,,高级视觉的通用卷积神经网络UberNet: Training a Universal Convolutional Neural Network for Low-, Mid-, and High-Level Vision using Diverse Datasets and Limited Memory 62 一共13篇,希望能够帮助到大家
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值