Algoritmus pro dynamickou transformaci časové škály ( DTW-algorithm , z anglického dynamic time warping ) je algoritmus , který umožňuje najít optimální shodu mezi časovými sekvencemi. Poprvé použito v rozpoznávání řeči , kde se používá k určení, jak dva řečové signály reprezentují stejnou původní mluvenou frázi. Následně byly nalezeny aplikace v dalších oblastech [1] .
Časová řada je široce používaný datový typ[ objasnit ] vyskytující se prakticky v jakékoli vědecké oblasti a porovnávání dvou sekvencí je standardním úkolem. Pro výpočet odchylky stačí jednoduché měření vzdálenosti mezi složkami dvou posloupností (euklidovská vzdálenost). Často však dvě sekvence mají přibližně stejné obecné tvary, ale tyto tvary nejsou zarovnány na ose x. Abychom určili podobnost mezi takovými sekvencemi, musíme „pokřivit“ časovou osu jedné (nebo obou) sekvence tak, aby dosáhnout lepšího zarovnání. [2]
Měření vzdálenosti mezi dvěma časovými řadami je nezbytné pro určení jejich podobnosti a klasifikace. Takovým efektivním měřením je euklidovská metrika . Pro dvě časové sekvence je to jednoduše součet čtverců vzdáleností od každého n-tého bodu jedné sekvence k n-tému bodu druhé. Použití euklidovské vzdálenosti má však značnou nevýhodu: pokud jsou dvě časové řady stejné, ale jedna z nich je mírně posunuta v čase (podél časové osy), pak euklidovská metrika může uvažovat, že se řady od sebe liší. . Algoritmus DTW byl zaveden s cílem překonat tento nedostatek a poskytnout vizuální měření vzdálenosti mezi řadami, aniž by se věnovala pozornost jak globálním, tak lokálním posunům na časové škále . [3]
Uvažujme dvě časové řady – délky a délky [4] :
První fáze algoritmu je následující. Sestrojíme matici řádu ( matici vzdálenosti ), ve které je prvkem vzdálenost mezi dvěma body a . Obvykle se používá euklidovská vzdálenost: , nebo . Každý prvek matice odpovídá zarovnání mezi body a .
Ve druhé fázi vytvoříme transformační (deformační) matici , jejíž každý prvek se vypočítá na základě následujícího vztahu:
Po vyplnění transformační matice přejdeme k poslednímu kroku, kterým je sestavení nějaké optimální transformační cesty (deformace) a vzdálenosti DTW ( path cost ).
Transformační cesta je sada sousedních prvků matice, která mapuje mezi a . Představuje cestu, která minimalizuje celkovou vzdálenost mezi a . Prvek cesty je definován jako .
Takto:
kde je délka cesty.
Transformační cesta musí splňovat následující omezující podmínky:
Přestože existuje velké množství transformačních cest, které splňují všechny výše uvedené podmínky, nás zajímá pouze cesta, která minimalizuje vzdálenost DTW ( path cost ).
Vzdálenost DTW ( náklady na cestu ) mezi dvěma sekvencemi se vypočítá na základě optimální transformační cesty pomocí vzorce:
ve jmenovateli se používá k zohlednění skutečnosti, že transformační cesty mohou mít různé délky.
Prostorová a časová složitost algoritmu je kvadratická, protože algoritmus DTW musí zkoumat každou buňku transformační matice.
Přestože byl algoritmus úspěšně použit v mnoha oblastech, může přinést nesprávné výsledky. Algoritmus se může pokusit vysvětlit volatilitu os pomocí transformace osy . To může vést k zarovnání, ve kterém je jeden bod v první sekvenci mapován na velkou podmnožinu bodů ve druhé sekvenci.
Dalším problémem je, že algoritmus nemusí najít zřejmé zarovnání dvou řad kvůli skutečnosti, že singulární bod (vrchol, prohlubeň, plošina, inflexní bod ) jedné řady je umístěn mírně nad nebo pod odpovídajícím singulárním bodem druhé řady. [5] .
Různá vylepšení algoritmu DTW mají urychlit jeho výpočty a také lépe řídit možné cesty transformačních cest.
Jednou z běžných variant algoritmu DTW je kladení obecných (globálních) omezujících podmínek na přípustné deformační dráhy [6] . Nechť je podmnožina , která definuje oblast globálního omezení. Nyní je cesta transformace cesta obsažená v souboru . Optimální transformační cesta je cesta, která patří a minimalizuje náklady na cestu mezi všemi transformačními cestami z .
Tento algoritmus má lineární prostorovou a časovou složitost . Rychlý DTW algoritmus používá vrstvený přístup se třemi klíčovými operacemi [7] :
Hlavní myšlenkou této metody je dynamicky využívat přítomnost podobnosti a/nebo srovnání dat pro dvě časové sekvence. Tento algoritmus má tři specifické výhody [8] :