Path development layer
1. 背景介绍
Path development和path signature一样,是一种对时序序列的描述。Path signature固然在序列建模方面已经有了很多的应用,但自身的几个缺陷缺使得它仍然存在不足:
- 维度诅咒:每一阶PS特征的数目随着输入序列特征维度的增加而大幅增加,截取到K阶的PS特征项数总共为 ∑ i = 0 K d k + 1 − 1 d − 1 \sum_{i=0}^K\frac{d^{k+1}-1}{d-1} ∑i=0Kd−1dk+1−1,显然受 d d d的影响很大。
- 无数据自适应:由于PS特征提取是一种非参的特征提取方法,它并不会因为输入序列的变化而自适应的调整方法本身。
- 潜在信息损失:由于PS特征是无限阶的,通常我们需要对其进行截断,这会带来潜在的信息损失。
针对上述问题,作者提出了Path development (layer)
2. path developemnt
定义
对于一条路径
X
:
[
0
,
T
]
↦
R
d
X:[0,T]\mapsto R^d
X:[0,T]↦Rd,在预先确定线性映射
M
:
R
d
→
g
⊂
W
M:R^d\rightarrow g\subset W
M:Rd→g⊂W的情况下,路径
X
X
X在李群
G
G
G上的path developent是如下微分方程的解:
d
Z
t
=
Z
t
⋅
M
(
d
X
t
)
f
o
r
a
l
l
t
∈
[
0
,
T
]
w
i
t
h
Z
0
=
e
,
(1)
dZ_t=Z_t\cdot M(dX_t)\ for\ all\ t \in [0,T] with\ Z_0=e,\tag{1}
dZt=Zt⋅M(dXt) for all t∈[0,T]with Z0=e,(1)
记
D
M
(
X
)
D_M(X)
DM(X)为
X
X
X在
G
,
M
G,M
G,M下对应的path development的终点
Z
T
Z_T
ZT。
2.1 解析
2.1.2 李群和李代数知识
path development的定义需要从李群和李代数的角度来分析。李群在各个位置都有不同但是相似的切平面(不同指这些平面不重叠,相似指这些平面的结构相同),从而一点在李群上运动时某处的速度可以投影到该处的切平面上,用切平面上的局部坐标来表示。李代数是李群在幺元处的切平面,它的特殊之处在于幺元处移动速度的全局坐标和局部坐标是一致的。而其他位置处的局部速度值
v
^
v^{\hat{}}
v^和全局坐标下的速度值
χ
˙
(
t
)
\dot{\chi}(t)
χ˙(t)符合如下关系:(当我们谈及李群的时候,更多的是在描述代数结构,并不是确切的某个切平面,所有切平面都是相似的,共有一套代数结构如
i
R
iR
iR)
χ
˙
=
χ
v
^
(2)
\dot{\chi}=\chi v^{\hat{}}\tag{2}
χ˙=χv^(2)
同样的,这也是个微分方程,从而我们可以得到李群上一条轨迹的运动学方程:
χ
(
t
)
=
χ
(
0
)
e
x
p
(
v
^
(
t
)
)
(3)
\chi(t)=\chi(0)exp(v^{\hat{}}(t))\tag{3}
χ(t)=χ(0)exp(v^(t))(3)
而更进一步的切平面虽然说是“平面”,实际上并不是普遍意义上的平面(如
R
2
,
R
3
R^2,R^3
R2,R3),而是具有非平凡结构的的空间(如
s
o
(
2
)
,
s
e
(
2
)
so(2),se(2)
so(2),se(2))。为了更好的利用李平面上的元素,我们用其同构的笛卡尔向量空间来表征李平面上的元素,这一过程叫做"hat"。具体而言,在李平面内确定多个基底
E
i
E_i
Ei,则李平面上的元素可以表示为基底的线性组合,这些系数即为对应李平面元素在同构的笛卡尔向量空间上的表示。过程如下:
从而式子2可以改写为:
χ
˙
=
χ
H
a
t
(
v
)
,
w
h
e
r
e
v
∈
C
a
r
t
e
s
i
a
n
v
e
c
t
o
r
s
p
a
c
e
(4)
\dot{\chi}=\chi Hat(v),where\ v\in Cartesian\ vector\ space \tag{4}
χ˙=χHat(v),where v∈Cartesian vector space(4)
2.2 联系
将式(4)和式(1)联系在一起,不难发现,path development实际上是将输入
X
X
X视作为了笛卡尔向量空间上的移动速度,需要求出在变换Hat:
M
M
M的相应李群
G
G
G上的运动轨迹。其中任意
X
t
∈
R
d
X_t\in R^d
Xt∈Rd为一组笛卡尔向量空间上的速度坐标,通过
M
θ
(
x
)
=
∑
j
=
1
d
θ
j
x
j
M_{\theta}(x)=\sum_{j=1}^d\theta_{j}x^{j}
Mθ(x)=∑j=1dθjxj来将
X
t
∈
R
d
X_t\in R^d
Xt∈Rd从向量空间映射到李平面上,其中
θ
j
∈
m
\theta_j\in m
θj∈m是我们要去确定的李平面基底。
而通过式(3)我们也就知道了path developemt的解为:
D
M
(
X
)
0
,
t
=
e
x
p
(
M
(
X
t
−
X
0
)
)
(5)
D_M(X)_{0,t}=exp(M(X_t-X_0))\tag{5}
DM(X)0,t=exp(M(Xt−X0))(5)
其中
M
M
M为笛卡尔向量空间到李平面的映射。
2.3 可乘性
path development有个非常不错的可成性,为我们后续path development layer的构造打下了基础:对于分段的路径:
我们有:
D
M
(
X
∗
Y
)
=
D
M
(
X
)
D
M
(
Y
)
(6)
D_M(X*Y)=D_M(X)D_M(Y)\tag{6}
DM(X∗Y)=DM(X)DM(Y)(6)
也就是拼接路径的PD等于内部每个子路径PD的乘积,利用式(5)、(6)我们可以用循环相乘的方式来计算出任意分段路径的
D
M
D_M
DM。
3. path development layer
有了之前的铺垫,PD layer已经水到渠成了。确定李群和李代数,PD layer定义为映射
D
θ
:
R
d
×
(
N
+
1
)
→
G
N
+
1
[
o
r
G
]
:
X
=
(
x
0
,
.
.
.
,
x
N
)
↦
Z
=
(
z
1
,
.
.
.
,
z
N
)
[
o
r
z
N
]
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]
Dθ:Rd×(N+1)→GN+1[or G]:X=(x0,...,xN)↦Z=(z1,...,zN)[or zN],对于
n
∈
0
,
.
.
.
,
N
−
1
n\in{0,...,N-1}
n∈0,...,N−1有:
z
n
+
1
=
z
n
e
x
p
(
M
θ
(
x
n
+
1
−
x
n
)
)
(7)
z_{n+1}=z_n exp(M_{\theta}(x_{n+1}-x_n))\tag{7}
zn+1=znexp(Mθ(xn+1−xn))(7)
其中exp是矩阵指数,
θ
\theta
θ是要训练的基底。值得注意的是
z
N
∈
G
≠
R
z_N\in G\neq R
zN∈G=R,也就是说z的size并不为1,而是由李群本身的维数决定
这就是利用了式(5),(6),以一种递进的方法来如同RNN一般输出每个时刻所提取出的特征值。算法流图如下
4. why PD?
回到最初的问题,PD解决了PS的缺陷吗》二者间又有着什么样的联系呢?
不加证明的给给出PS和PD的关系如下
D
M
(
X
)
=
M
~
(
S
(
X
)
)
D_M(X)=\widetilde{M}(S(X))
DM(X)=M
(S(X))
其中
M
~
\widetilde{M}
M
为
M
θ
M_{\theta}
Mθ的一个规范拓展,用于将signature映射到李群上;更具体的PD是PS的生成函数,
D
M
(
X
)
=
∑
k
≥
0
M
~
(
π
k
(
S
(
X
)
)
)
D_M(X)=\sum_{k\geq0}\widetilde{M}(\pi_k(S(X)))
DM(X)=∑k≥0M
(πk(S(X))),自我理解就是线性组合。
同时理论证明,如果两个路径签名在K阶发生而来差异,我们就可以找到一个映射
M
t
h
e
t
a
M_{theta}
Mtheta对应的
m
~
\widetilde{{m}}
m
来将这两个签名分开,由该映射求出的PD特征最低维数为
(
m
a
x
(
2
,
k
3
)
)
2
(max(2,\frac{k}{3}))^2
(max(2,3k))2,远远小于直接使用PS将他们分开所需要的项数
∑
i
=
0
K
d
k
+
1
−
1
d
−
1
\sum_{i=0}^K\frac{d^{k+1}-1}{d-1}
∑i=0Kd−1dk+1−1。也就是说利用PD我们可以用更少的特征数目来体现出路径在PS特征上的差异。
总而言之,相对于PS,PD有以下优势:
- PD的输出大小和输入特征维数无关,只与选取的李群有关;
- PD中包含需要训练的参数 θ \theta θ,具有数据适应的特性
- PD不需要截断,无信息损失;