参考链接:第九章 策略梯度 (datawhalechina.github.io)
参考视频:【强化学习】策略梯度方法-策略近似_哔哩哔哩_bilibili
一、性质、概念
在说基于策略梯度的算法之前,先针对基于价值的算法的缺点(Sarsa算法和Q--Learning、 DQN 算法)进行一下对比。
基于价值的算法:
-
无法表示连续动作。
比如机器人的方向,用基于价值的方法,我可以有东南西北4个方向(离散);但在基于策略梯度的算法,我可以像表盘一样能有0~360°的方向(连续)
-
高方差(敛散性不好)
-
探索与利用的平衡问题。
基于价值方法给出的是一个确定性的输出,采用迂回的方式,通过间接优化价值函数Q,不断用贪心算法得到优化。
虽说可以加入一些随机性(如前面提到的-greedy策略),但从本质上而言还是确定性行为。
而基于策略梯度的算法是一个随机性策略。
由此可以得出基于策略梯度的算法更适用于随机策略,动作空间连续的情况
而基于策略梯度的这类算法直接对策略本身进行近似优化,本质上是一种概率分步。在这种情况下,我们可以将策略描述成一个带有参数的连续函数,该函数将某个状态作为输入,输出的不再是某个确定性( deterministic )的离散动作,而是对应的动作概率分布,称作随机性( stochastic )策略。
二、策略函数的设计:
前面提到过,基于策略梯度的算法相比较于基于价值的算法,可以表示连续的动作。那么离散的动作,同样也可以表示。
离散动作的策略函数设计:
我们通常采取目前比较流行的方式,即用 Softmax 函数来处理,如下图。
![Softmax 函数](https://img-blog.csdnimg.cn/direct/fbc33d1a5bd14ec29ec3faca3542d536.png)
![公式解释](https://img-blog.csdnimg.cn/direct/a99942be6d4c46eea6903e50356e6973.png)
连续动作空间:
通常策略对应的动作可以用高斯分布来处理。
![高斯分布公式](https://img-blog.csdnimg.cn/direct/ade1490afd6f4da3bc7c0e4f177ae46d.png)
总结:
三、策略梯度算法 (看哔哩哔哩视频讲解【强化学习】策略梯度方法-策略梯度定理_哔哩哔哩_bilibili
四、蒙特卡洛策略梯度算法(抽样本求平均值代替)
轨迹是由状态和动作组合而成的序列,实际上一方面环境的初始状态是随机的,另一方面智能体每次采取的动作是随机的,从而导致每条轨迹的长度都可能不一样,这样组合起来的轨迹几乎是无限多条的,这样一来求解目标函数的梯度就变得非常困难了。那么这个时候我们就需要利用蒙特卡洛的方法来近似求解了,即我们可以不必采样所有的轨迹,而是采样一部分且数量足够多的轨迹,然后利用这些轨迹的平均值来近似求解目标函数的梯度。这种方法就是蒙特卡洛策略梯度算法,也称作 REINFORCE 算法。
我们现在需要求解的是目标函数的梯度,REINFORCE 算法的做法是每次采样 N条轨迹,然后对这 N条轨迹的梯度求平均。
缺点:
1.最后推导出来的公式实际上不可求,因为理论上有无限条轨迹,所以只能用近似的方法。2.我们假定了目标是使得每回合的累积价值最大,因此用对应的总奖励 或回报来求解或者说评估价值。 3.实际使用过程中我们会发现这种价值的评估方法并不是很稳定,因为每回合的累积奖励或回报会受到很多因素的影响,比如回合的长度、奖励的稀疏性等等。
五、策略梯度算法进阶:
概念补充:
1.平稳分布(马尔可夫链的平稳分布(stationary distribution))。
平稳分布,指在无外界干扰的情况下,系统长期运行之后其状态分布会趋于一个固定的分布,不再随时间变化。成功跑一个算法,奖励曲线都会收敛到一个相对稳定的值,只要环境本身不变,哪怕换一种算法,奖励曲线也会收敛到一个相对稳定的值,除非我们改动了环境的一些参数比如调奖励等,这就是平稳分布的概念。
回到马尔科夫链本身,在处于平稳分布下,我们会发现一些规律,一个是任意两个状态之间都是互相连通的,即任意两个状态之间都可以通过一定的步骤到达,这个性质称为连通性(connectedness)。
另一个是任意状态在平稳分布下的概率都是一样的,即任意状态的概率都是相等的,这个性质称为细致平稳(detailed balance)。这两个性质在马尔科夫链中是等价的,即如果一个马尔科夫链满足连通性,那么它一定满足细致平稳性,反之亦然
总结一下马尔可夫链的平稳分布了,对于任意马尔可夫链,如果满足以下两个条件:
- 非周期性:由于马尔可夫链需要收敛,那么就一定不能是周期性的,实际上我们处理的问题基本上都是非周期性的,这点不需要做过多的考虑。
- 状态连通性:即存在概率转移矩阵P,能够使得任意状态S0经过有限次转移到达状态S,反之亦然。
这样我们就可以得出结论,即该马氏链一定存在一个平稳分布。
换句话说,对于一个特定的环境,平稳分布相当于一个环境本身常量,类似于状态转移概率矩阵,只是我们在求解马尔可夫过程的时候无法获得,只能通过其他的方法近似,例如在前面章节讲到的基于价值的算法中,我们就是通过贝尔曼公式来绕过状态转移概率矩阵进而通过迭代的方式求解状态价值函数的
2-进阶 基于平稳分布的策略梯度推导
六、总结:
基于价值和基于策略的算法各有什么优缺点?
基于价值的算法优点有:简单易用:通常只需要学习一个值函数,往往收敛性也会更好。保守更新:更新策略通常是隐式的,通过更新价值函数来间接地改变策略,这使得学习可能更加稳定。缺点有:受限于离散动作;可能存在多个等价最优策略:当存在多个等效的最优策略时,基于价值的方法可能会在它们之间不停地切换。
基于策略的算法的优点有:直接优化策略:由于这些算法直接操作在策略上,所以它们可能更容易找到更好的策略;适用于连续动作空间;更高效的探索:通过调整策略的随机性,基于策略的方法可能会有更高效的探索策略。缺点有:高方差:策略更新可能会带来高方差,这可能导致需要更多的样本来学习。可能会收敛到局部最优:基于策略的方法可能会收敛到策略的局部最优,而不是全局最优,且收敛较缓慢。在实践中,还存在结合了基于价值和基于策略方法的算法,即 Actor-Critic 算法,试图结合两者的优点来克服各自的缺点。选择哪种方法通常取决于具体的应用和其特点。
马尔可夫平稳分布需要满足什么条件?
答:状态连通性:从任何一个状态可以在有限的步数内到达另一个状态;非周期性:由于马尔可夫链需要收敛,那么就一定不能是周期性的。
REINFORCE 算法会比 Q-learning 算法训练速度更快吗?为什么?
答:两者的速度不能一概而论,尽管前者往往会比后者慢。主要考虑几个因素:样本效率:因为 REINFORCE 算法是一个无偏的估计,但其方差可能很高,这意味着为了得到一个稳定和准确的策略更新,它可能需要与环境交互更多的样本,如果与环境交互的成本很高,REINFORCE 算法将会显得更加劣势。稳定性与收敛:Q-learning 和其他基于值的方法,特别是当与深度神经网络结合时,可能会遇到训练不稳定的问题。这可能会影响其训练速度。
确定性策略与随机性策略的区别?
答:对于同一个状态,确定性策略会给出一个明确的、固定的动作,随机性策略则会为每一个可能的动作(legal action)提供一个概率分布。前者在训练中往往需要额外的探索策略,后者则只需要调整动作概率。但前者相对更容易优化,因为不需要考虑所有可能的动作,但也容易受到噪声的影响。后者则相对更加鲁棒,适用面更广,因为很多的实际问题中,我们往往无法得到一个确定的最优策略,而只能得到一个概率分布,尤其是在博弈场景中。