Deep Signature Transforms
Deep Signature Transforms
研究的背景
- 这是2019年的工作,提出了一种新颖的方法,可以将签名变换的优点和现代深度学习框架相结合,这样就可以将具有强大数学理论基础的签名变换和具有巨大经验成功的神经网络相结合,得到更好的效果。
- 路径举例:特定位置的气压变化可以被认为是 R 中的一条路径; 笔在纸上的运动可以被认为是 $R^2$ 中的一条路径; 金融市场的变化可能被认为是 $R^d$ 中的一条路径,d 可能非常大。
- 路径签名:路径的统计量(从0阶到无穷阶)的集合。
使用的方法(创新点)
整体思路:通过在签名转换之前学习流的扩充,可以以数据相关的方式选择签名的项。思路流程:以往的工作往往使用深度为n的截断签名,即取0~n阶的路径积分构成的集合作为路径签名,但是这存在一个问题——如果要学习的函数需要依赖于更高阶的路径积分,那么关键的信息就丢失了。其解决方法是在取签名之前对数据流的每一个点做增强,例如将x映射为f(x),然后对f(x)取签名。于是关键问题就变成了如何选取这个映射f(x),一个自然的想法就是扔进网络里学一个选择出来。但是将签名转换作为神经网络的一个层的明显问题是:该层接收数据流作为输入,返回的却是没有明显的像数据流一样性质的统计量。其解决方法是将输入流提升为流的流,例如对于序列($x_1,\cdots,x_n$),可以提升为新序列[$(x_1,x_2),\cdots,(x_1,x_2,\cdots,x_n)$],这样再使用签名变换,便可以得到序列[$sig^N(x_1,x_2),\cdots,sig^N(x_1,\cdots,x_n)$]。
作者描述了如何将签名变换用作可以放在神经网络中任何地方的一个层。我们可以将其理解为一种池化操作。签名变换层的输入是一个(b,d,n)的tensor,b是batch_size,d是路径的维度,n是路径被采样的次数;其输出是(b,$(d^{N+1}-1)/(d-1)$),N是截断深度。其中有公式:
$$
num=\frac{d^{N+1}-1}{d-1}
$$
显然,这是一个首项为1的等比数列的求和公式。举一个例子,对于一条三维的路径X,其d=3,我们取截断深度为3。那么其路径签名应该有$3^0+3^1+3^2+3^3=40$项。而将d和N代入公式也有num=40项。因此上述公式描述了一个维度为d的路径,在截断深度为N的情况下,其路径签名中的项的数目。两种常见的签名神经网络架构如下图所示:
它们分别代表着直接对数据提取路径签名以及先对数据进行增强,然后再对增强后的数据取路径签名。我们要求这种增强必须能够保留数据的流式性质。于是,又有两种方法:
第一种方法是直接对每个点做增强,第二种方法是类似卷积核的滑动过程,对固定长度个数据进行滑动增强。
除了增强要能保留数据的流式性质之外,还应该保证取签名之后的结果也应当保留有流式性质。其解决方法一如我们在创新1中所说的,将输入流提升为流的流即可,具体方案则有许多:比如创新1中提到的方法,以及下图中的两种方法:
借助3中的手段,我们可以在网络中使用任意多个签名层,其示意图如下图所示:
签名变换的反演变换。
三种应用举例