慢特征分析(slow feature analysis,SFA)是 wiskott 在2002年的一篇论文里提出来的无监督学习方法,它可以从时间序列中提取变化缓慢的特征,被认为是学习时间序列最显著特征的一种方法。这里只讲述SFA应用于线性问题时的模型和解法,其对于非线性问题的应用,是基于线性模型并结合核函数来进行优化的。
目录
- 一.慢特征分析模型的数学描述
- 二.慢特征模型的求解
- 三、更多资源下载
一.慢特征分析模型的数学描述
首先,对于给定的原始时序特征
这里
表示时序差分,
表示序列的期望。 运算
的值可以认为是序列
波动快慢的一个度量。给定一个 n 维的时序数据
,
SFA旨在找到一系列慢特征 。这些慢特征是按照从慢到快或者从快到慢排序的,一般而言我们认为提取后的特征中变化最慢的几个特征是最能体验数据本质特性的特征,将其保留,而变化快速的特征认为是一些噪声信号,将其舍弃。
SFA的线性模型可以写成如下形式
约束为 ,零均值
,单位方差
该模型中 ,即模型可以理解为将原始数据
转化为慢特征
以后要求
,同时对
二.慢特征模型的求解
我已经提到 ,这里的
是SFA需要优化求解的对象。我们首先对原始数据进行预处理白化操作,即使得数据满足于第一节提到的三个约束条件,记
, 对
基于上式,我们可以得到预处理之后的白化数据
白化后的数据
的协方差矩阵为单位阵,即具有性质
,接下来,我们的优化问题就变成了找到一个矩阵
使得
并且满足
,根据这一条件我们可以知道,待求解的矩阵
一定满足条件
, 因此
一定是正交矩阵。我们的模型目标为最小化
,这一目标可以简单的通过对
进行奇异值分解实现,即
以这样的方式我们最终可以得到目标矩阵
为
慢特征分析的python源代码还有应用的地址如下
https:///LiangjunFeng/Machine-Learning/blob/master/A10.SFA.py
















