机器人学习- 基于样本和概率的路径规划(二)

10.马尔可夫决策过程

回收机器人实例

举个例子,我们有一个回收机器人。机器人的目标是在周围环境中驾驶,尽可能多地捡起罐头。它有一组可能正处于的状态,和一组可能采取的行动方案。机器人捡起罐头会得到奖励,如果耗尽电池或搁浅,则会收到一个负奖励(惩罚)。

机器人有一个非确定性的过渡模型(有时称为一步动力学)。这意味着一个动作不能保证将机器人从一个状态引导到另一个状态。相反,每一种状态都有一个相关的概率。

假设在任意时间步t,机器人电池的状态为高(S_t =高)。作为响应,代理决定搜索罐头(A_t =search =search)。在这种情况下,机器人电池电量保持高电量的几率为70%,电量下降到低电量的几率为30%。

在继续之前,让我们回顾一下MDP的定义。

MDP定义

组合路径规划方案

如果我们将A*搜索应用于这个离散的4连通环境,得到的路径将让机器人向右移动2格,然后向下移动2格,再向右移动一次以达到目标(或R-R-D-R-D,这是一个同样最优的路径)。这确实是最短的路径,然而,它把机器人带到了一个非常危险的区域(池塘)。机器人很有可能会掉进池塘,无法完成任务。

如果我们使用 MDPs进行路径规划,我们可能会得到更好的结果!

在每个状态(单元格)中,机器人将获得一定的奖励R(s)R(s)。这种奖励可以是积极的,也可以是消极的,但不可能是无限的。通常会提供以下奖励:
--对非目标状态的小惩罚-代表时间流逝的成本(移动缓慢的机器人会比快速的机器人遭受更大的惩罚),
--为目标状态提供大奖励,以及
--对危险状态的大惩罚——希望能说服机器人避开它们。

考虑到火星车运动的不确定性,这些奖励将帮助引导火星车找到一条高效且安全的路径。

下图显示了分配适当奖励的环境。

如你所见,进入一个不是目标状态的状态时,如果它是平地,奖励为-1,如果是山地,奖励为-3。危险池塘的奖励是-50,而目标的奖励是100。

确定了机器人的转换模型,并将适当的奖励分配到环境的所有区域后,我们现在可以构建一个策略。继续往下读,看看在概率路径规划中是如何做到这一点的!

11.策略

在强化学习中,马尔可夫决策过程的解决方案被称为策略,并以字母π表示。

定义

策略是从状态到行动的映射。对于每一个状态,都会有一个策略告诉机器人它应该采取什么行动。最优策略,记为π *,通知机器人在任何状态下采取的最佳行动,以使整体收益最大化。我们将在下面更详细地研究最优策略。

