机器学习工程师 - Udacity 强化学习 Part Ten

时间:2019-03-12
本文章向大家介绍机器学习工程师 - Udacity 强化学习 Part Ten,主要包括机器学习工程师 - Udacity 强化学习 Part Ten使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

九、策略梯度
1.为何要使用基于策略的方法
原因有三个方面:简单性,随机性策略和连续动作空间。
在 Q 学习等基于值的方法中我们发明了值函数这一概念作为查找最优策略的中间步骤,它有助于我们将问题重新描述为更易于理解和学习的形式。但是如果我们的最终目标是查找最优策略,真的需要该值函数吗?可以直接估算最优策略吗?这样的策略看起来如何?如果我们采用确定性方法,则该策略只需是从状态到动作的映射或函数。对于随机性方法,则为在特定状态下每个动作的条件概率,然后根据该概率分布选择一个动作。这样更简单,因为我们直接处理手头上的问题,并且可以避免处理大量额外的数据。这些数据并非始终有用。例如,状态空间的很大部分可能具有相同的值,以这种方式构建策略使我们能够在可能时进行此类泛化,并更侧重于状态空间的更复杂区域
与基于值的方法相比,基于策略的方法具有的主要优势之一是它们可以学习真正的随机性策略。这就像从一种特殊的机器中选择一个随机数字。首先,每个数字被选择的概率取决于可以更改的某些状态变量。相反,当我们对值函数应用 Epsilon 贪婪动作选择法时的确会增加一些随机性,但并不足够。抛掷硬币,如果正面朝上,遵守确定性策略,因此随机选择一个动作,底层的值函数依然会促使我们选择特定的动作。我们来看看其中存在的问题。假设你要学习如何玩剪刀石头布,对手同时伸出自己的手,因此你无法使用该信息来决定选择什么动作。实际上这里的最优策略是随机均匀地选择一个动作,任何其他策略,例如确定性策略,甚至有一定的不均匀性的随机性策略都会被对手利用。
随机性策略有帮助的另一个情形是别名状态,即我们认为相同的两个或多个状态实际上并不相同,从这一角度考虑,它们的环境部分可观察。但是此类情形出现的次数比你想象的要频繁。例如这个网格世界:

其中包含平滑的白色单元格和网状灰色单元格。在底部中间单元格有一根香蕉,在左下角和右下角有一个辣椒。很明显,无论从哪个单元格开始,智能体 George 都需要找到一个可靠的策略以便抵达香蕉单元格并避免进入辣椒单元格。实际情况是,它所知道的信息是当前单元格是否平滑,两边是否有墙壁。假设这些是可以从环境中获取的唯一观察结果或特征,它不能了解关于临近单元格的任何信息。当 George 位于顶部中间单元格时它知道该单元格很平滑并且只有头顶有一面墙,因此它可以向下移动并拿到香蕉,当它在左上角或右上角的单元格中时它知道两侧有墙壁,能够知道它处在哪两个极端单元格中,并且能够学会可靠地避免遇到辣椒并进入中间单元格。问题是,当它位于某个网状灰色单元格中时,无法判断位于哪个单元格中。所有特征都一样。如果使用值函数表示法,那么这些单元格的值相等,因为它们都映射到相同的状态,相应的最佳动作肯定也一样,因此,根据经验 George 可能学会从这两个单元格中向右或向左移动,这也没关系,但是这个区域存在问题,George 将不断在这最左或最右的两个单元格之间来回移动,永远出不来。借助很小的 Epsilon 贪婪策略 George 也许能够碰巧出来。但是很不高效,可能会花费很长时间。如果 ϵ 很大,可能会导致其他状态的操作很糟糕。可以清晰地看出其他基于值的策略也不太理想。它能采取的最佳做法是以相同的概率从这些别名状态中向左或向右移动,它更有可能很快离开该陷阱。基于值的方法倾向于学习确定性或近似确定性策略,而在这种情况下基于策略的方法可以学习期望的随机性策略。
探索基于策略的方法的最后一个原因是它们非常适合连续性动作空间。当我们使用基于值的方法时,即使采用函数逼近器,输出也将由每个动作对应的值组成。如果动作空间是离散的,有一组有限的动作,我们可以轻松地选择值最大的动作。但是如果动作空间是连续的,那么这个最大化运算变成了优化问题本身,就像查找连续性函数的全局最大值,过程不轻松。尤其是如果该函数非凸。更高维度的动作空间存在类似的问题,要评估的潜在动作非常多。如果能将给定状态直接映射到动作,那么会比较理想,即使生成的策略有点复杂,这样可以显著缩短所需的计算时间。这正是基于策略的方法可以达到的效果