回顾
- 在上一节中,我们主要是利用函数近似来将 Vπ(s) V π ( s ) 与 Qπ(s,a) Q π ( s , a ) 参数化:
而我们的策略 π π 则是从Q值中产生的。比如我们一直使用的 ϵ−greedy ϵ − g r e e d y 探索方法就是根据最大的Q值来选择动作(action)。没有Q值的话就无法使用这个方法了。也就是这个策略的更新是根据Q值的变化的。那么在本节,我们将直接对策略进行参数化而不是利用Q值。即:
这样的话,这个策略 π π 就不是概率集合而是一个函数了。这个策略函数表明在给定一个状态s的情况下,采取任何可能行为的概率,事实上,它是一个概率密度函数,就是说在实际应用策略的时候,是按照这个概率分布进行action采样的。
我们要做的是利用参数化的策略函数,通过调整这些参数来得到一个最优的策略。如何评价一个策略是否优秀呢?就是说如果遵循这个策略可以得到较多的奖励,那么这个策略就是优秀的策略。所以具体的做法就是设计一个关于策略的目标函数,通过梯度下降算法优化参数,最终使得惩罚最小化(奖励最大化)。
Policy Gradient
为什么要用基于策略的学习?
- 基于策略的学习可能会具有更好的收敛性,这是因为基于策略的学习虽然每次只改善一点点,但总是朝着好的方向在改善;但是上讲提到有些价值函数在后期会一直围绕最优价值函数持续小的震荡而不收敛。
- 在对于那些拥有高维度或连续状态空间来说,使用基于价值函数的学习在得到价值函数后,制定策略时,需要比较各种行为对应的价值大小,这样如果行为空间维度较高或者是连续的,则从中比较得出一个有最大价值函数的行为这个过程就比较难了,这时候使用基于策略的学习就高效的多。
- 能够学到一些随机策略,下文举了一个很好的例子;但是基于价值函数的学习通常是学不到随机策略的。
- 有时候计算价值函数很困难。比如当小球从空中掉下来你需要通过左右移动去接住它时,计算小球在某一个位置(状态)时采取什么样的行动(action)是很困难的。但是基于策略函数就简单了,只需要朝着小球落地的方向移动修改策略就好了。
什么时候使用基于价值的学习?什么时候使用基于策略的学习?
- 具体问题具体分析,根据需要评估的问题的特点来决定使用哪一种学习方式。
- 随机策略有时是最优策略。比如剪刀石头布这个游戏,如果你是按照某一种策略来出拳的话,很容易让别人抓住你的规律,然后你就会输了。所以最好的策略就是随机出拳,让别人猜不到。所谓的确定性策略,是说只要给定一个状态s,就会输出一个具体的动作a,而且无论什么时候到达状态s,输出的动作a都是一样的。而随机策略是指,给定一个状态s,输出在这个状态下可以执行的动作的概率分布。即使在相同状态下,每次采取的动作也很可能是不一样的。
- 基于价值函数的策略有时无法得到最优策略。
- 在这个图中,agent需要尽量不遇到骷颅头而去拿到钱包。agent所在的状态就是图中上方5个格子。对于这个环境的描述我们可以使用坐标来表示每个格子(状态),我们也可以使用格子某个方向是否有墙来作为特征描述这些格子。如果使用后者的话,我们就会发现两个灰色格子的状态描述是一样的,也就是视频中说的重名(Aliased)。