REINFORCE 是基于策略梯度定理的策略网络训练算法。它使用蒙特卡洛方法近似 Qπ(s,a),把它替换成回报 u。
不带基线的 REINFORCE
它的训练流程如下:
- 用策略网络 θnow 控制智能体进行一个 episode 的采样,得到轨迹 {s1,a1,r1,s2,a2,r2,⋯,sn,an,rn}
- 计算回报 ut=∑k=tnγk−trk,∀t=1,⋯,n
- 计算梯度 ∇θlnπ(at∣st;θnow),∀t=1,⋯,n
- 进行梯度更新 θnew←θnow+β∑t=1nγt−1ut∇θlnπ(at∣st;θnow)
带基线的 REINFORCE
带基线的 REINFORCE 需要额外训练一个价值网络 v(s,w),用于估计状态价值 Vπ(s)。它的训练流程如下:
- 用策略网络 θnow 控制智能体进行一个 episode 的采样,得到轨迹 {s1,a1,r1,s2,a2,r2,⋯,sn,an,rn}
- 计算回报 ut=∑k=tnγk−trk,∀t=1,⋯,n
- 使用价值网络进行预测 v^t=v(st,;wnow),∀t=1,⋯,n
- 计算预测误差 δt=v^t−ut,∀t=1,⋯,n
- 更新价值网络 wnew←wnow−α∑t=1nδt∇wv(st;wnow)
- 计算梯度 ∇θlnπ(at∣st;θnow),∀t=1,⋯,n
- 更新策略网络 θnew←θnow+β∑t=1nγt−1δt∇θlnπ(at∣st;θnow)