微分动态规划 Differential Dynamic Programming DDP
注意上一讲中推导出的公式,我们发现如果只需更新Φ,则不必维护ψ的更新,即在一定程度上ψ是不需要的,所以我们在下面的讨论中不考虑ψ的影响。
使用上一讲中将非线性函数线性化的方法,并将s(t+1)表示为f(st, at),则DDP的算法表示如下:
(1)选定标称轨迹s0_, a0_, s1_, a1_, ... sT_, aT_
(2)将在标称轨迹附近的点线性化,如
s(t+1) = f(st_, at_)+(▽s f(st_, at_))^T*(st-st_)+(▽a f(st_, at_))^T*(at-at_) = Atst + Btat
我们希望有(st, at) ≈ (st_, at_)
(3)通过LQR算法获得πt
(4)使用模拟器获得新的标称轨迹,即:s0_=initial state,at_ = π(st_),st+1_ = f(st_, at_)
卡尔曼滤波 Kalman Filter
下面我们介绍卡尔曼滤波算法,这一算法属于隐马尔可夫模型HMM的一个特例,其假设我们观测到的状态并不是真正的状态,而是经过了一定的映射的,映射的结果可能会降低维数,并带来误差,其方程为yt=Cst+vt,其中vt服从均值为0、方差为Σ的高斯分布,yt即我们观察到的结果
卡尔曼滤波的思路为 P(st | y1, ..., yt) -> predict -> P(st