首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >深度强化学习运动在观察中的应用

深度强化学习运动在观察中的应用
EN

Stack Overflow用户
提问于 2020-12-08 11:59:13
回答 2查看 157关注 0票数 0

我正在尝试实现一个DRL (深度强化学习)代理自动驾驶车辆.我目前正在教我的经纪人不要撞到其他汽车,使用一个简单的相机。有很多方法来加速训练,但目前,我主要关注的是,在我的观察中增加了运动感。

互联网上的每个人(包括谷歌关于Atari游戏的文章)都提到,为了在观察中添加运动,捕获3-4帧,而不是1,并将它们作为一个观察结果提供给QNetwork。然而,当使用相机数据时,这是不太实际的,因为它需要大量的计算能力来训练一个代理。例如:

假设您使用分辨率为256x256的灰度相机,我们使用一个简单的统一重放内存,最多可容纳20000次观测。然后,存储在内存中的像素数是:

代码语言:javascript
复制
20000 (Samples) * 4 (Frames) * 256 (Width) * 256 (Height) = 5.2 GB of Physical RAM.

另外,假设您使用64条观察的批处理大小来向代理提供信息,该代理在第一层中包含一个由32个过滤器组成的CNN,那么您需要:

代码语言:javascript
复制
64 (Batch Size) * (4 Frames) * 256 (Width) * 256 (Height) * 32 (Filters) = 0.5 GB of GPU.

这是一个疯狂的数据量,需要由代理为一个简单的灰度相机处理,只是为了增加运动感.

我在想另一种增加运动感的方法,但是,我在网上找不到任何关于它的东西。既然我们已经知道了车辆的速度,那么我们就可以给代理人喂食:

  • 1帧,包含相机数据。
  • 1帧,包含车辆速度在图像中心的归一化值(例如,在图像中心保留一个32x32窗口,其中包含车辆的归一化速度(0.0-1.0),其余像素的值为0.

)。

通过这种方式,我们将数据的大小减少了一半。你认为这是个好办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-15 19:43:38

我知道你害怕那些巨大的内存。在dqn的论文中,他们通常也使用大量的RAM。在关于atari游戏的自然论文中,他们甚至使用了大约9GB的内存!https://www.nature.com/articles/nature14236,您可以尝试调整图像的大小,像您已经解释过的那样,采取连续的4帧,并将它们存储为整数,以最大限度地减少这一点。

有时我想没有办法,但在您的情况下,您可以尝试添加一个节点的第二个输入层,这是给您的车辆(规范化)的速度。您应该能够使用keras的functional实现这一点。在这里,您不局限于纯粹的顺序层。

票数 1
EN

Stack Overflow用户

发布于 2022-07-31 22:19:02

在这里晚些时候,从主要的视觉图形的角度来看,我们也许能够对这些图像序列进行一种形式的预处理,从而有效地将它们组合在一起,以这样的方式捕捉运动:

这反映了4帧合并成一个单一的图像,创造了一种视觉痕迹,减少的白色像素强度值可以解释为反向的方向运动。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65198501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档