Path development介绍

403 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

Path development layer

1. 背景介绍

 Path development和path signature一样,是一种对时序序列的描述。Path signature固然在序列建模方面已经有了很多的应用,但自身的几个缺陷缺使得它仍然存在不足:

  1. 维度诅咒:每一阶PS特征的数目随着输入序列特征维度的增加而大幅增加,截取到K阶的PS特征项数总共为i=0Kdk+11d1\sum_{i=0}^K\frac{d^{k+1}-1}{d-1},显然受dd的影响很大。
  2. 无数据自适应:由于PS特征提取是一种非参的特征提取方法,它并不会因为输入序列的变化而自适应的调整方法本身。
  3. 潜在信息损失:由于PS特征是无限阶的,通常我们需要对其进行截断,这会带来潜在的信息损失。

针对上述问题,作者提出了Path development (layer)

2. path developemnt

定义

 对于一条路径X:[0,T]RdX:[0,T]\mapsto R^d,在预先确定线性映射M:RdgWM:R^d\rightarrow g\subset W的情况下,路径XX在李群GG上的path developent是如下微分方程的解:

dZt=ZtM(dXt) for all t[0,T]with Z0=e,(1)dZ_t=Z_t\cdot M(dX_t)\ for\ all\ t \in [0,T] with\ Z_0=e,\tag{1}

DM(X)D_M(X)XXG,MG,M下对应的path development的终点ZTZ_T

2.1 解析

2.1.2 李群和李代数知识

path development的定义需要从李群和李代数的角度来分析。李群在各个位置都有不同但是相似的切平面(不同指这些平面不重叠,相似指这些平面的结构相同),从而一点在李群上运动时某处的速度可以投影到该处的切平面上,用切平面上的局部坐标来表示。李代数是李群在幺元处的切平面,它的特殊之处在于幺元处移动速度的全局坐标和局部坐标是一致的。而其他位置处的局部速度值v^v^{\hat{}}和全局坐标下的速度值χ˙(t)\dot{\chi}(t)符合如下关系:(当我们谈及李群的时候,更多的是在描述代数结构,并不是确切的某个切平面,所有切平面都是相似的,共有一套代数结构如iRiR

χ˙=χv^(2)\dot{\chi}=\chi v^{\hat{}}\tag{2}

同样的,这也是个微分方程,从而我们可以得到李群上一条轨迹的运动学方程:

χ(t)=χ(0)exp(v^(t))(3)\chi(t)=\chi(0)exp(v^{\hat{}}(t))\tag{3}

而更进一步的切平面虽然说是“平面”,实际上并不是普遍意义上的平面(如R2,R3R^2,R^3),而是具有非平凡结构的的空间(如so(2),se(2)so(2),se(2))。为了更好的利用李平面上的元素,我们用其同构的笛卡尔向量空间来表征李平面上的元素,这一过程叫做"hat"。具体而言,在李平面内确定多个基底EiE_i,则李平面上的元素可以表示为基底的线性组合,这些系数即为对应李平面元素在同构的笛卡尔向量空间上的表示。过程如下:

1.png 从而式子2可以改写为:

χ˙=χHat(v),where vCartesian vector space(4)\dot{\chi}=\chi Hat(v),where\ v\in Cartesian\ vector\ space \tag{4}

2.2 联系

 将式(4)和式(1)联系在一起,不难发现,path development实际上是将输入XX视作为了笛卡尔向量空间上的移动速度,需要求出在变换Hat:MM的相应李群GG上的运动轨迹。其中任意XtRdX_t\in R^d为一组笛卡尔向量空间上的速度坐标,通过Mθx=j=1dθjxjM_{\theta}(x)=\sum_{j=1}^d\theta_{j}x^{j}来将XtRdX_t\in R^d从向量空间映射到李平面上,其中θjm\theta_j\in m是我们要去确定的李平面基底。
而通过式(3)我们也就知道了path developemt的解为:

DM(X)0,t=exp(M(XtX0))(5)D_M(X)_{0,t}=exp(M(X_t-X_0))\tag{5}

其中MM为笛卡尔向量空间到李平面的映射。

2.3 可乘性

 path development有个非常不错的可成性,为我们后续path developemnt layer的构造打下了基础:对于分段的路径:

2.png 我们有:

DM(XY)=DM(X)DM(Y)(6)D_M(X*Y)=D_M(X)D_M(Y)\tag{6}

也就是拼接路径的PD等于内部每个子路径PD的乘积,利用式(5)、(6)我们可以用循环相乘的方式来计算出任意分段路径的DMD_M

3. path development layer

 有了之前的铺垫,PD layer已经水到渠成了。确定李群和李代数,PD layer定义为映射Dθ:Rd×(N+1)GN+1[or G]:X=(x0,...,xN)Z=(z1,...,zN)[or zN]D_\theta:R^{d\times(N+1)}\rightarrow G^{N+1}[or\ G]:X=(x_0,...,x_N)\mapsto Z=(z_1,...,z_N)[or\ z_N],对于n0,...,N1n\in{0,...,N-1}有:

zn+1=znexp(Mθ(xn+1xn))(7)z_{n+1}=z_n exp(M_{\theta}(x_{n+1}-x_n))\tag{7}

其中exp是矩阵指数,θ\theta是要训练的基底。值得注意的是zNGRz_N\in G\neq R,也就是说z的size并不为1,而是由李群本身的维数决定 这就是利用了式(5),(6),以一种递进的方法来如同RNN一般输出每个时刻所提取出的特征值。算法流图如下

3.png

4. why PD?

 回到最初的问题,PD解决了PS的缺陷吗》二者间又有着什么样的联系呢? 不加证明的给给出PS和PD的关系如下

DM(X)=M~(S(X))D_M(X)=\widetilde{M}(S(X))

其中M~\widetilde{M}MθM_{\theta}的一个规范拓展,用于将signature映射到李群上;更具体的PD是PS的生成函数,DM(X)=k0M~(πk(S(X)))D_M(X)=\sum_{k\geq0}\widetilde{M}(\pi_k(S(X))),自我理解就是线性组合。 同时理论证明,如果两个路径签名在K阶发生而来差异,我们就可以找到一个映射MthetaM_{theta}对应的m~\widetilde{{m}}来将这两个签名分开,由该映射求出的PD特征最低维数为(max(2,k3))2(max(2,\frac{k}{3}))^2,远远小于直接使用PS将他们分开所需要的项数i=0Kdk+11d1\sum_{i=0}^K\frac{d^{k+1}-1}{d-1}。也就是说利用PD我们可以用更少的特征数目来体现出路径在PS特征上的差异。 总而言之,相对于PS,PD有以下优势:

  1. PD的输出大小和输入特征维数无关,只与选取的李群有关;
  2. PD中包含需要训练的参数θ\theta,具有数据适应的特性
  3. PD不需要截断,无信息损失;