强化学习——策略梯度(九)

策略梯度(Policy Gradient)

与值函数近似类似,为了应对状态或动作数较多时,表格化的策略带来的存储问题,使用函数π(as,θ)(该函数往往使用的是神经网络)\pi_(a|s,\theta)(该函数往往使用的是神经网络)。减少存储参数同时,也增强了策略的泛化能力(应对没有被访问过的状态动作对,能得出正确的策略)。
与前面基于值的方法有所不同的是,策略梯度直接优化的是梯度,而不再需要根据值的变化来选择出策略。

1 目标函数(metrics)

为了得出最优的策略,需要制定目标函数
J(θ)=sd(s)vπ(s)=vˉπ=limnE[t=0nγtRt+1]J(\theta) = \displaystyle \sum_s d(s) v_{\pi}(s) = \bar v_\pi = \lim_{n \to \infty} E[\sum_{t=0}^n \gamma^t R_{t+1}]

J(θ)=sd(s)rπ(s)=rˉπ=limn1nE[t=0n1Rt+1]J(\theta) = \displaystyle \sum_s d(s) r_{\pi}(s) = \bar r_\pi = \lim_{n \to \infty} \frac{1}{n} E[\sum_{t=0}^{n-1} R_{t+1}]
两种目标函数当应对 return 计算带折扣率时(discount case),有rˉπ=(1γ)rˉπ\bar r_\pi = (1-\gamma) \bar r_\pi的关系。
为得到最优的策略就需要参数最优使目标函数最大。

2 目标函数梯度

为了使用 Gradient-based 的方法去优化目标函数,就需要得到目标函数的梯度。

由于有 ln 函数的计算,所以策略函数的最后一层要加上 softmax,防止出现对某个动作概率为 0。

3 随机梯度上升优化(Gradient-ascent)

为了使目标函数最大

4 Reinforce Algorithm

当梯度计算时,使用 MC 方法获得 q 值,则称该算法为 Reinforce Algorithm。每次更新 q 值都需要使用π(as,θt)\pi(a|s,\theta_t)获取样本,而进行优化后更新策略π(as,θt+1)\pi(a|s,\theta_{t+1}),并利用更新后的策略生成新样本,所以 PG 类的算法是 on-policy 的。