学习笔记:强化学习与最优控制(Chapter 2)

Approximation in Value Space


如我们之前所说,最优控制问题虽然可以用动态规划来解决,但是要求所有状态 x k x_k xk的optimal cost-to-go需要花费很长的时间,所以有着各种各样的approximation方法。

1. 综述

在动态规划求解最优控制的过程中,有两种估计方法:

  1. Approximation in Value Space:
    又可以分为三种方法:
  • 直接估计cost function即 J ~ k \tilde{J}_k J~k来得到策略:我们用 J ~ k \tilde{J}_k J~k来表示对optimal cost function J k ∗ J_k^* Jk的估计,通过优化下述式子可以得到suboptimal的策略 μ ~ k \tilde{\mu}_k μ~k
    μ ~ k ( x k ) ∈ arg ⁡ min ⁡ u k ∈ U k ( x k ) E [ g k ( x k , u k , w k ) + J ~ k + 1 ( f k ( x k , u k , w k ) ) ] (1) \tilde{\mu}_k(x_k)\in\arg\min\limits_{u_k\in U_k(x_k)}\mathbb{E}[g_k(x_k,u_k,w_k)+\tilde{J}_{k+1}(f_k(x_k,u_k,w_k))]\tag{1} μ~k(xk)argukUk(xk)minE[gk(xk,uk,wk)+J~k+1(fk(xk,uk,wk))](1)
  • 通过估计Q-factor来得到策略:
    式子(1)的右半部分可以看做是取一个状态-控制对 ( x k , u k ) (x_k,u_k) (xk,uk)使得对应的Q-factor最小,因此我们可以估计每个状态-控制对的Q-factor:
    Q ~ k ( x k , u k ) = E [ g k ( x k , u k , w k ) + J ~ k + 1 ( f k , x k , u k , w k ) ] \tilde{Q}_k(x_k,u_k)=\mathbb{E}[g_k(x_k,u_k,w_k)+\tilde{J}_{k+1}(f_k,x_k,u_k,w_k)] Q~k(xk,uk)=E[gk(xk,uk,wk)+J~k+1(fk,xk,uk,wk)]
    虽然式子中看似仍然包括对 J J J的估计,和第一种方法没什么区别,但是真实情况下有估计方法可以直接估计 Q Q Q,省掉了对 J ~ \tilde{J} J~的计算过程
  • Multi-step lookahead:之前得到策略的方法(如式子(1))相当于是one-step lookahead,即探索一步之内的所有可能即 ( x k , u k ) (x_k,u_k) (xk,uk),剩下的步子代价和用 J ~ \tilde{J} J~来估计。我们也可以使用multi-step lookahead即探索多步的所有可能 ( x k , u k , x k + 1 , u k + 1 , …   ) (x_k,u_k,x_{k+1},u_{k+1},\dots) (xk,uk,xk+1,uk+1,),由此得到一个当前的最优控制序列 u k , u k + 1 , … u_k,u_{k+1},\dots uk,uk+1,,但我们只取 u k u_k uk当做此时的控制,下一步的控制要再使用一次minimization过程得到。例如two-step lookahead,式子(1)中的策略的得到方法变为:
    μ ~ k ( x k ) ∈ arg ⁡ min ⁡ u k ∈ U k ( x k ) E { g k ( x k , u k , w k ) + min ⁡ u k + 1 ∈ U k + 1 ( x k + 1 ) E [ g k + 1 ( x k + 1 , u k + 1 . w k + 1 ) + J ~ k + 2 ( f k + 1 ( x k + 1 , u k + 1 , w k + 1 ) ) ] } (2) \tag{2}\tilde{\mu}_k(x_k)\in\arg\min\limits_{u_k\in U_k(x_k)}\mathbb{E}\{g_k(x_k,u_k,w_k)+\min\limits_{u_{k+1}\in U_{k+1}(x_{k+1})}\mathbb{E}[g_{k+1}(x_{k+1},u_{k+1}.w_{k+1})+\tilde{J}_{k+2}(f_{k+1}(x_{k+1},u_{k+1},w_{k+1}))]\} μ~k(xk)argukUk(xk)minE{gk(xk,uk,wk)+uk+1Uk+1(xk+1)minE[gk+1(xk+1,uk+1.wk+1)+J~k+2(fk+1(xk+1,uk+1,wk+1))]}(2)。实际上,一个 l l l-step lookahead算法等价于一个 l − 1 l-1 l1步的动态规划问题+终止代价为 J ~ k + l \tilde{J}_{k+l} J~k+l
  1. Approximation in Policy Space:在一定范围的策略中挑选最优策略,通常这个策略是由某个或某类参数决定的,即 μ k ( x k , r k ) \mu_k(x_k,r_k) μk(xk,rk) r k r_k rk表示这个参数(例如神经网络)。
    使用参数直接得到policy的好处在于不用进行lookahead minimization操作,节省了很多时间

