DTW

原帖在这里,这篇是我的阅读笔记,非原创。

目录

  • 面临的问题
  • DTW算法简介
  • DTW要去解决的问题
  • DTW存在的问题
  • 总结

面临的问题

当数据在时间线上不对齐的时候,使用传统的匹配方法,是无法使用传统的全局匹配度量法的。

DTW算法简介

两个人分别说了同一个单词,但是由于语速、语气、语调等等各不相同,会导致采样得到的数据无法对齐。但是两段语音采样的第一个采样值和最后一个采样值肯定是两两对应的。

给出两个序列:

image.png

Warping通常采用动态规划算法。为了对齐这两个序列,我们需要构造一个n x m的矩阵网格,矩阵元素(i, j)表示qi和cj两个点的距离d(qi, cj),一般采用欧式距离,d(qi, cj)= (qi-cj)2(也可以理解为失真度)。每一个矩阵元素(i, j)表示点qi和cj的对齐。

DP(dynamic programming)算法可以归结为寻找一条通过此网格中若干格点的路径,路径通过的格点即为两个序列进行计算的对齐的点。

有三个性质:

1)边界条件:w1=(1, 1)和wK=(m, n)。两个人分别说了同一个单词,但是由于语速、语气、语调等等各不相同,会导致采样得到的数据无法对齐。但是两段语音采样的第一个采样值和最后一个采样值肯定是两两对应的。因此所选的路径必定是从左下角出发,在右上角结束。

2)连续性:如果wk-1= (a', b'),那么对于路径的下一个点wk=(a, b)需要满足 (a-a') <=1和 (b-b') <=1。也就是不可能跨过某个点去匹配,只能和自己相邻的点对齐。这样可以保证Q和C中的每个坐标都在W中出现。

3)单调性:如果wk-1= (a', b'),那么对于路径的下一个点wk=(a, b)需要满足0<=(a-a’)和0<= (b-b’)。这限制W上面的点必须是随着时间单调进行的。以保证图B中的虚线不会相交。

由连续性和单调性可知,每次格点(i, j)前进方向只有三种:(i+1, j),(i, j+1) 或 (i+1, j+1)。我们的目的是使得下面的规整代价最小的路径:

image.png

分母中的K主要是用来对不同的长度的规整路径做补偿。

这里我们定义一个累加距离(cumulative distances)。从(0, 0)点开始匹配这两个序列Q和C,每到一个点,之前所有的点计算的距离都会累加。到达终点(n, m)后,这个累积距离就是我们上面说的最后的总的距离,也就是序列Q和C的相似度。

示例:

对于两个序列:

X:3,5,6,7,7,1

Y:3,6,6,7,8,1,1

有距离矩阵:

X和Y的距离矩阵:

X/Y 3 6 6 7 8 1 1
3 0 3 3 4 5 2 2
5 2 1 1 2 3 4 4
6 3 0 0 1 2 5 5
7 4 1 1 0 1 6 6
7 4 1 1 0 1 6 6
1 2 5 5 6 7 0 0

然后根据距离矩阵生成1损失矩阵(Cost Matrix)或者叫累积距离矩阵 McMc,其计算方法如下:

  1. 第一行第一列元素为 MM 的第一行第一列元素,在这里就是0;

  2. 其他位置的元素 (Mc(i,j)Mc(i,j))的值则需要逐步计算,具体值的计算方法为 Mc(i,j)=Min(Mc(i−1,j−1),Mc(i−1,j),Mc(i,j−1))+M(i,j)Mc(i,j)=Min(Mc(i−1,j−1),Mc(i−1,j),Mc(i,j−1))+M(i,j),得到的McMc如下:

X/Y 3 6 6 7 8 1 1
3 0 3 6 10 15 17 19
5 2 1 2 4 7 11 15
6 5 1 1 2 4 9 14
7 9 2 2 1 2 8 14
7 13 3 3 1 2 8 14
1 15 8 8 7 8 2 2

DTW要去解决的问题

DTW就是要去解决,普通的欧氏距离,对不对齐的两个序列无法进行相似度对比的问题。解决的方法就是动态规划,但是并没有生成更加多余的点,而是进行了复制。

DTW存在的问题

DTW实质上是通过对轨迹点的复制实现的对轨迹局部的拉伸或者缩放,下图展示地非常清楚:

image.png

DTW通过迭代的方式计算轨迹之间的距离(找到图4 b所示的最佳的轨迹),是一个经典的动态规划问题,其算法复杂度是O(m × n),依旧很高。后期必然需要相应的修建策略才能达到好的效果。

虽然没有使用映射,但是由于使用了重复,最终的结果仍然不是严格的metric,无法使用metric的方法!(DTW “loosely” satisfies the triangle inequality. It appears that this observation is not true in general, as on average nearly 30% of all the triplets do not satisfy the triangle inequality.)

复制“其实就是在重复使用某些点。以此实现了对local time shifting的处理。

没有阈值限制,其最终目的只有找到最好的路径,但是此路径的总距离大小可能会很大。假如不对离群点进行处理此算法依旧将会对离群点、异常点很敏感

算法需要第一个点和最后一个点是对应的。

错误示例:

(1)没有设置阈值

image.png

此处出现了特定的local time shifting,会导致T2和T3明明是一条轨迹,但是最终出现的结果会是T1和T3的相似度要比T1和T2差很多。而且最终的结果是绝对的,即得到的只有一个绝对的数字,但从这个数字上是无法进一步消除这个误差的。

(2)直接使用的是原有的轨迹点,重复使用,且不会跳过任何一个点,因此对噪声点的抑制并不好。

image.png

总结

DTW方法是欧氏距离方法的改进,只改进了其不能处理local time shifting的问题。没有引入任何阈值参数,因此对时间上的偏移(噪声和离群点)的抑制并不好,且对时间上的偏移的适应性也不好

优点:使用动态规划的思想,实现了对某些点的重复使用,确保重复使用的点达成的路径最优的,从而较为高效地解决了数据不对齐的问题。

缺点:还是无法处理离群点、异常点,对于噪声的抑制没有进行处理。虽然能够处理local time shifting,但是对时间上的偏移做的也不好。算法也不是metric类型的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • DTW可以计算两个时间序列的相似度,尤其适用于不同长度、不同节奏的时间序列(比如不同的人读同一个词的音频序列)。D...
    X猪阅读 26,609评论 2 14
  • 一、概述 在时间序列中,需要比较相似性的两段时间序列的长度可能并不相等,在语音识别领域表现为不同人的语速不同。在这...
    ChongmingLiu阅读 5,839评论 0 10
  • thiele插值算法 1点插值算法 function [C,c]=thiele(X,Y,Z)%X为插值点横坐标,Y...
    00crazy00阅读 1,965评论 0 4
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,320评论 0 2
  • 第一次和喜欢的人告白原因很多,主要的原因之一是朋友在一旁的怂恿,鼓励,原因之二是明知ta已经有了另一半,但...
    迟谦谦阅读 411评论 0 0