【问题标题】:reinforcement learning - drive to waypoint强化学习——开车到航点
【发布时间】:2019-02-12 16:30:54
【问题描述】:

我正在玩电脑游戏中的自动驾驶汽车。我正在考虑使用强化学习,并在地图上给汽车一个可以到达的位置。奖励将是与航路点距离的函数,如果汽车发生碰撞,奖励将是非常负面的。

不过,我真的不知道如何将航点添加到系统中。我使用来自汽车的摄像头输入作为模型的输入,我可以根据它的当前位置和航路点计算奖励……但我并不总是希望汽车开到同一个地点。 .. 我想给它一个航路点,让它在不撞到任何东西的情况下开到那里。

如何将航点和当前位置合并到状态/模型中?

【问题讨论】:

    标签: keras reinforcement-learning q-learning deepdrive


    【解决方案1】:

    防撞

    为防止汽车发生碰撞,您需要激励代理在每一步都采取行动以避免碰撞。这可以通过让您的奖励函数包含车道偏离和高重力惩罚等内容以及接近航点的积极奖励来实现。

    状态参数

    考虑状态的一种方法是 - 一组参数,可用于选择最大化(折扣累积)奖励的操作。考虑到仅考虑到您当前的位置和目的地,没有最佳行动可供选择,因此航点和当前位置在这方面的信息量不是很大。当前的最佳动作取决于速度、加速度、油门、到车道中心的距离等因素。最好将这些作为状态参数记录下来。

    看看environment used by DeepDrive,一个用于测试自动驾驶汽车模拟的平台。请注意它是如何在其奖励函数中结合避免碰撞、最小化目的地距离和最大化对道路的依从性以及状态参数的选择。

    【讨论】:

    • 所以我被卡住的地方是“随着接近航点的积极奖励”。是的,我可以计算从当前位置到航点的距离并将其用作奖励......但是当我将模型从训练环境中取出并实际使用时,我该如何告诉它“去这个位置”我真的不在乎它是否采用最佳路径,我会很高兴它只是试图最小化距离并轮流它认为会到达那里。
    • 现在,当我计算到航点的距离并将其用作奖励时,它是专门针对该路径进行训练的,因此如果航点发生变化,它不会一概而论……在我看来仅仅给它一个距离奖励是不够的,因为它并不是真的试图到达一个一般的航路点,它试图到达的点是静态的。它实际上并不知道它正在尝试到达那里,它只知道朝着那个方向前进是好的。
    • 状态空间会是图像宽度 X 图像高度 X 图像深度 X 当前位置 X 目的地吗?
    • 这将导致非常大的状态空间。您可以尝试使用沿途的进度,而不是奖励到航点的距离。在很多情况下,当你设置一个航点时,游戏本身会生成一条要遵循的路线,你只需要跟踪你的车是否跟随它,以及它走了多远。这是让汽车到达航路点的一种更通用的方法,它也会学会安全地到达它
    • 这里是 Deepdrive 的作者。本质上,您希望奖励是基于速度的(随着​​时间的推移朝着航路点前进)。只要您的状态空间包含某种方式来确定自我相对于车道的位置,则对其他路点的泛化将以保持在车道内(高速)的形式出现。如果你想决定转弯,路线信息也必须在输入中(即下一个转弯是左)。在汽车学会在车道内移动后,您可以开始调整奖励以包括舒适性(即最小化 g 力)。
    猜你喜欢
    • 2021-07-02
    • 2013-12-06
    • 1970-01-01
    • 2018-11-05
    • 2019-04-16
    • 2016-10-24
    • 2022-09-28
    • 2019-01-18
    • 2021-06-26
    相关资源
    最近更新 更多