动态时间规整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
随机推荐
- 机器视觉 Histogram of oriented gradients
Histogram of oriented gradients 简称 HoG, 是计算机视觉和图像处理领域一种非常重要的特征,被广泛地应用于物体检测,人脸检测,人脸表情检测等. HoG 最早是在200 ...
- k8s 部署kube-dns
[root@k8s-master src]# kubectl create -f kube-dns.yaml service "kube-dns" createdserviceac ...
- dataguard 下主备 online redo 与 standby redo log resize 重建
环境说明: 本实验环境是一个节点的rac + 单节点 asm dg database 与 grid 版本是 11.2.0.4 .提别提醒 如果是多节点集群,操作时需要特别注意 thread . ...
- 重学JAVA基础(一):PATH和CLASSPATH
我想大多数Java初学者都会遇到的问题,那就是怎么配置环境,执行java -jar xxx.jar 都会报NoClassDefFindError,我在最开始学习的时候,也遇到了这些问题. 1.PAT ...
- WPF GridView中的CellTemplate失效的原因
最近做一个ListView的Style时,发现一个问题, 就是我的GridView的GridViewColumn的CellTemplate无论是用StaticResource还是DynamicReso ...
- java计算两个时间相差(天、小时、分钟、秒)
public static Long dateDiff(String startTime, String endTime, String format, String str) { // 按照传入的格 ...
- Scala学习——操作符(初)
经常看到却反应不出来的(->) val a = 2 val b = a->4 //表示生成一个tuple println(b._1+" "b._2) //2 4
- 开源.Net项目合集
http://www.cnblogs.com/StrangeCity/p/OpenSourceProject.html
- Redux API之applyMiddleware
applyMiddleware(...middlewares) 使用包含自定义功能的 middleware 来扩展 Redux 是一种推荐的方式.Middleware 可以让你包装 store 的di ...
- Maven 3 入门 -- 安装与配置
Maven 3 入门 -- 安装与配置 Maven以及其Eclipse插件m2eclipse的安装 (本文参考了Maven实战) 检查JDK的安装以及环境变量的配置 打开cmd echo %Java_ ...