点击上方“CVer”,选择加"星标"置顶
重磅干货,第一时间送达
本文转载自:AI TIME 论道
2020 年 9 月 25 日,在由中国科协主办,清华大学计算机科学与技术系、AI TIME 论道承办的《2020 中国科技峰会系列活动青年科学家沙龙——人工智能学术生态与产业创新》上,清华大学自动化系助理教授黄高博士进行了题为《图像数据的语义层扩增方法》的主题报告,黄高博士于 2015 年博士毕业于清华大学,主要的研究方向为深度学习、计算机视觉、强化学习。
图 1:深度神经网络的语义数据扩增
深度学习的成功主要依赖于三个重要的因素:大数据、大计算以及算法模型的创新,这三个要素缺一不可。目前,有大量的研究聚焦于新的模型和算法,而从事硬件和架构相关研究的人员会关注如何把硬件做的更好、并行度更高。相比之下,学术界对大数据的关注热度有所下降,很多人似乎默认我们现在已经拥有大量可用的数据。然而,在实际应用中,真正拥有大量高质量标注数据的场景还是非常少的,人工标注数据的成本十分高昂。
图 2:数据扩增
在标注数据不足的情况下,数据扩增是一种非常有效的提升模型性能的方法。如图 2 所示,在右侧的柱状图中,我们比较了在相同的实验设置(优化器、训练时长等)下在 CIFAR-10/CIFAR-100 数据集上进行数据扩增前后的测试误差,其中蓝色代表未使用数据扩增的实验结果,橙色代表使用数据扩增的实验结果。在 CIFAR-10 数据集上,测试误差从 13.6% 降至 6.4%;在 CIFAR-100 数据集上,测试误差从 44% 降至 27%,模型的性能提升十分显著。相对于深度学习模型和其它方面的优化,数据扩增的有效性举足轻重。
对于图像数据而言,我们可以对其进行一系列变换来实现数据扩增。例如,对于图 2 中的汽车图像,我们可以对原始的汽车图像应用旋转、左右翻转、裁剪、放缩等变换,这并不会改变图像的类别。通过这种方式,我们可以根据一张图像扩展出多张图像,有效地增加训练数据,防止模型的过拟合现象。
图 3:语义数据增强
为了进一步提升数据扩增的效果,我们试图进行更加高级的变换。例如,我们把可以更换汽车的颜色、切换一个观测视角、或者换一个车标,此时它仍然是一辆汽车。然而,相较于前文提到的旋转、翻转、裁剪等简单变换,这类相对「高级」的变换要困难得多,我们将其称为「语义数据增强」。在这里,我们将重点讨论如何实现更好的语义数据增强。
图 4:基于 GAN 的语义数据增强
目前,研究人员已经提出了一些进行语义数据增强的方法。例如,利用所有汽车的图像构建一个数据集,从而形成一个数据分布,其中每一类包含数十到数百张图像。我们可以使用该数据集训练一个对抗生成网络(GAN),并利用训练好的 GAN 生成无穷无尽的汽车图像。然而,基于 GAN 的方法存在诸多弊端:首先,GAN 的训练十分困难。该方法将引入大量额外的计算量,其优化过程也十分不稳定。其次,此类方法对模型性能的提升较为有限。通常,数据集中每个类别的图像大致有数十到数百张,而我们只能针对每一个类别训练一个 GAN。尽管我们也可以使用 Conditional GAN(CGAN)类的方法,但是 GAN 生成的图像质量仍然较差。如果我们使用这样生成的数据训练下游的分类器,只能得到微弱的模型性能提升。
图 5:深度特征插值
因此,我们试图设计更高效的语义数据增强方法。在计算机视觉顶级会议 CVPR 2017 上有一篇论文「Deep feature interpolation for image content changes」中,作者认为经过卷积神经网络的特征提取之后,样本将会在特征空间中被线性化,也就是说,在神经网络的特征空间中每一个方向都代表特定的语义。以人脸图像特征为例,某一个方向可能对应于人脸表情从不笑到笑,另一个方向对应于人脸从戴眼镜到不戴眼镜。这篇文章的作者提出了一种名为「深度特征插值」的方法,如图 5 所示,假设在特征空间中,我们有一些正常人脸、微笑人脸、张嘴笑人脸、戴眼镜人脸的特征,可以沿着红色箭头的方向从微笑人脸的特征变化到张口笑人脸的的特征,该方向就代表张开嘴的语义;类似地,蓝色箭头的方向代表戴眼镜的语义。根据该假设,如果我们将某张普通人脸图像映射到特征空间中,并且将其特征与红色方向的向量相加,再基于语义增强后的特征重构图像,就会得到一个张嘴笑的人脸;同样,如果将普通人脸的特征与蓝色向量相加,就会得到戴眼镜的人脸图像。受到该论文的启发,黄高博士团队试图通过在深度特征空间中将原始图像的特征与一些方向上的向量相加,从而在不改变图像属性和标签的情况下,根据一张图像扩展出多个不同版本的图像,达到数据扩增的目的。
隐式语义数据扩增
图 6:隐式语义数据增强
在论文「Deep feature interpolation for image content changes」中,作者需要手动地在特征空间找出进行「深度特征插值」的方向。举例而言,作者可能会手动收集一些戴眼镜的人脸与不戴眼镜的人脸,找出这两类人脸变化的方向,将该方向上的向量应用到不同的样本上,为不戴眼镜的人脸戴上眼镜。然而,这一过程的工作量巨大,通过人类手动的方式也只能找到非常有限的方向。实际上,人脸、汽车等图像数据可能涉及各种各样的变换,通过手工的方式很难实现多样化的数据扩增。如何实现高效、多样化的数据扩增成为了一个挑战。
图 7:通过采样得到语义方向
为了实现上述目标,一个非常直观的思路是通过随机采样获得这种语义的方向。然而,我们需要明确从哪些方向进行采样,避免这些采样的方向没有实际的意义。例如,对一张人脸图像来说,我们通过采样得到一个方向可以使人脸变老、加上皱纹,这样的变换是有意义的。但是如果在人脸特征上加上飞翔方向的语义则没有任何意义。而如果我们直接在特征空间中进行随机采样,经常会采样得到这种没有意义的方向。
图 8:估计图像的分布
为了解决上述采样过程中的问题,我们试图估计每个类别图像的分布。如图 8 所示,红色样本组成的簇可能对应的图像类别是「鸟」,蓝色簇则对应的图像类别为「人」,实际上这种数据分布隐含了这类数据可能变化的方向。例如,红色的数据点在从左上到右下的方向上有方差,说明该方向上可能存在语义的变化,左上角可能是飞的鸟,右下角可能是站着的鸟,此时从左上到右下的方向是有意义的。类似地,对于蓝色的人脸数据来书哦,从左下到右上的方向可能对人脸图像是有意义的语义方向。在多维空间中,我们可以利用方差矩阵刻画某类图像可能在哪些方向上有语义的变化。因此,在采样过程中,我们并不是在所有方向上随机均衡地进行采样,而是先估计出数据的协同差矩阵,从而捕获每一类数据的方差的变化方向。
图 9:对协方差矩阵的动态估计
为了在训练过程中快速计算方差,黄高博士团队设计了一种在线迭代的计算公式,每当接收一个 mini-batch 的输入数据,我们都会在特征空间中计算出其特征向量,用该向量更新每一类的方差矩阵,最终得到样本的均值和方差。通常,这里的方差矩阵规模不会很大。
图 10:在以原始图像为均值的正态分布上采样
在求得方差后,我们可以对数据点进行有针对性的采样。假设数据的分布为正态分布,我们可以以原始图像的特征为均值,利用求得的协方差矩阵在很多方向上进行采样。通过将采样得到的方向应用到一张图像上,从而利用各种采样得到的方向对某张图像进行语义变换。
图 11:交叉熵损失函数
在求得了变换方向后,接下来我们将考虑如何设计损失函数。如图 11 所示,这是一个常见的交叉熵损失。假设有 N 个训练样本,我们将通过训练来最小化训练损失。在这里,我们通过采样的方式对数据进行了扩增,每次采样了 M 个方向的语义变换,并将其与原来的图像相加,将数据扩增了 M 倍。
图 12:提升优化效率
然而,随着训练集规模的增大,相应的训练开销也会大幅增加,我们需要提升优化的效率。由于原始的 N 个样本被扩增为了 N×M 个副本,我们将 M 设置成无穷,并求出这些样本的期望。尽管很难对期望进行求解,但是我们可以通过 Jensen 不等式求出其易于计算的上界,并且消掉了 M。
图 13:ISDA 等价于最小化一个新的鲁棒损失函数
此时,与进行语义增强变换前一样,我们也只需要最小化 N 个样本的误差。在不用对网络进行改变的情况下,该过程等价于最小化一个新的鲁棒损失函数。
概括起来,我们通过估计每个类别的方差找出可以进行采样的方向,利用该方向上的变换对原始图像进行数据扩增。在对进行了数据扩增后的损失函数进行优化时,为了降低计算开销,我们通过上界可以快速地最小化损失函数。
实验结果
图 14:在 ImageNet 数据集上的图像分类实验结果
为了验证 ISDA 的数据扩增效果,黄高博士团队在多个数据集上进行了对比实验。在分类任务中,ISDA 可以将 ResNet-50 模型在 ImageNet 数据集上的误差率从 23.0% 降低至 21.9%,这个提升在 ImageNet是较为显著的。
图 15:ISDA 在半监督场景下的性能测试
ISDA 在半监督学习任务上的性能提升更为明显。这是因为,半监督学习设定下训练数据相对比较少,通过数据扩增把可以有效增加训练数据量,提升泛化性能。
ISDA 在语义分割任务上也有较好的表现。在基本不增加计算开销的情况下,该方法相较于 Deeplab-V3 在 mIOU 指标上取得了超过 1.5% 的性能提升。
下载:CVPR / ECCV 2020开源代码
在CVer公众号后台回复:CVPR2020,即可下载CVPR 2020代码开源的论文合集
在CVer公众号后台回复:ECCV2020,即可下载ECCV 2020代码开源的论文合集
重磅!CVer-论文写作与投稿交流群成立
扫码添加CVer助手,可申请加入CVer-论文写作与投稿 微信交流群,目前已满2400+人,旨在交流顶会(CVPR/ICCV/ECCV/NIPS/ICML/ICLR/AAAI等)、顶刊(IJCV/TPAMI/TIP等)、SCI、EI、中文核心等写作与投稿事宜。
同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
一定要备注:研究方向+地点+学校/公司+昵称(如论文写作+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加微信群
▲长按关注CVer公众号
整理不易,请给CVer点赞和在看!
(点击“阅读原文”查看直播回放)