选读材料:
Wikipedia - Reinforcement Learning(https://medium.com/m/global-identity-2?redirectUrl=https%3A%2F%2Ftowardsdatascience.com%2Freinforcement-learning-rl-101-with-python-e1aa0d37d43b
Reinforcement Learning 101 - solve the gridworld state-value function (https://en.wikipedia.org/wiki/Reinforcement_learning 

制定策略

下图显示了机器人在其环境中可以采取的一系列行动。注意,没有箭头指向池塘,因为机器人进入池塘后被认为是DOA(到达时死亡)。同样,当机器人到达目标时,没有箭头离开目标,因为路径规划问题已经完成——毕竟,这是一个情景任务。

从这组操作中,可以通过为每个状态选择一个操作来生成策略。在我们重新讨论为每个策略选择适当操作的过程之前,让我们看看上面的一些值是如何计算的。毕竟,-5.9看起来是个很奇怪的数字!

计算预期奖励

回想一下,进入空单元格的奖励是-1,进入多山单元格的奖励是-3,进入池塘的奖励是-50,进入目标的奖励是+100。这些是根据环境定义的奖励。然而,如果我们的机器人想要从一个单元格移动到另一个单元格,它不能保证成功。因此,我们必须计算预期的奖励,这不仅要考虑环境设置的奖励,还要考虑机器人的过渡模型。让我们先看看底部的山单元格。从这里,直觉上很明显,向右移动是最好的行动,所以让我们计算一下。如果机器人的运动是确定的,那么这个运动的成本将是微不足道的(移动到一个开放的单元格的奖励是-1)。然而,由于我们的动作是不确定的,我们需要评估这个动作的预期回报。机器人成功移动到打开的单元的概率为0.8,移动到上面单元的概率为0.1,撞到墙壁并留在当前单元的概率为0.1。

expected reward=0.8∗(−1)+0.1∗(−3)+0.1∗(−3)
expected reward=−1.4

所有的预期奖励都是这样计算的,考虑到这个特定机器人的过渡模型。

你可能已经注意到,上图中缺少了一些预期的奖励。你能计算出它们的值吗?

选择策略

现在我们已经了解了我们的预期回报,我们可以选择一个策略并评估它的效率。同样,策略只是从状态到操作的映射。如果我们回顾上图中描述的操作集,并为每个状态只选择一个操作——即刚好有一个箭头离开每个单元格(危险和目标状态除外)——那么我们就有了自己的策略。

然而,我们不是在寻找任何策略,我们想要找到最优策略。出于这个原因,我们需要研究每种状态的效用,然后确定从每种状态采取的最佳行动。这就是下一个概念!

12.状态的效用

定义

状态的效用(也称为状态值)表示状态相对于目标的吸引力。回想一下,对于每个状态,如果代理(机器人)从该状态开始,然后在所有时间步骤中遵循策略,则状态值函数将产生预期回报。在数学表示法中,这可以这样表示:

正如您在这里看到的,计算一个状态的效用是一个迭代过程。根据策略的指示,它涉及代理在当前状态和目标之间将访问的所有状态。

同样,应该清楚的是,一个状态的效用取决于策略。如果您改变策略,每个状态的效用将会改变,因为在目标之前访问的状态序列可能会改变。

确定最优策略

回忆一下最优策略,记为π∗,它告诉机器人在任何状态下采取的最佳行动,以使整体奖励最大化。也就是说,

可能从一开始就不清楚哪种行动对每个状态来说是最优的,特别是对于那些远离目标但有许多可用路径的状态。从目标开始,然后向后推,通常会很有帮助。

如果你看一下与目标相邻的两个单元格,他们最好的行动是微不足道的-去向目标!回想一下,在RL中,目标状态的效用为0。这是因为如果代理体从目标开始,任务就完成了,并且没有收到任何奖励。因此,来自目标相邻单元格的期望奖励是79.8。因此,该状态的效用,79.8 + 0 = 79.8(基于 Uπ(s) = R (s) + Uπ(s′))。

如果我们看看较低的山单元格,也很容易猜测在这种状态下应该执行哪些操作。在预期奖励为-1.2的情况下,向右移动将比走任何间接路线(向上或向左)更有回报。这种状态的效用为-1.2 + 79.8 = 78.6。

现在轮到你了!

测试

你能计算出,如果选择回报最高的行为,中间山右边的状态的效用是多少吗?

在最优策略下,中心山右边的状态的效用是什么?

选择每个状态中最有回报的行为的过程会继续,直到每个状态都映射到一个行为。这些映射正是策略的组成部分。

强烈建议您在此暂停这一课,并使用上面所见的操作集自己制定出最优策略。自己通读这个例子会让你更好地理解在这个过程中所面临的挑战,也会帮助你更有效地记住这些内容。完成后,您可以将结果与下面的图像进行比较。

策略应用

一旦这个过程完成,代理(机器人)将能够从每个状态做出最佳路径规划决策,并成功地从任何开始位置导航到目标。下面提供了该环境和该机器人的最优策略。

下图显示了一组只剩下最佳操作的操作。请注意,在左上角的单元格中,代理可以向下或向右移动,因为这两种选择都有相同的奖励。

13.值迭代算法

我们为山区环境确定最优政策的过程相当简单,但要确定对每个状态来说哪种行动是最优的,确实需要一些直觉。在更大更复杂的环境中,直觉可能是不够的。在这样的环境中,应该应用一种算法来处理所有的计算并找到MDP的最优解。其中一种算法叫做值迭代算法。迭代是这里的一个关键词,你会明白为什么!

猜你喜欢

转载自blog.csdn.net/jeffliu123/article/details/130041291