分享

使用价值迭代网络进行规划

 黄元章553333 2019-03-06

反应策略

深度强化学习的第一个主要成就是着名的DQN算法在各种Atari视频游戏中的人类水平表现,其中神经网络学习使用原始屏幕像素作为输入来玩游戏。在强化学习中,我们希望学习一种将状态映射到行动的政策,以便最大化累积的奖励。例如,在DQN论文中,神经网络是卷积神经网络,它将屏幕图像作为输入并输出可能动作的分数。

虽然强化学习算法的设计使得该策略应该学会选择具有长期益处的行为,但我们从策略中获得的信息仅适用于当前状态。这称为响应策略,它是一种策略,将当前状态映射到应立即采取的操作,或映射到操作的概率分布

使用价值迭代网络进行规划

虽然反应性政策在大多数强化学习文献中占据主导地位,并且已经取得了一些惊人且广为人知的成就,但有时我们需要从我们的政策中获得更多信息丰富的答案,目前推荐的行动还不够。有时我们的应用程序要求我们能够比单一步骤更进一步,并验证我们的政策将使我们处于'安全'的轨道,受到我们系统其他组件的审查。在这些情况下,我们不希望采取目前最好的行动,而是我们想要的是一个完整的计划,或者至少是未来某个特定范围的计划。

使用价值迭代网络进行规划

但是,如果我们伟大的RL算法可以学习非常好的反应策略,为什么我们要打扰一个完整的计划呢?一个可能的原因是RL策略在成功学习任务之前通常需要大量尝试,因此通常在模拟环境中进行训练,其中策略可以使车辆尽可能多地崩溃,或者射击友军并且只是尝试如果它失败了又一次。模拟并不是现实世界的完美表现,我们希望我们的系统尽管存在这些差异,但RL代理人才这些差异。

拥有完整的计划允许我们使用外部知识对其进行评估并防止采取危险行为。例如,如果自动驾驶汽车希望改变车道但是突然汽车接近非常快,比模拟汽车在训练期间更快,则外部程序可以预测当前计划的轨迹朝向碰撞并且中止操纵。这对于被动策略来说要困难得多,在这种策略中可能难以预测场景在播出之前如何结束。

希望制定完整计划的另一个原因是它可能会使我们的政策表现更好。也许通过强制它提前计划,我们可能会限制我们的政策更加一致,并能够在看不见的情况下更好地调整,这正是我们想要的。

马尔可夫决策过程

规划问题的一个非常常见的模型是马尔可夫决策过程,即MDP。在MDP中,我们将世界定义为一组状态 S,一组可能采取的行动 A,一个奖励函数 R和一个过渡模型 P.它们一起构成了元组:

使用价值迭代网络进行规划

这定义了MDP。让我们看一个具体的例子:

使用价值迭代网络进行规划

在这个例子中,一个代理必须导航2D地图并进入绿色瓷砖,为此获得+1奖励,并避免红色瓷砖,如果踩到它将以-1奖励惩罚它。其他州不返回奖励(或等效返回0)。根据我们对MDP的定义,状态S是地图上的一组图块,除了黑色图块,这是一个障碍。这组动作是四个方向,转移概率由右图给出。转换模型指定了在采取特定操作的情况下从当前状态转换到另一个状态的概率。在我们的例子中,如果我们的代理人选择UP动作,它将有80%的机会向上移动,10%的机会向左或向右移动。如果代理人选择行动权利,它有80%的机会向右移动,

假设我们的代理位于地图的左下角,并且必须安全地导航到绿色区块。必须区分规划轨迹或寻找政策。如果我们计划一个轨迹,我们将得到一个序列,指定应该采取行动的顺序,例如:(向上,向上,向右,向右,向右)。如果我们的问题是确定性的,选择一个方向会使我们的代理人在这个方向上有100%的机会,那么这将对应于轨迹:

使用价值迭代网络进行规划

但是,由于我们的问题不是确定性的,我们可能会偏离我们想要采取的路径,这一系列的行动对我们来说还不够。我们真正想要的是一个完整的计划,将每个州映射到所需的行动,如下所示:

使用价值迭代网络进行规划

这实际上正是我们的RL政策所代表的,从州到行动的映射。不同的是,在这个简单的问题中,我们可以在我们面前布置整个国家空间并遵守政策。在复杂的现实问题中,我们可能知道我们当前的状态,但是找出未来行动和状态的可能结果可能是不现实的,尤其是当我们的输入是高维传感器观察(例如图像或视频)时。

