强化学习和ADP(下)

时间:2021-08-23
本文章向大家介绍强化学习和ADP(下),主要包括强化学习和ADP(下)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

强化学习在连续时间系统问题上求解相比于离散时间系统而言更加的困难,因此发展受到了延迟。下面讨论一下原因

考虑到一个连续时间的非线性动态规划系统

\[\dot{x}=f(x)+g(x)u(83) \]

目标导向的最优行为的概念是通过定义与反馈控制策略相关联的性能度量或成本函数来捕获的

\[V^\mu(x(t))=\int_{t}^{\infin}r(x(\tau),u(\tau))d\tau(84) \]

其中性能度量\(r(x,u)=Q(x)+u^TRu\)\(Q(x)\)是正定的,也就是对于所有的\(x\)不为零,则\(Q(x)>0\),并且当\(x=0\)时,\(Q(x=0)\)\(R\in R^{m\times m}\)为正定对称矩阵。

如果一个策略是连续的,使系统稳定,并且具有有限的相关代价,则该策略被称为可容许策略。如果代价是平滑的,则等于无穷小(84)可以通过微分得到为非线性李雅普诺夫方程

\[0=r(x,\mu(x))+(\bigtriangledown V^\mu)^T(f(x)+g(x)\mu(x)),V^\mu(0)=0(85) \]

这是CT贝尔曼方程。它是基于CT哈密顿函数定义的

\[H(x,\mu(x),\bigtriangledown V^\mu)=r(x,\mu(x))+(\bigtriangledown V^\mu)^T(f(x)+g(x)\mu(x))(86) \]

比较CT Bellman哈密顿量(86)和DT哈密顿量(9),前者包含了整个系统动力学,而DT哈密顿量不包含。这意味着没有希望使用CT Bellman方程(85)作为强化学习的基础,除非完整的动力学是已知的。

Baird采用欧拉方法离散CT Bellman方程。

\[0=r(x,\mu(x))=(\bigtriangledown V^\mu)^T(f(x)+g(x)\mu(x))=r(x,\mu(x))+\dot{V}^\mu(87) \]

用欧拉方法将其离散化得到

\[0=r(x_k,u_k)+\frac{V^\mu(x_{k+1})-V^\mu(x_k)}{T}\\ \equiv \frac{r_S(x_k,u_k)}{T}+\frac{V^\mu(x_{k+1})-V^\mu(x_k)}{T}(88) \]

采样周期是\(T\),所以是\(t=kT\)。离散的采样效用是\(r_S(x_k,u_k)=r(x_k,u_k)T\),其中重要的是将CT效用乘以样本周期。

现在注意到离散CT Bellman方程(88)与DT Bellman方程(8)具有相同的形式。因此,刚才描述的所有强化学习方法都可以应用。基于此,Baird将优势学习定义为一种改进采样CT系统强化学习条件的方法。他指出,如果没有适当地离散,那么当T变小时,DT解决方案不会收敛到CT解决方案。

然而,这只是一个近似值。[Vrabie 2009]给出了CT强化学习的另一种精确方法。可以用间隔强化表来填写成本

\[V^\mu(x(t))=\int_{t}^{t+T}r(x(\tau),u(\tau))d\tau+V^\mu(x(t+T))(89) \]

对于任意的\(T>0\). 这正是DT Bellman方程(8)的形式。根据Bellman原理,最优值根据这种结构给出为

\[V^\star(x(t))=\min_{\bar{u}(t:t+T)}(\int_{t}^{t+T}r(x(\tau),u(\tau))d\tau+V^\star(x(t+T))) \]

其中\(\bar{u}(t:t+T)=(u(\mu):t\le \tau \le t+T)\),最优控制为:

\[\mu^\star(x(t))=\arg min_{\bar{u}(t:t+T)}(\int_{t}^{t+T}r(x(\tau),u(\tau))d\tau+V^\star(x(t+T))) \]

[Vrabie 2009]表明,非线性Lyapunov方程(85)与区间强化学习形式(89)完全等价。也就是说,两者的正定解都是策略\(u=\mu(x)\)的值(84)。

区间强化学习形式为CT系统的Bellman方程,作为不动点方程。因此,可以将CT系统的时间差误差定义为

\[e(t:t+T)=\int_{t}^{t+T}r(x(\tau),u(\tau))d\tau+V^\mu(x(t+T))-V^\mu(x(t))(90) \]

这并不涉及系统动力学。

目前,CT系统的策略迭代和价值迭代的制定已成为当务之急。

(1) CT 策略迭代算法

  • 初始化:选择一个可行的控制策略\(\mu^{(0)}(x)\)
  • 策略苹果:求解\(V^{\mu^{(i)}}(x(t))\)
\[V^{\mu^{(i)}}(x(t))=\int_{t}^{t+T}r(x(s),\mu^{(i)}(x(s)))ds+V^{\mu^{(i)}}(x(t+T)),V^{\mu^{(i)}}(0)=0(91) \]
  • 策略改进:获取一个改进策略
\[\mu^{(i+1)}=\arg min_u[H(x,u,\bigtriangledown V_x^{\mu^{(i)}})] (92) \]

明确的是

\[\mu^{(i+1)}(x)=-\frac{1}{2}R^{-1}g^T(x) \bigtriangledown V_x^{\mu^{(i)}}(93) \]

(2) CT 价值迭代算法

  • 初始化:选择一个控制策略\(\mu^{(0)}(x)\),不要求可行性
  • 策略苹果:求解\(V^{\mu^{(i)}}(x(t))\)
\[V^{\mu^{(i)}}(x(t))=\int_{t}^{t+T}r(x(s),\mu^{(i)}(x(s)))ds+V^{\mu^{(i-1)}}(x(t+T)),V^{\mu^{(i)}}(0)=0(94) \]
  • 策略改进:获取一个改进策略
\[\mu^{(i+1)}=\arg min_u[H(x,u,\bigtriangledown V_x^{\mu^{(i)}})] (95) \]

明确的是

\[\mu^{(i+1)}(x)=-\frac{1}{2}R^{-1}g^T(x) \bigtriangledown V_x^{\mu^{(i)}}(96) \]

注意,这两种算法都不需要关于内部系统动力学函数\(f\)的知识。也就是说,它们为部分未知的系统工作。

这两种算法都可以使用上述的强化学习技术在线实现。每一次迭代的时间增量为周期\(T\)。每一次迭代的测量数据为\((x(t),x(t+T),\rho(t:t+T))\)

\[\rho(t:t+T)=\int_{t}^{t+T}r(x(\tau),u(\tau))d\tau \]

每次迭代时,强化学习的时间区间\(T\)不一定相同。\(T\)可以根据从观察中获得有意义的信息所需的时间而改变。

在LQR的情况下,Policy Iteration与求解CT Riccati方程的Kleinman算法完全相同。然而,这些RL方法允许只使用关于\(g(\cdot)\)的信息(例如\(B\)矩阵)来实现算法。关于\(f(\cdot)\)(矩阵)的信息是不需要的。即,CT PI在不知道系统内部动力学的情况下,利用沿系统轨迹测量的数据,在线求解CT Riccati方程。

原文地址:https://www.cnblogs.com/kzin/p/15175390.html