DTW相关知识学习

本文介绍了DTW(动态时间规整)在处理时间序列对齐时遇到的病理对齐问题,提出LDTW方法,通过限制链接总数而非每个点的链接数来缓解这一问题。文章详细讲解了LDTW的原理、计算过程和与原DTW的对比,以及如何通过窗口约束和步长模式改进DTW性能。
摘要由CSDN通过智能技术生成

DTW相关知识学习

参考文献【Dynamic Time Warping under limited warping path length

DTW的缺点----》病理对齐

[外链图片转存中…(img-GAb3Korf-1667372712898)]

奇点(singularity)

A singularity is a data point inside one time series that links to a large subsection of the other time series.

**定义:**奇点是一个时间序列内的数据点链接到另一个时间序列中的大部分(点)。

奇点的存在是**病理对齐(pathological alignment)**的主要特征。

病理对齐的解决方案

1. 窗口约束(windowing constraint)

Limit the number of points a point can link to.

带来的问题: It takes a risk of preventing the correct alignment from being generated.(可能阻止正确对齐)

2. 限制两个时间序列之间的链接总数–本文的方法(LDTW,“L” for “Limited” warping path “Length”)

Limit the total number of links between two time series.

This is a softer constraint than windowing constraint because we still let the optimization process of DTW decide how many links to allocate to each data point and where to put these links, instead of setting a rigid limit. As a result, it allows more flexibilities and avoid the risk of missing the correct alignment. (允许更多的灵活性,并避免错过正确对齐的风险。

原始的DTW(Native DTW)

DTW is a alignment-based.

此处的alignment是指:a collection of all links (or couplings(耦合)) between two time series.

DTW的目标

Find an optimal alignment(最优对齐方式) between two time series that achieves minimum global cost(最小全局成本) while ensuring time continuity(确保时间连续性).

  • Global cost:是对齐中每对点之间的成本总和。
  • The cost between points of time series(δ)

Define the cost between points of time series, which is denoted by the symbol δ.

使用欧氏距离(Euclidean distance)或者欧氏距离的平方(squared Euclidean distance )计算δ。(下例为后者)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7jaJOsLC-1667372712899)(H:\CL\mywork\文献\已读\DTW相关知识\DTW相关知识学习.assets\image-20221101205624756.png)]

  • The optimal global cost of DTW

即DTW距离,可以递归计算:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RP7P2kL2-1667372712899)(H:\CL\mywork\文献\已读\DTW相关知识\DTW相关知识学习.assets\image-20221101205823568.png)]

直接计算上述式子—》指数级的时间复杂度(典型的dynamic programming problem)(因为需要重叠子问题广泛存在,即需要重复计算某单元格的D)

解决方案

For instance, the computation of D(Ar,Bc−1) and D(Ar−1,Bc) both require D(Ar−1,Bc−1). The right solution here is to memorize the results of all these subproblems in a cumulative cost matrix(累积距离矩阵), where the cell (r, c) keeps the result of D(Ar, Bc). This way the process of DTW is converted into the process of fully filling the cumulative cost matrix in a certain order. (将子问题的重复计算转换为按一定顺序填满累计距离矩阵

时间复杂度

由于矩阵的维数为R×C,因此DTW算法的时间复杂度为ΘR×C)。

实现过程

首先填充底行和最左边的列,然后根据递归计算公式从下向上逐行(从左到右)填充矩阵,最后一个矩阵单元m[R] [C]保存两个完整序列之间的最终 DTW 距离。

img
翘曲路径(warping path)w

**定义:**由一系列通过累积成本矩阵的连续矩阵单元组成。

Each matrix cell, for example (r, c), corresponds to a link (or coupling) between two points ArandBc.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UMkg0Lla-1667372712899)(H:\CL\mywork\文献\已读\DTW相关知识\DTW相关知识学习.assets\image-20221101212240982.png)]

The warping path is generated by certain rules and different rules lead to different distance measures.