2. 基于Value Space的估计方法

2.1 用估计值 J ~ k \tilde{J}_k J~k来代替 J ~ k \tilde{J}_k J~k

代价函数的估计 J ~ k \tilde{J}_k J~k有四种方法

2.1.1 problem approximation(问题的分解和简化):
  • 通过强制分解来简化问题结构,适用于当问题的系统是由许多子系统、许多代价函数、许多约束条件耦合在一起的情况。
    当一个问题包含多个子系统时,可以一次只优化一个子系统。例如, k k k时刻系统的控制有 n n n个组成成分,即 u k = { u k 1 , … , u k n } u_k=\{u_k^1,\dots,u_k^n\} uk={uk1,,ukn},其中 u k i u_k^i uki代表第 i i i个子系统的控制。当我们到达状态 x k x_k xk时,我们可以先优化第一个子系统的控制序列 u k 1 , … , u N − 1 1 u_k^1,\dots,u_{N-1}^1 uk1,,uN11,保持其他子系统的控制序列不变。再考虑优化子二个子系统的控制序列 u k 2 , … , u N − 1 2 u_k^2,\dots,u_{N-1}^2 uk2,,uN12。比较类似于坐标轴下降法。
  • 简化问题的概率结构
    certainty equivalent controller方法替换随机变量为某些固定的值,例如将随机干扰 w k w_k wk替换为 w ~ k ( x k , u k ) = E [ w k ∣ x k , u k ] \tilde{w}_k(x_k,u_k)=\mathbb{E}[w_k|x_k,u_k] w~k(xk,uk)=E[wkxk,uk],即求解
    min ⁡ u k , x i + 1 = f i ( x i , u i , w ~ i ( x i , u i ) ) [ g N ( x N ) + ∑ i = k N − 1 g i ( x i , u i , w ~ i ( x i , u i ) ) ] \min\limits_{u_k,x_{i+1}=f_i(x_i,u_i,\tilde{w}_i(x_i,u_i))}[g_N(x_N)+\sum\limits_{i=k}^{N-1}g_i(x_i,u_i,\tilde{w}_i(x_i,u_i))] uk,xi+1=fi(xi,ui,w~i(xi,ui))min[gN(xN)+i=kN1gi(xi,ui,w~i(xi,ui))]
    但是上述方法仍然需要求解一个 N N N步deterministic动态规划问题的最优解,我们可以参考one-step lookahead的方法,只探索一步所有可能的控制,用启发式算法走接下来的所有步并以其代价 H k + 1 ( x k + 1 ) H_{k+1}(x_{k+1}) Hk+1(xk+1)作为optimal cost-to-go的估计值,即:
    min ⁡ u k [ g k ( x k , u k , w ~ k ( x k , u k ) ) + H k + 1 ( x k + 1 ) ] \min\limits_{u_k}[g_k(x_k,u_k,\tilde{w}_k(x_k,u_k))+H_{k+1}(x_{k+1})] ukmin[gk(xk,uk,w~k(xk,uk))+Hk+1(xk+1)]
