前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >路径匹配之动态时间规整DTW算法简析

路径匹配之动态时间规整DTW算法简析

作者头像
mythsman
发布2022-11-14 14:10:59
1.7K0
发布2022-11-14 14:10:59
举报
文章被收录于专栏:mythsman的个人博客

简述

DTW算法又叫动态时间规整(  Dynamic Time Warping),是一个比较简单的dp算法。常用于不等长的离散的路径点的匹配问题,在孤立词语音识别、手势识别、数据挖掘和信息检索等领域有着很不错的表现。

问题描述

DTW解决的问题是,给定两个序列(A_1,A_2,A_3,A_4...A_n)(B_1,B_2,B_3,B_4...B_m),其中每一个元素可以都是一个二维坐标点或者是更高维度的坐标。我们现在需要求出一个“距离”,使得他能够表示这两个路径的相似度。

很明显,如果m等于n,那么我们可以很方便的用对应节点(下标相等)之间的欧氏距离(也可以是其他类型的距离)之和来表示这个"距离“,这看上去还是能让人信服的。但是当m和n不等的时候,我们就发现这种办法就不适用了。但是我们完全可以仍然采用这个思想,只不过与之前每个节点都是一一对应不同,我们可以令其中的某些节点是一对多的对应关系,如下图所示:

当然,这样的对应关系也得满足”非降“的对应,即若A_iB_j对应,那么A_{i+p}必然不能与B_{j-q}对应(其中p,q\gt 0)。

这样一来,我们就可以通过计算新的对应点之间的距离之和来表示这两个路径之间的距离。

很明显,这样的匹配方法有很多种,不过对我们来说有意义的匹配方式应该是使最后计算出的距离最小的方式,那么我们到底要怎样确定点的对应关系呢?这就是DTW要解决的问题。

算法

dtw[i][j]表示A序列的前i个元素与B序列的前j个元素匹配后得到的最小距离(下标从1开始),dis[i][j]表示A_iB_j的距离。显然,这时候A_i必然和B_j匹配。那么我们很容易得到下面的递推关系式(考虑边界条件):

i=j=0:

dtw[i][j]=0

i=0\ or\ j=0:

dtw[i][j]=\infty

for\ 1\leq i\leq n,1\leq j \leq m:

dtw[i][j]=dis[i][j]+min\left\{\begin{aligned}&dtw[i-1][j]\\&dtw[i-1][j-1]\\&dtw[i][j-1]\end{aligned}\right.

最后dtw[n][m]就是我们所求的距离,复杂度O(n*m)

总结

DTW算法在应对不等长路径问题的相似度匹配的时候效果还是挺好的,但是由于他需要计算到每一个点,因此他对噪声比较敏感。而且他也无法应对存在时间维度的路径匹配问题。

当然,我们利用DTW算法不仅仅是为了获得距离,很多情况下,我们是为了获得点的对应关系,从而对两个序列更好的进行比较。

参考

Yi, Byoung-Kee, Jagadish, HV and Faloutsos, Christos, Efficient retrieval of similar time sequences under time warping. ICDE 1998 Lei Chen,Raymond Ng,On The Marriage of Lp-norms and Edit Distance,2004 HMM学习笔记_1(从一个实例中学习DTW算法) 语音信号处理之(一)动态时间规整(DTW) Dynamic time warping

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简述
  • 问题描述
  • 算法
  • 总结
  • 参考
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档