慢特征分析(slow feature analysis,SFA)是 wiskott 在2002年的一篇论文里提出来的无监督学习方法,它可以从时间序列中提取变化缓慢的特征,被认为是学习时间序列最显著特征的一种方法。这里只讲述SFA应用于线性问题时的模型和解法,其对于非线性问题的应用,是基于线性模型并结合核函数来进行优化的。


目录

  • 一.慢特征分析模型的数学描述
  • 二.慢特征模型的求解
  • 三、更多资源下载


一.慢特征分析模型的数学描述

首先,对于给定的原始时序特征 tsfresh 时序特征提取_特征提取


tsfresh 时序特征提取_tsfresh 时序特征提取_02


这里

tsfresh 时序特征提取_特征提取_03 表示时序差分,

tsfresh 时序特征提取_SFA_04 表示序列的期望。 运算

tsfresh 时序特征提取_SFA_05 的值可以认为是序列

tsfresh 时序特征提取_tsfresh 时序特征提取_06 波动快慢的一个度量。给定一个 n 维的时序数据

tsfresh 时序特征提取_tsfresh 时序特征提取_07

SFA旨在找到一系列慢特征 tsfresh 时序特征提取_特征提取_08。这些慢特征是按照从慢到快或者从快到慢排序的,一般而言我们认为提取后的特征中变化最慢的几个特征是最能体验数据本质特性的特征,将其保留,而变化快速的特征认为是一些噪声信号,将其舍弃

SFA的线性模型可以写成如下形式
tsfresh 时序特征提取_SFA_09

约束为
tsfresh 时序特征提取_特征提取_10 ,零均值
tsfresh 时序特征提取_慢特征分析_11 ,单位方差
tsfresh 时序特征提取_tsfresh 时序特征提取_12

该模型中 tsfresh 时序特征提取_慢特征分析_13,即模型可以理解为将原始数据 tsfresh 时序特征提取_特征提取_14 转化为慢特征 tsfresh 时序特征提取_降维_15 以后要求 tsfresh 时序特征提取_降维_15,同时对 tsfresh 时序特征提取_tsfresh 时序特征提取_17

二.慢特征模型的求解

我已经提到 tsfresh 时序特征提取_慢特征分析_13 ,这里的 tsfresh 时序特征提取_SFA_19 是SFA需要优化求解的对象。我们首先对原始数据进行预处理白化操作,即使得数据满足于第一节提到的三个约束条件,记 tsfresh 时序特征提取_降维_20, 对 tsfresh 时序特征提取_慢特征分析_21


tsfresh 时序特征提取_tsfresh 时序特征提取_22


基于上式,我们可以得到预处理之后的白化数据

tsfresh 时序特征提取_降维_23


白化后的数据

tsfresh 时序特征提取_SFA_24 的协方差矩阵为单位阵,即具有性质

tsfresh 时序特征提取_降维_25,接下来,我们的优化问题就变成了找到一个矩阵

tsfresh 时序特征提取_特征提取_26 使得

tsfresh 时序特征提取_降维_27


并且满足

tsfresh 时序特征提取_tsfresh 时序特征提取_28,根据这一条件我们可以知道,待求解的矩阵

tsfresh 时序特征提取_特征提取_26 一定满足条件

tsfresh 时序特征提取_特征提取_30, 因此

tsfresh 时序特征提取_特征提取_26 一定是正交矩阵。我们的模型目标为最小化

tsfresh 时序特征提取_慢特征分析_32 ,这一目标可以简单的通过对

tsfresh 时序特征提取_慢特征分析_33 进行奇异值分解实现,即

tsfresh 时序特征提取_SFA_34


以这样的方式我们最终可以得到目标矩阵

tsfresh 时序特征提取_慢特征分析_35

tsfresh 时序特征提取_降维_36


慢特征分析的python源代码还有应用的地址如下


https:///LiangjunFeng/Machine-Learning/blob/master/A10.SFA.py

参考文献
[1] Wiskott L, Sejnowski T J. Slow feature analysis: unsupervised learning of invariances[J]. Neural Computation, 2002, 14(4):715.