2.1.2 on-line approximate optimization(on-line的估计方法):

在估计真实的代价函数 J ∗ ( x ) J^*(x) J(x)时(如式子(2)),利用suboptimal或者启发式的算法来代替计算中的结束代价(terminal cost)即 J ~ k + 2 \tilde{J}_{k+2} J~k+2而非先求解子问题来得到这个结束代价。用来代替的方法有:rollout算法、model predictive control

  • Rollout:rollout算法最本质的目标是为了提升策略,即从一个基础策略(base policy)出发,使用multi-step lookahead minimization的方法并以启发式的结果作为optimal cost-to-go的估计值,来提升基础策略,以 l l l-step lookahead为例:
    min ⁡ u k , μ k + 1 , … , μ k + l − 1 E [ g k ( x k , u k , w k ) + ∑ m = k + 1 k + l − 1 g m ( x m , μ m ( x m ) , w m ) + J ~ k + l ( x k + l ) ] \min\limits_{u_k,\mu_{k+1},\dots,\mu_{k+l-1}}\mathbb{E}[g_k(x_k,u_k,w_k)+\sum\limits_{m=k+1}^{k+l-1}g_m(x_m,\mu_m(x_m),w_m)+\tilde{J}_{k+l}(x_{k+l})] uk,μk+1,,μk+l1minE[gk(xk,uk,wk)+m=k+1k+l1gm(xm,μm(xm),wm)+J~k+l(xk+l)]
    对于前 l l l步我们探索每一种可能,之后的步数带来的代价用 J ~ k + l \tilde{J}_{k+l} J~k+l来表示,它可以表示为用base policy跑有限 m m m步的代价加上terminal cost J ~ k + l + m \tilde{J}_{k+l+m} J~k+l+m。一个好的base policy很重要,但是实验证明即便我们从一个很差的基础策略出发,我们也能够用rollout方法得到很好的表现结果,尤其是当multi-step lookahead用很大的 l l l时。
    和策略迭代的关系:rollout实际上就是一次policy iteration,而policy iteration本质上是无穷多次rollout。
    性能评估:首先我们介绍两个名词,sequentially consistency和sequential improvement。一个策略是sequentially consistent如果,基于这个策略,从状态 x k x_k xk开始产生的状态序列为 x k , x k + 1 , … , x N x_k,x_{k+1},\dots,x_N xk,xk+1,,xN并且从下一个状态 x k + 1 x_{k+1} xk+1产生的状态序列也为 x k + 1 , … , x N x_{k+1},\dots,x_N xk+1,,xN 。一个基础策略是sequentially improving的,如果对于任意状态 x k x_k xk,我们有 min ⁡ u k ∈ U k ( x k ) [ g k ( x k , u k ) + H k + 1 ( f k ( x k , u k ) ) ] ≤ H k ( x k ) \min\limits_{u_k\in U_k(x_k)}[g_k(x_k,u_k)+H_{k+1}(f_k(x_k,u_k))]\le H_k(x_k) ukUk(xk)min[gk(xk,uk)+Hk+1(fk(xk,uk))]Hk(xk),其中 H k ( x k ) H_k(x_k) Hk(xk)为用基础策略得到的代价和。
    我们有如下结论:
    从一个sequentially consistent的基础策略出发,用rollout算法得到的策略的代价和不会比原策略高;从一个sequentially improving的策略出发,通过rollout得到的策略也不会比原策略差
    Fortified Rollout Algorithm:从状态 x 0 x_0 x0开始,每当到达一个状态 x k x_k xk,保存轨迹 P ˉ k = { x 0 , u 0 , … , u k − 1 , x k } \bar{P}_k=\{x_0,u_0,\dots,u_{k-1},x_k\} Pˉk={x0,u0,,uk1,xk},称为长久轨迹。同时我们在之前也保存了不确定的轨迹 T ˉ k = { x k , u k ˉ , x ˉ k + 1 , u ˉ k + 1 , … , u ˉ N − 1 , x ˉ N } \bar{T}_k=\{x_k,\bar{u_k},\bar{x}_{k+1},\bar{u}_{k+1},\dots,\bar{u}_{N-1},\bar{x}_N\} Tˉk={xk,ukˉ,xˉk+1,uˉk+1,,uˉN1,xˉN}和对应的代价 C ( T ˉ k ) = g k ( x k , u ˉ k ) + g k + 1 ( x ˉ k + 1 , u ˉ k + 1 ) + ⋯ + g N − 1 ( x ˉ N − 1 , u ˉ N − 1 ) + g N ( x ˉ N ) C(\bar{T}_k)=g_k(x_k,\bar{u}_k)+g_{k+1}(\bar{x}_{k+1},\bar{u}_{k+1})+\dots+g_{N-1}(\bar{x}_{N-1},\bar{u}_{N-1})+g_N(\bar{x}_N) C(Tˉk)=gk(xk,uˉk)+gk+1(xˉk+1,uˉk+1)++gN1(xˉN1,uˉN1)+gN(xˉN)。初始状态 T ˉ 0 \bar{T}_0 Tˉ0是由基础启发式策略从 x 0 x_0 x0产生的轨迹。接下来我们进行rollout算法去最小化 g k ( x k , u k ) + H k + 1 ( x k + 1 ) g_k(x_k,u_k)+H_{k+1}(x_{k+1}) gk(xk,uk)+Hk+1(xk+1),由此得到轨迹 T ~ k = { x k , u ~ k , x ~ k + 1 , u ~ k + 1 , … , u ~ N − 1 , x ~ N } \tilde{T}_k=\{x_k,\tilde{u}_k,\tilde{x}_{k+1},\tilde{u}_{k+1},\dots,\tilde{u}_{N-1},\tilde{x}_N\} T~k={xk,u~k,x~k+1,u~k+1,,u~N1,x~N}。如果 C ( T ˉ k ) > C ( T ~ k ) C(\bar{T}_k)>C(\tilde{T}_k) C(Tˉk)>C(T~k),那么我们使 T ˉ k = { x ~ k + 1 , u ~ k + 1 , … , u ~ N − 1 , x ~ N } \bar{T}_k=\{\tilde{x}_{k+1},\tilde{u}_{k+1},\dots,\tilde{u}_{N-1},\tilde{x}_N\} Tˉk={x~k+1,u~k+1,,u~N1,x~N}。相当于我们保证保存的不确定轨迹永远选择的是代价更小的轨迹。
  • Monte Carlo Tree Search(MCTS):在前面的Rollout中,如果我们采用的是 l l l-step lookahead思想,则在前 l l l步的每一步都需要探索所有的可能 u k u_k uk,这会带来很大的开销,而且有些控制 u k u_k uk明显要劣于其他控制,不值得我们去探索,而有些 u k u_k uk很可靠,值得我们探索的更完全。MCTS的思想是利用中间计算结果来选出更为可靠的策略 u k u_k uk从而将功夫花在更有效的地方。
