GPS(guided policy search)中BADMM关键公式的一些理解

#1.问题陈述
在状态空间 X 中存在路径 l(τ) l(xt,ut) 是其策略。需要优化这个路径使得动作在状态空间中的某种收益 J(p(τ)) 最大化。我们可以通过神经网络或者LQR控制器等方法将控制策略参数化,从而这个问题可以转化为一个参数优化问题。
但是在实际操作中,我们一般不可能知道系统的全状态 x ,而只知道系统的某些观测状态 o ,全状态可以由观测状态观测为该全状态的概率表示:

πθ(xt|ut)=πθ(ut|ot)p(ot|xt)dot

假设在观测状态下同样存在一个控制策略 π(o) ,此时,存在两个选择:

  • 使用全状态来优化策略
  • 使用观测状态来优化策略

全状态优化策略:理论上很容易推导出最优解,但是全状态是不可被观测的,只有通过观测状态被猜测出来,由于同样的观测状态可能是多个不同的全状态观测到的,所以在策略执行的时候很,如果没有得到全状态和观测状态的转移概率,很难完成最优控制。
观测状态优化策略:观测状态有点在于能够直接测量得到,并且在一个轨迹上能够得到大量的样本。但是由于收益函数是由全状态来定义的,所以由观测状态来优化的话,很难得到最优解。
基于以上考虑,建立观测状态和全状态之间的关系并在全状态空间优化可能得到最优的解。

2.优化策略

需要优化的目标:

Eπθ[l(τ)]l(τ)=t=1Tl(xt,ut)

但是,这个策略是以观测状态为基础拟合的策略,也就是说这个策略再评价函数上的优化并不能表示实际的,所以我们需要建立一个约束,假设在该观测状态下采取的策略和全状态下的策略p一致(在此处还没有建立观测状态个全状态的对应关系),此时优化约束:
p(ut|xt)=πθ(ut|xt)

由于在此时假设这两个策略等价,从而优化目标也可以转为优化P策略即优化:
minp,πθ Ep[l(τ)]

在这个问题里面,对比ADMM的形式:
minx,z f(x)+g(z),st.Ax+Bz=c