翘曲路径w(从累计距离矩阵回溯得到)必须满足以下三个规则:

  1. Boundary constraint(边界约束)

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ThewWUDW-1667372712900)(H:\CL\mywork\文献\已读\DTW相关知识\DTW相关知识学习.assets\image-20221101213218658.png)]

​ 即w必须从累计距离矩阵的左下角开始,到右上角结束。

  1. Monotonicity constraint(单调性约束)

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZvrNMMIm-1667372712900)(H:\CL\mywork\文献\已读\DTW相关知识\DTW相关知识学习.assets\image-20221101213306168.png)]

​ 即w路径上的两点必须是单调递增的。(不能往后返回)

  1. Continuity constraint(连续性约束)
image-20221101213458056

​ 即翘曲路径上的两点必须是连续的。

其他两个约束定义了允许的步骤模式,其中每个步骤只能访问当前位置的上、右和右邻。

回溯过程

从右上角(R,C)开始,我们在每个阶段检查当前位置的三个后向邻居。假设 (r, c) 是累积成本矩阵中的当前位置。它的三个落后邻居,(r−1,c),(r,c−1),and(r−1,c−1),将被检查,具有最小值的那个将被添加到翘曲路径中。然后我们移动到新位置并重复上述步骤,直到到达左下角 (1, 1)。

==Attention:==翘曲路径来自回溯,因此顺序相反。我们最终需要反转整个路径才能获得forward-going的道路。

DTW的变体(Variants of DTW)

1.对翘曲路径的约束
1.1 窗口约束(windowing constraint)

From the perspective of alignment, it limits the number of points any point can link to(限制了任何点可以链接到的点数), and from the perspective of warping path, it limits the allowable domain of the warping path in a specific area(限制了翘曲路径在特定区域中的允许域).

图 3

  • Sakoe-Chiba band(需要设置窗口大小)
  • Itakura parallelogram(不需要设置窗口大小)
  • learned window(从数据中学习自适应窗口形状)

​ 相关文献123

1.2 others

step pattern(步长模式,指定每个step可以访问的neighbors),slop weighting(斜率权重,设置对某个方向的偏差)

2 replaces the feature DTW considers

例如,导数DTW( Derivative DTW):

使用局部导数而不是原始值,因为作者认为数据点的趋势更重要。例如,两个点可能具有相同的值,但如果一个点是上升趋势的一部分,而另一个点是下降趋势的一部分,则应将它们视为不同。

本文属于第一类

本文的解决方案——》LDTW算法

**思路:**限制两个时间序列之间的链接总数,而不是每个点涉及的链接数。(仍然让 DTW 的优化过程决定每个点链接到的点数以及这些链接发生的位置。要求我们在有限的翘曲路径长度下求解 DTW。

对比DTW与LDTW

1. DTW问题的递归表述

  • DTW:只关注每个阶段的最小累积成本

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7OMNjjLq-1667372712901)(H:\CL\mywork\文献\已读\DTW相关知识\DTW相关知识学习.assets\image-20221101205823568.png)]

  • LDTW:对翘曲路径长度施加了约束(路径长度由已经采取的步骤数决定,用步数“step count”表示)

    step account = path length -1(因为路径长度考虑了起点)

    在考虑了步数(s)的因素后,计算固定翘曲路径长度下的DTW问题可以递归表述为:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gGPvuT3E-1667372712901)(H:\CL\mywork\文献\已读\DTW相关知识\DTW相关知识学习.assets\image-20221102094310115.png)]

    与DTW相比,在累积距离矩阵中增加了一个专门用于记录当前步数的额外维度

