多任务学习中的Auxiliary Tasks

简介

Auxiliary tasks 可以看作是regularization,使main tasks的performance更好。这篇论文选择road scene understanding(RSU) 作为例子。还提供了多任务的dataset,synMT

很多CV的应用都需要单一任务的组合,例如single-image depth estimation(SIDE)、semantic segmentation、图像分类等。合起来解决时,可以提升性能,还能节省训练和推断时间。

main tasks是最终需要输出的tasks。auxiliary tasks则是为了能学到更robust、common的representation。这篇论文认为auxiliary tasks是似乎与main tasks不相关但实际上用了相似feature的tasks。

自动驾驶中,需要注意的有交通标志、地标和其他行人车辆等。还要考虑物体距离和时间等。

这个model把SIDE当作main tasks,预测时间和天气情况作为auxiliary tasks。

图片说明

主要贡献:使用似乎不相关的auxiliary task作为regularization、对vision-based multi-task RSU的实现和研究、合成的dataset、多任务CNN架构。

在MTL中引入Auxiliary Tasks

MTL在网络的前几层找到common representation,各个任务在后几层解决各自的任务,即encoder-decoder结构。Auxiliary tasks应该容易学并且label很容易得到的。Loss function:

图片说明

其中, 为可以学习的网络参数。同时,也需要regularization term.

图片说明

最终的loss function为:

图片说明

实验和结果

合成的dataset

使用合成的dataset,ground-truth labels有pixel-wise depth maps和semantic masks,还有时间和天气。

图片说明

网络结构

将SIDE和semantic segmentation作为main tasks。SIDE的很多方法都利用了图像gradient作为feature。加入了时间回归作为auxiliary task,将光线造成的gradient和地形上造成的区隔开。预测天气情况作为第二个auxiliary task可以帮助semantic segmentation区隔雨滴、雪花或者小物体。

encoder的部分使用pre-train的model,DeepLabv3(使用ResNet和ASPP)。实作这个model,使用pre-trained的ResNet50,把1×1的convolution换成特定task的decoder。

天气分类的分支包含5×5 conv、3×3 conv 、2个3×3 conv(stride=3)、1×1conv、fc-11。使用softmax loss。

时间回归的分支除了第一个max pool,size 5×5 ,stride 5,其他相似,最后的fc-1。使用MSE loss。

因为分析交通场景中,近距离的物体更有意义,因此,相对距离为

图片说明

mapping之后,原来1m到1km变为[0,1]。将d<1变为0,d>1000变为1。

时间上,考虑到24小时周期性,t的单位为分钟,则squared cyclic time difference为

图片说明

这个loss为:

图片说明

其中,mini-batch size为b,10^(-5)是为了scale。刚开始c_\tau为0.25。b=4,lr=1e-5,使用Adam作为optimizer。

结果如下:

图片说明

在single-task的情况下,auxiliary task的结果最好。因为auxiliary task只是用来support main task的。当四个任务一起时,每个都还不错。

论文

Auxiliary Tasks in Multi-task Learning

全部评论

相关推荐

1 1 评论
分享
牛客网
牛客企业服务