模拟使软件工程师能够生成训练神经网络所需的数据

描述

  在多年前,当多伦多大学的一个团队使用经过训练而不是设计来识别图像的卷积神经网络赢得 Imagenet 挑战赛时,在计算世界的一个有点不起眼的角落发生了重大震动。该团队和其他团队不仅击败了最好的检测算法,而且在许多图像分类任务中都超越了人类。现在,仅仅几年后,深度神经网络似乎是不可避免的。

  即使在2012年,机器学习也不是什么新鲜事物,事实上,到目前为止,几乎所有的分类软件都进行了一些训练。但它们在某种程度上都依赖于人工设计的特征提取算法。这个新解决方案(后来以首席研究员的名字命名为 AlexNet)的不同之处在于,它没有这种人工设计的算法,并且完全通过监督学习获得了结果。

  这一发现对整个计算领域的影响已经在与图像分类相距甚远的领域产生了巨大的影响,随着研究人员学习如何将深度学习技术应用于更多领域,预计它带来的变化在未来会更加深远。以及越来越多的领域中的更多问题。对深度学习的热情甚至导致一些评论员预测依赖于设计算法的经典软件创作的终结,取而代之的是经过大量数据训练的网络。

  软件解决方案从数据暴露演变的愿景有一些引人注目的方面:通过实例进行培训为软件提供了真正的大规模制造技术的可能性。目前,软件制造处于工业化前阶段,每个应用程序都是定制设计的,就像客车制造的汽车一样。借助标准算法平台(网络)和自动化培训环境,深度学习可以为软件做亨利福特为汽车制造所做的事情。

  无论您是否同意这一愿景,深度学习的关键特征在于它取决于数据的可用性,因此,特定领域的专业知识变得不如相关数据的所有权重要。正如深度学习先驱 Andrew Ng 所说:“获胜的不是拥有最好算法的人,而是拥有最多数据的人。” 这是希望过渡到新范式的公司面临的核心问题:他们从哪里获取数据?

  行为数据的作用

  对于依赖在线行为数据的公司来说,答案是显而易见的,我们所有浏览习惯的记录、跟踪和转售现在无处不在,以至于它们的开销都支配了我们的在线体验。对于与现实世界打交道更密切的公司来说,解决方案不太方便。Waymo 是自动驾驶汽车领域最知名的品牌,它通过部署仪表汽车车队来绘制位置图并记录现实世界的摄像头、雷达和其他数据,然后将这些数据输入其感知软件,从而解决了这个问题。该领域的其他参与者也以较小的方式效仿,但即使是拥有数百万英里行驶里程和大量可用数据的 Waymo,也发现它不足以完成这项任务。

  首先,并非所有数据都是平等的:为了有用,它必须经过准确和彻底的注释,即使在今天,这仍然是一项昂贵且容易出错的业务。经过几年努力使流程自动化,亚马逊的 Mechanical Turk 仍然是注释数据的首选方法。除了被注释之外,为了有用,数据必须是相关的,当相关性取决于任何给定事件的不常见、危险或完全非法时,这是一个主要问题。可靠、相关的真实数据很难获得,以至于 Waymo 已经开始在沙漠中建立自己的模拟城市,在那里它可以模拟在受控条件下所需的行为。

  但是在好莱坞可以制作完全令人信服的 CGI 场景的世界中,必须有可能使用这种能力为现实世界场景创建训练数据,当然,确实如此。几年来,该行业一直在朝着这个方向发展,一个研究人员团队开发了一种方法来注释侠盗猎车手的序列。Udacity 有一个用于自动驾驶汽车模拟器的开源项目,作为其自动驾驶汽车纳米学位的一部分。

  与 Udacity 示例一样,大多数可用的模拟器旨在实现验证循环以测试经过训练的感知堆栈,而不是生成主要用于训练本身的数据。那些确实存在的数据模拟器被汽车公司及其初创竞争对手紧紧抓住,展示了他们产生的数据的基本价值。

  那么,合成数据真的可以成功地用于训练神经网络吗?需要多少和什么样的数据才能完成这项工作?

  什么是 KITTI?

  总部位于帕洛阿尔托的Highwai发布了其试点研究的结果,该研究使用 KITTI 数据集作为起点,以检查用于增强 KITTI 提供的注释图像的完全合成数据集可能获得的收益。

  训练图像是使用 Highwai 的真实世界模拟器制作的,其中包括从市区和住宅郊区场景拍摄的许多序列,这些场景中挤满了各种车辆、行人和自行车。目的是对象检测和分类,而不是跟踪,因此将捕获帧速率设置为较低,以便在保持数据集大小适中的同时捕获各种图像。图像是在一系列条件下拍摄的,包括相机高度和视野、由于一天中的时间和大气影响(如雾和霾)引起的照明和阴影变化。虽然 Highwai 的工具支持 LIDAR,但在这种情况下只捕获了可见光相机数据。注释包括诸如“行人、

  使用 Highwai 的数据增强工具包为训练准备数据,以添加相机传感器噪声、图像压缩噪声、向图像添加“干扰”对象并使训练对颜色不敏感。在此过程结束时,合成数据集的总大小为 5,000 张图像中的 54,443 个对象。(相比之下,原始 KITTI 数据集中有 37,164 个对象和 7,000 个图像)。生成数据、扩充数据并将其添加到训练数据集的总时间不到两个小时。

  使用的基础网络是一个 Faster RCNN Inception Resnet,它被预训练为上下文中常见对象 (COCO) 数据集上的对象检测器,并进行了两次补充重新训练;首先仅使用 KITTI 数据集生成基线,然后结合 KITTI 和 Highwai 合成数据集。测试是在 KITTI 参考测试数据集上完成的,该数据集仅包含真实世界的图像,并且在仅 KITTI 和 KITTI 加合成训练之间显示出显着的性能提升。添加合成数据后,识别率总体提高了 5.9%,对汽车和行人的检测显着提高——这一结果并不令人惊讶,因为 Highwai 合成数据集集中在这些对象类型上。

  需要多少训练数据的问题没有很好的答案,但 Highwai 指出高度针对性的数据管理对于将其保持在合理范围内至关重要。一个很好的例子是他们为一个未公开的对象检测项目创建的数据集,其中实际用于训练的图像和注释数据总量约为 15GB。最初的大约 12,000 张图像包含大约 120,000 个带注释的对象,是从 30,000 个图像和 500,000 个带注释的对象的原始集合中自动整理出来的。

  像这样的结果对于独立软件制造商以及系统集成商和 OEM 来说都很重要。当然,他们可以使用亚马逊的服务来帮助训练网络,但如果价值在于数据,那么商业可行性要求他们能够在该领域创建 IP——他们必须能够使用自己的领域专业知识创建自己的训练数据来指定、优化和管理数据集。这意味着旨在生产此类 IP 的工具行业的出现是重要的一步,将受到欢迎。我们可以期待看到使用合成训练数据的专业知识的快速发展,以及生产它的工具的同样快速发展。

  审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分