一、值函数估计方法引入
在值函数估计方法中,我们希望拟合一个价值模型用来估计每个状态动作对的累积回报。其代价函数可以写为
L=12∑a∑s(Q(s,a)−Q(s,a;θ))2 L=\frac{1}{2}\sum_{a}\sum_{s}(Q(s,a)-Q(s,a;\theta))^2 L=21a∑s∑(Q(s,a)−Q(s,a;θ))2
其中Q(s,a)Q(s,a)Q(s,a)为真实的累积回报的值函数,Q(s,a;θ)Q(s,a;\theta)Q(s,a;θ)为价值模型估计的累积回报,我们希望了两者的差最小。采用梯度下降法可得参数的更新公式为
θt+1=θt+α[Q(st,at)−Q(st,at;θ)]∇Q(st,at) \theta_{t+1}=\theta_t+\alpha[Q(s_t,a_t)-Q(s_t,a_t;\theta)]\nabla Q(s_t,a_t) θt+1=θt+α[Q(st,at)−Q(st,at;θ)]∇Q(st,at)
通常采用TD方法对真实的Q(st,at)Q(s_t,a_t)Q(st,at)进行估计,最终参数更新公式为
θt+1=θt+α[r(st,at)+Q(st+1,at+1;θt)−Q(st,at;θt)]∇Q(st,at) \theta_{t+1}=\theta_t+\alpha[r(s_t,a_t)+Q(s_{t+1},a_{t+1};\theta_t)-Q(s_t,a_t;\theta_t)]\nabla Q(s_t,a_t) θt+1=θt+α[r(st,at)+Q(st+1,at+1;θt)−Q(st,at;θt)]∇Q(st,at)
其中可以定义TD-error为
δt=r(st,at)+Q(st+1,at+1;θt)−Q(st,at;θt) \delta_t = r(s_t,a_t)+Q(s_{t+1},a_{t+1};\theta_t)-Q(s_t,a_t;\theta_t) δ