【深度学习】多任务学习

多任务学习是一个很火的话题,在自动驾驶领域以及其他对存储资源要求较高的端侧任务,都会考虑这种方式。之前面试的时候也有被问题多任务学习。前几天看到一个写得很好的例子,在此记录一下,也好久没有写博客了。

1.参考

论文是2018年的CVPR。

论文:https://arxiv.org/pdf/1705.07115.pdf

代码:https://github.com/yaringal/multi-task-learning-example

2.论文分析

以下面的框架图为例,输入一系列图片,经过一个编码器(Resnet50作为backbone),分别使用不同的解码器,进行优化。其中任务1是分割出所有的目标,任务2是要把里面的每个实例目标都分割出来,任务3是输出深度信息。在每个任务上接上相应的损失函数进行优化。这个是训练过程。那推理过程就是将三个解码器后面的结果分别输出,分割结果,实例分割结果,深度信息。

这个任务会共用backbone,使用不同的head层,与不同的损失函数。这个过程中每个损失函数可能会设置相应的权重进行优化。

【深度学习】多任务学习_第1张图片 与专有任务相比,能够获得相当的精度。【深度学习】多任务学习_第2张图片

 3.代码

https://github.com/yaringal/multi-task-learning-example/blob/master/multi-task-learning-example-pytorch.ipynb

在relu之后接了两个并联的全连接层,应该是优化两个任务。

【深度学习】多任务学习_第3张图片

 这个是优化训练模型:

【深度学习】多任务学习_第4张图片

以及相应的loss曲线:

【深度学习】多任务学习_第5张图片

 

你可能感兴趣的:(算法,人工智能,深度学习,自动驾驶)