我们可以这样理解: p 就是x部分, πθ 就是z部分,约束条件是两部分的概率分布相等。而且在这个约束下,很容易也可以知道, Ep[l(τ)=Eπθ[l(τ)] 这样,约束条件其实也可以更改为上面那个式子,则有:
{minp,πθ Ep[l(τ)]Ep[l(τ)Eπθ[l(τ)]=0

写成拉格朗日对偶形式有:
Lθ,p=Eπθ[l(τ)]+λT(Ep[l(τ)Eπθ[l(τ)])+KL_divergence

此时,使用BADMM框架进行优化:

θarg minθt=1TEπθ(ut|xt)[λxt,ut]+KLparg minpt=1TEp(ut|xt)[l(xt,ut)λxt,ut]+KLλxt,utλxt,ut+αvt(πθ(ut|xt)p(ut|xt))

但是,这个优化式子中存在类似 Eπθ(ut|xt)[λxt,ut] 的式子由于在 θ 优化的时候 λ 固定,其可以看做是对于一个常数求期望,这并没有什么优化的价值,更关键的一点是整个式子也无法和现有的观测样本建立联系,所以我们对于约束条件进行了如下变化:

  • 将约束式两边乘以 p(x) 从而将条件分布概率转换为联合分布概率
  • 将式子两遍乘以单位化的执行动作 ut 在每一个采样时刻,该动作可以看做是一个常数,并且其如果在笛卡尔坐标下单位化,其对于式子两边也不会产生影响

这样,优化公式可以更改为:

θarg minθt=1TEπθ(ut|xt)p(xt)[utλut]+KLparg minpt=1TEp(ut,xt)[l(xt,ut)utλut]+KLλutλut+αvt(Eπθ(ut|xt)p(xt)[ut]Ep(ut|xt)p(xt)[ut])

3.动态模型拟合

整个系统在执行过程中,其系统参数会随着状态的变化而变化,所以应该依据每一个状态的不同状态参数对系统进行优化。由于我们假设系统在每一个时刻都是线性高斯的,所以可以使用一个高斯分布来拟合。在线性控制系统中,存在:

xt+1=fxtxt+futut+fct+noise

其中 fxt , fut , fct 都是线性组合系数。在噪声分布假设为高斯的情况下,可以推导出:
p(xt+1|xt,ut)N(fxtxt+futut+fct,Ft)

而且由于我们的模型需要从样本对中拟合出来,如果用拟合的方法对上式子进行处理,在参数维度过高的时候可能会很难收敛,并且从实际的角度来说可能并不需要如此精确的模型。所以从之前的样本对中先对分布建立一个大致的先验,再使用新样本对其进行拟合才是更有效的更新动态模型的方法。
假设尽管系统的动态模型是一个时变模型,但是其大致分布还是满足一个高斯分布,即可以使用一套参数 fx,fu,fc 来大致描述整个轨迹过程中的动态模型,针对于各个时刻我们只需要使用该时刻的样本对对模型进行微调来适应各个时刻的模型就可以了。
由多个独立同分布的状态对 xit,uit,xit+1 可以假设整个轨迹符合Wishart分布。从而先得到Wishart分布的参数作为先验,再使用当前的样本信息进行拟合得到当前状态下的动态模型。
我们可以使用更新公式进行拟合:
Σ=Φ+NΣ^+NmN+m(μ^μo)(μ^μo)TN+noμ=mμo+noμ^m+no

其中Wishart分布的参数式由之前所有经验样本得到的,将状态转移的样本对拓展为: [x;u;x] ,可以计算出其均值 μ¯ 和方差 Σ¯ ,从而可以得到先验分布参数 Φ=noΣ¯ 以及 μo=μ¯ ,式子中的 no m 应该被设置为数据集合中样本的数目,但是实验表明这两个参数都设置为1可以取得更好的效果。
而在复杂的模型中,单个高斯模型可能很难取得较好效果,所以文章采用了高斯混合模型作为动态模型的估计。在样本初始化时使用EM算法将所有样本划分为至少两个高斯模型的簇,再进行动态模型拟合,从而估计出正确的动态模型。
讨论和补充:
1.实际中策略网络是使用观测值 o 进行训练的,观测状态 o 和全状态x如何建立起关系
观测状态和全状态是存在联系的,其可以表达为: πθ(xt|ut)=πθ(ut|ot)p(ot|xt)dot 可以理解为,观测状态是由全状态决定的。而且文章中指出这个积分会根据之前的观测样本进行评估。
2.这个关系如何在公式中体现
现在来看应该是在期望估计的过程中发挥作用,其中xt,ut状态对的联合概率似乎可以和dynamics(动态模型)扯上关系。
3.LQR在这一套流程中扮演什么角色
LQR调节优化策略p
4.为什么实际操作的时候会在概率等式两遍都乘以 p(xt)
将条件分布概率转为联合概率分布,更方便估计
5.为什么要使用期望作为约束而不用概率
因为概率在不同的xt会呈现不同的分布,如果时间周期比较长,概率这个东西会变得很难计算,而期望什么时候都是一个标量,有助于量化计算
6.动态模型和策略p的关系,再详细一点
策略p是使用动态模型来表示的,而这个动态模型是混合高斯模型。
7.为什么用KL散度约束
因为假设是观测状态策略和全状态策略一致,但是这个一致只是理想的假设,在实际优化过程中我们只希望这两个策略“差不远”就可以了,所以使用KL散度表示两个模型之间的信息熵,从而约束两个策略不会相差太远。
8.为什么优化的策略和原策略之间也需要使用KL散度来约束
因为优化策略只是根据sample在状态空间呢理论上的优化,但是如果其和执行sample的实际策略相差太远的话,就会导致sample的可靠性下降。

你可能感兴趣的:(机器学习)