JoyRL策略梯度

与基于价值的算法(包括 DQN 等算法)不同,这类算法直接对策略本身进行近似优化。在这种情况下,我们可以将策略描述成一个带有参数θ的连续函数,该函数将某个状态作为输入,输出的不再是某个确定性的离散动作,而是对应的动作概率分布,通常用 表示,称作随机性策略

9.1基于价值算法的缺点

  • 无法表示连续动作。由于 DQN 等算法是通过学习状态和动作的价值函数来间接指导策略的,因此它们只能处理离散动作空间的问题,无法表示连续动作空间的问题。而在一些问题中,比如机器人的运动控制问题,连续动作空间是非常常见的,比如要控制机器人的运动速度、角度等等,这些都是连续的量。

  • 高方差。基于价值的方法通常都是通过采样的方式来估计价值函数,这样会导致估计的方差很高,从而影响算法的收敛性。尽管一些 DQN 改进算法,通过改善经验回放、目标网络等方式,可以在一定程度上减小方差,但是这些方法并不能完全解决这个问题。

  • 探索与利用的平衡问题。DQN 等算法在实现时通常选择贪心的确定性策略,而很多问题的最优策略是随机策略,即需要以不同的概率选择不同的动作。虽然可以通过 ε-greedy 策略等方式来实现一定程度的随机策略,但是实际上这种方式并不是很理想,因为它并不能很好地平衡探索与利用的关系。

9.2策略梯度算法

智能体在与环境交互的过程时,首先环境会产生一个初始状态 s0,然后智能体相应地执行动作 a0 , 然后环境会转移到下一个状态 s1 并反馈一个奖励 r1,智能体再根据当前状态 s1 选择动作 a1,以此类推,直到环境转移到终止状态。我们将这个过程称为一个回合,然后把所有的状态和动作按顺序组合起来,记作  ,称为轨迹

轨迹产生的概率:JoyRL策略梯度_第1张图片

轨迹价值:

JoyRL策略梯度_第2张图片

策略的价值期望:

JoyRL策略梯度_第3张图片 如果能求出其梯度,就可以利用梯度下降法等解决问题。但是这个公式比较复杂,所以我们需要化简

因为Pθ(r)是根据乘法公式推出的连乘式,可以考虑引入对数微分的技巧,将连乘转化成连加

JoyRL策略梯度_第4张图片

JoyRL策略梯度_第5张图片

又因为我们的目标是求关于θ的梯度,所以只留下了中间项

JoyRL策略梯度_第6张图片

总结

基于价值的算法是通过学习价值函数来指导策略的,而基于策略的算法则是对策略进行优化,并且通过计算轨迹的价值期望来指导策略的更新。

举例来说,如图 9-3 所示,基于价值的算法相当于是在学一个地图导航工具,它会告诉并指导驾驶员从当前位置到目的地的最佳路径。但是这样会出现一个问题,就是当地图导航工具在学习过程中产生偏差时会容易一步错步步错,也就是估计价值的方差会很高,从而影响算法的收敛性

 而基于策略的算法则是直接训练驾驶员自身,并且同时也在学地图导航,只是这个时候地图导航只会告诉驾驶员当前驾驶的方向是不是对的,而不会直接让驾驶员去做什么。换句话说,这个过程,驾驶员和地图导航工具的训练是相互独立的,地图导航工具并不会干涉驾驶员的决策,只是会给出建议。这样的好处就是驾驶员可以结合经验自己去探索,当导航工具出现偏差的时候也可以及时纠正,反过来当驾驶员决策错误的时候,导航工具也可以及时矫正错误

JoyRL策略梯度_第7张图片

9.3REINFORCE算法

虽然在前面一节中我们推导并简化了策略梯度公式,但实际操作起来是很困难的。轨迹是由状态和动作组合而成的序列,实际上一方面环境的初始状态是随机的,另一方面智能体每次采取的动作是随机的,从而导致每条轨迹的长度都可能不一样,这样组合起来的轨迹几乎是无限多条的,这样一来求解目标函数的梯度就变得非常困难了。那么这个时候我们就需要利用蒙特卡洛的方法来近似求解了,即我们可以不必采样所有的轨迹,而是采样一部分且数量足够多的轨迹,然后利用这些轨迹的平均值来近似求解目标函数的梯度。这种方法就是蒙特卡洛策略梯度算法