2.1.3 parametric cost approximation(通过参数估计代价):

代价函数的估计 J ~ k \tilde{J}_k J~k是通过参数 r k r_k rk得到的,这允许我们不求解子问题的最优解( J ~ k + 1 \tilde{J}_{k+1} J~k+1)即可得到 J ~ k \tilde{J}_k J~k

2.1.4 Aggregation(聚合):

从状态空间中挑选具有代表性的状态,其他状态可以采用interpolate的方法用代表性状态来表示

2.2 one-step lookahead

假设我们已知问题的数学模型,即model-based。

  1. 为了简化计算,我们消除下面式子中的期望
    μ ~ k ( x k ) ∈ arg ⁡ min ⁡ u k ∈ U k ( x k ) E [ g k ( x k , u k , w k ) + J ~ k + 1 ( f k ( x k , u k , w k ) ) ] \tilde{\mu}_k(x_k)\in\arg\min\limits_{u_k\in U_k(x_k)}\mathbb{E}[g_k(x_k,u_k,w_k)+\tilde{J}_{k+1}(f_k(x_k,u_k,w_k))] μ~k(xk)argukUk(xk)minE[gk(xk,uk,wk)+J~k+1(fk(xk,uk,wk))]
    消除方法为certainty equivalence,即选取有代表性的 w ~ k \tilde{w}_k w~k将问题从stachastic变为deterministic:
    μ ~ k ( x k ) ∈ arg ⁡ min ⁡ u k ∈ U k ( x k ) [ g k ( x k , u k , w ~ k ) + J ~ k + 1 ( f k ( x k , u k , w ~ k ) ) ] \tilde{\mu}_k(x_k)\in\arg\min\limits_{u_k\in U_k(x_k)}[g_k(x_k,u_k,\tilde{w}_k)+\tilde{J}_{k+1}(f_k(x_k,u_k,\tilde{w}_k))] μ~k(xk)argukUk(xk)min[gk(xk,uk,w~k)+J~k+1(fk(xk,uk,w~k))]
  2. 控制空间 U k ( x k ) U_k(x_k) Uk(xk)非常大,我们可以采用并行化计算(parallel cumputation)的方法来加快计算速度

