为了账号安全,请及时绑定邮箱和手机立即绑定

机器学习教程 之 慢特征分析:时序特征挖掘

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

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

首先,对于给定的原始时序特征 u(t)u(t)u(t) , 我们有符号
Δ(u)=<u˙2(t)>t\Delta(u) = <\dot{u}^{2}(t)>_{t}Δ(u)=<u˙2(t)>t
这里 u˙(t)=u(t)−u(t−1)\dot{u}(t) = u(t) - u(t-1)u˙(t)=u(t)u(t1) 表示时序差分,<⋅>t<\cdot>_{t}<>t 表示序列的期望。 运算 Δ(u(t))\Delta(u(t))Δ(u(t)) 的值可以认为是序列 u(t)u(t)u(t) 波动快慢的一个度量。给定一个 n 维的时序数据 x(t)=[x1(t),x2(t),...,xn(t)]Tx(t) = [x_{1}(t),x_{2}(t),...,x_{n}(t)]^{T}x(t)=[x1(t),x2(t),...,xn(t)]TSFA旨在找到一系列慢特征 s(t)=[s1(t),s2(t),...,sn(t)]Ts(t) = [s_{1}(t),s_{2}(t),...,s_{n}(t)]^{T}s(t)=[s1(t),s2(t),...,sn(t)]T。这些慢特征是按照从慢到快或者从快到慢排序的,一般而言我们认为提取后的特征中变化最慢的几个特征是最能体验数据本质特性的特征,将其保留,而变化快速的特征认为是一些噪声信号,将其舍弃

SFA的线性模型可以写成如下形式
min<s˙i2>min <\dot{s}^{2}_{i}>min<s˙i2>

约束为
<si>t=0<s_{i}>_{t} = 0<si>t=0 ,零均值
<s˙2(t)>t=1<\dot{s}^{2}(t)>_{t} = 1<s˙2(t)>t=1 ,单位方差
i≠j,<sisj>t=0i \neq j , <s_{i}s_{j}>_{t} = 0ij,<sisj>t=0 , 去相关

该模型中 s(t)=WTx(t)s(t) = W^{T}x(t)s(t)=WTx(t),即模型可以理解为将原始数据 xxx 转化为慢特征 sss 以后要求 sss 的波动变化最慢,同时对 sss 具有以上的三个限制。 线性的SFA通过矩阵分解的办法可以得到完美的解析解。

二.慢特征模型的求解

我已经提到 s(t)=WTx(t)s(t) = W^{T}x(t)s(t)=WTx(t) ,这里的 W=[w1,w2,...,wn]TW = [w_{1},w_{2},...,w_{n}]^{T}W=[w1,w2,...,wn]T 是SFA需要优化求解的对象。我们首先对原始数据进行预处理白化操作,即使得数据满足于第一节提到的三个约束条件,记 B=<xxT>tB = <xx^{T}>_{t}B=<xxT>t, 对 BBB 矩阵进行SVD分解,可以得到
B=UΛUTB = U\Lambda U^{T}B=UΛUT
基于上式,我们可以得到预处理之后的白化数据
z=Λ−1/2UTxz = \Lambda^{-1/2} U^{T}xz=Λ1/2UTx
白化后的数据 zzz 的协方差矩阵为单位阵,即具有性质 cov(z)=<zzT>t=Icov(z) = <zz^{T}>_{t} = Icov(z)=<zzT>t=I,接下来,我们的优化问题就变成了找到一个矩阵 PPP 使得
s=Pzs = Pzs=Pz
并且满足 <ssT>t=I<ss^{T}>_{t} = I<ssT>t=I,根据这一条件我们可以知道,待求解的矩阵 PPP 一定满足条件 <PPT>=I<PP^{T}> = I<PPT>=I, 因此 PPP 一定是正交矩阵。我们的模型目标为最小化 <s˙i2>t=piT<z˙z˙T>tpi<\dot{s}^{2}_{i}>_{t} = p^{T}_{i}<\dot{z}\dot{z}^{T}>_{t}p_{i}<s˙i2>t=piT<z˙z˙T>tpi ,这一目标可以简单的通过对 <z˙z˙T>t<\dot{z}\dot{z}^{T}>_{t}<z˙z˙T>t 进行奇异值分解实现,即
<z˙z˙T>t=PTΩP<\dot{z}\dot{z}^{T}>_{t} = P^{T}\Omega P<z˙z˙T>t=PTΩP
以这样的方式我们最终可以得到目标矩阵 WWW
W=PΛ−1/2UTW = P \Lambda^{-1/2} U^{T}W=PΛ1/2UT
慢特征分析的python源代码还有应用的地址如下
https://github.com/LiangjunFeng/Machine-Learning/blob/master/A10.SFA.py

点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消