但回到我们的例子,我们如何才能找到如上图所示的最优政策?对于称为值迭代的这类问题,存在一种经典算法。该算法的作用是计算当前处于某种状态可以实现的长期利益,通过提出问题'如果我从这个状态开始,我能获得的最大利润是多少?'。这个数量被称为MDP术语中的状态,直观上很容易看出,如果我们知道每个州的价值,我们可以尝试始终转移到具有更高价值的国家并从中获益。

假设我们知道问题中所有状态的最优值; V *(s),我们现在可以定义从我们的州采取特定行动并从此采取最佳行动的价值; Q *(S,A)。

使用价值迭代网络进行规划

状态 - 动作值是除了下一个状态的最佳值之外我们从在该状态下采取动作获得的奖励。但是,由于我们的问题是随机的,我们必须对它有一个期望,以便考虑到达未来国家的不同概率。但由于V *(s)是我们可以从当前状态获得的最佳值,这意味着这个等式必须成立:

使用价值迭代网络进行规划

这为我们提供了最优值函数的递归定义:

使用价值迭代网络进行规划

如果我们猜测每个状态的值,并且事实证明这个递归方程对所有状态都满意,那么我们就知道我们有一个最优值函数。但更重要的是,我们可以猜测我们各州的任何初始值函数,并使用我们的等式来更新它,如下所示:

使用价值迭代网络进行规划

通过使用一些数学,我们甚至可以证明,如果在每次迭代中我们对问题中的所有状态执行此操作,最终我们的值函数将收敛到最优值函数。一旦我们有了最优值函数,我们就可以轻松地提取最优策略:

使用价值迭代网络进行规划

整个过程称为Value Iteration,价值迭代

但是,对于我们甚至无法访问转换模型的描述而且可能没有获得奖励函数的复杂问题,这显然是无法做到的,那么我们如何在更有趣的问题中使用它呢?

价值迭代网络

伯克利的研究人员在NIPS 2016上发表了一篇非常有趣的论文(他们获得了最佳论文奖),试图通过赋予神经网络在其中执行类似过程的能力,以非常优雅的方式解决这个问题。这个想法是这样的:因为我们并不真正知道我们真正问题的潜在MDP,我们可以让我们的神经网络学习一些其他MDP,这与真实的MDP不同,但它为真正的问题提供了有用的计划。他们展示了他们在2D导航问题上的方法,其中输入是包含目标位置和障碍物的地图的图像。

使用价值迭代网络进行规划

输入图像被馈送到卷积神经网络,该网络输出相同大小的图像,其表示地图中不同位置的'奖励',蚂蚁指向将其映射到初始值图的另一CNN。对于M次迭代,将卷积层应用于级联值和奖励图像以产生Q值图像,其具有K个通道,每个通道代表学习的MDP中的'动作'。最大池化是沿着通道的维度执行的,基本上执行与我们在上一节中看到的Value Iteration算法非常相似的操作。

使用价值迭代网络进行规划

最终值映射(或其特定部分)被馈送到响应策略,该策略选择要在我们的实际问题中执行的操作。重要的是要注意,在没有阶段的模型给出真实奖励地图或价值图的地面真实标签,我们只希望通过学习使用此值迭代网络(VIN)行动,我们的神经网络将学习有用的MDP

使用价值迭代网络进行规划

整个模型通过使用给定轨迹的模仿学习或从头开始强化学习来训练,事实证明,出来的是非常棒的:

使用价值迭代网络进行规划

没有给出它们,神经网络学到的奖励和价值图似乎正是我们认为应该是的。奖励地图在目标位置处具有高值并且与其相邻,并且在障碍物处具有负值。值映射似乎具有将点指向目标位置并远离障碍物的渐变,这非常有意义。

虽然这个2D导航任务看起来很简单,但实际上看起来很困难。在一组训练地图上训练标准的CNN政策是有效的,但对于看不见的地图则相对较差。使用VIN,作者展示了对看不见的地图的广泛改进的泛化能力。除了简单的网格世界导航任务之外,他们还使用月球表面高程图像展示了他们的导航问题算法,其中漫游者必须在不可遍历的特征之间安全地导航,并且使用自然语言输入在Web导航问题上。

我发现模型可以纯粹从图像输入中学习这些,我觉得非常惊人,我们可以将这种成功归因于架构产生的固有归纳偏差,这迫使模型以类似于规划算法的方式执行计算。从那以后,这项工作并扩展到,但仍然是一项非常令人印象深刻的成就。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多