策略迭代
策略迭代稳定性证明
单调不增的证明
迭代过程
取一个随机容许初始控制律
v
0
(
x
k
)
v_0(x_k)
v0(xk)
V
0
(
x
k
)
=
U
(
x
k
,
v
0
(
x
k
)
)
+
V
0
(
x
k
+
1
)
V_0(x_k)=U(x_k,v_0(x_k))+V_0(x_{k+1})
V0(xk)=U(xk,v0(xk))+V0(xk+1)
在更新控制律
v
1
(
x
k
)
=
arg
min
u
k
{
U
(
x
k
,
u
k
)
+
V
0
(
x
k
+
1
)
}
v_1(x_k)=\arg \min_{u_k}\{{U(x_k,u_k)+V_0(x_{k+1})}\}
v1(xk)=argukmin{U(xk,uk)+V0(xk+1)}
对任意的
i
=
1
,
2
,
3
,
⋯
i=1,2,3,\cdots
i=1,2,3,⋯
V
i
(
x
k
)
=
U
(
x
k
,
v
i
(
x
k
)
)
+
V
i
(
x
k
+
1
)
v
i
+
1
(
x
k
)
=
arg
min
u
k
{
U
(
x
k
,
u
k
)
+
V
i
(
x
k
+
1
)
}
V_i(x_k)=U(x_k,v_i(x_k))+V_i(x_{k+1}) \\ v_{i+1}(x_k)=\arg \min_{u_k}\{U(x_k,u_k)+V_i(x_{k+1})\} \\
Vi(xk)=U(xk,vi(xk))+Vi(xk+1)vi+1(xk)=argukmin{U(xk,uk)+Vi(xk+1)}
结论:
V
i
+
1
(
x
k
)
≤
V
i
(
x
k
)
V_{i+1}(x_k)\leq V_i(x_k)
Vi+1(xk)≤Vi(xk)
证明:
定义一个代价函数
Γ
i
+
1
(
x
k
)
=
U
(
x
k
,
v
i
+
1
(
x
k
)
)
+
V
i
(
x
k
+
1
)
\Gamma_{i+1}(x_k)=U(x_k,v_{i+1}(x_k))+V_i(x_{k+1})
Γi+1(xk)=U(xk,vi+1(xk))+Vi(xk+1)
由上面的定义可以看出
v
i
+
1
v_{i+1}
vi+1是
U
(
x
k
,
v
i
(
x
k
)
)
+
V
i
(
x
k
+
1
)
U(x_k,v_i(x_k))+V_i(x_{k+1})
U(xk,vi(xk))+Vi(xk+1)的最小取值,因此
Γ
i
+
1
(
x
k
)
≤
V
i
(
x
k
)
\Gamma_{i+1}(x_k) \leq V_i(x_k)
Γi+1(xk)≤Vi(xk)
下面由数学归纳法进行证明
第一步:
我们知道
v
i
+
1
v_{i+1}
vi+1是稳定的控制律,因此当
∀
k
→
∞
\forall k\rightarrow\infty
∀k→∞时
x
k
→
0
x_k\rightarrow0
xk→0。令
x
N
=
0
x_N=0
xN=0,
N
→
∞
N\rightarrow\infty
N→∞。由此可以得
V
i
+
1
(
x
N
)
=
Γ
i
+
1
(
x
N
)
=
V
i
(
x
N
)
=
0
V_{i+1}(x_N)=\Gamma_{i+1}(x_N)=V_i(x_N)=0
Vi+1(xN)=Γi+1(xN)=Vi(xN)=0
第二步:
令
k
=
N
−
1
k=N-1
k=N−1,可得
v
i
+
1
(
x
N
−
1
)
=
arg
min
u
N
−
1
{
U
(
x
k
,
u
N
−
1
)
+
V
i
(
x
N
)
}
=
arg
min
u
N
−
1
{
U
(
x
k
,
u
N
−
1
)
+
V
i
+
1
(
x
N
)
}
\begin{aligned} v_{i+1}(x_{N-1})&=\arg \min_{u_{N-1}}\{U(x_k,u_{N-1})+V_i(x_{N})\} \\ &=\arg \min_{u_{N-1}}\{U(x_k,u_{N-1})+V_{i+1}(x_{N})\} \end{aligned}
vi+1(xN−1)=arguN−1min{U(xk,uN−1)+Vi(xN)}=arguN−1min{U(xk,uN−1)+Vi+1(xN)}
V i + 1 ( x N − 1 ) = U ( x N − 1 , v i + 1 ( x N − 1 ) ) + V i + 1 ( x N ) = min u N − 1 { U ( x N − 1 , u N − 1 ) + V i ( x N ) } ≤ U ( x N − 1 , v i ( x N − 1 ) ) + V i ( x N ) = V i ( x N − 1 ) \begin{aligned} V_{i+1}(x_{N-1})&=U(x_{N-1},v_{i+1}(x_{N-1}))+V_{i+1}(x_{N}) \\ &=\min_{u_{N-1}}\{U(x_{N-1},u_{N-1})+V_i(x_N)\} \\ &\leq U(x_{N-1},v_{i}(x_{N-1}))+V_i(x_N) \\ &=V_i(x_{N-1}) \end{aligned} Vi+1(xN−1)=U(xN−1,vi+1(xN−1))+Vi+1(xN)=uN−1min{U(xN−1,uN−1)+Vi(xN)}≤U(xN−1,vi(xN−1))+Vi(xN)=Vi(xN−1)
假设上述条件所有的
k
=
l
+
1
k=l+1
k=l+1,
l
=
0
,
1
,
2
,
⋯
l=0,1,2,\cdots
l=0,1,2,⋯,当
k
=
l
k=l
k=l 时我们可得
V
i
+
1
(
x
l
)
=
U
(
x
l
,
v
i
+
1
(
x
l
)
)
+
V
i
+
1
(
x
l
+
1
)
≤
U
(
x
l
,
v
i
+
1
(
x
l
)
)
+
V
i
(
x
l
+
1
)
(
这
一
步
是
由
上
面
的
假
设
,
V
i
+
1
(
x
N
−
1
≤
V
i
(
x
N
−
1
)
)
得
到
的
)
=
Γ
i
+
1
(
x
l
)
≤
V
i
(
x
l
)
\begin{aligned} V_{i+1}(x_l)&=U(x_l,v_{i+1}(x_l))+V_{i+1}(x_{l+1}) \\ &\leq U(x_l,v_{i+1}(x_l))+V_i(x_{l+1}) (这一步是由上面的假设,V_{i+1}(x_{N-1}\leq V_i(x_{N-1}))得到的) \\ &=\Gamma_{i+1}(x_l) \\ &\leq V_i(x_l) \end{aligned}
Vi+1(xl)=U(xl,vi+1(xl))+Vi+1(xl+1)≤U(xl,vi+1(xl))+Vi(xl+1)(这一步是由上面的假设,Vi+1(xN−1≤Vi(xN−1))得到的)=Γi+1(xl)≤Vi(xl)
成立。
数学归纳法证明完毕。
因此可以得出,值函数在迭代过程中是单调不减的。
值函数收敛到最优值
结论:
lim
i
→
∞
V
i
(
x
k
)
=
J
∗
(
x
k
)
\lim_{i\rightarrow\infty}V_i(x_k)=J^*(x_k)
i→∞limVi(xk)=J∗(xk)
分三步进行证明
第一步
证明当到达无穷时,值函数满足HJB方程。
V
∞
(
x
k
)
=
lim
i
→
∞
V
i
(
x
k
)
V_{\infty}(x_k)=\lim_{i\rightarrow\infty}V_i(x_k)
V∞(xk)=i→∞limVi(xk)
Γ i + 1 ( x k ) = U ( x k , v i + 1 ( x k ) ) + V i ( x k + 1 ) = min u k { U ( x k , u k ) + V i ( x k + 1 ) } \begin{aligned} \Gamma_{i+1}(x_k)&=U(x_k,v_{i+1}(x_k))+V_i(x_{k+1}) \\ &=\min_{u_k}\{U(x_k,u_k)+V_i(x_{k+1})\} \end{aligned} Γi+1(xk)=U(xk,vi+1(xk))+Vi(xk+1)=ukmin{U(xk,uk)+Vi(xk+1)}
刚刚证明了值函数是单调不增有下界的函数其中 V ∞ ( x k ) V_{\infty}(x_k) V∞(xk) 就是下界。
可得*(这里不太清楚是怎么证明出结论的,除非提前认定
V
∞
(
x
k
)
V_{\infty}(x_k)
V∞(xk) 就是下界,不然
V
i
(
x
k
)
≤
V
i
+
1
(
x
k
)
V_i(x_k)\leq V_{i+1}(x_k)
Vi(xk)≤Vi+1(xk) 很难说明,因为上述证明这是不增的。)*
V
∞
(
x
k
)
=
lim
i
→
∞
V
i
(
x
k
)
≤
lim
i
→
∞
V
i
+
1
(
x
k
)
≤
lim
i
→
∞
Γ
i
+
1
(
x
k
)
≤
lim
i
→
∞
min
u
k
{
U
(
x
k
,
u
k
)
+
V
i
(
x
k
+
1
)
}
≤
min
u
k
{
U
(
x
k
,
u
k
)
+
V
∞
(
x
k
+
1
)
}
\begin{aligned} V_{\infty}(x_k)&=\lim_{i\rightarrow\infty}V_i(x_k) \\ &\leq \lim_{i\rightarrow\infty}V_{i+1}(x_k) \\ &\leq \lim_{i\rightarrow\infty}\Gamma_{i+1}(x_k) \\ &\leq \lim_{i\rightarrow\infty}\min_{u_k}\{U(x_k,u_k)+V_i(x_{k+1})\}\\ &\leq \min_{u_k}\{U(x_k,u_k)+V_{\infty}(x_{k+1})\} \end{aligned}
V∞(xk)=i→∞limVi(xk)≤i→∞limVi+1(xk)≤i→∞limΓi+1(xk)≤i→∞limukmin{U(xk,uk)+Vi(xk+1)}≤ukmin{U(xk,uk)+V∞(xk+1)}
任意
ε
>
0
\varepsilon>0
ε>0 ,存在一个正整数
p
p
p
V
p
(
x
k
)
−
ε
≤
V
∞
(
x
k
)
≤
V
p
(
x
k
)
V_p(x_k)-\varepsilon \leq V_{\infty}(x_k)\leq V_p(x_k)
Vp(xk)−ε≤V∞(xk)≤Vp(xk)
因此
V
∞
(
x
k
)
≥
U
(
x
k
,
v
p
(
x
k
)
)
+
V
p
(
x
p
+
1
)
−
ε
≥
U
(
x
k
,
v
p
(
x
k
)
)
+
V
∞
(
x
p
+
1
)
−
ε
≥
min
u
k
{
U
(
x
k
,
u
k
)
+
V
∞
(
x
k
+
1
)
}
−
ε
\begin{aligned} V_{\infty}(x_k) &\geq U(x_k,v_p(x_k))+V_p(x_{p+1})-\varepsilon \\ &\geq U(x_k,v_p(x_k))+V_{\infty}(x_{p+1})-\varepsilon \\ &\geq \min_{u_k}\{U(x_k,u_k)+V_{\infty}(x_{k+1})\}-\varepsilon \end{aligned}
V∞(xk)≥U(xk,vp(xk))+Vp(xp+1)−ε≥U(xk,vp(xk))+V∞(xp+1)−ε≥ukmin{U(xk,uk)+V∞(xk+1)}−ε
由于
ε
\varepsilon
ε 是任意的,可得
V
∞
(
x
k
)
≥
min
u
k
{
U
(
x
k
,
u
k
)
+
V
∞
(
x
k
+
1
)
}
V_{\infty}(x_k) \geq \min_{u_k}\{U(x_k,u_k)+V_{\infty}(x_{k+1})\}
V∞(xk)≥ukmin{U(xk,uk)+V∞(xk+1)}
由此可以得出
V
∞
(
x
k
)
=
min
u
k
{
U
(
x
k
,
u
k
)
+
V
∞
(
x
k
+
1
)
}
V_{\infty}(x_k) = \min_{u_k}\{U(x_k,u_k)+V_{\infty}(x_{k+1})\}
V∞(xk)=ukmin{U(xk,uk)+V∞(xk+1)}
上述的推导核心就是**
V
i
(
x
k
)
V_i(x_k)
Vi(xk)有下界**。
定义一个新的代价函数
P
(
x
k
)
P(x_k)
P(xk),假设
μ
(
x
k
)
\mu(x_k)
μ(xk) 为容许控制律。
P
(
x
k
)
=
U
(
x
k
,
μ
(
x
k
)
)
+
P
(
x
k
+
1
)
P(x_k)=U(x_k,\mu(x_k))+P(x_{k+1})
P(xk)=U(xk,μ(xk))+P(xk+1)
第二步
证明 V ∞ ( x k ) ≤ P ( x k ) V_{\infty}(x_k)\leq P(x_k) V∞(xk)≤P(xk),通俗讲就是证明 V ∞ ( x k ) V_{\infty}(x_k) V∞(xk)就是 J ∗ J^* J∗ 的下界,因为 V i ( x k ) V_i(x_k) Vi(xk)肯定大于最优代价函数,夹逼定理就可以证明结论。
通过数学归纳法进行证明:
第一步:
因为
μ
(
x
k
)
\mu(x_k)
μ(xk) 是容许控制,当
k
→
∞
k\rightarrow\infty
k→∞ 时
x
k
→
0
x_k\rightarrow0
xk→0。
P
(
x
k
)
=
lim
N
→
∞
{
U
(
x
k
,
μ
(
x
k
)
)
+
U
(
x
k
+
1
,
μ
(
x
k
+
1
)
)
+
⋯
+
U
(
x
N
−
1
,
μ
(
x
N
−
1
)
)
+
P
(
x
N
)
}
P(x_k)=\lim_{N\rightarrow \infty}\{U(x_k,\mu(x_k))+U(x_{k+1},\mu(x_{k+1}))+\cdots+U(x_{N-1},\mu(x_{N-1}))+P(x_N)\}
P(xk)=N→∞lim{U(xk,μ(xk))+U(xk+1,μ(xk+1))+⋯+U(xN−1,μ(xN−1))+P(xN)}
V ∞ ( x k ) = lim N → ∞ { U ( x k , v ∞ ( x k ) ) + U ( x k + 1 , v ∞ ( x k + 1 ) ) + ⋯ + U ( x N − 1 , v ∞ ( x N − 1 ) ) + V ∞ ( x N ) } = lim N → ∞ { min u ( k ) { U ( x k , u k ) + min u k + 1 { U ( x k + 1 , u k + 1 ) + ⋯ + min u N − 1 { U ( x N − 1 , u N − 1 ) + V ∞ ( x N ) } } } } \begin{aligned} V_{\infty}(x_k)&=\lim_{N\rightarrow \infty}\{U(x_k,v_{\infty}(x_k))+U(x_{k+1},v_{\infty}(x_{k+1}))+\cdots+U(x_{N-1},v_{\infty}(x_{N-1}))+V_{\infty}(x_N)\} \\ &=\lim_{N\rightarrow \infty}\{\min_{u(k)}\{U(x_k,u_k)+\min_{u_{k+1}}\{U(x_{k+1},u_{k+1})+\cdots+\min_{u_{N-1}}\{U(x_{N-1},u_{N-1})+V_{\infty}(x_N)\}\}\}\} \end{aligned} V∞(xk)=N→∞lim{U(xk,v∞(xk))+U(xk+1,v∞(xk+1))+⋯+U(xN−1,v∞(xN−1))+V∞(xN)}=N→∞lim{u(k)min{U(xk,uk)+uk+1min{U(xk+1,uk+1)+⋯+uN−1min{U(xN−1,uN−1)+V∞(xN)}}}}
我们知道当
N
→
∞
N\rightarrow\infty
N→∞ 时
V
∞
(
x
N
)
=
P
(
x
N
)
=
0
V_{\infty}(x_N)=P(x_N)=0
V∞(xN)=P(xN)=0。对于
N
−
1
N-1
N−1 的情况
P
(
x
N
−
1
)
=
U
(
x
N
−
1
,
μ
(
x
N
−
1
)
)
+
P
(
x
N
)
≥
min
u
N
−
1
{
U
(
x
N
−
1
,
u
N
−
1
)
+
P
(
x
N
)
}
=
min
u
N
−
1
{
U
(
x
N
−
1
,
u
N
−
1
)
+
V
∞
(
x
N
)
}
=
V
∞
(
x
N
−
1
)
\begin{aligned} P(x_{N-1})&=U(x_{N-1},\mu(x_{N-1}))+P(x_N) \\ &\geq \min_{u_{N-1}}\{U(x_{N-1},u_{N-1})+P(x_N)\} \\ &=\min_{u_{N-1}}\{U(x_{N-1},u_{N-1})+V_{\infty}(x_N)\} \\ &=V_{\infty}(x_{N-1}) \end{aligned}
P(xN−1)=U(xN−1,μ(xN−1))+P(xN)≥uN−1min{U(xN−1,uN−1)+P(xN)}=uN−1min{U(xN−1,uN−1)+V∞(xN)}=V∞(xN−1)
第二步:
假设上述对于
k
=
l
+
1
k=l+1
k=l+1,
l
=
0
,
1
,
2
,
⋯
l=0,1,2,\cdots
l=0,1,2,⋯ 都成立即
P
(
x
l
)
≥
V
∞
(
x
l
)
P(x_{l})\geq V_{\infty}(x_{l})
P(xl)≥V∞(xl) ,当
k
=
l
k=l
k=l时
P
(
x
l
)
=
U
(
x
l
,
μ
(
x
l
)
)
+
P
(
x
l
+
1
)
≥
min
u
l
U
(
x
l
,
u
l
)
+
P
(
x
l
+
1
)
≥
min
u
l
U
(
x
l
,
u
l
)
+
V
∞
(
x
l
+
1
)
=
V
∞
(
x
l
)
\begin{aligned} P(x_l)&=U(x_l,\mu(x_l))+P(x_{l+1}) \\ &\geq\min_{u_l}U(x_l,u_l)+P(x_{l+1}) \\ &\geq\min_{u_l}U(x_l,u_l)+V_{\infty}(x_{l+1}) \\ &=V_{\infty}(x_{l}) \end{aligned}
P(xl)=U(xl,μ(xl))+P(xl+1)≥ulminU(xl,ul)+P(xl+1)≥ulminU(xl,ul)+V∞(xl+1)=V∞(xl)
因此对于任意
∀
x
k
\forall x_k
∀xk,
k
=
0
,
1
,
2
,
⋯
k=0,1,2,\cdots
k=0,1,2,⋯
V
∞
(
x
k
)
≤
P
(
x
k
)
V_{\infty}(x_{k})\leq P(x_k)
V∞(xk)≤P(xk)
数学归纳法证明完毕。
第三步
证明下界就是最优值
由对值函数的迭代定义知道,值函数是恒大于等于最优值的
V
i
(
x
k
)
≥
J
∗
(
x
k
)
V_i(x_k)\geq J^*(x_k)
Vi(xk)≥J∗(xk)
当
i
→
∞
i\rightarrow\infty
i→∞
V
∞
(
x
k
)
≥
J
∗
(
x
k
)
V_{\infty}(x_k)\geq J^*(x_k)
V∞(xk)≥J∗(xk)
值函数
P
(
x
k
)
P(x_k)
P(xk)取最优控制律,则就是最优代价函数
J
∗
(
x
k
)
J^*(x_k)
J∗(xk)。
V
∞
(
x
k
)
≤
J
∗
(
x
k
)
V_{\infty}(x_k)\leq J^*(x_k)
V∞(xk)≤J∗(xk)
因此
V
∞
(
x
k
)
≤
J
∗
(
x
k
)
≤
V
∞
(
x
k
)
V
∞
(
x
k
)
=
J
∗
(
x
k
)
V_{\infty}(x_k)\leq J^*(x_k)\leq V_{\infty}(x_k) \\ V_{\infty}(x_k) = J^*(x_k)
V∞(xk)≤J∗(xk)≤V∞(xk)V∞(xk)=J∗(xk)
证闭。
评价网络训练过程中目标函数的获取
在实际的迭代过程中我们是用一个神经网络去近似一个代价函数
V
i
(
x
k
)
V_i(x_k)
Vi(xk)。评价网络写成如下形式:
V
i
j
(
ω
,
x
k
)
V^j_i(\omega,x_k)
Vij(ω,xk)
输入的是系统的状态向量,输出系统的控制量。其中参数i表示当前迭代的次数,j代表的是评价网络在本次迭代中拟合代价函数的迭代次数。网络训练的代价函数
KaTeX parse error: Expected '}', got '_' at position 12: \text{loss_̲V}=V^j_i(\omega…
其中的目标在迭代的过程中可以通过迭代计算进行近似获取。
V
i
(
x
k
)
=
∑
j
=
0
N
−
1
U
(
x
k
+
j
,
v
i
(
x
k
+
j
)
)
+
V
i
(
x
k
+
N
)
V_i(x_k)=\sum_{j=0}^{N-1}U(x_{k+j},v_i(x_{k+j}))+V_i(x_{k+N})
Vi(xk)=j=0∑N−1U(xk+j,vi(xk+j))+Vi(xk+N)
由于
v
i
(
x
k
)
v_i(x_k)
vi(xk)是容许控制,可知当
N
→
∞
N\rightarrow\infty
N→∞时,
V
i
(
x
k
+
N
)
→
0
V_i(x_{k+N})\rightarrow 0
Vi(xk+N)→0。因此我们取足够大的
N
N
N
V
i
(
x
k
)
=
∑
j
=
0
N
−
1
U
(
x
k
+
j
,
v
i
(
x
k
+
j
)
)
V_i(x_k)=\sum_{j=0}^{N-1}U(x_{k+j},v_i(x_{k+j}))
Vi(xk)=j=0∑N−1U(xk+j,vi(xk+j))
通过求和计算,就能够获得相对精确的目标函数。
总结
策略迭代可以保证迭代过程中的控制一直是稳定的控制律**(这个证明还没看出来)**,这是策略迭代比值迭代有更高可用性的地方,但是策略迭代需要保证初始的控制律需要稳定的,因此刚开始需要大量的试初值获取一个稳定的初始控制律,这是一件比较烦人的事情。而值迭代只需要给定一个正定的初值,就能够迭代到收敛,增加了自适应动态规划的可用性。
实验中的一些思考
在实际的训练过程中,因为使用的是用神经网络对评价函数和控制函数进行拟合,必然会存在误差,因此会出现理论推导不符的现象。例如,在初值为零的值迭代问题,我们训练的控制网络理论上是当前值函数的最优控制,可是实际中是存在误差的,因此可以看到,当快要收敛时值函数并不是单调不减,而是会出现震荡收敛的现象。因为迭代过程中控制网络不是最优,因此当前控制的实际值函数必然大于当前的估计值函数,因此迭代过程就变成了,策略迭代问题,认为值函数是最优的去寻找当前最优的控制策略。
策略迭代和值迭代在迭代的中间过程基本是相同的,因此在中间过程中一直是相互切换的,可能比较重要的区分点就是初值是取的值函数还是策略函数。我认为这两种迭代,**值迭代默认为每次选取的控制是最优的,而策略迭代默认为值函数是最优值。**所以当初值为零时,值迭代的值函数是不减的,而策略迭代每次初始选取的控制肯定不是最优,因此值函数肯定大于最优值函数,因此此时的值函数是不增的。