深度强化学习CS285 lec10-lec12 基础知识LQR Framework

  • 一、线性二次型调节器LQR(Linear Quadratic Regulator)
    • 1.1 LQR符号与术语
    • 1.2 LQR问题下的设定
    • 1.3 LQR求解
      • 1.3.1 推导过程
      • 1.3.2 LQR算法流程
  • 二、iLQR(Iterative Linear Quadratic Regulator)
    • 2.1 Newton Method
    • 2.2 Gauss-Newton Method
    • 2.3 iLQR算法
      • iLQR背景设定
      • iLQR流程
  • 三、 DDP及iLQR改进
  • 四、小总结
  • 参考资料
  • 补充

一、线性二次型调节器LQR(Linear Quadratic Regulator)

1.1 LQR符号与术语

现有一些随机策略pθ(ut∣xt)p_\theta(u_t|x_t)pθ​(ut​∣xt​)收集的样本:
τi=(x1i,u1i,x2i,u2i,...,xTi,uTi,xT+1i),i=1,2...,N\tau^i=(x_1^i,u_1^i,x_2^i,u_2^i,...,x_T^i,u_T^i,x_{T+1}^i),i=1,2...,Nτi=(x1i​,u1i​,x2i​,u2i​,...,xTi​,uTi​,xT+1i​),i=1,2...,N
xt,utx_t,u_txt​,ut​即为第t时刻的状态与动作,此为控制论符号的表述(xt,ut)=(st,at)(x_t,u_t)=(s_t,a_t)(xt​,ut​)=(st​,at​),两者可进行混用。lec1-lec4中提到,NN的cost function c(xt,ut)c(x_t,u_t)c(xt​,ut​)实际上是一种immediate的监督信号,RL的reward function r(st,at)r(s_t,a_t)r(st​,at​)实际上是一种delayed的监督信息,因此在一个time step下,有c(xt,ut)=−r(xt,ut)+constantc(x_t,u_t)=-r(x_t,u_t)+constantc(xt​,ut​)=−r(xt​,ut​)+constant。下面给出一个术语表格,基础知识主要使用控制领域的术语表述。

Control RL
状态state xtx_txt​ sts_tst​
动作action utu_tut​ ata_tat​
监督信号 c(xt,ut)c(x_t,u_t)c(xt​,ut​) r(st,at)r(s_t,a_t)r(st​,at​)
动态模型 xt+1∼f(xt,ut)x_{t+1}\sim f(x_t,u_t)xt+1​∼f(xt​,ut​) s′∼p(s′|s,a)s'\sim p(s'|s,a)s′∼p(s′|s,a)

1.2 LQR问题下的设定

  1. 动态模型是deterministic的,即xt+1=f(xt,ut),f(xt,ut)x_{t+1}=f(x_t,u_t),f(x_t,u_t)xt+1​=f(xt​,ut​),f(xt​,ut​)不是一个概率分布的模型。

  2. 监督信号cost function,最优控制中有performance measure的指标J=h(xT,T)+∫t=0Tg(xt,ut,t)dtJ=h(x_T,T)+\int_{t_=0}^Tg(x_t,u_t,t)dtJ=h(xT​,T)+∫t=​0T​g(xt​,ut​,t)dt,第一项衡量该轨迹τ\tauτ末尾的状态XTX_TXT​与任务目标状态的距离,第二项衡量该轨迹τ\tauτ从起始到末尾,走完该轨迹中每个状态与动作所要消耗的代价,其中函数g为标量。因此c(xt,ut)c(x_t,u_t)c(xt​,ut​)即为performace measure中的函数g。LQR的监督信号c(xt,ut)c(x_t,u_t)c(xt​,ut​)是已知的,输入xt,utx_t,u_txt​,ut​,输出一个标量scalar。

  3. LQR的目的是,给定一个初始状态x1x_1x1​,终止状态或任务目标状态xT+1x_{T+1}xT+1​,已知环境动态模型xt+1=f(xt,ut)x_{t+1}=f(x_t,u_t)xt+1​=f(xt​,ut​),求出一串动作序列u1,u2,...,uTu_1,u_2,...,u_Tu1​,u2​,...,uT​使得累积cost最小,即
    min⁡u1,...,uT∑t=1Tc(xt,ut)s.txt=f(xt−1,ut−1)\min_{u1,...,u_T}\sum_{t=1}^Tc(x_t,u_t)\quad s.t\quad x_t=f(x_{t-1},u_{t-1})u1,...,uT​min​t=1∑T​c(xt​,ut​)s.txt​=f(xt−1​,ut−1​)

  4. LQR的approximation,linear体现在对f(xt,ut)f(x_t,u_t)f(xt​,ut​)采用一阶线性近似,quadratic体现在对c(xt,ut)c(x_t,u_t)c(xt​,ut​)采用二阶近似,即
    xt+1=f(xt,ut)≈Ft[xtut]+ft=[FxtFut][xtut]+ftc(xt,ut)=12[xtut]T[Cxt,xtCxt,utCut,xtCut,ut][xtut]+[xtut]T[cxtcut]=12[xtut]TCt[xtut]+[xtut]Tctx_{t+1}=f(x_t,u_t)\approx F_t \left[ \begin{matrix} x_t\\u_t \end{matrix}\right]+f_t=\left[ \begin{matrix} F_{x_t} &F_{u_t} \end{matrix}\right]\left[ \begin{matrix} x_t\\u_t \end{matrix}\right]+f_t \\ c(x_t,u_t)= \frac{1}{2}\left[ \begin{matrix} x_t\\u_t \end{matrix}\right]^T\left[ \begin{matrix} C_{x_t,x_t} &C_{x_t,u_t}\\C_{u_t,x_t}&C_{u_t,u_t} \end{matrix}\right]\left[ \begin{matrix} x_t\\u_t \end{matrix}\right]+\left[ \begin{matrix} x_t\\u_t \end{matrix}\right]^T\left[ \begin{matrix} c_{x_t}\\c_{u_t} \end{matrix}\right] =\frac{1}{2}\left[ \begin{matrix} x_t\\u_t \end{matrix}\right]^TC_t\left[ \begin{matrix} x_t\\u_t \end{matrix}\right]+\left[ \begin{matrix} x_t\\u_t \end{matrix}\right]^Tc_t xt+1​=f(xt​,ut​)≈Ft​[xt​ut​​]+ft​=[Fxt​​​Fut​​​][xt​ut​​]+ft​c(xt​,ut​)=21​[xt​ut​​]T[Cxt​,xt​​Cut​,xt​​​Cxt​,ut​​Cut​,ut​​​][xt​ut​​]+[xt​ut​​]T[cxt​​cut​​​]=21​[xt​ut​​]TCt​[xt​ut​​]+[xt​ut​​]Tct​
    所以LQR的优化问题表述为:
    min⁡u1,...,uT∑t=1Tc(xt,ut)s.txt=f(xt−1,ut−1)f(xt,ut)=Ft[xtut]+ftc(xt,ut)=12[xtut]TCt[xtut]+[xtut]Tct\min_{u1,...,u_T}\sum_{t=1}^Tc(x_t,u_t)\quad s.t\quad x_t=f(x_{t-1},u_{t-1})\\ f(x_t,u_t)= F_t \left[ \begin{matrix} x_t\\u_t \end{matrix}\right]+f_t \\ c(x_t,u_t)=\frac{1}{2}\left[ \begin{matrix} x_t\\u_t \end{matrix}\right]^TC_t\left[ \begin{matrix} x_t\\u_t \end{matrix}\right]+\left[ \begin{matrix} x_t\\u_t \end{matrix}\right]^Tc_t u1,...,uT​min​t=1∑T​c(xt​,ut​)s.txt​=f(xt−1​,ut−1​)f(xt​,ut​)=Ft​[xt​ut​​]+ft​c(xt​,ut​)=21​[xt​ut​​]TCt​[xt​ut​​]+[xt​ut​​]Tct​
    其中Ft,ft,Ct,ctF_t,f_t,C_t,c_tFt​,ft​,Ct​,ct​均已知,下面推到用到其展开形式!

