开发者社区> 技术小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

CMU提出「十字绣网络」,自动决定多任务学习的最佳共享层

简介:
+关注继续查看

引出主题

多任务学习是机器学习的重要组成部分,但是在应用深度学习进行多任务学习时会遇到一个棘手的问题,那就是我们该如何确定网络的共享部分。针对不同的任务,其最佳共享层往往不同。

本文使用 AlexNet 网络分别进行图像检测、图像属性生成及图像语义分割、图像平面法向量生成(Surface Normal)等多任务学习。针对两个任务,作者分别从 fc8 层进行共享,一直测试到两者完全不进行共享的为止。

eb2cf52c0497889925c088a90c25e8b6bc0773cd

 图1

实验结果如图 1 所示,其中,图 1(b)是不同共享层完全独立时的效果对比,可以看出对于任务一来说,共享部分在 conv4 时所能达到的效果,针对于任务二来说,在 fc7 层的效果最好。

此外,针对不同的多任务学习,我们需要根据任务需求设计不同的共享层,并没有统一的标准。因此,本文针对这一问题设计了“十字绣”单元,通过端对端的学习来自动决定共享层

“十字绣”单元与网络设计

Cross-stitch Unit

本文的核心就在这里,设计“十字绣”单元的思想如图 2 所示,通过在两个网络的特征层之间增加“十字绣”单元可以使网络自动学习到需要共享的特征。

741900d3963666c0029d694e8cbda193a2bfb262

 图2


其中的“十字绣”单元就是一个系数矩阵。其表达式如式(1)所示。

e4e1bfea07a5ca69426215ac4c029fdd35e006b3

针对这个“十字绣”单元如何进行端对端学习呢?作者给了具体的计算公式:

7d54fe3b1088b0debc83696e6672e2fcdfbd2604

在下文中,为了方便,将 αAB 及 αBA 统称为 αD 表示不同任务的权重值,αAA 及 αBB 统称为 αS 表示相同任务的权重值。

“十字绣”网络设计

图 3 是作者通过对网络添加“十字绣”单元设计的网络。

898e20cfec38ebc96a8496f23b6508167242e4f7

 图3

网络设计好之后,作者又针对网络提出了以下几个问题:

1. 如何对“十字绣”单元进行初始化,及如何设置“十字绣”单元的学习速率?

作者认为初始值设置应该在 [0,1] 之间,此外,作者还针对初始值及学习速率的设计进行了实验,以决定如何对两者进行设计能够达到最优效果。

2. 如何对网络 A 和 B 进行初始化?

如何对 A、B 进行初始化呢?作者提出了两种方案,第一种就是网络全用由 ImageNet 训练出的参数进行初始化,然后对整个“十字绣”网络进行训练。第二种是针对一种任务在网络上进行微调,然后再添加“十字绣”单元,并对网络进行训练。

参数选取

针对 2.2 中提到的两个问题,作者分别尝试了不同的策略来对参数进行选择。实验结果如表 1 所示:

f8c1f58b0155a46cc15dcb6c947dbdbb3c3c28ea

 表1

在对“十字绣”单元进行训练时作者发现,用来更新网络参数的学习速率相对于“十字绣”单元而言太小了,以至于无法得到好的效果,实验结果如表 2 所示:

d7323a1eeedeaa686ea3d0cfff4c5d710ebb82d0

 表2


关于如何对网络 A、B 进行初始化,作者同样进行了实验,实验结果如表 3 所示:

b39787c2f87573f3d739597cb69c7f52a8eb5ce0

 表3

表 4 展示了在 αD 及 αS 取不同的初始值时,最终网络各层各个通道的 αD 及 αS 的值的分布情况。其中 αD 越大说明共享程度越大,αS 越大,说明特征的特殊性越强。

a536a7abd72f012911a0784cdfd1147d96cbb6cf

 表4

实验及结果分析

为验证本文算法的有效性,作者分别在 NYU-v2 数据集进行了图像语义分割及图片平面法向量生成实验,在 PASCAL VOC 2008 数据集上进行了物体检测和属性预测实验。

作者分别针对单任务网络、结合两个单任务的网络(文中称为“ensemble”)、多任务网络(如图 1 中那样尝试在各个特征层共享特征)进行了实验。平面法向量生成及图像语义分割的实验结果如表 5 所示:

6c13fab67f8e31a76a87b9538d6020652eaf29a2

 表5

从表 5 可以看出,使用“十字绣”单元的网络均能在两个任务上得到较好的结果。此外,作者分析在图像语义分割任务中,存在严重的数据匮乏问,如图 5 中黑线所示,wall、floor 的数据数量远超出其余的类别数,其中,蓝色柱状表示采用“十字绣”单元的多任务学习相对于单任务学习在效果上的增益,从图中可以看出,数量越少的类别所获得增益越多。

798e0b0f57940cced1bf4135bc104d5fff7da012

 图5

图像检测及属性预测的实验结果及增益情况分别如表 6 及图 6 所示:

f392434212289b05d478044f8c57335cbb67a149

总结与分析

虽然本文作者提到他们的方法相对于传统方法不需要去依次尝试如何选取所要共享的特征层,但是增加的“十字绣”单元同样带来了很多麻烦的东西,例如,如何进行初始化,如何设置学习速率。最终的实验结果表明,使用该方法对多任务学习的性能有一定的提升。


原文发布时间为:2018-05-29

本文作者:吴仕超

本文来自云栖社区合作伙伴“PaperWeekly”,了解相关信息可以关注“PaperWeekly”。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
CSS盒模型 - 官方文档总结
CSS盒模型 - 官方文档总结
24 0
通过最简单的button控件,深入学习SAP UI5框架代码系列之零
通过最简单的button控件,深入学习SAP UI5框架代码系列之零
79 0
TF之AE:AE实现TF自带数据集AE的encoder之后decoder之前的非监督学习分类
TF之AE:AE实现TF自带数据集AE的encoder之后decoder之前的非监督学习分类
59 0
匠心之作 | 厉害了!阿里云自研存储引擎X-Engine又发顶会啦
X-Engine是阿里云自研OLTP数据库存储引擎,已经广泛应用于包括钉钉、核心交易、阿里妈妈在内的阿里巴巴核心业务,在提供高性能的同时大幅降低了存储开销。
1838 0
与时间赛跑!阿里 AI 医生实现肺、肝、心血管“全垒打”
2019年6月,阿里巴巴的医疗AI学会了心血管识别技术。
6723 0
深入学习Java虚拟机——虚拟机字节码执行引擎
参考资料《深入理解Java虚拟机》
1215 0
深入Java虚拟机——类型装载、连接(转)
来自http://hi.baidu.com/holder/item/c38abf02de14c7d31ff046e0     Java虚拟机通过装载、连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用。
990 0
+关注
技术小能手
云栖运营小编~
7194
文章
9
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载