JoyRL策略梯度_第8张图片

9.4决策梯度推导进阶

在前面的小节中我们展开的策略梯度推导过程本质上是沿用 REINFORCE 算法或者蒙特卡洛的思路推导的,这种推导思路的优点是简单易懂,但在推导过程中我们也发现了其中的缺点,即最后推导出来的公式实际上不可求,因为理论上有无限条轨迹,所以只能用近似的方法

其次,我们假定了目标是使得每回合的累积价值最大,因此用对应的总奖励 R(τ) 或回报 G(τ) 来求解或者说评估价值。但实际使用过程中我们会发现这种价值的评估方法并不是很稳定,因为每回合的累积奖励或回报会受到很多因素的影响,比如回合的长度、奖励的稀疏性等等。因此,我们需要一个更泛化更通用的策略梯度公式

平稳分布

平稳分布,顾名思义就是指在无外界干扰的情况下,系统长期运行之后其状态分布会趋于一个固定的分布,不再随时间变化。已经跑过一些强化学习实战的读者们也会发现,每次成功跑一个算法,奖励曲线都会收敛到一个相对稳定的值,只要环境本身不变,哪怕换一种算法,奖励曲线也会收敛到一个相对稳定的值,除非我们改动了环境的一些参数比如调奖励等,这就是平稳分布的概念。

平稳分布本质上也是熵增原理的一种体现,比如初中化学中我们知道,当我们把一块金属钠放到水中,会发生化学反应变成氢氧化钠,在反应的过程中是比较剧烈的,但在一段时间之后它总能稳定生成氢氧化钠,即在我们预测范围之内,而不会某几次实验之后突然生成氯化钠之类的物质。

回到马尔科夫链本身,在处于平稳分布下,我们会发现一些规律,一个是任意两个状态之间都是互相连通的,即任意两个状态之间都可以通过一定的步骤到达,这个性质称为连通性。例如在学校里通常会有几种状态:上课、放学、吃饭、睡觉等,这些状态我们都是可以随意切换的,比如上课之后可以放学,放学之后可以吃饭,吃饭之后可以睡觉,睡觉之后可以上课等,这就是连通性的体现。

 有读者可能会说,我睡觉的时候能一直睡,就是不想切换到其他状态,也就是说到了睡觉这个状态,切换到其他状态的概率就变成 0 了,这个时候连通性就不成立了,我们把这个状态也叫做吸收状态。其实这个问题是因为我们的状态定义不够细致,我们可以把睡觉这个状态细分成睡觉、睡觉中、睡醒等状态,这样一来就可以保证任意两个状态之间都是互相连通的了。

可能读者又会想到马尔可夫过程的终止状态不也算是吸收状态吗?其实不是的,这里的终止状态其实在时序差分方法中有提到过,只是为了方便计算,我们把终止状态的价值函数定义为 0 ,但实际上终止状态也是可以切换到其他状态的,典型的例子就是在游戏中,当我们的智能体死亡之后,游戏并不会立即结束,而是会重新开始,这就是一个终止状态,但它并不是吸收状态,因为它又回到了初始状态。

另一个是任意状态在平稳分布下的概率都是一样的,即任意状态的概率都是相等的,这个性质称为细致平稳。这两个性质在马尔科夫链中是等价的,即如果一个马尔科夫链满足连通性,那么它一定满足细致平稳性,反之亦然。

总结

JoyRL策略梯度_第9张图片

基于平稳分布的策略梯度推导

 我们回顾前面小节中计算轨迹概率的公式Pθ(τ),可以发现如果轨迹τ的初始状态是s0并且终止状态是s的话,轨迹概率公式Pθ(τ)跟平稳分布的d(s)是等效的,当然前提是该条轨迹必须“无限长”,即t→∞

平稳分布与轨迹概率公式相比,它的好处就是只涉及一个定量即初始状态s0和一个变量s。对于每个状态s,我们用V(s)表示策略Π下对应的价值

此时策略梯度算法目标函数:

同样可以利用对数微分技巧求得对应的梯度:

JoyRL策略梯度_第10张图片

 JoyRL策略梯度_第11张图片

 9.5策略函数的设计

离散动作的策略函数

我们先回顾一下在 DQN 算法中是如何设计网络模型来近似 Q 函数的,通常是包含一个输入层、一个隐藏层和一个输出层,其中输入层一般是维度等于状态数的线性层,输出层则是维度等于动作数的线性层,对于更复杂的情况读者可以根据实际需要自行设计,比如中间多增加几层隐藏层或者改成 CNN 网络,只需要保证模型能够接收状态作为输入,并且能够输出等于每个动作的 Q 值即可

对于策略函数来说,我们也可以采用类似的设计,只不过我们输出的不是 Q 值,而是各个动作的概率分布。其实动作概率分布在实现上跟 Q 值的唯一区别就是必须都大于 0 且和为 1 ,最简单的做法是在 Q 网络模型的最后一层增加处理层,一般称作为动作层 (action layer)。由于原来 Q 网络模型输出的值是有正有负的,怎么把它们转换成动作概率分布呢?

 读者可能想到一个最简单的方式就是用最大值减去最小值得到一个范围值,然后原来的最小值变成0,其他原来的值则各自减去原来的最小值然后除以范围值,例如对于 [−0.5,0,0.5],用最大值减去最小值得到 1 ,然后原来的最小值变成 0 ,其他原来的值则各自减去原来的最小值然后除以 1,最后得到的就是 [0,0.5,0.5],这样一来就满足了概率分布的要求了,这就是最原始的 min-max 归一化思路。

我们通常采取目前比较流行的方式,即用 Softmax 函数来处理

JoyRL策略梯度_第12张图片

连续动作的策略函数

JoyRL策略梯度_第13张图片

练习题

1.基于价值和基于策略的算法各有什么优缺点?

基于价值的算法,如DQN,其优点在于它们可以通过学习价值函数来指导策略,类似于学习一个导航地图,能够提供从当前位置到目的地的最佳路径。这种方法易于理解和实现,并且在某些情况下可以收敛到较好的解决方案。
然而,基于价值的算法也有其缺点。首先,它们在学习过程中可能会产生偏差,一旦这些偏差在学习过程中被强化,可能会导致后续的决策错误。其次,价值函数的估计方差可能会很高,这会影响算法的收敛性。此外,价值函数在处理奖励稀疏的环境时可能会遇到困难。
相比之下,基于策略的算法,如REINFORCE,直接对策略进行优化,而不是学习一个价值函数。这种方法允许智能体结合自身经验去探索环境,而不是仅仅依赖于价值函数的指导。这使得基于策略的算法在面对奖励稀疏或者环境复杂的情况时更加鲁棒。
基于策略的算法的缺点在于它们通常更难理解和实现,并且需要更多的调优。此外,它们可能需要更多的数据来收敛到有效的策略,因为它们依赖于对策略执行结果的采样和评估。
综上所述,基于价值的算法在某些情况下更加直观和易于实现,但可能在面对复杂或稀疏奖励的环境时表现不佳。而基于策略的算法能够更好地处理这些问题,但它们通常更复杂,需要更多的调优和数据。在实际应用中,选择哪种算法往往取决于特定问题的性质和需求。

2.马尔可夫平稳分布需要满足什么条件?

  • 非周期性:由于马尔可夫链需要收敛,那么就一定不能是周期性的,实际上我们处理的问题基本上都是非周期性的,这点不需要做过多的考虑。
  • 状态连通性:即存在概率转移矩阵P,能够使得任意状态s0经过有限次转移到达状态s,反之亦然。

3.REINFORCE 算法会比 Q-learning 算法训练速度更快吗?为什么?

不一定。Q-learning算法在某些情况下可能会更快,它不需要采样轨迹、能够更有效地利用经验数据并具有较低的方差,从而可以更快地获得反馈并更新价值函数,而不需要等待整个回合结束

4.确定性策略与随机性策略的区别?

确定性策略下的智能体总是采取同一个动作,可能会错过一些探索新状态的机会;而随机性策略下i智能体以一定的概率分布选择动作,更好地平衡了探索和利用,避免陷入局部最优

你可能感兴趣的:(人工智能,机器学习)