1.3 LQR求解



LQR求解主要有Backward Pass与Forward Pass两大过程,先看看对于LQR这个问题,什么是已知的,什么是未知的。

  • 已知:initial state 初始状态x1x_1x1​,goal state目标状态xT+1x_{T+1}xT+1​,动态模型f(xt,ut)f(x_t,u_t)f(xt​,ut​)与cost function c(xt,ut)c(x_t,u_t)c(xt​,ut​)的结构参数Ft,ft,Ct,ctF_t,f_t,C_t,c_tFt​,ft​,Ct​,ct​
  • 未知:x2,x3,...,xT,u1,u2,...,uTx_2,x_3,...,x_T,u_1,u_2,...,u_Tx2​,x3​,...,xT​,u1​,u2​,...,uT​。因为x2=f(x1,u1),x3=f(x2,u2),...,xT=f(xT−1,uT−1),xT+1=f(xT,uT)x_2=f(x_1,u_1),x_3=f(x_2,u_2),...,x_T=f(x_{T-1},u_{T-1}),x_{T+1}=f(x_T,u_T)x2​=f(x1​,u1​),x3​=f(x2​,u2​),...,xT​=f(xT−1​,uT−1​),xT+1​=f(xT​,uT​),所以实际上未知的就是动作序列u1,...,uTu_1,...,u_Tu1​,...,uT​
  • 目标函数变为:min⁡u1,..uTc(x1,u1)+c(f(x1,u1),u2)+⋯+c(f(f(...()...),uT)\min_{u_1,..u_T}c(x_1,u_1)+c(f(x_1,u_1),u_2)+\cdots+c(f(f(...()...),u_T)minu1​,..uT​​c(x1​,u1​)+c(f(x1​,u1​),u2​)+⋯+c(f(f(...()...),uT​)啰嗦一下,V(xT+1)V(x_{T+1})V(xT+1​)由于终态确定,故可看做constconstconst,而且dynamics是deterministic的,所以有Q(xt,ut)=r(xt,ut)+V(xt+1)Q(x_t,u_t)=r(x_t,u_t)+V(x_{t+1})Q(xt​,ut​)=r(xt​,ut​)+V(xt+1​),于是目标函数可以看成:
    min⁡u1,..uTc(x1,u1)+c(f(x1,u1),u2)+⋯+c(f(f(...()...),uT)−V(xT+1)max⁡u1,...,uTr(x1,u1)+r(f(x1,u2),u2)+⋯+r(xT,uT)+V(xT+1)⏟Q=max⁡u1,...,uTr(x1,u1)+r(f(x1,u2),u2)+⋯+r(xT−1,uT−1)+Q(xT,uT)⏟uT=KTxT+kT=max⁡u1,...,uTr(x1,u1)+r(f(x1,u2),u2)+⋯+r(xT−1,uT−1)+V(xT,uT)=max⁡u1,...,uTr(x1,u1)+r(f(x1,u2),u2)+⋯+Q(xT−1,uT−1)=max⁡u1,...,uTQ(x1,u1)\begin{aligned} &\min_{u_1,..u_T}c(x_1,u_1)+c(f(x_1,u_1),u_2)+\cdots+c(f(f(...()...),u_T)-V(x_{T+1})\\ &\max_{u_1,...,u_T}r(x_1,u_1)+r(f(x_1,u_2),u_2)+\cdots+\underbrace{r(x_T,u_T)+V(x_{T+1})}_Q\\ =&\max_{u_1,...,u_T}r(x_1,u_1)+r(f(x_1,u_2),u_2)+\dots+r(x_{T-1},u_{T-1})+\underbrace{Q(x_T,u_T)}_{u_T=K_Tx_T+k_T}\\ =&\max_{u_1,...,u_T}r(x_1,u_1)+r(f(x_1,u_2),u_2)+\dots+r(x_{T-1},u_{T-1})+V(x_T,u_T)\\ =&\max_{u_1,...,u_T}r(x_1,u_1)+r(f(x_1,u_2),u_2)+\dots+Q(x_{T-1},u_{T-1})\\ =&\max_{u_1,...,u_T}Q(x_1,u_1) \end{aligned} ====​u1​,..uT​min​c(x1​,u1​)+c(f(x1​,u1​),u2​)+⋯+c(f(f(...()...),uT​)−V(xT+1​)u1​,...,uT​max​r(x1​,u1​)+r(f(x1​,u2​),u2​)+⋯+Qr(xT​,uT​)+V(xT+1​)​​u1​,...,uT​max​r(x1​,u1​)+r(f(x1​,u2​),u2​)+⋯+r(xT−1​,uT−1​)+uT​=KT​xT​+kT​Q(xT​,uT​)​​u1​,...,uT​max​r(x1​,u1​)+r(f(x1​,u2​),u2​)+⋯+r(xT−1​,uT−1​)+V(xT​,uT​)u1​,...,uT​max​r(x1​,u1​)+r(f(x1​,u2​),u2​)+⋯+Q(xT−1​,uT−1​)u1​,...,uT​max​Q(x1​,u1​)​
    求解思路,固定一个变量,调整其它变量,一个个求嘛,但如果是固定u1u_1u1​,即Forward Pass前向算法,会经过多个动态模型fff的迭代,很难求解,于是先从BackWard角度考虑,即从uTu_TuT​入手。

1.3.1 推导过程

  • c(xT,uT)c(x_T,u_T)c(xT​,uT​)是一个二元函数,真正未知的只有uTu_TuT​,要使cost最小,所以对其求导,得到uTu_TuT​关于xTx_TxT​的关系,称作控制律,是在Backward pass中实际想要的东西。
    ∇uTQ(xT,uT)=∇uTc(xT,uT)=∇uT[12[xTuT]TCT[xTuT]+[xTuT]TcT]=∇uT[CxT,uTxT+CuT,uTuT+cuT])=0所以uT=−CuT,uT−1(CuT,xTxT+cuT)\begin{aligned} \nabla_{u_T}Q(x_T,u_T)=\nabla_{u_T}c(x_T,u_T)&=\nabla_{u_T}\Big[\frac{1}{2}\left[ \begin{matrix} x_T\\u_T \end{matrix}\right]^TC_T\left[ \begin{matrix} x_T\\u_T \end{matrix}\right]+\left[ \begin{matrix} x_T\\u_T \end{matrix}\right]^Tc_T\Big] \\ &=\nabla_{u_T}\Big[C_{x_T,u_T}x_T+C_{u_T,u_T}u_T+c_{u_T}\Big])\\ &=0\\ 所以u_T&=-C^{-1}_{u_T,u_T}(C_{u_T,x_T}x_T+c_{u_T}) \end{aligned} ∇uT​​Q(xT​,uT​)=∇uT​​c(xT​,uT​)所以uT​​=∇uT​​[21​[xT​uT​​]TCT​[xT​uT​​]+[xT​uT​​]TcT​]=∇uT​​[CxT​,uT​​xT​+CuT​,uT​​uT​+cuT​​])=0=−CuT​,uT​−1​(CuT​,xT​​xT​+cuT​​)​
    换一下表述有:
    uT=KTxT+kTKT=−CuT,uT−1CuT,xT,kT=−CuT,uT−1cuTu_T=K_Tx_T+k_T\\ K_T=-C^{-1}_{u_T,u_T}C_{u_T,x_T},k_T=-C^{-1}_{u_T,u_T}c_{u_T} uT​=KT​xT​+kT​KT​=−CuT​,uT​−1​CuT​,xT​​,kT​=−CuT​,uT​−1​cuT​​
    这一步,得到了第T时刻的动作uTu_TuT​与第T时刻的状态xTx_TxT​之间的关系,其它系数均已知。

  • 再看uT−1u_{T-1}uT−1​时,由动态模型xT=f(xT−1,uT−1)x_T=f(x_{T-1},u_{T-1})xT​=f(xT−1​,uT−1​),由Q值函数Q(xT−1,uT−1)=r(xT−1,uT−1)+V(xT)=−c(xT−1,uT−1)+V(xT)Q(x_{T-1},u_{T-1})=r(x_{T-1},u_{T-1})+V(x_T)=-c(x_{T-1},u_{T-1})+V(x_T)Q(xT−1​,uT−1​)=r(xT−1​,uT−1​)+V(xT​)=−c(xT−1​,uT−1​)+V(xT​)。
    实际上,回顾lec5-lec9中对Q(s,a)Q(s,a)Q(s,a)与V(s)V(s)V(s)的理解,有Q(xT,uT)=r(xT,uT)+E[V(xT+1)]=r(xT,uT)+const=−c(xT,uT)+constQ(x_T,u_T)=r(x_T,u_T)+E[V(x_{T+1})]=r(x_T,u_T)+const=-c(x_T,u_T)+constQ(xT​,uT​)=r(xT​,uT​)+E[V(xT+1​)]=r(xT​,uT​)+const=−c(xT​,uT​)+const,代入uT=KTxT+kTu_T=K_Tx_T+k_TuT​=KT​xT​+kT​,则:
    V(xT)=Q(xT,KTxT+kT)=−c(xT,KTxT+kT)+constV(x_T)=Q(x_T,K_Tx_T+k_T)=-c(x_T,K_Tx_T+k_T)+constV(xT​)=Q(xT​,KT​xT​+kT​)=−c(xT​,KT​xT​+kT​)+const代入quadratic cost function后化简一下并替换下表述有:
    V(xT)=−12xTTVTxT+xTTvTVT=CxT,xT+CxT,uTKT+KTTCuT,xT+KTTCuT,uTKTvT=cxT+CxT,uTkT+KTTCuT+KTTCuT,uTkT\begin{aligned} &V(x_T) =-\frac{1}{2}x_T^TV_Tx_T+x_T^Tv_T\\ {V}_{T} &= {C}_{ {x}_{T}, {x}_{T}}+ {C}_{ {x}_{T}, {u}_{T}} {K}_{T}+ {K}_{T}^{T} {C}_{ {u}_{T}, {x}_{T}}+ {K}_{T}^{T} {C}_{ {u}_{T}, {u}_{T}} {K}_{T} \\ {v}_{T} &= {c}_{ {x}_{T}}+ {C}_{ {x}_{T}, {u}_{T}} {k}_{T}+ {K}_{T}^{T} {C}_{ {u}_{T}}+ {K}_{T}^{T} {C}_{ {u}_{T}, {u}_{T}} {k}_{T} \end{aligned} VT​vT​​V(xT​)=−21​xTT​VT​xT​+xTT​vT​=CxT​,xT​​+CxT​,uT​​KT​+KTT​CuT​,xT​​+KTT​CuT​,uT​​KT​=cxT​​+CxT​,uT​​kT​+KTT​CuT​​+KTT​CuT​,uT​​kT​​
    因此,表示T-1时刻的Q值函数,利用动态模型消掉xTx_TxT​并使其导数为0。
    −Q(xT−1,uT−1)=c(xT−1,uT−1)−V(xT)=12[xT−1uT−1]TCT−1[xT−1uT−1]+[xT−1uT−1]TcT−1+12xTTVTxT+xTTvT\begin{aligned} -Q(x_{T-1},u_{T-1})&=c(x_{T-1},u_{T-1})-V(x_T)\\ &=\frac{1}{2}\left[ \begin{matrix} x_{T-1}\\u_{T-1} \end{matrix}\right]^TC_{T-1}\left[ \begin{matrix} x_{T-1}\\u_{T-1} \end{matrix}\right]+\left[ \begin{matrix} x_{T-1}\\u_{T-1} \end{matrix}\right]^Tc_{T-1}+\frac{1}{2}x_T^TV_Tx_T+x_T^Tv_T \end{aligned} −Q(xT−1​,uT−1​)​=c(xT−1​,uT−1​)−V(xT​)=21​[xT−1​uT−1​​]TCT−1​[xT−1​uT−1​​]+[xT−1​uT−1​​]TcT−1​+21​xTT​VT​xT​+xTT​vT​​
    代入xT=f(xT−1,uT−1)=FT−1[xT−1uT−1]+fT−1x_T=f(x_{T-1},u_{T-1})= F_{T-1} \left[ \begin{matrix} x_{T-1}\\u_{T-1} \end{matrix}\right]+f_{T-1}xT​=f(xT−1​,uT−1​)=FT−1​[xT−1​uT−1​​]+fT−1​,便得到了仅有xT−1,uT−1x_{T-1},u_{T-1}xT−1​,uT−1​表示的Q(xT−1,uT−1)Q(x_{T-1},u_{T-1})Q(xT−1​,uT−1​)
    具体而言,经过整理:
    Q(xT−1,uT−1)=12[xT−1uT−1]TQT−1[xT−1uT−1]+[xT−1uT−1]TqT−1QT−1=CT−1+FT−1TVTFT−1qT−1=cT−1+FT−1TVTfT−1+FT−1TvTQ(x_{T-1},u_{T-1})=\frac{1}{2}\left[ \begin{matrix} x_{T-1}\\u_{T-1} \end{matrix}\right]^TQ_{T-1}\left[ \begin{matrix} x_{T-1}\\u_{T-1} \end{matrix}\right]+\left[ \begin{matrix} x_{T-1}\\u_{T-1} \end{matrix}\right]^Tq_{T-1}\\ \begin{aligned} & {Q}_{T-1}= {C}_{T-1}+ {F}_{T-1}^{T} {V}_{T} {F}_{T-1}\\ & {q}_{T-1}= {c}_{T-1}+ {F}_{T-1}^{T} {V}_{T} {f}_{T-1}+ {F}_{T-1}^{T} {v}_{T}\\ \end{aligned} Q(xT−1​,uT−1​)=21​[xT−1​uT−1​​]TQT−1​[xT−1​uT−1​​]+[xT−1​uT−1​​]TqT−1​​QT−1​=CT−1​+FT−1T​VT​FT−1​qT−1​=cT−1​+FT−1T​VT​fT−1​+FT−1T​vT​​
    令其导数为0,得到uT−1u_{T-1}uT−1​与xT−1x_{T-1}xT−1​的关系,即T-1时刻的控制律:
    ∇uT−1Q(xT−1,uT−1)=0uT−1=KT−1xT−1+kT−1KT−1=−QuT−1,uT−1−1QuT−1,xT−1,kT−1=−QuT−1,uT−1−1quT−1\nabla_{u_{T-1}}Q(x_{T-1},u_{T-1})=0\\ u_{T-1}=K_{T-1}x_{T-1}+k_{T-1}\\ K_{T-1}=-Q^{-1}_{u_{T-1},u_{T-1}}Q_{u_{T-1},x_{T-1}},k_{T-1}=-Q^{-1}_{u_{T-1},u_{T-1}}q_{u_{T-1}} ∇uT−1​​Q(xT−1​,uT−1​)=0uT−1​=KT−1​xT−1​+kT−1​KT−1​=−QuT−1​,uT−1​−1​QuT−1​,xT−1​​,kT−1​=−QuT−1​,uT−1​−1​quT−1​​

  • 如此类推,Backward Pass得到动作与状态的控制律:
    ut=Ktxt+kt,t=1,2,...,Tu_t=K_tx_t+k_t,t=1,2,...,T ut​=Kt​xt​+kt​,t=1,2,...,T

    又因为x1x_1x1​已知,所以u1u_1u1​可由u1=K1x1+k1u_1=K_1x_1+k_1u1​=K1​x1​+k1​计算得出,于是Forward Pass结合动态模型,算出动作序列:
    x2=f(x1,u1)u2=K2x2+k2x3=f(x2,u2)⋮uT=KTxT+kTx_2=f(x_1,u_1)\\ u_2=K_2x_2+k_2\\ x_3=f(x_2,u_2)\\ \vdots \\ u_T=K_Tx_T+k_T x2​=f(x1​,u1​)u2​=K2​x2​+k2​x3​=f(x2​,u2​)⋮uT​=KT​xT​+kT​

  • 小总结

Backward Pass步骤:

  1. T时刻的∇uTQ(xT,uT)=0\nabla_{u_T}Q(x_T,u_T)=0∇uT​​Q(xT​,uT​)=0,得控制律uT=KTxT+kTu_T=K_Tx_T+k_TuT​=KT​xT​+kT​
  2. 计算V(xT)V(x_T)V(xT​),并利用xT=f(xT−1,uT−1)x_T=f(x_{T-1},u_{T-1})xT​=f(xT−1​,uT−1​)消元,从而得到Q(xT−1,uT−1)=−c(xT−1,uT−1)+V(xT)=−c(xT−1,uT−1)+V(f(xT−1,uT−1))Q(x_{T-1},u_{T-1})=-c(x_{T-1},u_{T-1})+V(x_T)=-c(x_{T-1},u_{T-1})+V(f(x_{T-1},u_{T-1}))Q(xT−1​,uT−1​)=−c(xT−1​,uT−1​)+V(xT​)=−c(xT−1​,uT−1​)+V(f(xT−1​,uT−1​))
  3. ∇uTQ(xT,uT)=0\nabla_{u_T}Q(x_T,u_T)=0∇uT​​Q(xT​,uT​)=0,得控制律uT−1=KT−1xT−1+kT−1u_{T-1}=K_{T-1}x_{T-1}+k_{T-1}uT−1​=KT−1​xT−1​+kT−1​
  4. 计算V(xT−1)V(x_{T-1})V(xT−1​),利用动态模型消元,得Q(xT−2,uT−2)Q(x_{T-2},u_{T-2})Q(xT−2​,uT−2​)
  5. ∇uT−2Q(xT−2,uT−2))=0\nabla_{u_{T-2}}Q(x_{T-2},u_{T-2}))=0∇uT−2​​Q(xT−2​,uT−2​))=0,得控制律uT−2=KT−2xT−2+kT−2u_{T-2}=K_{T-2}x_{T-2}+k_{T-2}uT−2​=KT−2​xT−2​+kT−2​
  6. 以此类推。