2.3 基于Q-factor的估计方法

假设我们未知问题的数学模型,即model-free,但是

  • 存在计算机模拟器,当给定状态 x k x_k xk和控制 u k u_k uk时,模拟器可以从分布中采样下一个状态 x k + 1 x_{k+1} xk+1和对应的代价 g g g
  • 子问题的代价函数的估计 J ~ k + 1 \tilde{J}_{k+1} J~k+1是已经计算好的,计算方法在以后会说明
    计算步骤如下所示
  1. 用模拟器去收集大量的数据 ( x k s , u k s , x k + 1 s , g k s ) , s = 1 , … , q (x_k^s,u_k^s,x_{k+1}^s,g_k^s),s=1,\dots,q (xks,uks,xk+1s,gks),s=1,,q和对应的Q-factor,即 β k s = g k s + J ~ k + 1 ( x k + 1 s ) \beta_k^s=g_k^s+\tilde{J}_{k+1}(x_{k+1}^s) βks=gks+J~k+1(xk+1s)
  2. 为了减少计算量,我们引入参数 r k r_k rk来辅助估计Q-factor,即希望通过 Q ~ k ( x k , u k , r k ) \tilde{Q}_k(x_k,u_k,r_k) Q~k(xk,uk,rk)直接计算得到 ( x k , u k ) (x_k,u_k) (xk,uk)的Q-factor,参数的计算方法为: r k ˉ ∈ arg ⁡ min ⁡ r k ∑ s = 1 q [ Q ~ k ( x k s , u k s , r k ) − β k s ] 2 \bar{r_k}\in\arg\min_{r_k}\sum\limits_{s=1}^q[\tilde{Q}_k(x_k^s,u_k^s,r_k)-\beta_k^s]^2 rkˉargrkmins=1q[Q~k(xks,uks,rk)βks]2
  3. 找到策略 μ ~ k ( x k ) ∈ arg ⁡ min ⁡ u k ∈ U k ( x k ) Q ~ k ( x k , u k , r ˉ k ) \tilde{\mu}_k(x_k)\in\arg\min\limits_{u_k\in U_k(x_k)}\tilde{Q}_k(x_k,u_k,\bar{r}_k) μ~k(xk)argukUk(xk)minQ~k(xk,uk,rˉk)
    此方法涉及了两种估计方法,一是计算 J ~ k \tilde{J}_k J~k,二是计算 Q ~ k \tilde{Q}_k Q~k,会在以后说明。

2.4 multi-step lookahead

