DTW

原帖在這里,這篇是我的閱讀筆記,非原創(chuàng)。

目錄

  • 面臨的問(wèn)題
  • DTW算法簡(jiǎn)介
  • DTW要去解決的問(wèn)題
  • DTW存在的問(wèn)題
  • 總結(jié)

面臨的問(wèn)題

當(dāng)數(shù)據(jù)在時(shí)間線上不對(duì)齊的時(shí)候聊训,使用傳統(tǒng)的匹配方法,是無(wú)法使用傳統(tǒng)的全局匹配度量法的恢氯。

DTW算法簡(jiǎn)介

兩個(gè)人分別說(shuō)了同一個(gè)單詞带斑,但是由于語(yǔ)速、語(yǔ)氣勋拟、語(yǔ)調(diào)等等各不相同勋磕,會(huì)導(dǎo)致采樣得到的數(shù)據(jù)無(wú)法對(duì)齊。但是兩段語(yǔ)音采樣的第一個(gè)采樣值和最后一個(gè)采樣值肯定是兩兩對(duì)應(yīng)的敢靡。

給出兩個(gè)序列:

image.png

Warping通常采用動(dòng)態(tài)規(guī)劃算法挂滓。為了對(duì)齊這兩個(gè)序列,我們需要構(gòu)造一個(gè)n x m的矩陣網(wǎng)格啸胧,矩陣元素(i, j)表示qi和cj兩個(gè)點(diǎn)的距離d(qi, cj)杂彭,一般采用歐式距離,d(qi, cj)= (qi-cj)2(也可以理解為失真度)吓揪。每一個(gè)矩陣元素(i, j)表示點(diǎn)qi和cj的對(duì)齊。

DP(dynamic programming)算法可以歸結(jié)為尋找一條通過(guò)此網(wǎng)格中若干格點(diǎn)的路徑所计,路徑通過(guò)的格點(diǎn)即為兩個(gè)序列進(jìn)行計(jì)算的對(duì)齊的點(diǎn)柠辞。

有三個(gè)性質(zhì):

1)邊界條件:w1=(1, 1)和wK=(m, n)。兩個(gè)人分別說(shuō)了同一個(gè)單詞主胧,但是由于語(yǔ)速叭首、語(yǔ)氣、語(yǔ)調(diào)等等各不相同踪栋,會(huì)導(dǎo)致采樣得到的數(shù)據(jù)無(wú)法對(duì)齊焙格。但是兩段語(yǔ)音采樣的第一個(gè)采樣值和最后一個(gè)采樣值肯定是兩兩對(duì)應(yīng)的。因此所選的路徑必定是從左下角出發(fā)夷都,在右上角結(jié)束眷唉。

2)連續(xù)性:如果wk-1= (a', b'),那么對(duì)于路徑的下一個(gè)點(diǎn)wk=(a, b)需要滿足 (a-a') <=1和 (b-b') <=1囤官。也就是不可能跨過(guò)某個(gè)點(diǎn)去匹配冬阳,只能和自己相鄰的點(diǎn)對(duì)齊。這樣可以保證Q和C中的每個(gè)坐標(biāo)都在W中出現(xiàn)党饮。

3)單調(diào)性:如果wk-1= (a', b')肝陪,那么對(duì)于路徑的下一個(gè)點(diǎn)wk=(a, b)需要滿足0<=(a-a’)和0<= (b-b’)。這限制W上面的點(diǎn)必須是隨著時(shí)間單調(diào)進(jìn)行的刑顺。以保證圖B中的虛線不會(huì)相交氯窍。

由連續(xù)性和單調(diào)性可知饲常,每次格點(diǎn)(i, j)前進(jìn)方向只有三種:(i+1, j),(i, j+1) 或 (i+1, j+1)狼讨。我們的目的是使得下面的規(guī)整代價(jià)最小的路徑:

image.png

分母中的K主要是用來(lái)對(duì)不同的長(zhǎng)度的規(guī)整路徑做補(bǔ)償贝淤。

