zoukankan      html  css  js  c++  java
  • 策略梯度理解

    策略梯度(Policy gradient)是所有基于策略搜索的强化学习算法的基础,就像MDP是所有强化学习问题的基础一样。

    后续提出的算法(如Actor-Critic、TRPO、PPO、DPG)都是针对策略梯度算法的缺陷提出改进,所以理解策略梯度的各种细节十分必要。

    为什么要用基于策略的学习?

    1)基于策略的学习可能会具有更好的收敛性,这是因为基于策略的学习虽然每次只改善一点点,但总是朝着好的方向在改善;

        但是上讲提到有些价值函数在后期会一直围绕最优价值函数持续小的震荡而不收敛。
    2)在对于那些拥有高维度或连续状态空间来说,使用基于价值函数的学习在得到价值函数后,制定策略时,需要比较各种行为对应的价值大小,

        这样如果行为空间维度较高或者是连续的,则从中比较得出一个有最大价值函数的行为这个过程就比较难了,这时候使用基于策略的学习就高效的多。

    3)能够学到一些随机策略,下文举了一个很好的例子;但是基于价值函数的学习通常是学不到随机策略的。
         有时候计算价值函数很困难。比如当小球从空中掉下来你需要通过左右移动去接住它时,计算小球在某一个位置(状态)时采取什么样的行动(action)是很困难的。

         但是基于策略函数就简单了,只需要朝着小球落地的方向移动修改策略就好了。
    ---------------------

    什么时候使用基于价值的学习?什么时候使用基于策略的学习?

    具体问题具体分析,根据需要评估的问题的特点来决定使用哪一种学习方式。
    随机策略有时是最优策略。比如剪刀石头布这个游戏,如果你是按照某一种策略来出拳的话,很容易让别人抓住你的规律,然后你就会输了。所以最好的策略就是随机出拳,让别人猜不到。所谓的确定性策略,是说只要给定一个状态s,就会输出一个具体的动作a,而且无论什么时候到达状态s,输出的动作a都是一样的。而随机策略是指,给定一个状态s,输出在这个状态下可以执行的动作的概率分布。即使在相同状态下,每次采取的动作也很可能是不一样的。
    基于价值函数的策略有时无法得到最优策略。

    在这个图中,agent需要尽量不遇到骷颅头而去拿到钱包。agent所在的状态就是图中上方5个格子。对于这个环境的描述我们可以使用坐标来表示每个格子(状态),我们也可以使用格子某个方向是否有墙来作为特征描述这些格子。如果使用后者的话,我们就会发现两个灰色格子的状态描述是一样的,也就是视频中说的重名(Aliased)。它们的状态描述一样,但是我们可以看到(上帝视角)当agent处于这两个灰色格子时,应该采取的行动是不一样的。也就是说,当agent在左边的灰色格子时,它的策略应该是向东走,当它在右边的灰色格子时,它应该向西走。这样的话,就会出现在同一状态下,需要采取策略不同的情况。而对于基于价值的学习方法,策略是固定的,所以就会出现下面这样的策略:

    或者灰色格子一直向东的策略。
    所以出现这种状态相同,需要采取的行动不同的这种情况时,随机策略就会比确定性的策略好。

    ......

    待补充。

  • 相关阅读:
    EasyDarwin开源流媒体服务器实现RTSP直播同步输出MP4、RTMP、HLS的方案思路
    OBS桌面视频直播软件/推流工具使用指南
    C++界面库
    . net 源代码调试
    WPF学习之X名称空间详解
    NSIS安装程序制作工具判断系统是否安装.NET
    Qt学习笔记常用容器
    快捷键
    Python中if __name__ == '__main__':作用
    python中__init__.py文件的作用
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/10299036.html
Copyright © 2011-2022 走看看