Forward Pass步骤:
利用动态模型计算下一状态,利用控制律,计算出相应动作

1.3.2 LQR算法流程

  • Backward Pass
    for t=T to t=1:
    Qt=Ct+FtTVt+1Ftqt=ct+FtTVt+1ft+FtTvt+1Q(xt,ut)=const+12[xtut]TQt[xtut]+[xtut]Tqtut←arg⁡min⁡utQ(xt,ut)=Ktxt+ktKt=−Qut,ut−1Qut,xtkt=−Qut,ut−1qutVt=Qxt,xt+Qxt,utKt+KtTQut,xt+KtTQut,utKtvt=qxt+Qxt,utkt+KtTQut+KtTQut,utktV(xt)=const+12xtTVtxt+xtTvt\begin{aligned} & {Q}_{t}= {C}_{t}+ {F}_{t}^{T} {V}_{t+1} {F}_{t}\\ & {q}_{t}= {c}_{t}+ {F}_{t}^{T} {V}_{t+1} {f}_{t}+ {F}_{t}^{T} {v}_{t+1}\\ &Q\left( {x}_{t}, {u}_{t}\right)=const+\frac{1}{2}\left[\begin{array}{c} { {x}_{t}} \\ { {u}_{t}} \end{array}\right]^{T} {Q}_{t}\left[\begin{array}{c} { {x}_{t}} \\ { {u}_{t}} \end{array}\right]+\left[\begin{array}{c} { {x}_{t}} \\ { {u}_{t}} \end{array}\right]^{T} {q}_{t}\\ & {u}_{t} \leftarrow \arg \min _{ {u}_{t}} Q\left( {x}_{t}, {u}_{t}\right)= {K}_{t} {x}_{t}+ {k}_{t}\\ & {K}_{t}=- {Q}_{ {u}_{t}, {u}_{t}}^{-1} {Q}_{ {u}_{t}, {x}_{t}}\\ & {k}_{t}=- {Q}_{ {u}_{t}, {u}_{t}}^{-1} {q}_{ {u}_{t}}\\ & {V}_{t}= {Q}_{ {x}_{t}, {x}_{t}}+ {Q}_{ {x}_{t}, {u}_{t}} {K}_{t}+ {K}_{t}^{T} {Q}_{ {u}_{t}, {x}_{t}}+ {K}_{t}^{T} {Q}_{ {u}_{t}, {u}_{t}} {K}_{t}\\ & {v}_{t}= {q}_{ {x}_{t}}+ {Q}_{ {x}_{t}, {u}_{t}} {k}_{t}+ {K}_{t}^{T} {Q}_{ {u}_{t}}+ {K}_{t}^{T} {Q}_{ {u}_{t}, {u}_{t}} {k}_{t}\\ &V\left( {x}_{t}\right)=\mathrm{const}+\frac{1}{2} {x}_{t}^{T} {V}_{t} {x}_{t}+ {x}_{t}^{T} {v}_{t} \end{aligned} ​Qt​=Ct​+FtT​Vt+1​Ft​qt​=ct​+FtT​Vt+1​ft​+FtT​vt+1​Q(xt​,ut​)=const+21​[xt​ut​​]TQt​[xt​ut​​]+[xt​ut​​]Tqt​ut​←argut​min​Q(xt​,ut​)=Kt​xt​+kt​Kt​=−Qut​,ut​−1​Qut​,xt​​kt​=−Qut​,ut​−1​qut​​Vt​=Qxt​,xt​​+Qxt​,ut​​Kt​+KtT​Qut​,xt​​+KtT​Qut​,ut​​Kt​vt​=qxt​​+Qxt​,ut​​kt​+KtT​Qut​​+KtT​Qut​,ut​​kt​V(xt​)=const+21​xtT​Vt​xt​+xtT​vt​​
  • Forward Pass
    for t=1 to t=T:
    ut=Ktxt+ktxt+1=f(xt,ut)\begin{aligned} & {u}_{t}= {K}_{t} {x}_{t}+ {k}_{t}\\ & {x}_{t+1}=f\left( {x}_{t}, {u}_{t}\right) \end{aligned} ​ut​=Kt​xt​+kt​xt+1​=f(xt​,ut​)​
  • LQR模块
    即使上述过程不是很透彻,亦可如下图所示将LQR看成一个黑盒模块,对于已知deterministic的dynamics,使用LQR算法,便可得到一组动作序列u1,...,uTu_1,...,u_Tu1​,...,uT​,并可计算出状态序列。
    输入:初始状态x1x_1x1​,目标状态xT+1x_{T+1}xT+1​,动态模型f(xt,ut)f(x_t,u_t)f(xt​,ut​),代价函数c(xt,ut)c(x_t,u_t)c(xt​,ut​)
    输出:动作序列u1,...,uTu_1,...,u_Tu1​,...,uT​和状态序列x1,...,xTx_1,...,x_Tx1​,...,xT​,即一条轨迹