這里我們定義一個(gè)累加距離(cumulative distances)。從(0, 0)點(diǎn)開始匹配這兩個(gè)序列Q和C熊楼,每到一個(gè)點(diǎn)霹娄,之前所有的點(diǎn)計(jì)算的距離都會(huì)累加。到達(dá)終點(diǎn)(n, m)后鲫骗,這個(gè)累積距離就是我們上面說(shuō)的最后的總的距離犬耻,也就是序列Q和C的相似度。

示例:

對(duì)于兩個(gè)序列:

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

然后根據(jù)距離矩陣生成1損失矩陣(Cost Matrix)或者叫累積距離矩陣 McMc,其計(jì)算方法如下:

  1. 第一行第一列元素為 MM 的第一行第一列元素彤守,在這里就是0毯侦;

  2. 其他位置的元素 (Mc(i,j)Mc(i,j))的值則需要逐步計(jì)算,具體值的計(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要去解決的問(wèn)題

DTW就是要去解決侈离,普通的歐氏距離,對(duì)不對(duì)齊的兩個(gè)序列無(wú)法進(jìn)行相似度對(duì)比的問(wèn)題筝蚕。解決的方法就是動(dòng)態(tài)規(guī)劃卦碾,但是并沒有生成更加多余的點(diǎn),而是進(jìn)行了復(fù)制饰及。

DTW存在的問(wèn)題

DTW實(shí)質(zhì)上是通過(guò)對(duì)軌跡點(diǎn)的復(fù)制實(shí)現(xiàn)的對(duì)軌跡局部的拉伸或者縮放蔗坯,下圖展示地非常清楚:

image.png

DTW通過(guò)迭代的方式計(jì)算軌跡之間的距離(找到圖4 b所示的最佳的軌跡),是一個(gè)經(jīng)典的動(dòng)態(tài)規(guī)劃問(wèn)題燎含,其算法復(fù)雜度是O(m × n)宾濒,依舊很高。后期必然需要相應(yīng)的修建策略才能達(dá)到好的效果屏箍。

雖然沒有使用映射绘梦,但是由于使用了重復(fù)橘忱,最終的結(jié)果仍然不是嚴(yán)格的metric,無(wú)法使用metric的方法P斗睢(DTW “l(fā)oosely” satis?es 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.)

復(fù)制“其實(shí)就是在重復(fù)使用某些點(diǎn)钝诚。以此實(shí)現(xiàn)了對(duì)local time shifting的處理。

沒有閾值限制榄棵,其最終目的只有找到最好的路徑凝颇,但是此路徑的總距離大小可能會(huì)很大。假如不對(duì)離群點(diǎn)進(jìn)行處理疹鳄,此算法依舊將會(huì)對(duì)離群點(diǎn)拧略、異常點(diǎn)很敏感

算法需要第一個(gè)點(diǎn)和最后一個(gè)點(diǎn)是對(duì)應(yīng)的瘪弓。

錯(cuò)誤示例:

(1)沒有設(shè)置閾值

image.png

此處出現(xiàn)了特定的local time shifting垫蛆,會(huì)導(dǎo)致T2和T3明明是一條軌跡,但是最終出現(xiàn)的結(jié)果會(huì)是T1和T3的相似度要比T1和T2差很多腺怯。而且最終的結(jié)果是絕對(duì)的袱饭,即得到的只有一個(gè)絕對(duì)的數(shù)字,但從這個(gè)數(shù)字上是無(wú)法進(jìn)一步消除這個(gè)誤差的呛占。

(2)直接使用的是原有的軌跡點(diǎn)虑乖,重復(fù)使用,且不會(huì)跳過(guò)任何一個(gè)點(diǎn)晾虑,因此對(duì)噪聲點(diǎn)的抑制并不好决左。

image.png

總結(jié)

DTW方法是歐氏距離方法的改進(jìn),只改進(jìn)了其不能處理local time shifting的問(wèn)題走贪。沒有引入任何閾值參數(shù),因此對(duì)時(shí)間上的偏移(噪聲和離群點(diǎn))的抑制并不好惑芭,且對(duì)時(shí)間上的偏移的適應(yīng)性也不好坠狡。

優(yōu)點(diǎn):使用動(dòng)態(tài)規(guī)劃的思想,實(shí)現(xiàn)了對(duì)某些點(diǎn)的重復(fù)使用遂跟,確保重復(fù)使用的點(diǎn)達(dá)成的路徑最優(yōu)的逃沿,從而較為高效地解決了數(shù)據(jù)不對(duì)齊的問(wèn)題。

缺點(diǎn):還是無(wú)法處理離群點(diǎn)幻锁、異常點(diǎn)凯亮,對(duì)于噪聲的抑制沒有進(jìn)行處理。雖然能夠處理local time shifting哄尔,但是對(duì)時(shí)間上的偏移做的也不好假消。算法也不是metric類型的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末岭接,一起剝皮案震驚了整個(gè)濱河市富拗,隨后出現(xiàn)的幾起案子臼予,更是在濱河造成了極大的恐慌,老刑警劉巖啃沪,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粘拾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡创千,警方通過(guò)查閱死者的電腦和手機(jī)缰雇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)追驴,“玉大人械哟,你說(shuō)我怎么就攤上這事÷乳埽” “怎么了戒良?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)冠摄。 經(jīng)常有香客問(wèn)我糯崎,道長(zhǎng),這世上最難降的妖魔是什么河泳? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任沃呢,我火速辦了婚禮,結(jié)果婚禮上拆挥,老公的妹妹穿的比我還像新娘薄霜。我一直安慰自己,他們只是感情好纸兔,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布惰瓜。 她就那樣靜靜地躺著,像睡著了一般汉矿。 火紅的嫁衣襯著肌膚如雪崎坊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天洲拇,我揣著相機(jī)與錄音奈揍,去河邊找鬼。 笑死赋续,一個(gè)胖子當(dāng)著我的面吹牛男翰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纽乱,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼蛾绎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起秘通,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤为严,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后肺稀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體第股,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年话原,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了夕吻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡繁仁,死狀恐怖涉馅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情黄虱,我是刑警寧澤稚矿,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站捻浦,受9級(jí)特大地震影響晤揣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜朱灿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一昧识、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盗扒,春花似錦跪楞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至褥影,卻和暖如春淋叶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背伪阶。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留处嫌,地道東北人栅贴。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像熏迹,于是被迫代替她去往敵國(guó)和親檐薯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • DTW可以計(jì)算兩個(gè)時(shí)間序列的相似度,尤其適用于不同長(zhǎng)度坛缕、不同節(jié)奏的時(shí)間序列(比如不同的人讀同一個(gè)詞的音頻序列)墓猎。D...
    X豬閱讀 26,672評(píng)論 2 14
  • 一、概述 在時(shí)間序列中赚楚,需要比較相似性的兩段時(shí)間序列的長(zhǎng)度可能并不相等毙沾,在語(yǔ)音識(shí)別領(lǐng)域表現(xiàn)為不同人的語(yǔ)速不同。在這...
    ChongmingLiu閱讀 5,843評(píng)論 0 10
  • thiele插值算法 1點(diǎn)插值算法 function [C,c]=thiele(X,Y,Z)%X為插值點(diǎn)橫坐標(biāo)宠页,Y...
    00crazy00閱讀 1,978評(píng)論 0 4
  • 在C語(yǔ)言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來(lái)閱讀 3,333評(píng)論 0 2
  • 第一次和喜歡的人告白原因很多左胞,主要的原因之一是朋友在一旁的慫恿,鼓勵(lì)举户,原因之二是明知ta已經(jīng)有了另一半烤宙,但...
    遲謙謙閱讀 414評(píng)論 0 0