【考古-3】——Dynamic time warping(DTW)算法

1.Background:

在时间序列中,需要比较相似性的两段时间序列的长度可能并不相等,在语音识别领域表现为不同人的语速不同。在这些复杂情况下,使用传统的欧几里得距离无法有效求解两个时间序列之间的距离,即相识度。

大部分情况下,两个序列整体上具有非常相似的形状,但是这些形状在x轴(时间轴)上并不是对齐的。DTW的思想是把两个时间序列进行延伸和缩短,来得到两个时间序列性距离最短也就是最相似的那一个warping,这个最短的距离也就是这两个时间序列的最后的距离度量。

在这里插入图片描述

  • Warping正确性判定:直观上理解,当然是warping一个序列后可以与另一个序列重合recover。这个时候两个序列中所有对应点的距离之和是最小的。warping的正确性一般指“feature to feature”对齐,即特征对齐。
  • 和一些序列匹配一样,本算法基于动态规划计算;

2. Algorithm

DTW是用满足一定条件的时间规整函数 W K W_K WK,是一个路径(K的大小与路径长度有关),描述测试模板和参考模板(两个序列)的时间对应关系,求解两模板匹配时累计距离最小所对应的规整函数。
在这里插入图片描述

我们有两个时间序列 Q = [ q 1 , q 2 , . . . , q n ] Q=[q_1,q_2,...,q_n] Q=[q1,q2,...,qn] C = [ c 1 , c 2 , . . c m ] C=[c_1,c_2,..c_m] C=[c1,c2,..cm],他们的长度分别是n和m:序列中的每个点的值为语音序列中每一帧的特征值(实际语音匹配运用中,一个序列为参考模板,一个序列为测试模板,特征值如语音的频率、MFCC等特征)。

这里,语音等序列具有以下特点:

  1. 边界条件: w 1 = ( 1 , 1 ) w_1=(1, 1) w1=(1,1) w K = ( m , n ) w_K=(m, n) wK=(m,n)。任何一种语音的发音快慢都有可能变化,但是其各部分的先后次序不可能改变,因此所选的路径必定是从左下角出发,在右上角结束;

  2. 连续性:如果 w k − 1 = ( a ′ , b ′ ) w_{k-1}= (a', b') wk1=(a,b),那么对于路径的下一个点 w k = ( a , b ) w_k=(a, b) wk=(a,b)需要满足 a ≤ a ′ + 1 a \le a' +1 aa+1 b ≤ b ′ + 1 b \le b' +1 bb+1。也就是不可能跨过某个点去匹配,只能和自己相邻的点对齐。这样可以保证Q和C中的每个坐标都在W中出现;

  3. 单调性(“保序性”):如果 w k − 1 = ( a ′ , b ′ ) w_{k-1}= (a', b') wk1=(a,b),那么对于路径的下一个点 w k = ( a , b ) w_k=(a, b) wk=(a,b)需要满足 a ′ ≤ a a' \le a aa b ′ ≤ b b' \le b bb。这限制W路径上面的点必须是随着时间单调进行的,其实就是语音序列的“保序性”。

如果我们记录路径上位置 j j j的代价就是 W j W_j Wj,那么:
D T W ( Q , C ) = m i n ( ∑ k = 1 K W k ) DTW(Q,C)=min(\sum^K_{k=1}W_k) DTW(Q,C)=min(k=1KWk)

  • 分母是否要K?我觉得是不用的,此外,我们可以意识到,对于长度为n和m的序列, m a x ( m , n ) ≤ K ≤ m + n − 1 max(m,n) \le K \le m+n-1 max(m,n)Km+n1

我们如果把序列下标为 ( i , j ) (i,j) (i,j)位置的距离记作 d ( i , j ) d(i,j) d(i,j),而累积的DTW损失为 γ ( i , j ) \gamma(i,j) γ(i,j),那么我们可以得到如下的递归式:
γ ( i , j ) = d ( i , j ) + m i n { γ ( i − 1 , j − 1 ) , γ ( i , j − 1 ) , γ ( i − 1 , j ) } \gamma(i,j)=d(i,j)+min\{\gamma(i-1,j-1),\gamma(i,j-1),\gamma(i-1,j)\} γ(i,j)=d(i,j)+min{γ(i1,j1),γ(i,j1),γ(i1,j)}
我们初始化DP数组
γ ( 0 , j ) = γ ( i , 0 ) = 0 \gamma(0,j)=\gamma(i,0)=0 γ(0,j)=γ(i,0)=0
并且最终结果即为 γ ( n , m ) \gamma(n,m) γ(n,m),一路上的最佳序列即为最佳匹配(optimal path) W K W_K WK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值