二、iLQR(Iterative Linear Quadratic Regulator)

LQR的linear dynamics是deterministic的,这非常受限,对应RL中的s′=p(s′∣s,a)s'=p(s'|s,a)s′=p(s′∣s,a),在当前state,选择一个action后,下一状态就确定了。为了应对复杂环境dynamics的stochastic,即s′∼p(s′∣s,a)s'\sim p(s'|s,a)s′∼p(s′∣s,a),相当于说把LQR中假设linear dynamics拓展成了Non-linear dynamics,这时候需要采用iLQR,再叙述之前,先回顾一下以下两种优化算法,可参考以下专栏。
优化算法(甩甩的知乎专栏)

2.1 Newton Method

寻找参数θ\thetaθ最小化损失函数
minL(θ)minL(\theta) minL(θ)

在参数空间初始化一个参数θ^\hat\thetaθ^,寻找一个增量Δθ\Delta\thetaΔθ,采用泰勒二阶近似:
L(θ^+Δθ)≈L^(θ^+Δθ)=L(θ^)+∇L(θ^)TΔθ+12(Δθ)T∇2L(θ^)ΔθL(\hat\theta+\Delta\theta)\approx \hat{L}(\hat\theta+\Delta\theta)=L(\hat\theta)+\nabla L(\hat\theta)^T\Delta\theta+\frac{1}{2}(\Delta\theta)^T\nabla^2L(\hat\theta)\Delta\theta L(θ^+Δθ)≈L^(θ^+Δθ)=L(θ^)+∇L(θ^)TΔθ+21​(Δθ)T∇2L(θ^)Δθ

