提示:
函数近似:以某种已知曲线(含参数)逼近未知函数。
现在:未知函数为 值函数,已知函数取线性函数
值函数近似
前面讨论的“状态”是有限的、离散的,即为有限状态机(如【西瓜书图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)
Px→x′a,Rx→x′a,π(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)
Px→x′a,Rx→x′a,π(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+1∣x0=x,a0=a]=Ex→x′γ0r0+1+Eπ[t=1∑+∞γtrt+1∣x1=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 ≈”,但由于我们是寻找最终用于程序中的式子,故直接用“ = = =”号,而将这种“近似”视为算法中的技巧。
以上两点在阅读时可结合上下文来理解。
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权