2.累积距离矩阵单元格的值

  • DTW中,累积距离矩阵中的每个单元格(cell)仅保留一个值(所有可能的路径长度全局最小累积成本

  • LDTW中,每个单元格必须保留多个值(每个值都是特定路径长度下最小累积成本

    eg: 在位置(r, c)的同一cell中,m[r] [c] [s]是子问题D(Ar, Bc,s)的结果,m[r] [c] [s-1]是子问题D(Ar, Bc,s-1)的结果(两种不同路径长度下的结果)

LDTW
目标

The goal of LDTW is to find the minimum DTW distance when the warping path length is shorter that a given upper bound LUB(给定上限).

解决方案

Calculate the results for all admissible path lengths(所有允许路径长度), and then choose the smallest one among those results.

实现过程
1. 首先,确定所有允许路径长度(all admissible path lengths)的范围

根据DTW的rules,翘曲路径长度的严格下限max(R,C),**上限LUB**由用户给出

2. 其次,计算每个允许路径长度下的DTW

实际上,只需要在路径长度固定在上限LUB时计算DTWLUB(由于这些子问题的递归性质,较长路径下的子问题基于较短路径下的子问题)

为了穷尽每个单元上所有可能的子问题,主要任务是确定每个矩阵单元必须考虑的路径长度范围。(相当于计算到达某个矩阵单元的最小和最大步长。)

img

例如,对于单元格(r,c),到达此单元格的最小步长(由DTW rules 决定)是max(r-1, c-1)

图 4

如图,r=4,c=3,到达此单元格的最小步长(min step,红线)是max(4-1,3-1)=3;最长步长(max step,蓝线)有4步;虚线涉及正交步骤(orthogonal steps?),有5步,会导致额外的成本,不被选择(two orthogonal steps > a diagonal step)。

如何确定最长步长(max step)?
  • 在没有翘曲路径长度限制时:

    • 如果单元格位于底行 (r=1) 或最左侧的列 (c=1),则最大步长也等于两者之间的较大步长r−1和c−1.

    • 在其他地方,最大步数等于(c−2)+1+(r−2)=r+c−3,例如,我们首先采取(c−2)水平步长到达最后一列,然后对角线步长到达最后一列,最后(r−2)垂直步骤到达终点。

img
  • 存在翘曲路径上限时:

​ 步骤总分配额=LUB-1

​ 达到(r,c)后,我们仍然至少需要max(R-r,C-c)个steps才能到达终点(绿线),在计算(r,c)时,应该提前保留这些steps

​ ----》最大步数(max step)的上限=step总分配额(LUB-1)-保留的steps (max(R-r,C-c))

Finally we choose the smaller one between the maximum steps(没有翘曲路径长度限制时) in natural situation and the current upper bound(存在翘曲路径上限时).

img
3.根据递归公式填充累积成本矩阵

对于每个矩阵单元,分别考虑不同的路径长度。每个单元格上标记的数字显示到达该单元格的所有可能的步骤计数。

img

例如,如上图所示。要到达cell(5,4),step范围为4~6:

无路径长度限制:r+c-3=6;有路径长度限制:LUB-1-max(R-r,C-c)=LUB-2(选择较短的那个)

最小步长:max(r,c)-1=4

**理解:**对于特定s下的cell,取决于其同一s下的左邻、左下和下邻。

填充累积成本矩阵(the cumulative cost matrix)后,右上角cell(R,C)包含要比较的结果。当每个翘曲路径长度固定时(始终小于上限值LUB),每一个都是最优累积成本(an optimal cumulative cost)。选择这些结果中的最小值作为 LDTW 距离。

例如:

当翘曲路径长度固定为L时,m[R] [C] [L-1]是它的最小累积成本。

算法完整过程:
img
回溯LDTW生成翘曲路径的算法

对于 LDTW,累积成本矩阵具有指示步数的第三个维度,因此必须提供实际步数作为输入,这意味着我们还应在计算 LDTW 时记录最终步数。例如,如果m[R] [C] [s] 是最终单元格 (R, C) 中的最小值,则s是最终步数。此外,请记住在每次循环后将当前步骤计数减少 1。

img

三个维度,因此必须提供实际步数作为输入,这意味着我们还应在计算 LDTW 时记录最终步数。例如,如果m[R] [C] [s] 是最终单元格 (R, C) 中的最小值,则s是最终步数。此外,请记住在每次循环后将当前步骤计数减少 1。

img
  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值