l l l-step lookahead算法等价于:在状态 x k x_k xk,我们解一个 l l l步的动态规划问题,这个问题以 x k x_k xk为起始状态, J ~ k + l \tilde{J}_{k+l} J~k+l为终止代价函数,不同是只采用得到的第一步控制作为当下的决策,当转变为下一状态 x k + 1 x_{k+1} xk+1后重复上述步骤。公式化表达为:
min ⁡ x k , μ k + 1 , … , μ k + l − 1 E [ g k ( x k , u k , w k ) + ∑ m = k + 1 k + l − 1 g m ( x m , μ m ( x m ) , w m ) + J ~ k + l ( x k + l ) ] \min\limits_{x_k,\mu_{k+1},\dots,\mu_{k+l-1}}\mathbb{E}[g_k(x_k,u_k,w_k)+\sum\limits_{m=k+1}^{k+l-1}g_m(x_m,\mu_m(x_m),w_m)+\tilde{J}_{k+l}(x_{k+l})] xk,μk+1,,μk+l1minE[gk(xk,uk,wk)+m=k+1k+l1gm(xm,μm(xm),wm)+J~k+l(xk+l)]

  • 计算 J ~ k + l ( x k + l ) \tilde{J}_{k+l}(x_{k+l}) J~k+l(xk+l)的方法(rolling horizon approach):用足够大数量的lookahead step l l l,让 J ~ k + l ( x k + l ) = 0 \tilde{J}_{k+l}(x_{k+l})=0 J~k+l(xk+l)=0 。随着往前仔细探索的步长 l l l越大,我们对一个好的估计 J ~ k + l \tilde{J}_{k+l} J~k+l的需求就越低,lookahead策略的表现就越好

2.5 怎样的估计方法才是有效的?

  • 最初的想法肯定是估计的代价函数 J ~ k \tilde{J}_k J~k和最优代价函数 J k ∗ J^*_k Jk越接近越好,但是它存在的一个问题是:当二者对于任意的状态 x k x_k xk都存在相同的常数差距时,通过 J ~ k \tilde{J}_k J~k得到的policy也是最优的
  • 这提示我们可以用一个更好的条件:对于所有的状态 x k x_k xk J ~ k \tilde{J}_k J~k J k ∗ J_k^* Jk的相对值越接近越好即: J ~ k ( x k ) − J ~ k ( x k ′ ) ≈ J k ∗ ( x k ) − J k ∗ ( x k ′ ) \tilde{J}_k(x_k)-\tilde{J}_k(x_k')\approx J_k^*(x_k)-J_k^*(x_k') J~k(xk)J~k(xk)Jk(xk)Jk(xk),但是在 l l l-step lookahead方法中,它忽略了前 l l l步的代价差异(二者的结果相同)
  • 一个更为准确的方法是:Q-factor的估计误差 Q k ( x k , u ) − Q ~ k ( x k , u ) Q_k(x_k,u)-\tilde{Q}_k(x_k,u) Qk(xk,u)Q~k(xk,u) u u u的变化是逐渐的(斜率小),换句话来说, Q k ( x k , u ) Q_k(x_k,u) Qk(xk,u) Q ~ k ( x k , u ) \tilde{Q}_k(x_k,u) Q~k(xk,u) u u u的变化曲线趋势是接近的。

3. 基于Policy Space的估计方法

总体思路是在决策函数 μ ~ k \tilde{\mu}_k μ~k中引入参数 r k r_k rk即用 μ ~ k ( x k , r k ) \tilde{\mu}_k(x_k,r_k) μ~k(xk,rk)表示控制。训练过程类似于监督学习,先产生大量地好的状态-控制样本 ( x k s , u k s ) , s = 1 , … , q (x_k^s,u_k^s),s=1,\dots,q (xks,uks),s=1,,q(由人类专家或者专业软件产生),再求解最小回归问题:
min ⁡ r k ∑ s = 1 q ∥ u k s − μ ~ k ( x k s , r k ) ∥ 2 \min\limits_{r_k}\sum\limits_{s=1}^q\parallel u_k^s-\tilde{\mu}_k(x_k^s,r_k)\parallel^2 rkmins=1quksμ~k(xks,rk)2

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值