-
pick the best function θ∗ that maximize expected reward
θ∗=argθmaxRˉθ,Rˉθ=τ∑R(τ)P(τ∣θ)
-
Gradient ascent update rule
θnew←θold+η∇Rˉθold
- θ={w1,w2,⋯,b1,⋯} represents neural network weights
- ∇Rˉθ=⎣⎢⎢⎢⎢⎢⎢⎢⎡∂Rˉθ/∂w1∂Rˉθ/∂w2⋮∂Rˉθ/∂b1⋮⎦⎥⎥⎥⎥⎥⎥⎥⎤ is the gradient vector
-
梯度计算推导:
∇Rˉθ=τ∑R(τ)∇P(τ∣θ)=τ∑R(τ)P(τ∣θ)P(τ∣θ)∇P(τ∣θ)=τ∑R(τ)P(τ∣θ)∇logP(τ∣θ)≈N1n=1∑NR(τn)∇logP(τn∣θ)
- 第一行:利用 R(τ) 与 θ 无关的性质
- 第二行:乘以和除以 P(τ∣θ) 构造微分形式。一直觉得这个是神来一笔,一方面构造出了连乘转累加,另一方面构造出了蒙特卡洛形式。不过可能这就是内在联系。
- 第三行:应用对数微分性质 ∇logf(x)=f(x)∇f(x)
- 第四行:蒙特卡洛近似,采样 N 条轨迹估计梯度,见公式【1】
-
轨迹概率的对数梯度:
P(τ∣θ)logP(τ∣θ)∇logP(τ∣θ)=p(s1)t=1∏Tp(at∣st,θ)p(rt,st+1∣st,at)=logp(s1)+t=1∑Tlogp(at∣st,θ)+t=1∑Tlogp(rt,st+1∣st,at)=t=1∑T∇logp(at∣st,θ)
- 轨迹 τ={s1,a1,r1,s2,a2,r2,⋯,sT,aT,rT}
- 仅保留与策略参数 θ 相关的项 p(at∣st,θ)
-
最终梯度表达式:
∇Rˉθ≈N1n=1∑NR(τn)∇logP(τn∣θ)=N1n=1∑NR(τn)t=1∑Tn∇logp(atn∣stn,θ)=N1n=1∑Nt=1∑TnR(τn)∇logp(atn∣stn,θ)
- stn:第 n 次采样中第 t 时刻的状态
- atn:第 n 次采样中第 t 时刻的动作
-
Intuitive interpretation
- If R(τn) is positive → Tune θ to increase p(atn∣stn)
- If R(τn) is negative → Tune θ to decrease p(atn∣stn)
- Important: The gradient uses the complete trajectory reward R(τn), not the immediate reward rtn