(《机器学习》完整版系列)第16章 强化学习——16.10 值函数近似

提示:
函数近似:以某种已知曲线(含参数)逼近未知函数。
现在:未知函数为 值函数,已知函数取线性函数

值函数近似

前面讨论的“状态”是有限的、离散的,即为有限状态机(如【西瓜书图16.2】),值函数 Q π ( x , a ) Q^{\pi}(x,a) Qπ(x,a)即为二维数组 { Q π ( x i , a j ) } i , j \{Q^{\pi}(x_i,a_j)\}_{i,j} {Qπ(xi,aj)}i,j。注:当在有限状态空间时,通常“状态”变量不参与运算,如,你可以设想 P x → x ′ a , R x → x ′ a , π ( x ′ , a ) P^a_{x \to x'},R^a_{x \to x'},\pi (x',a) Pxxa,Rxxa,π(x,a)都是以表格形式体现,确定它们的值不是运算出来的,而是查表查出来的,然后再用它们运算出 Q π ( x , a ) Q^{\pi}(x,a) Qπ(x,a)。 而现在状态向量 x \boldsymbol{x} x连续并希望通过它直接运算出 Q π ( x , a ) Q^{\pi}(x,a) Qπ(x,a),让 P x → x ′ a , R x → x ′ a , π ( x ′ , a ) P^a_{x \to x'},R^a_{x \to x'},\pi (x',a) Pxxa,Rxxa,π(x,a)退居幕后。
现在将其扩展到无限、连续的状态空间中。 设状态为实数 x x x,则值函数 Q π ( x , a ) Q^{\pi}(x,a) Qπ(x,a)为曲线,在 x x x点及其附近,我们以某种已知曲线(含参数)逼近它,扩展到超平面上,以向量表示状态,即状态向量 x \boldsymbol{x} x的值函数表示为
Q π ( x , a ) ≈ Q θ ( x , a ) \begin{align} Q^{\pi}(\boldsymbol{x},a)\approx Q_{\boldsymbol{\theta} }(\boldsymbol{x},a) \tag{16.87} \end{align} Qπ(x,a)Qθ(x,a)(16.87)
进一步地,取 Q θ ( x , a ) Q_{\boldsymbol{\theta} }(\boldsymbol{x},a) Qθ(x,a)为线性函数( θ \boldsymbol{\theta} θ为线性函数的参数,即常用的 W \boldsymbol{W} W),这里进一步地,让“动作” a a a也参与运算,实际上是指“动作的量化”,如,“浇水多少”,如果需要量化多个动作,则将这里的 a a a改为向量 a \boldsymbol{a} a即可。

Q θ ( x , a ) = θ T ( x ; a ) \begin{align} Q_{\boldsymbol{\theta} }(\boldsymbol{x},a) & ={\boldsymbol{\theta} }^{\mathrm{T}}(\boldsymbol{x};a) \tag{16.88} \end{align} Qθ(x,a)=θT(x;a)(16.88)

这时可用“最小二乘法”【西瓜书3.2节:线性回归】,由均值与期望的关系,可将【西瓜书式(3.4)】关于参数的表达改为【西瓜书式(16.33)】的表达,将直接求最小值点(【西瓜书式(3.5)(3.6)】)改为用梯度下降法逼近最小值点。

求负导数(梯度下降)即得【西瓜书式(16.34)】,下面再对其简化和近似化,以期得到递推式。

(1)简化:当样本数简化到一个时,【西瓜书式(16.34)】即为
− ∇ E θ = 2 ( Q π ( x , a ) − Q θ ( x , a ) ) ( x ; a ) \begin{align} -\nabla E_{\boldsymbol{\theta} }=2(Q^{\pi}(\boldsymbol{x},a)-Q_{\boldsymbol{\theta} }(\boldsymbol{x},a))(\boldsymbol{x};a) \tag{16.89} \end{align} Eθ=2(Qπ(x,a)Qθ(x,a))(x;a)(16.89)
而梯度下降法【西瓜书式(B.17)】此时为
θ t + 1 − θ t = − γ ′ ∇ E θ t \begin{align} \boldsymbol{\theta} _{t+1}-\boldsymbol{\theta} _{t}=-\gamma ' \nabla E_{\boldsymbol{\theta}_t } \tag{16.90} \end{align} θt+1θt=γEθt(16.90)

将式(16.89)代入式(16.90),并记 2 γ ′ 2\gamma ' 2γ α \alpha α,则单个样本的更新规则为
θ t + 1 = θ t + α ( Q π ( x , a ) − Q θ ( x , a ) ) ( x ; a ) \begin{align} {\boldsymbol{\theta} }_{t+1}={\boldsymbol{\theta} }_{t}+\alpha (Q^{\pi}(\boldsymbol{x},a)-Q_{\boldsymbol{\theta} }(\boldsymbol{x},a))(\boldsymbol{x};a) \tag{16.91} \end{align} θt+1=θt+α(Qπ(x,a)Qθ(x,a))(x;a)(16.91)

