[Sequence Alignment Methods] Dynamic time warping (DTW)

时间:2022-09-06 14:21:24

本系列介绍几种序列对齐方法,包括Dynamic time warping (DTW),Smith–Waterman algorithm,Cross-recurrence plot

Dynamic time warping (DTW) is a well-known technique to find an optimal alignment between two given (time-dependent) sequences under certain restrictions.       

——Meinard Muller的《Information Retrieval for Music and Motion》

DTW路径的定义:用p = (p1, p2, ..., pL),来表示,需要满足以下三个条件:

  (i) 边界条件:p1 = (1,1) 和 pL = (N,M)

  (ii) 单调条件:n1 ≤ n2 ≤ ... ≤ nL 以及 m1 ≤ m2 ≤ ... ≤ mL

  (iii) 跨步大小:p(l+1) - pl属于{(1,0),(0,1),(1,1)} for l属于[1:L-1]

DTW的目标函数:将c(x,y)定义为对齐x, y两点的损失函数,总的损失函数则是从p1到pL每个点对的损失函数之和,DTW路径的目标就是使总的损失函数最小的路径。

DTW的动态规划:D(n,m) = min{D(n-1,m-1), D(n-1,m), D(n,m-1)} + c(xn,yn),对于传统DTW,可以看到时间复杂度为O(MN)

DTW的变种:

  跨步变种1:原跨步大小导致每一步的斜率范围为0到正无穷,可能会引起路径退化,故修改为{(2,1),(1,2),(1,1)},这样斜率范围就变成0.5到2了。此时状态转移方程变为D(n,m) = min{D(n-1,m-1), D(n-2,m-1), D(n-1,m-2)} + c(xn,yn)

  跨步变种2:变种1会引入新的问题,即会直接忽略两个序列的某些点,故可采用状态转移方程D(n,m) = min{D(n-1,m-1), D(n-2,m-1) + c(xn-1, ym), D(n-1,m-2) + c(xn,  ym-1)} + c(xn,yn)

  损失函数权值变种:(1,0),(0,1),(1,1)三个跨步对应不同的权值,如在状态转移时,损失函数分别乘以权值(1,1,2)

  Global Constraints:全局限制,目的是使得最优路径在某个限制的区间内。两个著名的全局限制区域为Sakoe-Chiba band和Itakura parallelogram。这种方法使得时间复杂度也大幅度减小。问题在于会丢掉稍微超出限制的区间的最优路径。

  近似估计:只是为了降低计算复杂度。通过降采样,低通滤波,分段平滑函数等,降低O(MN)中M和N的大小

  Multiscale DTW:综合Global Constraints和近似估计的方法,先通过低分辨率下的最优路径;在得到的靠近最优路径范围内增大分辨率,找到较高分别率在的最优路径;循环迭代操作

DTW的问题:在于它是将整个序列进行warping,并不符合很多实际需求

Subsequence DTW:(a*, b*) = argmin(DTW(X, Y(a: b))), (a, b): 1 ≤ a ≤ b ≤ M.找到损失值最小的匹配对

结论:在实际大规模检索中,大多数方法采取的策略是首先提取粗粒度的数据表征时间序列,检索出候选文档,然后进行细粒度的rank

[Sequence Alignment Methods] Dynamic time warping (DTW)的更多相关文章

  1. 动态时间归整/规整/弯曲(Dynamic time warping,DTW)

    动态时间规整DTW   在日常的生活中我们最经常使用的距离毫无疑问应该是欧式距离,但是对于一些特殊情况,欧氏距离存在着其很明显的缺陷,比如说时间序列,举个比较简单的例子,序列A:1,1,1,10,2, ...

  2. [Sequence Alignment Methods] Cross-Recurrent Plot (CRP)

    A recurrence plot (RP) is a straightforward way to visualize characteristics of similar system state ...

  3. [Sequence Alignment Methods] Smith–Waterman algorithm

    Smith–Waterman algorithm 首先需要澄清一个事实,Smith–Waterman algorithm是求两个序列的最佳subsequence匹配,与之对应的算法但是求两个序列整体匹 ...

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

    动态时间规整DTW(Dynamic Time Warping ) 原文:https://blog.csdn.net/raym0ndkwan/article/details/45614813 算法笔记- ...

  5. Dynamic Time Warping 动态时间规整算法

    转自:http://www.cnblogs.com/luxiaoxun/archive/2013/05/09/3069036.html Dynamic Time Warping(DTW)是一种衡量两个 ...

  6. Multiple sequence alignment Benchmark Data set

    Multiple sequence alignment Benchmark Data set 1. 汇总: 序列比对标准数据集: http://www.drive5.com/bench/ This i ...

  7. 动态时间规整-DTW算法

    作者:桂. 时间:2017-05-31  16:17:29 链接:http://www.cnblogs.com/xingshansi/p/6924911.html 前言 动态时间规整(Dynamic ...

  8. INTRODUCTION TO BIOINFORMATICS

    INTRODUCTION TO BIOINFORMATICS      这套教程源自Youtube,算得上比较完整的生物信息学领域的视频教程,授课内容完整清晰,专题化的讲座形式,细节讲解比国内的京师大 ...

  9. Computer Vision_18_Image Stitching: Image Alignment and Stitching A Tutorial——2006(book)

    此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

随机推荐

  1. id生成策略 id工具类

    import java.util.Random; /** * 各种id生成策略 * <p>Title: IDUtils</p> * <p>Description: ...

  2. The best career advice I’ve received

    I recently had an interesting discussion with a colleague. We were recounting our job histories and ...

  3. MSP430F149学习之路——比较器Comparaor&lowbar;A

    代码一: #include <msp430x14x.h> ; void int_clk() { BCSCTL1 &= ~XT2OFF; BCSCTL2 |= SELM_2 + SE ...

  4. Windows下安装redis,并与PHP使用

    一.在windows下安装redis: redis的官方网站下载地址:http://redis.io/download 进入以上网址之后,请见以下的图片操作下载redis: 第一步: 第二步:在对应的 ...

  5. IOS PUSH

    第一阶段:.net应用程序把要发送的消息.目的iPhone的标识打包,发给APNS. 第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPh ...

  6. C&plus;&plus;中重载操作符&lbrack; &rsqb;

    1.首先说说为什么要重载操作符[ ] 主要是因为系统只给了整数类型(int)的重载函数,即只能在方括号中输入整数进行查找,但有时候我们可能存放数据时,下标的类型是自定义的,希望也能像数组直接通过下标访 ...

  7. 大数据入门到精通2--spark rdd 获得数据的三种方法

    通过hdfs或者spark用户登录操作系统,执行spark-shell spark-shell 也可以带参数,这样就覆盖了默认得参数 spark-shell --master yarn --num-e ...

  8. AbpZero之企业微信---登录(拓展第三方auth授权登录)---第一步:查看AbpZero的auth第三方登录的底层机制

    在AbpZero框架中,auth登录接口位于Web.Core库下的Controllers文件夹的TokenAuthController.cs的ExternalAuthenticate方法 Extern ...

  9. CPU执行程序的原理(简化过程)

    前言 看了网上的一些描述CPU执行程序的过程,发现他们涉及到的内容太多了,恨不能把整个CPU的底层结构都拿出来说,这对计算机理论知识匮乏的新人甚至是一些老人都是非常不友好的.这个问题也是当初拦在我面前 ...

  10. jdk源码

    Java 8 之默认方法(Default Methods) public interface Player { String getName(); default boolean isMale() { ...