在我们想要的时候获得转换的关键部分,他们要设计合理的成本函数。

我们想惩罚和奖励正确的事情。我将通过一个例子来说明,您可能会考虑设计成本函数的一种方法。

我们来考虑如何设计车速的成本函数。一方面,我们想快速到达目的地,但另一方面,我们不想违法。

我们必须控制的基本数量是汽车所需的速度。有些速度更有高效,有些甚至是非法的。

让我们填入这张图,并尝试为每个速度分配一些成本

为了简单起见,让我们假设所有的成本函数都会有一个0到1之间的输出。

稍后我们将通过调整权重来调整每个成本函数的重要性

假设我们所在的道路限速在这里。那么,我们知道如果我们的速度超过限速,

这应该是最大的成本。也许我们想要设置,这是一个理想的零成本速度,稍低于速度限制,以便我们有一些缓冲区。

然后我们可以考虑我们要惩罚多少停车。显然,停车是坏事,但也许不如打破速度限制那样糟糕,所以我们会把它放在这里。

为了简单起见,我们可以说零和目标速度之间存在线性成本

而且由于违法是一件二元的事情,我们只要说任何速度大于或等于速度极限具有最大成本。再次,我们可以随意将这些点连接起来

线性函数和超出限制速度的平面最大成本。现在,在实践中,我们可能实际上想要参数化一些

这些数量以便我们稍后可以调整它们直到我们得到正确的行为。所以首先,我们可以定义一个名为Stop Cost for的参数

零速度情况和被调用的参数缓冲速度可能是每小时几英里。

那么,我们的总体成本函数有三个领域。如果我们低于目标速度,成本函数看起来像这样。

如果我们超过限速,成本只是一个。

如果我们之间,成本看起来像这样。真棒。

 

posted on 2018-05-05 17:06  未完代码  阅读(615)  评论(0编辑  收藏  举报