原文为 Wang et al., 2008b J. M. Wang, D. J. Fleet, and A. Hertzmann. Gaussian process dynamical models for human motion. IEEE Transactions on Pattern Analysis and Machine Intelligence, 30:283–398, 2008

下面是一些笔记吧……


动态系统

  1. 线性动态系统(LDS)
    Kalman光滑估计出潜状态的期望,可以简化模型。缺点是不适用于复杂系统的建模。
  2. 非线性动态系统(NLDS)
    利于建模复杂系统,表达出数据的非线性特征。但是非线性参数容易过拟合。

因此最好结合线性和非线性特征建模。本文主要用的是NLDS.


GPDM

高斯过程动态模型是一个潜变量模型,它包含了从潜空间到观测空间的一个映射,以及在潜空间的一个动态过程。在人体动作建模中,即是有一个姿势的抽象与识别,以及动作的连续性这两步。

建模中需要完成:

边缘化参数得到映射关系(一般NLDS没有边缘化)
优化数据的潜坐标

为了模型合适,最好要使得参数的数量适宜,不要太过简单或者过拟合;另外数据量要大,才能学习得到更多的模型特征。


图模型

从图模型开始看,观测数据为高维的y,潜变量为低维的x,具有时间依赖的关系。其中反映时间传递的参数为A,写入到动态函数中;反映从潜空间映射到观测空间的参数为B,写入到观测函数中。
A和噪声决定了x,B和噪声决定了y。其中假设了噪声是高斯分布的(零均值、各向同性的白高斯),动态过程是Markov过程。
虽然可以设置输入,但是这里用了无监督学习,因此取消了输入数据的设置。

非线性动态自适应惯性权重 非线性动态模型是什么_迭代

建模时估计A、B以及噪声,得到最大似然,以确定这些参数值。具体的方法可以采用EM算法或者概率框架。

由于一开始会假设一些关于A,B的函数形式,但是其实形式是偶然的,因此一般会边缘化参数之后再来估计潜坐标。其中,关于B的函数(6)边缘化后会有闭式解,可以表达为多个高斯过程的乘积。然而关于A的函数(10)的指数与非指数部分都有x,因此并非关于x的高斯函数。

A、B在上面两个式子中都表示为核矩阵,矩阵中的元素表示变量之间一一关系的RBF(Radial Basis Function)核函数,其中也会加入高斯白噪声函数。


解决问题

围绕公式p(X,Y,α¯,β¯,W)=p(Y|X,β¯,W)p(X|α¯)p(α¯)p(β¯)p(W),右式的第一、二项即为上面表述的与B,A相关的函数。其已经表示为高斯函数以及类高斯函数。而三、四、五项则可以通过简单的假设来尝试。


四种算法

文章用四种方法来建立潜空间模型,当有观测数据丢失时,也是先重建潜空间模型,再恢复观测数据。

MAP估计

p(X,α¯,β¯,W|Y)=p(X,α¯,β¯,W,Y)p(Y)∝p(X,α¯,β¯,W,Y)


最大后验估计,即最大化联合分布,等价于最小化负对数函数,即公式(27)(28)(29)。其中可以得到W的闭式解,但其他参数

X,α,β只能通过SCG共轭梯度法优化,所有参数相互迭代得到最优解。

这个方法再潜空间上可以生成和训练数据相近的重建模型,但是对于动态观测

平衡GPDM

为了使得到的潜轨迹更加平滑,要增大公式(27)中的Lx项,因此乘上比例系数Dd。

另一种说法是,由于Matlab处理数据时对于过大、过小的数据精度有误差,因此可以调整比例参数后再做矩阵运算。

手动设置参数

通过多次模拟手动设定较为合理的参数值α¯。

二阶MAP估计

首先估计超参数的值,然后在参数固定的情况下估计X。
对X采样,对其他参数用迭代得到最优解。