回顾
在这之前的方法,都是based on value,通过优化q(s,a), 来进一步得到最优策略。我们能不能用神经网络直接对策略进行拟合并优化呢?
Metircs
回顾最优策略的定义
vπ∗(s)≥vπ(s) ∀π
一个自然而然想要最大化的目标即vˉπ
vˉπ=Es∼dπ(s)[vπ(s)]=s∈S∑d(s)vπ(s)=s∈S∑dπ(s)E[t=0∑∞γtRt+1∣S0=s]=E[t=0∑∞γtRt+1]
另外一个常见的最大化目标为rˉπ
rˉπ=Es∼dπ(s)[rπ(s)]=s∈S∑dπ(s)rπ(s)=s∈S∑dπ(s)a∈A∑π(a∣s)r(s,a)=n→∞limn1E[k=1∑nRt+k∣St=s0]=n→∞limn1E[k=1∑nRt+k]
实际上二者是等价的,符合以下关系
rˉπ=(1−γ)vˉπ
梯度更新
由于我们想要最大化metrics,故采用梯度上升的方法
θt+1=θt+α∇θJ(θ)
策略梯度定理告诉我们这些metrics的梯度都近似为下面的式子:
∇θJ(θ)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)=ES∼η,A∼π(S,θ)[∇θlnπ(A∣S,θ)qπ(S,A)]
然而要写为这种形式,得保证 π(A∣S,θ)>0 恒成立,故考虑做softmax
π(a∣s,θ)=∑a′∈Aeh(s,a′,θ)eh(s,a,θ),a∈A
故梯度上升可以写为:
θt+1=θt+αES∼η,A∼π(S,θ)[∇θlnπ(A∣S,θ)qπ(S,A)]
然而上面的期望由于真实的π,S,A分布无法得到,故采用随机梯度上升
θt+1=θt+αt[∇θlnπ(at∣st,θt)qπ(st,at)]
另一个角度
因为
∇θlnπ(at∣st,θt)=π(at∣st,θt)∇θt(π(at∣st,θt))
进一步可以写为
θt+1=θt+αtπ(at∣st,θt)qπ(st,at)∇θ(π(at∣st,θt))
如果我们令βt=π(at∣st,θt)qπ(st,at)
θt+1=θt+αtβt∇θ(π(at∣st,θt))
这实际上就在 优化策略!
βt保证
- 当 qπ(st,at)≤0时, π(at∣st,θt+1)≤π(at∣st,θt)
- 当 qπ(st,at)≥0时, π(at∣st,θt+1)≥π(at∣st,θt)
REINFORCE
由于真实的qπ(st,at)我们不知道,需要通过其他方式来获得。
特别的,通过 MC方法 从(st,at)开始采样一条轨迹计算qt(st,at)用来近似qπ(st,at), 来进行策略梯度,则该方法被称为REINFORCE