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