寻找的增量Δθ\Delta\thetaΔθ使得L(θ^+Δθ)L(\hat\theta+\Delta\theta)L(θ^+Δθ)最小,即L(θ^+Δθ)≤L(θ^)L(\hat\theta+\Delta\theta)\leq L(\hat\theta)L(θ^+Δθ)≤L(θ^)且∇ΔθL(θ^+Δθ)=0\nabla_{\Delta\theta} L(\hat\theta+\Delta\theta)=0∇Δθ​L(θ^+Δθ)=0所以有:
∇Δθ(L(θ^)+∇L(θ^)TΔθ+12(Δθ)T∇2L(θ^)Δθ)≈0\nabla_{\Delta\theta} \Big(L(\hat\theta)+\nabla L(\hat\theta)^T\Delta\theta+\frac{1}{2}(\Delta\theta)^T\nabla^2L(\hat\theta)\Delta\theta\Big)\approx0 ∇Δθ​(L(θ^)+∇L(θ^)TΔθ+21​(Δθ)T∇2L(θ^)Δθ)≈0

下面将符号稍微写繁琐一点,实际上∇L(θ^)\nabla L(\hat\theta)∇L(θ^)为Jacobian矩阵J(θ^)J(\hat\theta)J(θ^),∇2L(θ^)\nabla^2L(\hat\theta)∇2L(θ^)为Hessian矩阵H(θ^)H(\hat\theta)H(θ^)
∇θ^L(θ^)+∇θ^2L(θ^)Δθ≈0\nabla_{\hat\theta} L(\hat\theta)+\nabla_{\hat\theta} ^2L(\hat\theta)\Delta\theta\approx0 ∇θ^​L(θ^)+∇θ^2​L(θ^)Δθ≈0

