动态时间规整DTW
动态时间规整DTW
1 概述
动态时间规整是一个计算时间序列之间距离的算法,是为了解决语音识别领域中语速不同的情况下如何计算距离相似度的问题。
相对于用经典的欧式距离来计算相似度而言,DTW在数据点个数不对齐的情况下微调时间从而能够计算距离。
DTW之所以能够计算数据点个数不同时间序列之间的距离,是因为DTW方法中时间序列的点可以一对多。

2 计算过程
用动态规划算法计算DTW距离的过程如下所示,计算不同长度时间序列T和R之间的距离(假设T、R长度分别为m、n)。
图中每一个小方格中粗体值是两两点之间的距离,可以是曼哈顿距离,也可以是欧式距离等等,而右上角的值是走到当前位置的累加距离,累加距离的计算公式如下:

走动的方向如下图所示:

也就是说当前点的累加距离等于从当前点的下边的点或者左边的点或者左下边的点走到当前点的距离的最小值。根据公式从点(1,1)开始计算,直至计算到(m,n),最后点(m,n)的累加距离就是时间序列T和R的DTW距离了。而从点(m,n)开始回溯到点(1,1)的路径就是DTW计算的路径了。需要说明的是,不同的时间序列T和R,即使它们的DTW距离相同,而DTW路径也可能会不同。

注意,从公式中可以看到,计算当前点的累加距离的时候,如果是从左下边的点走过来的,则当前距离还要乘以2,可以理解为走了两步。这样做的目的是使得计算任意两个长度为m、n的时间序列的DTW距离时,从(1,1)走到(m,n)的步数是一样的,都是m+n-2。这样大家走的步数都一样,DTW距离就可以表示时间序列之间的相似性了,这种距离也叫长度归一化后的距离。

3 规整窗口
上面DTW计算的时候,路径是点(1,1)出发,向右上角前进。整个矩阵都会扫一遍,所有的点的累加距离都会计算出来。这种情况也叫作DTW, no Warping Window。
这样做的缺点是,如果最终的路径是从点(1,1)直线走到(1,F)再直线走到(4,F)。这说明T中的点1会对应R的A-F六个点,然后R中的F再对应T的2-4三个点。这样规整的跨度有点大了,就不再是微调时间序列中时间不对齐了,不符合实际呀。
所以又有了DTW with Warping Window,现在规整跨度,效果如下所示。只需稍微改动动态规划的代码的循环范围。

参考资料:https://www.cnblogs.com/Daringoo/p/4095508.html
https://en.wikipedia.org/wiki/Dynamic_time_warping
动态时间规整DTW的更多相关文章
- 动态时间规整DTW(Dynamic Time Warping )
动态时间规整DTW(Dynamic Time Warping ) 原文:https://blog.csdn.net/raym0ndkwan/article/details/45614813 算法笔记- ...
- 使用动态时间规整 (DTW) 解决时间序列相似性度量及河流上下游污染浓度相似性识别分析
时间序列相似性度量方法 时间序列相似性度量常用方法为欧氏距离ED(Euclidean distance)和动态时间规整DTW(Dynamic Time Warping).总体被分为两类: 锁步度量(l ...
- 动态时间规整-DTW算法
作者:桂. 时间:2017-05-31 16:17:29 链接:http://www.cnblogs.com/xingshansi/p/6924911.html 前言 动态时间规整(Dynamic ...
- 动态时间规整(DTW) 转载
Dynamic Time Warping(DTW)诞生有一定的历史了(日本学者Itakura提出),它出现的目的也比较单纯,是一种衡量两个长度不同的时间序列的相似度的方法.应用也比较广,主要是在模板匹 ...
- 语音信号处理之(一)动态时间规整(DTW)
语音信号处理之(一)动态时间规整(DTW) zouxy09@qq.com 原文:http://blog.csdn.net/zouxy09 这学期有<语音信号处理>这门课,快考试了,所以也要 ...
- 语音信号处理之动态时间规整(DTW)(转)
这学期有<语音信号处理>这门课,快考试了,所以也要了解了解相关的知识点.呵呵,平时没怎么听课,现在只能抱佛脚了.顺便也总结总结,好让自己的知识架构清晰点,也和大家分享下.下面总结的是第一个 ...
- 【VS开发】【智能语音处理】语音信号处理之(一)动态时间规整(DTW)
语音信号处理之(一)动态时间规整(DTW) zouxy09@qq.com http://blog.csdn.net/zouxy09 这学期有<语音信号处理>这门课,快考试了,所以也要了解了 ...
- DTW动态时间规整算法
目录 1.基本介绍 2.算法原理(理论原理) 2.1 主要术语 2.2 算法由来和改进过程 2.3 DTW算法流程 3.算法DTW和算法HMM的比较 1.基本介绍 DTW:Dynamic Time W ...
- DTW动态时间规整
参考: https://blog.csdn.net/raym0ndkwan/article/details/45614813
随机推荐
- codeforces 651E E. Table Compression(贪心+并查集)
题目链接: E. Table Compression time limit per test 4 seconds memory limit per test 256 megabytes input s ...
- Posix线程编程指南(2)
这是一个关于Posix线程编程的专栏.作者在阐明概念的基础上,将向您详细讲述Posix线程库API.本文是第2篇将向您讲述线程的创建与取消. 一.概念及作用在单线程程序中,我们经常要用到"全 ...
- Python: scikit-image binary descriptor
这个用例说明 BRIEF binary description algorithm from skimage import data from skimage import transform as ...
- BZOJ2726:任务安排(DP+斜率优化+二分)
机器上有N个需要处理的任务,它们构成了一个序列.这些任务被标号为1到N,因此序列的排列为1,2,3...N.这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务 ...
- POJ3107Godfather(求树的重心裸题)
Last years Chicago was full of gangster fights and strange murders. The chief of the police got real ...
- RPM包构建
参考资料 https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html-single/RPM_Guide/i ...
- poj1456 Supermarket[另类的并查集做法]
1.Supermarket(题目地址) 跟很久以前模拟的打地鼠那题一样,贪心+优先队列.这次换用并查集做法. 还是基于贪心,但这次换一种策略,先选价值最大的, 同时使其尽可能晚的被选上(因为早选会将之 ...
- 【Lintcode】098.Sort List
题目: Sort a linked list in O(n log n) time using constant space complexity. Example Given 1->3-> ...
- redis和memcache的比较
1.数据类型支持不同 与Memcached仅支持key-value结构不同,Redis支持的数据类型更丰富,同时支持list.set.hash等数据结构的存储: 2.内存管理不同 在Redis中,并不 ...
- 在VMWare上安装ubuntu及VMWare&nbs…
在VMWare上安装ubuntu及VMWare Tools 一.摘要 该文主要介绍了如何在虚拟机上安装ubuntu,和安装VMWare Tools设置共享文件夹,最后对ubuntu做了简单的介绍. 二 ...