值函数近似

前面我们一直假定强化学习任务是在有限状态空间上进行,值函数则使用有限状态的表来表示。然而,现实强化学习任务,所面临的状态空间往往是连续的,有无穷多个状态,显然无法用表格来记录。我们不妨直接学习连续状态空间的连续值函数。由于此时的值函数难以像有限状态那样精确记录每个状态的值,因此这样值函数的求解被称为值函数近似 (value function approximation)。

下面介绍一个简单的示例,它能帮助我们更加理解连续空间的强化学习过程。

路径寻找:如下图,在一个连续的平面世界中,包括平坦区域、草地和边界。状态空间是连续的 S=[0,6]×[0,6]\mathcal S=[0,6]\times[0,6] ,但动作空间是离散的,仍然只有5种行走方向 A={,,,,}\mathcal A=\{\uparrow,\leftarrow,\downarrow,\rightarrow,\circlearrowleft\}。如果Agent在平坦区域每单位路程奖励 -1 ;在草坪的每单位路程奖励 -2;在目标区域的奖励为 0。

From table to function

v^(s,w)vπ(s)\hat v(s,w)\approx v_{\pi}(s)

我们需要学习一个参数 ww 来使得函数 v^(s,w)\hat v(s,w) 可以逼近值函数 vπ(s)v_{\pi}(s) 。常用期望误差来作为损失函数:

J(w)=E[(v^(S,w)vπ(S))2]J(w)=\mathbb E[(\hat v(S,w)-v_{\pi}(S))^2]

为了使误差最小化,采用梯度下降法

wJ(w)=E[2(v^(s,w)vπ(s))wv^(s,w)]\nabla_wJ(w)=\mathbb E[2(\hat v(s,w)-v_{\pi}(s))\nabla_w\hat v(s,w)]

于是可得到对于单个样本随机梯度下降的更新规则

wt+1=wt+α[vπ(st)v^(st,wt)]wv^(st,wt)w_{t+1}=w_t+\alpha[v_{\pi}(s_t)-\hat v(s_t,w_t)]\nabla_{w}\hat v(s_t,w_t)

我们并不知道策略的真实值函数 vπv_{\pi}。如果采用蒙特卡罗方法近似总回报 GtG_t

wt+1=wt+α[gtv^(st,wt)]wv^(st,wt)w_{t+1}=w_t+\alpha[g_t-\hat v(s_t,w_t)]\nabla_{w}\hat v(s_t,w_t)

如果采用时序差分学习方法近似 Rt+1+γv(St+1)R_{t+1}+\gamma v(S_{t+1})

wt+1=wt+α[rt+1+γv^(st+1,wt)v^(st,wt)]wv^(st,wt)w_{t+1}=w_t+\alpha[r_{t+1}+\gamma \hat v(s_{t+1},w_t) -\hat v(s_t,w_t)]\nabla_{w}\hat v(s_t,w_t)

注意:上式中看到了离散化的时刻,可看作 agent 与环境每隔 δt\delta t 时间交互一次。

线性函数:值函数一般采用线性函数估计

v^(s,w)=wTϕ(s)\hat v(s,w)=w^T\phi(s)

例如在平面世界中估计值函数

v^(s,w)=ax+by+c=[abc][xy1]\hat v(s,w)=ax+by+c= \begin{bmatrix}a&b&c\end{bmatrix} \begin{bmatrix}x\\y\\1\end{bmatrix}

其中 ϕ(s)=[x,y,1]T\phi(s)=[x,y,1]^T 称为特征向量 (feature vector),w=[a,b,c]w=[a,b,c] 称为参数向量 (parameter vector)。

线性函数使用SGD来更新参数时非常方便,梯度

wv^(s,w)=ϕ(s)\nabla_{w}\hat v(s,w)=\phi(s)

单个样本随机梯度下降

wt+1=wt+α[rt+1+γwtTϕ(st+1)wtTϕ(st)]ϕ(st)w_{t+1}=w_t+\alpha[r_{t+1}+\gamma w_t^T\phi(s_{t+1})- w_t^T\phi(s_{t})]\phi(s_{t})

下面是基于线性值面数估计的例子

n-order多项式估计

Q-learning:TD 算法估计的是动作值函数

q^(s,a,w)qπ(s,a)\hat q(s,a,w)\approx q_{\pi}(s,a)

更新参数的一般形式是

wt+1=wt+α[rt+1+γmaxaAq^(st+1,a,wt)q^(st,at,wt)]wq^(st,at,wt)w_{t+1}=w_t+\alpha[r_{t+1}+\gamma \max_{a\in\mathcal A}\hat q(s_{t+1},a,w_t) -\hat q(s_t,a_t,w_t)]\nabla_{w}\hat q(s_t,a_t,w_t)