策略算法
教程链接
DataWhale强化学习课程JoyRL
https://johnjim0816.com/joyrl-book/#/ch7/main
策略梯度
与前面的基于价值的算法不同,这类算法直接对策略本身进行近似优化。
在这种情况下,我们可以将策略描述成一个带有参数 θ θ θ的连续函数,该函数将某个状态作为输入,输出的不再是某个确定性的离散动作,而是对应的动作概率分布,通常用 π θ ( a ∣ s ) \pi_{θ}(a|s) πθ(a∣s) 表示,称作随机性策略。
价值算法缺点
- 无法表示连续动作
由于 DQN 等算法是通过学习状态和动作的价值函数来间接指导策略的,因此它们只能处理离散动作空间的问题,无法表示连续动作空间的问题
- 高方差
基于价值的方法通常都是通过采样的方式来估计价值函数,这样会导致估计的方差很高,从而影响算法的收敛性。尽管一些 DQN 改进算法,通过改善经验回放、目标网络等方式,可以在一定程度上减小方差,但是这些方法并不能完全解决这个问题。
- 探索与利用的平衡问题
DQN 等算法在实现时通常选择贪心的确定性策略,而很多问题的最优策略是随机策略,即需要以不同的概率选择不同的动作。虽然可以通过 ϵ -greedy \epsilon\text{-greedy} ϵ-greedy 策略等方式来实现一定程度的随机策略,但是实际上这种方式并不是很理想,因为它并不能很好地平衡探索与利用的关系。
策略梯度算法
特点: 直接对策略进行优化算法,但是优化目标与基于价值一样,都是累积的价值期望 V ∗ ( s ) V^{*}(s) V∗(s)
轨迹产生的概率:
P θ ( τ ) = p ( s 0 ) π θ ( a 0 ∣ s 0 ) p ( s 1 ∣ s 0 , a 0 ) π θ ( a 1 ∣ s 1 ) p ( s 2 ∣ s 1 , a 1 ) ⋯ = p ( s 0 ) ∏ t = 0 T π θ ( a t ∣ s t ) p ( s t + 1 ∣ s t , a t ) (9.2) \tag{9.2} \begin{aligned} P_{\theta}(\tau) &=p(s_{0}) \pi_{\theta}(a_{0} | s_{0}) p(s_{1} | s_{0}, a_{0}) \pi_{\theta}(a_{1} | s_{1}) p(s_{2} | s_{1}, a_{1}) \cdots \\ &=p(s_{0}) \prod_{t=0}^{T} \pi_{\theta}\left(a_{t} | s_{t}\right) p\left(s_{t+1} | s_{t}, a_{t}\right) \end{aligned} Pθ(τ)=p(s0)πθ(a0∣s0)p(s1∣s0,a0)πθ(a1∣s1)p(s2∣s1,a1)⋯=p(s0)t=0∏Tπθ(at∣st)p(st+1∣st,at)(9.2)
基于全期望公式得到价值的期望公式
J ( π θ ) = E τ ∼ π θ [ R ( τ ) ] = P θ ( τ 1 ) R ( τ 1 ) + P θ ( τ 2 ) R ( τ 2 ) + ⋯ = ∫ τ P θ ( τ ) R ( τ ) = E τ ∼ P θ