论文笔记:Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World

Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World

 

文章概况

作者:Josh Tobin, Rachel Fong, Alex Ray, Jonas Schneider, Wojciech Zaremba, Pieter Abbeel

来源:2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2017) 同样是伯克利学派那篇文章中引用的工作。

论文摘要与笔记

摘要

构建起机器人模拟与硬件实验“现实鸿沟”的桥梁可以通过提高数据可用性来加速机器人研究。本文探讨了域随机化,这是一种通过在模拟器中随机化渲染转移到真实图像的模拟图像训练模型的简单方法。在模拟器中有足够的可变性的情况下,在模型中现实世界可能只是另一种变化。我们专注于目标定位的任务,这是一般机器人操作技能的踏脚石。我们发现,只使用来自具有非真实随机纹理的模拟器的数据,可以训练一个精确到1.5厘米、对干扰和部分闭塞具有鲁棒性的真实物体探测器。为了证明我们的探测器的性能,我们表明它们可以用于在杂乱的环境中执行抓取。据我们所知,这是第一次成功地将只在模拟的RGB图像上训练的深度神经网络(不在真实图像上进行预训练)转移到真实世界,以实现机器人控制。

背景目的和方法概述

上面的摘要比较抽象,这里比较详尽的讲一下来龙去脉。

在前面伯克利的文章中也提到过,这些智能系统的落地遇到的一个非常困难的问题就是continous learning,因为智能系统总会遇到一些新的情景,需要重新学习训练。你不能在现实中训练,因为会对现实环境造成破坏,你在模拟器中训练要足够快的得到训练结果,并且,模拟器的模拟要和现实足够吻合,否则你在模拟器重学到的行为同样不能用于现实中,这就是所谓“reality gap”,而解决了这个问题,就代表大量的模拟数据可以用于真实环境的训练,这就是摘要中第一句话的意思。就比如有公司用游戏GTA5中的开车数据去训练用于真实环境中的自动驾驶,首先要解决的也是这个问题,模拟的再逼真,也存在局限性,这个在后面也会提到。

再说后面的Domain Randomization,域随机数据生成,这个想法挺有道理的,全文也没提啥数据公式,关键就是这个方法。我们先说为什么"reality gap"存在,原因是你观察世界的方式是有限的,本文中只是通过一个单摄摄像头,通过照片,你能看到很多东西,能得到很多信息,但是有些信息你是得不到的,比如物体的材质,是不是刚体啊?是不是液体啊?有没有磨损啊?这些信息都会对后面的训练带来很大的影响。那么我们如何得到这些信息呢?答案是得不到,得到信息需要的消耗我们承担不起,那怎么办呢?在模拟环境中,我们随机初始化,各种信息,各种情况我们都考虑,我们相信通过这种方式,可以最好的模拟现实的情况。有兴趣可以看看这篇博文https://www.jianshu.com/p/027ba9164bd1也是讲的域随即数据生成。

方法详细描述

1. 最重要的一步,域随机数据生成,主要是选了下面的几个点进行了随机数据生成。

(1)桌上杂物的形状和数目。

(2)桌上物品的纹理和位置。

(3)桌子,地板等的纹理。

(4)模拟摄像机的位置方向。

(5)舞台灯光的数量。

(6)灯光的位置和光的反射性质。

(7)一些加在训练图片上的噪声。

2. 深度神经网络的训练

 使用的是VGG-16 architecture,详情还没有细看。

实验详情

首先,作者提到了下面的实验要说明三个事情:

(1)这种方法是否能在现实世界中获得比较高的准确度。

(2)上面的那么多随机的东西,到底有哪些是对最后准确度有显著影响的。

(3)本文的成果是否真的能实际应用于机器人的操控任务。

 

(1)下图展现了方法的准确性,值得说的是,这个结果是对学习率,batch size超参数调参后得到的最好的结果。

(2)关于第二点的实验结果有好几个图表,在这里就放一个最简明的:

你会发现加噪声影响是最小的。

(3)真实实验是个视频,不放了。

 

感想

Domain Randomization这个方法思想上挺简单的,但是我觉得得到好的结果并不容易。让我想起来以前看的一篇生成代码缺陷漏洞的文献和Facebook一篇生成对话数据的文献(https://blog.csdn.net/caozixuan98724/article/details/84889956),首先感觉这种方法极其简单,甚至愚蠢,生成的东西有一种魔幻现实主义的味道,感觉生成的东西和真实数据真的是相差很远,但是把它应用到真实的情景下竟然用起来还不错,这就比较神奇。本文中选取的几个随机生成的点绝对是经过不断尝试仔细考虑过的,最后才能做到比较好的与现实场景吻合,但是至于为什么这么好的解决了现实世界的问题,我是有点不大理解的。

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 域随机化(domain randomization)是一种在机器学习中使用的技术,通过在训练数据中随机化不同的环境和参数,以提高模型的泛化能力和适应性。这种方法可以帮助机器学习模型在不同的场景下表现更好,从而提高其实用性和可靠性。 ### 回答2: Domain randomization是指在机器学习中,对于一个模型,通过在训练数据中引入随机变化,从而提高模型的泛化能力,使其能够在新的、真实世界的场景中表现得更好。该方法主要被应用于机器人自主导航、物体识别等领域中。 具体来说,就是在训练数据中将物体放置在不同的背景、光照、角度等不同的环境中,模拟出更多不同的场景。这样模型在学习过程中就具有了更加丰富的场景知识,并能够更好地适应不同的场景,提高了模型的鲁棒性和泛化能力。 在实际应用中,domain randomization的具体方法包括调整模型的输入数据、增加随机噪声、使用多个现实数据集进行混合等。并且需要根据具体的应用场景、目标任务等情况,选择最合适的方法进行优化。 总的来说,domain randomization是一种有效的机器学习优化方法,能够提高模型的鲁棒性和泛化能力,使其能够更好地适应真实世界的场景,有着广泛的应用前景。 ### 回答3: 域随机化(domain randomization)是一种在机器学习中使用的技术,它通过在训练阶段随机化参数来增加模型的鲁棒性,使其能够在不同领域的数据上表现更好。 在传统的机器学习中,由于模型是在固定领域的数据上训练的,因此模型的性能往往会受到领域偏差的影响。当模型在面对不同于训练数据的领域时,它可能会产生误差并表现不佳。域随机化通过在训练数据中引入随机性来解决这个问题。具体地,它会随机改变数据的一些特征,比如颜色、光照、纹理等,使得模型在训练过程中能够适应各种不同的领域和变化。 域随机化的优点是它不需要标注大量的数据,因为每个领域只需要一个数据集。在实际应用中,可以在虚拟环境中通过渲染引擎生成多个具有不同参数的数据集,然后用它们来训练模型。另外,它还能够帮助模型对抗攻击,因为攻击者通常会尝试在不同领域下改变数据,而域随机化可以在一定程度上防止这种攻击。 不过,域随机化也有一些缺点。首先,它引入了更多的随机性,导致模型的训练成本和时间增加。其次,如果随机化过程不够充分,模型在特定领域的表现仍然会受到影响。因此,选择如何设计和引入这种随机性是域随机化应用中需要注意的问题,需要根据具体问题和数据来进行选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值