DTW (Dynamic Time Warping) 动态时间规整

Posted emanlee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DTW (Dynamic Time Warping) 动态时间规整相关的知识,希望对你有一定的参考价值。

在时间序列中,需要比较相似性的两段时间序列的长度可能并不相等,比较显著的例子是在语音识别领域表现为语速不同,不同人的语速不同,同一个人说同一句话的语速也会不同,那如何计算时间序列下的相似度呢?这时候会发现欧式距离有点失效了,因为长度不一致了,这时候就出现了DTW算法,它相当于对某个时间序列在时间轴进行了某种扭曲(Warping), 达到一定程度的对齐再计算相似度。

DTW可以计算两个时间序列的相似度,尤其适用于不同长度、不同节奏的时间序列(比如不同的人读同一个词的音频序列)。DTW将自动warping扭曲 时间序列(即在时间轴上进行局部的缩放),使得两个序列的形态尽可能的一致,得到最大可能的相似度。

DTW采用了动态规划DP(dynamic programming)的方法来进行时间规整的计算,可以说,动态规划方法在时间规整问题上的应用就是DTW

下面测试程序显示了 6组时间序列 的DTW结果,左上和右下的两组相似度较高,其DTW计算的距离(Warping Distance)也确实比较小。

技术图片

 

DTW加速

  DTW虽然使用线性规划可以快速的求解,但是在面对比较长的时间序列是,O(N2)的时间复杂度还是很大。已经有很多改进的快速DTW算法,比如FastDTW,SparseDTW,LB_Keogh,LB_Improved等等。

 

参考文献:

  [1]. FastDTW: Toward Accurate Dynamic Time Warping in Linear Time and Space. Stan Salvador, Philip Chan. 

  [2]. Wikipedia: Dynamic Time Warping

  [3]. Speech Recognition: 11.2 Dynamic Time Warping

https://www.jianshu.com/p/4c905853711c
https://blog.csdn.net/lin_limin/article/details/81241058
https://blog.csdn.net/ZHUQIUSHI123/article/details/84453560
https://blog.csdn.net/zouxy09/article/details/9140207
 https://www.cnblogs.com/luxiaoxun/archive/2013/05/09/3069036.html
https://github.com/davidmoten/fastdtw/tree/master/src
 

以上是关于DTW (Dynamic Time Warping) 动态时间规整的主要内容,如果未能解决你的问题,请参考以下文章

DTW 笔记: Dynamic Time Warping 动态时间规整 (&DTW的python实现)

时间序列~动态时间规整(Dynamic Time Wraping)

机器学习笔记 soft-DTW(论文笔记 A differentiable loss function for time-series)

PP: Soft-DTW: a differentiable loss function for time-series

Mel-Frequency-Warping

《Image Warping Using Few Anchor Points and Radial Function》论文实现