动态时间规整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
随机推荐
- ES6 generator 基础
参考文档 harmony:generators Generator是ES6的新特性,通过yield关键字,可以让函数的执行流挂起,那么便为改变执行流程提供了可能. 创建Generator functi ...
- ACM学习历程—HDU1392 Surround the Trees(计算几何)
Description There are a lot of trees in an area. A peasant wants to buy a rope to surround all these ...
- 【Lintcode】122.Largest Rectangle in Histogram
题目: Given n non-negative integers representing the histogram's bar height where the width of each ba ...
- javacpp-FFmpeg系列之1:视频拉流解码成YUVJ420P,并保存为jpg图片
javacpp-ffmpeg系列: javacpp-FFmpeg系列之1:视频拉流解码成YUVJ420P,并保存为jpg图片 javacpp-FFmpeg系列之2:通用拉流解码器,支持视频拉流解码并转 ...
- Lagom学习(一)
Lagom是JAVA系下响应式 微服务框架,其特性包括: 目前,大多数已有的微服务框架关注于简化单个微服务的构建,Lagom将其扩展到了微服务所构成的系统,分布式系统的复杂性. 同步通信使用HTTP, ...
- C#Dos命令
记下 打开IIs:按Win+R键,输入inetmgr ; 远程桌面:按Win+R键,输入mstsc; 启动服务:按Win+R键,输入inetmgr; 删除某服务:sc delete [ServerNa ...
- CF-835C
C. Star sky time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...
- HashMap为什么是线程不安全的
HashMap底层是一个Entry数组,当发生hash冲突的时候,hashmap是采用链表的方式来解决的,在对应的数组位置存放链表的头结点.对链表而言,新加入的节点会从头结点加入. 我们来分析一下多线 ...
- oracle查看表,索引,视图,存储过程的定义
通过 DBMS_METADATA 包 Oracle 的在线文档,对这个包有详细说明: DBMS_METADATA 通过该dbms_metadata包的get_ddl()方法,我们可以查看表,索引, ...
- java发送udp广播包
2013-06-07 22:44 1272人阅读 评论(2) 收藏 举报 import java.io.IOException; import java.net.DatagramPacket; imp ...