(2)针对式(16.91)中的 Q π ( x , a ) Q^{\pi}(\boldsymbol{x},a) Qπ(x,a),我们将其展开(有点像使用泰勒展开技巧),设 π \pi π为确定性策略, a a a π \pi π x \boldsymbol{x} x处选取的动作,
由【西瓜书式(16.6)】第二式展开:
Q π ( x , a ) = E π [ ∑ t = 0 + ∞ γ t r t + 1 ∣ x 0 = x , a 0 = a ] = E x → x ′ γ 0 r 0 + 1 + E π [ ∑ t = 1 + ∞ γ t r t + 1 ∣ x 1 = x ′ , a 1 = a ′ ] = r + Q π ( x ′ , a ′ ) (简记) ≈ r + Q θ ( x ′ , a ′ ) (由式(16.87)) \begin{align} Q^{\pi }(\boldsymbol{x},a) & =\mathbb{E} _{\pi }\left[\sum_{t=0}^{+\infty }\gamma ^tr_{t+1}|\boldsymbol{x}_0=\boldsymbol{x},a_0=a\right]\notag \\ & =\mathbb{E} _{\boldsymbol{x}\to \boldsymbol{x}'}\gamma ^0r_{0+1}+\mathbb{E} _{\pi } \left[\sum_{t=1}^{+\infty }\gamma ^tr_{t+1}|\boldsymbol{x}_1=\boldsymbol{x}',a_1=a'\right]\notag \\ & = r+Q^{\pi }(\boldsymbol{x}',a')\quad \text{(简记)}\notag \\ & \approx r+Q_{\boldsymbol{\theta} }(\boldsymbol{x}',a')\quad \text{(由式(16.87))} \tag{16.92} \end{align} Qπ(x,a)=Eπ[t=0+γtrt+1x0=x,a0=a]=Exxγ0r0+1+Eπ[t=1+γtrt+1x1=x,a1=a]=r+Qπ(x,a)(简记)r+Qθ(x,a)(由式(16.87)(16.92)

将式(16.92)代入式(16.91)中,得递推式
θ t + 1 = θ t + α ( r + γ Q θ ( x ′ , a ′ ) − Q θ ( x , a ) ) ( x ; a ) \begin{align} {\boldsymbol{\theta} }_{t+1}={\boldsymbol{\theta} }_{t}+\alpha (r+\gamma Q_{\boldsymbol{\theta} }(\boldsymbol{x}',a')-Q_{\boldsymbol{\theta} }(\boldsymbol{x},a))(\boldsymbol{x};a) \tag{16.93} \end{align} θt+1=θt+α(r+γQθ(x,a)Qθ(x,a))(x;a)(16.93)

(3)取线性逼近:式(16.88)代入式(16.93),并将当前的 θ t {\boldsymbol{\theta} }_{t} θt作为 θ {\boldsymbol{\theta} } θ,则得递推式
θ t + 1 = θ t + α ( r + γ θ t T ( x ′ ; a ′ ) − θ t T ( x ; a ) ) ( x ; a ) \begin{align} {\boldsymbol{\theta} }_{t+1}={\boldsymbol{\theta} }_{t}+\alpha (r+\gamma {{\boldsymbol{\theta}_t }^{\mathrm{T}}(\boldsymbol{x}';a')}-{\boldsymbol{\theta} }_t^{\mathrm{T}}(\boldsymbol{x};a))(\boldsymbol{x};a) \tag{16.94} \end{align} θt+1=θt+α(r+γθtT(x;a)θtT(x;a))(x;a)(16.94)

式(16.94)即为【西瓜书式(16.36)】。

比较式(16.94)与式(16.86)可知,对【西瓜书图16.12】的Sarsa算法中的第6句用式(16.94)替代即得到线性值函数近似Sarsa算法【西瓜书图16.14】,其中,蒙特卡罗试验采用 ϵ {\epsilon } ϵ-贪心策略 π ϵ {\pi}^{\epsilon } πϵ

另外,阅读算法类书藉时,关于“ = = =”号有两点要注意:

i.有的等式是递归式,而不是方程式,如【西瓜书式(16.35)】,如果视为数学中的方程式,两边 θ \boldsymbol{\theta} θ抵消,则后一项为0,显然是错误的。 这里的“ = = =”实际上是计算机中的赋值语句(程序中常是这样写),【西瓜书式(16.35)】的数学表达应为式(16.93)。

ii.求“最优”往往是从“次优”去迭代逼近,因此,在推导中常通过“近似”使式子得到简化和可递推化,如上述式(16.92)的推导过程多次使用“近似”,从数学的严格意义上讲,应该用“ ≈ \approx ”,但由于我们是寻找最终用于程序中的式子,故直接用“ = = =”号,而将这种“近似”视为算法中的技巧。

以上两点在阅读时可结合上下文来理解。

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:16.9 时序差分学习(Sara算法与Q-学习算法)
下一篇:16.11 直接模仿学习

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值