Δθ≈−(∇θ^2L(θ^))−1∇θ^L(θ^)=−H(θ^)−1J(θ^)θt+1=θt+Δθt≈θt−Ht−1Jt\Delta\theta\approx-(\nabla_{\hat\theta} ^2L(\hat\theta))^{-1}\nabla_{\hat\theta} L(\hat\theta)=-H(\hat\theta)^{-1}J(\hat\theta)\\ \theta_{t+1}=\theta_t+\Delta\theta_t\approx\theta_t-H_t^{-1}J_t Δθ≈−(∇θ^2​L(θ^))−1∇θ^​L(θ^)=−H(θ^)−1J(θ^)θt+1​=θt​+Δθt​≈θt​−Ht−1​Jt​
所以Newton Method的更新策略为:
Jt=∇L(θt)Ht=∇2L(θt)Δt=−Ht−1Jtαt=arg min⁡α>0L(θt+αΔt)LineSearch!θt+1=θt+αtΔtJ_t=\nabla L(\theta_t)\\ H_t=\nabla^2L(\theta_t)\\ \Delta_t=-H_t^{-1}J_t\\ \alpha_t=\argmin_{\alpha>0}L(\theta_t+\alpha\Delta_t)\quad Line\quad Search!\\ \theta_{t+1}=\theta_t+\alpha_t\Delta_t Jt​=∇L(θt​)Ht​=∇2L(θt​)Δt​=−Ht−1​Jt​αt​=α>0argmin​L(θt​+αΔt​)LineSearch!θt+1​=θt​+αt​Δt​
上述更新策略,有一个line search的过程。通过ggg表示gradient,xxx替换θ\thetaθ,x^\hat xx^为更新前的值,亦可简化表述为iLQR需要用到的形式,如下:
Until convergence:
g=∇xL(x^)H=∇x2L(x^)x^←arg min⁡xL(x)−L(x^)≈12(x−x^)TH(x−x^)+gT(x−x^)g=\nabla_xL(\hat x)\\ H=\nabla_x^2L(\hat x)\\ \hat x\leftarrow \argmin_x L(x)-L(\hat x)\approx\frac{1}{2}(x-\hat x)^TH(x-\hat x)+g^T(x-\hat x) g=∇x​L(x^)H=∇x2​L(x^)x^←xargmin​L(x)−L(x^)≈21​(x−x^)TH(x−x^)+gT(x−x^)

2.2 Gauss-Newton Method

因为牛顿方法中不仅要求Hessian矩阵,而且还要求它的逆,计算复杂度猛增,许多拟牛顿方法就是通过不同方式去逼近Hessian矩阵的逆。而高斯牛顿方法实际上,是在最小二乘法中的特殊求解,用一阶梯度的信息来逼近Hessian矩阵
H−1≈(JTJ)−1H^{-1}\approx (J^TJ)^{-1}H−1≈(JTJ)−1

2.3 iLQR算法

iLQR背景设定

  • dynamics model
    iLQR的特点是能处理non-linear,stochastic的dynamics model,其模型结构,可从LQR简化为:
    LQR:f(xt,ut)=Ft[xtut]+ftLQR:f(x_t,u_t)= F_t \left[ \begin{matrix} x_t\\u_t \end{matrix}\right]+f_t LQR:f(xt​,ut​)=Ft​[xt​ut​​]+ft​

iLQR:f(xt,ut)=N(Ft[xtut]+ft,Σt)iLQR:f(x_t,u_t)=N\big(F_t \left[ \begin{matrix} x_t\\u_t \end{matrix}\right]+f_t,\Sigma_t\big) iLQR:f(xt​,ut​)=N(Ft​[xt​ut​​]+ft​,Σt​)

  • LQR
    LQR的约束,是一个线性系统,可通过deterministic的dynamics model确定下一状态xt+1x_{t+1}xt+1​与当前状态xtx_txt​、动作utu_tut​的关系,cost也可以由xt,utx_t,u_txt​,ut​确定。
    f(xt,ut)=Ft[xtut]+ftc(xt,ut)=12[xtut]TCt[xtut]+[xtut]Tct\begin{aligned} &f\left( {x}_{t}, {u}_{t}\right)= {F}_{t}\left[\begin{array}{l} { {x}_{t}} \\ { {u}_{t}} \end{array}\right]+ {f}_{t}\\ &c\left( {x}_{t}, {u}_{t}\right)=\frac{1}{2}\left[\begin{array}{l} { {x}_{t}} \\ { {u}_{t}} \end{array}\right]^{T} {C}_{t}\left[\begin{array}{l} { {x}_{t}} \\ { {u}_{t}} \end{array}\right]+\left[\begin{array}{l} { {x}_{t}} \\ { {u}_{t}} \end{array}\right]^{T} {c}_{t} \end{aligned} ​f(xt​,ut​)=Ft​[xt​ut​​]+ft​c(xt​,ut​)=21​[xt​ut​​]TCt​[xt​ut​​]+[xt​ut​​]Tct​​
  • iLQR
    iLQR的dynamics是非线性的,即下一状态xt+1x_{t+1}xt+1​不能靠当前状态xtx_txt​、当前动作utu_tut​线性关系确定,可理解为利用泰勒展开逼近两状态间xt,xt+1x_t,x_{t+1}xt​,xt+1​假设的高斯分布,对dynamics一阶泰勒近似,对cost二阶泰勒近似,如下:
    f(xt,ut)≈f(x^t,u^t)+∇xt,utf(x^t,u^t)[xt−x^tut−u^t]c(xt,ut)≈c(x^t,u^t)+∇xt,utc(x^t,u^t)[xt−x^tut−u^t]+12[xt−x^tut−u^t]T∇xt,ut2c(x^t,u^t)[xt−x^tut−u^t]\begin{aligned} &f\left( {x}_{t}, {u}_{t}\right) \approx f\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right)+\nabla_{ {x}_{t}, {u}_{t}} f\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right)\left[\begin{array}{l} { {x}_{t}-\hat{ {x}}_{t}} \\ { {u}_{t}-\hat{ {u}}_{t}} \end{array}\right]\\ &c\left( {x}_{t}, {u}_{t}\right) \approx c\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right)+\nabla_{ {x}_{t}, {u}_{t}} c\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right)\left[\begin{array}{c} { {x}_{t}-\hat{ {x}}_{t}} \\ { {u}_{t}-\hat{ {u}}_{t}} \end{array}\right]+\frac{1}{2}\left[\begin{array}{c} { {x}_{t}-\hat{ {x}}_{t}} \\ { {u}_{t}-\hat{ {u}}_{t}} \end{array}\right]^{T} \nabla_{ {x}_{t}, {u}_{t}}^{2} c\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right)\left[\begin{array}{l} { {x}_{t}-\hat{ {x}}_{t}} \\ { {u}_{t}-\hat{ {u}}_{t}} \end{array}\right] \end{aligned} ​f(xt​,ut​)≈f(x^t​,u^t​)+∇xt​,ut​​f(x^t​,u^t​)[xt​−x^t​ut​−u^t​​]c(xt​,ut​)≈c(x^t​,u^t​)+∇xt​,ut​​c(x^t​,u^t​)[xt​−x^t​ut​−u^t​​]+21​[xt​−x^t​ut​−u^t​​]T∇xt​,ut​2​c(x^t​,u^t​)[xt​−x^t​ut​−u^t​​]​

iLQR流程

