[Sequence Alignment Methods] Dynamic time warping (DTW)
本系列介绍几种序列对齐方法,包括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)的更多相关文章
- 动态时间归整/规整/弯曲(Dynamic time warping,DTW)
动态时间规整DTW 在日常的生活中我们最经常使用的距离毫无疑问应该是欧式距离,但是对于一些特殊情况,欧氏距离存在着其很明显的缺陷,比如说时间序列,举个比较简单的例子,序列A:1,1,1,10,2, ...
- [Sequence Alignment Methods] Cross-Recurrent Plot (CRP)
A recurrence plot (RP) is a straightforward way to visualize characteristics of similar system state ...
- [Sequence Alignment Methods] Smith–Waterman algorithm
Smith–Waterman algorithm 首先需要澄清一个事实,Smith–Waterman algorithm是求两个序列的最佳subsequence匹配,与之对应的算法但是求两个序列整体匹 ...
- 动态时间规整DTW(Dynamic Time Warping )
动态时间规整DTW(Dynamic Time Warping ) 原文:https://blog.csdn.net/raym0ndkwan/article/details/45614813 算法笔记- ...
- Dynamic Time Warping 动态时间规整算法
转自:http://www.cnblogs.com/luxiaoxun/archive/2013/05/09/3069036.html Dynamic Time Warping(DTW)是一种衡量两个 ...
- Multiple sequence alignment Benchmark Data set
Multiple sequence alignment Benchmark Data set 1. 汇总: 序列比对标准数据集: http://www.drive5.com/bench/ This i ...
- 动态时间规整-DTW算法
作者:桂. 时间:2017-05-31 16:17:29 链接:http://www.cnblogs.com/xingshansi/p/6924911.html 前言 动态时间规整(Dynamic ...
- INTRODUCTION TO BIOINFORMATICS
INTRODUCTION TO BIOINFORMATICS 这套教程源自Youtube,算得上比较完整的生物信息学领域的视频教程,授课内容完整清晰,专题化的讲座形式,细节讲解比国内的京师大 ...
- Computer Vision_18_Image Stitching: Image Alignment and Stitching A Tutorial——2006(book)
此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...
随机推荐
- 与数据库打交道的Adapter----SimpleCursorAdapter
http://www.cnblogs.com/wenjiang/p/3196486.html 程序员是这个世界上最神奇的职业,因为几乎所有其他职业的人都能转到该行来,只要他智力正常,有接受过正规的编程 ...
- Java 6 Thread States and Life Cycle.
Ref: Java 6 Thread States and Life Cycle This is an example of UML protocol state machine diagram sh ...
- Topas命令详解
Topas命令详解 执行topas命令后如图所示: #topas 操作系统的最全面动态,而又查看方便的性能视图就是topas命令了,下面以topas输出为例,对AIX系统的性能监控做简要描述,供运维工 ...
- js获取标签的几种方式
一:id获取(全部浏览器兼容) document.getElementById(""); <body> <div id="box">&l ...
- 使用highlight.js高亮你的代码
在逛别人的博客的时候,看见别人的代码的例子使用了高亮的语法,无论是java,js还是php等等语言,都会自动的对关键字进行高亮. 于是在前几天自己写了一个博客,遇到code时,自然就想到了别人网站如何 ...
- [转]dos命令 cd命令使用说明[图文说明]
Cddir(change directory,可以缩写为cd),其功能是显示当前目录的名称,或更改当前的目录. 应用时公带一个驱动器号(如: cd c:)在命令行cmd中输入 cd /? 可显示帮助信 ...
- 扩展欧几里得算法(extended Euclidean algorithm)的一个常犯错误
int exGcd(int x,int y,int& a,int& b) //ax+by=gcd(x,y) { ; b=; return x; } int res=exGcd(y,x% ...
- poj 1087.A Plug for UNIX (最大流)
网络流,关键在建图 建图思路在代码里 /* 最大流SAP 邻接表 思路:基本源于FF方法,给每个顶点设定层次标号,和允许弧. 优化: 1.当前弧优化(重要). 1.每找到以条增广路回退到断点(常数优化 ...
- 【POJ2985】【Treap + 并查集】The k-th Largest Group
Description Newman likes playing with cats. He possesses lots of cats in his home. Because the numbe ...
- 复制JAVABEAN中的属性到另外一个JAVABEAN中
下午写了一个属性复制方法,记录如下: class POUtil{ /** * * Function : 将一个source中的属性到复制到dest * @author : Liaokailin * C ...