REINFORCE 及其基线变种
REINFORCE
REINFORCE 算法通过蒙特卡洛方法估计策略梯度:
∇θJ(θ)≈t=0∑Tγtqπθ(st, at)∇θlnπθ(at∣st)
内层的 qπθ(st, at) 通过蒙特卡洛方法进行近似估计 qπθ(st, at)≈∑τ=tTγτ−trτ+1 后得到近似策略梯度:
∇θJ(θ)≈t=0∑Tγt(τ=t∑Tγτ−trτ+1)∇θlnπθ(at∣st)
并通过梯度上升的方式更新策略参数 θ:
θ←θ+α∇θJ(θ)=θ+α[t=0∑Tγt(τ=t∑Tγτ−trτ+1)∇θlnπθ(at∣st)]
REINFORCE 算法属于同策略算法,在实现时每采样一个完整的序列后使用上式进行更新,而过去的序列无法重复利用。同时估计的近似策略梯度虽然无偏,但是方差很大,造成算法性能的不稳定。
REINFORCE(带基线)
通过基线函数可以重写 REINFORCE 算法对策略梯度的估计:
∇θJ(θ)≈t=0∑Tγt(τ=t∑Tγτ−trτ+1−vw(st))∇θlnπθ(at∣st)
其中 vw(s) 是对 vπθ(s) 的估计,可以利用回报的估计值和均方误差作为损失函数:
ℓ(w)=2(T+1)1t=0∑T(vw(st)−τ=t∑Tγτ−trτ+1)=2(T+1)1t=0∑T(vw(st)−gt)2
损失函数对参数 w 的梯度为:
∇wℓ(w)=T+11t=0∑T(vw(st)−gt)∇wvw(st)
通过梯度下降在每个采样序列后对价值网络 vw(s) 进行更新,进而通过 vw(s) 进行策略提升。