离线策略强化学习
对于基于策略的强化学习,通过建立带 θ \theta θ的策略模型,通过策略梯度进行优化,梯度如下 ∇ θ U = E τ − p θ ( τ ) [ ∇ θ l o g P θ ( τ ) R ( τ ) ] \nabla_\theta U=E_{\tau -p_\theta(\tau)}[\nabla_\theta log P_\theta(\tau)R(\tau)] ∇θU=Eτ−pθ(τ)[∇θlogPθ(τ)R(τ)]
该方法是在线策略(on-policy),即学习更新的策略和与环境交互采样的策略是同一个,这带来一个问题,当进行策略参数 θ \theta θ更新后,原来旧 θ \theta θ的策略采样的数据就无法在用了,需要用新的策略采样才能进行梯度计算。这样样本利用率低,训练时间长。
因此需要将目标策略和采样策略进行分离,利用重要性采样进行梯度计算。
重要性采样
假设 f ( x ) f(x) f(x)服从 p ( x ) p(x) p(x)分布,求x的期望 E ( x ) = ∫ p ( x ) x d x E(x)=\int p(x)xdx E(x)=∫p(x)xdx
我们想用采样的方式进行计算,但是服从 p ( x ) p(x) p(x)分布的样本不好得到,相反,服从 q ( x ) q(x) q(x)分布的样本好得到。因此我们想用 q ( x ) q(x) q(x)分布的样本来代替 p ( x ) p(x) p(x)分布的样本,显然这是有误差的,因此需要对期望进行修正。
其中 p ( x ) q ( x ) {p(x) \over q(x)} q(x)p(x)称为重要因子,相当于把 q ( x ) q(x) q(x)分布的样本当场是真实 p ( x ) p(x) p(x)分布的样本来计算时,需要乘上这个重要因子修正,保证这么做是可以的。
存在的问题
要求这两个分布要比较接近,差别不能太大。意味着目标学习策略的参数 θ \theta θ和采样策略的参数 θ ′ \theta ^{\prime} θ′要比较接近。
离线策略梯度
设学习目标的策略为 π θ π_\theta πθ,采样策略为 π θ ′ π_{\theta^{\prime}} πθ′
∇ θ U = E τ − p θ ( τ ) [ ∇ θ l o g P θ ( τ ) R ( τ ) ] \nabla_\theta U=E_{\tau -p_\theta(\tau)}[\nabla_\theta log P_\theta(\tau)R(\tau)] ∇θU=Eτ−pθ(τ)[∇θlogPθ(τ)R(τ)]
就变成了
∇ θ U = E τ − p θ ′ ( τ ) [ P θ ( τ ) P θ ′ ( τ ) ∇ θ l o g P θ ( τ ) R ( τ ) ] \nabla_\theta U=E_{\tau -p_{\theta^\prime}(\tau)}[{P_\theta(\tau)\over P_{\theta^\prime}(\tau)} \nabla_\theta log P_\theta(\tau)R(\tau)] ∇θU=Eτ−p