整理一下有:
f(xt,ut)−f(x^t,u^t)≈∇xt,utf(x^t,u^t)[xt−x^tut−u^t]c(xt,ut)−c(x^t,u^t)≈∇xt,utc(x^t,u^t)[xt−x^tut−u^t]+12[xt−x^tut−u^t]T∇xt,ut2c(x^t,u^t)[xt−x^tut−u^t]\begin{aligned} &f\left( {x}_{t}, {u}_{t}\right)-f\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right) \approx \nabla_{ {x}_{t}, {u}_{t}} f\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right)\left[\begin{array}{l} { {x}_{t}-\hat{ {x}}_{t}} \\ { {u}_{t}-\hat{ {u}}_{t}} \end{array}\right]\\ &c\left( {x}_{t}, {u}_{t}\right)-c\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right) \approx \nabla_{ {x}_{t}, {u}_{t}} c\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right)\left[\begin{array}{c} { {x}_{t}-\hat{ {x}}_{t}} \\ { {u}_{t}-\hat{ {u}}_{t}} \end{array}\right]+\frac{1}{2}\left[\begin{array}{c} { {x}_{t}-\hat{ {x}}_{t}} \\ { {u}_{t}-\hat{ {u}}_{t}} \end{array}\right]^{T} \nabla_{ {x}_{t}, {u}_{t}}^{2} c\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right)\left[\begin{array}{l} { {x}_{t}-\hat{ {x}}_{t}} \\ { {u}_{t}-\hat{ {u}}_{t}} \end{array}\right] \end{aligned} ​f(xt​,ut​)−f(x^t​,u^t​)≈∇xt​,ut​​f(x^t​,u^t​)[xt​−x^t​ut​−u^t​​]c(xt​,ut​)−c(x^t​,u^t​)≈∇xt​,ut​​c(x^t​,u^t​)[xt​−x^t​ut​−u^t​​]+21​[xt​−x^t​ut​−u^t​​]T∇xt​,ut​2​c(x^t​,u^t​)[xt​−x^t​ut​−u^t​​]​

更换一下表述δxt=xt−x^t,δut=ut−u^t\delta x_t=x_t-\hat x_t,\delta u_t=u_t-\hat u_tδxt​=xt​−x^t​,δut​=ut​−u^t​:
fˉ(δxt,δut)=f(xt,ut)−f(x^t,u^t)≈∇xt,utf(x^t,u^t)[xt−x^tut−u^t]=Ft[δxtδut]\bar f(\delta x_t,\delta u_t)=f\left( {x}_{t}, {u}_{t}\right)-f\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right) \approx \nabla_{ {x}_{t}, {u}_{t}} f\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right)\left[\begin{array}{l} { {x}_{t}-\hat{ {x}}_{t}} \\ { {u}_{t}-\hat{ {u}}_{t}} \end{array}\right]=F_t\left[\begin{array}{l} { \delta x_t} \\ { \delta u_t} \end{array}\right] fˉ​(δxt​,δut​)=f(xt​,ut​)−f(x^t​,u^t​)≈∇xt​,ut​​f(x^t​,u^t​)[xt​−x^t​ut​−u^t​​]=Ft​[δxt​δut​​]

cˉ(δxt,δut)=c(xt,ut)−c(x^t,u^t)≈∇xt,utc(x^t,u^t)[xt−x^tut−u^t]+12[xt−x^tut−u^t]T∇xt,ut2c(x^t,u^t)[xt−x^tut−u^t]=ct[δxtδut]+12[δxtδut]TCt[δxtδut]\begin{aligned} \bar{c}(\delta x_t,\delta u_t)=c\left( {x}_{t}, {u}_{t}\right)-c\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right)&\approx \nabla_{ {x}_{t}, {u}_{t}} c\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right)\left[\begin{array}{c} { {x}_{t}-\hat{ {x}}_{t}} \\ { {u}_{t}-\hat{ {u}}_{t}} \end{array}\right]+\frac{1}{2}\left[\begin{array}{c} { {x}_{t}-\hat{ {x}}_{t}} \\ { {u}_{t}-\hat{ {u}}_{t}} \end{array}\right]^{T} \nabla_{ {x}_{t}, {u}_{t}}^{2} c\left(\hat{ {x}}_{t}, \hat{ {u}}_{t}\right)\left[\begin{array}{l} { {x}_{t}-\hat{ {x}}_{t}} \\ { {u}_{t}-\hat{ {u}}_{t}} \end{array}\right]\\ &=c_t\left[\begin{array}{l} { \delta x_t} \\ { \delta u_t} \end{array}\right]+\frac{1}{2}\left[\begin{array}{l} { \delta x_t} \\ { \delta u_t} \end{array}\right]^TC_t\left[\begin{array}{l} { \delta x_t} \\ { \delta u_t} \end{array}\right] \end{aligned} cˉ(δxt​,δut​)=c(xt​,ut​)−c(x^t​,u^t​)​≈∇xt​,ut​​c(x^t​,u^t​)[xt​−x^t​ut​−u^t​​]+21​[xt​−x^t​ut​−u^t​​]T∇xt​,ut​2​c(x^t​,u^t​)[xt​−x^t​ut​−u^t​​]=ct​[δxt​δut​​]+21​[δxt​δut​​]TCt​[δxt​δut​​]​
可看作dynamics是fˉ(δxt,δut)\bar f(\delta x_t,\delta u_t)fˉ​(δxt​,δut​),cost是cˉ(δxt,δut)\bar{c}(\delta x_t,\delta u_t)cˉ(δxt​,δut​),状态是δx\delta xδx,动作是δu\delta uδu的LQR。
所以算法流程如下:


即使iLQR不是很透彻,只需要知道iLQR的输入是一条人工初始化的轨迹x^t,u^t\hat x_t,\hat u_tx^t​,u^t​,其中每一个LQR的输入是新旧轨迹之间的差值xt−x^t,ut−u^tx_t-\hat x_t,u_t-\hat u_txt​−x^t​,ut​−u^t​,经过Backward Pass知道控制律ut=Kt(xt−x^t)+kt+u^tu_t=K_t(x_t-\hat x_t)+k_t+\hat u_tut​=Kt​(xt​−x^t​)+kt​+u^t​,再通过Forward Pass知道一条较优轨迹xt,utx_t,u_txt​,ut​,再输入到下一个LQR模块,如此迭代计算输出最优轨迹,而不像LQR中给定初始状态与目标状态直接计算出最优轨迹,毕竟iLQR的环境是stochastic的。

三、 DDP及iLQR改进

  • DDP(Differential Dynamics Programming)为了完整性,把iLQR中的dynamics model加了个二阶近似项,此处并不提及DDP的算法流程。
  • iLQR中的控制率ut=Kt(xt−x^t)+kt+u^tu_t=K_t(x_t-\hat x_t)+k_t+\hat u_tut​=Kt​(xt​−x^t​)+kt​+u^t​可加一个如牛顿法中一样的线性搜寻项line search,避免一节梯度优化时过度,即ut=Kt(xt−x^t)+αtkt+u^tu_t=K_t(x_t-\hat x_t)+\alpha_tk_t+\hat u_tut​=Kt​(xt​−x^t​)+αt​kt​+u^t​

四、小总结

  • LQR中对dynamics model的近似,xt+1=f(xt,ut)≈Ft[xtut]+ftx_{t+1}=f(x_t,u_t)\approx F_t \left[ \begin{matrix} x_t\\u_t \end{matrix}\right]+f_txt+1​=f(xt​,ut​)≈Ft​[xt​ut​​]+ft​,其中locally linear体现在xt+1=Fxtxt+Futut+ftx_{t+1}=F_{x_t}x_t+F_{u_t}u_t+f_txt+1​=Fxt​​xt​+Fut​​ut​+ft​即下一状态与当前状态、动作成局部线性关系,time-varied体现在已知拟合好的Ft,ftF_t,f_tFt​,ft​随着时间的可变性上。
  • iLQR相当于对目标函数min⁡u1,..uTc(x1,u1)+c(f(x1,u1),u2)+⋯+c(f(f(...()...),uT)\min_{u_1,..u_T}c(x_1,u_1)+c(f(x_1,u_1),u_2)+\cdots+c(f(f(...()...),u_T)minu1​,..uT​​c(x1​,u1​)+c(f(x1​,u1​),u2​)+⋯+c(f(f(...()...),uT​)中的dynamics model f(xt,ut)f(x_t,u_t)f(xt​,ut​)与cost function c(xt,ut)c(x_t,u_t)c(xt​,ut​)进行了泰勒近似,并采用Newton Method来迭代。
  • DDP则是扩展了iLQR中的dynamics model使其为泰勒二阶近似。

参考资料

CS285 lec10的PPT
知乎中原一点红的课程笔记
Medium:Jonathan Hui

补充

  • LQR与iLQR中stochastic dynamics的具体影响理解得不够透彻。
  • iLQR中dynamics model假设中f(xt,ut)=N(Ft[xtut]+ft,Σt),Σtf(x_t,u_t)=N\big(F_t \left[ \begin{matrix} x_t\\u_t \end{matrix}\right]+f_t,\Sigma_t\big),\Sigma_tf(xt​,ut​)=N(Ft​[xt​ut​​]+ft​,Σt​),Σt​的影响,该如何设置,以这个高斯分布为具体模型时运算中Σt\Sigma_tΣt​是如何被消掉的这一点,这几个问题还没搞懂,待有心力时再补充。

LQR,iLQR,DDP控制论经典算法(MBRL基础知识)相关推荐

  1. 机器学习算法的基础知识

    机器学习算法的基础知识 1.评估指标 2.偏差与方差(过拟合与欠拟合) 3.正则化(解决过拟合) 4.梯度下降算法(算法优化方式) 5.数据不平衡 1.评估指标 预测值 0 1 实际 0 TN FP ...

  2. 菜鸟学算法一基础知识篇

    菜鸟学算法<一>知识准备篇 刚刚上任,急着给兄弟们一点见面礼,嘿嘿 前言:论坛上有关算法分析的文章不少,也不少精品 但对于刚学CARACK来说,只是叹为观止 原因如下: 1.论坛高手如云, ...

  3. 数据结构基础:算法的基础知识笔记

    1.算法的概念 算法是问题求解过程中的精确描述,它为解决某一特定类型的问题规定了一个运算过程. 2.算法的特点 2.1 有穷性 一个算法必须在有穷的步骤结束后结束,并且每一步都在有穷时间内完成. 2. ...

  4. TCP系列39—拥塞控制—2、拥塞相关算法及基础知识

    原文:https://www.cnblogs.com/lshs/p/6038722.html 一.拥塞控制的相关算法 早期的TCP协议只有基于窗口的流控(flow control)机制而没有拥塞控制机 ...

  5. PID算法的基础知识

    PID的含义 控制系统通常根据有没有反馈会分为开环系统和闭环系统,PID是一个闭环控制算法.因此要实现PID算法,必须在硬件上具有闭环控制,就是得有反馈.比如控制一个电机的转速,就得有一个测量转速的传 ...

  6. 数据结构之栈,栈是很多算法的基础知识,本文带你从0开始了解栈并手写一个栈

    栈(Stack) 一.目录 1.栈的基本介绍 2.栈的相关术语 3.栈的特点 4.栈实现的基本思路 5.栈的图解 6.数组实现栈的原码 7.栈的应用 二.正文 1.栈的基本介绍 栈的英文为Stack, ...

  7. 数据结构与算法学习——基础知识(一)

    数据结构与算法 线性结构和非线性结构 基本概念 线性结构 非线性结构 稀疏数组 基本概念 稀疏数组的处理方法 举例说明 应用实例 代码实例 队列 基本介绍 示意图 数组模拟队列 思路分析 代码实现 数 ...

  8. 深入理解机器学习——k近邻(kNN,k-Nearest Neighbor)算法:基础知识

    分类目录:<深入理解机器学习>总目录 k近邻(k-Nearest Neighbor,kNN)算法是一种常用的有监督学习算法,可以完成分类与回归的任务,其工作机制非常简单:给定测试样本,基于 ...

  9. Java 经典问题 for 基础知识

    http://www.uml.org.cn/j2ee/201105043.asp 摘: 1 重写(override也称覆盖)和重载(overloading) 重写是 父类和子类之间的多态体现,重写父类 ...

  10. 【广告算法】基础知识补充

    机器学习在饿了么竞价广告中的实践 - 文西的文章 - 知乎 https://zhuanlan.zhihu.com/p/32020522 校准部分一般采用保序回归校准的方式.-- 需要扩展<保序回 ...

最新文章

  1. 【C++】重载运算符(一)
  2. 博世力士乐液压_[Event Review] Company Visit Bosch Rexroth 博世力士乐液压工厂参观
  3. 四元数组旋转_四元数应用——顺序无关的旋转混合
  4. Windows下设置开机自启动的方式(手动/C++代码的形式)
  5. Android 源码分析(三) Service 启动分析
  6. 大数据时代侦查机制有哪些改变
  7. python相比于c语言更静态_Python的几种实现
  8. DOTween Sequence的使用
  9. 数据结构与算法分析(一)
  10. zookeeper节点的scheme是digest时,怎么把明文密码转换为密文 | 如何获取加密后的digetst密码
  11. 【C语言】规范掌握C语言函数|数组名的妙用|指针快速入门|综合使用小案例
  12. 【云原生】安全容器 Kata Containers
  13. C# 中的 delegate, Lambda 表达式 和 event
  14. 伦敦国王学院EEM专业介绍
  15. win10系统1903版本设置默认英文输入法
  16. 网络安全中的NISP-SO安全运维工程师都需要那些工具?
  17. python 大智慧接口_大智慧股票本地数据读取接口(含源码)
  18. 2022年全球与中国PLC光分路器市场现状及未来发展趋势
  19. “完全或无”、IND-CPA、IND-CCA1、IND-CCA2的详细说明
  20. 鸿蒙系统车联网,华为鸿蒙上车,关于车联网的想象有多少?

热门文章

  1. Element UI 中国省市区级联数据
  2. 读取xls格式的文件
  3. 酒店管理系统--C语言版
  4. 《数字图像处理》:直方图处理的几种方式
  5. linux禁用137 138端口,如何关闭135、137、138、139、445端口方法
  6. 七种寻址方式(立即寻址、寄存器寻址)
  7. android 健身定时器,健身计时器Runtastic Timer
  8. 安装deepin后没有Windows启动项解决办法
  9. 互联网日报 | 1月27日 星期三 | 支付宝集五福活动2月1日开启;华为否认“出售手机业务”传闻;中国联通自有手机品牌发布...
  10. wind7计算机控制面板在哪,联想win7系统控制面板在哪里打开