Az időskála dinamikus transzformációjának algoritmusa ( DTW-algoritm , az angol dynamic time warping szóból ) egy olyan algoritmus , amely lehetővé teszi az idősorok közötti optimális egyezés megtalálását. Először a beszédfelismerésben alkalmazták , ahol annak meghatározására szolgál, hogy két beszédjel hogyan reprezentálja ugyanazt az eredeti kimondott kifejezést. Ezt követően más területeken is találtak alkalmazásokat [1] .
Az idősorok egy széles körben használt adattípus[ tisztázni ] gyakorlatilag bármely tudományterületen előfordul, és két szekvencia összehasonlítása szokásos feladat. Az eltérés kiszámításához elegendő két sorozat összetevői közötti távolság egyszerű mérése (euklideszi távolság). Azonban gyakran két sorozatnak megközelítőleg azonos az általános alakja, de ezek az alakzatok nem illeszkednek az x tengelyhez. Az ilyen sorozatok közötti hasonlóság megállapításához a sorozat egyik (vagy mindkettő) időtengelyét "el kell vetemítenünk" jobb összhangot elérni. [2]
Két idősor közötti távolság mérése szükséges ahhoz, hogy meghatározzuk hasonlóságukat és osztályozásukat. Ilyen hatékony mérés az euklideszi metrika . Két idősorozat esetén ez egyszerűen az egyik sorozat n-edik pontja és a másik n-edik pontja közötti távolság négyzetének összege. Az euklideszi távolság használatának azonban van egy jelentős hátulütője is: ha két idősor azonos, de az egyik időben kissé eltolódott (az időtengely mentén), akkor az euklideszi metrika figyelembe veheti, hogy a sorozatok különböznek egymástól. . A DTW algoritmust azért vezették be, hogy kiküszöböljék ezt a hiányosságot, és vizuálisan lemérjék a sorok közötti távolságot, figyelmen kívül hagyva az időskála globális és lokális eltolódásait . [3]
Tekintsünk két idősort – hosszúságot és hosszt [4] :
Az algoritmus első szakasza a következő. Készítünk egy sorrendi mátrixot ( távolságmátrix ) , amelyben az elem a két pont közötti távolság és . Általában az euklideszi távolságot használják: , vagy . A mátrix minden eleme megfelel a pontok és a pontok közötti igazításnak .
A második lépésben felállítunk egy transzformációs (deformációs) mátrixot , amelynek minden elemét a következő összefüggés alapján számítjuk ki:
A transzformációs mátrix kitöltése után továbblépünk az utolsó lépésre, ami egy optimális transzformációs út (deformáció) és DTW távolság (útköltség) felépítése .
A transzformációs útvonal szomszédos mátrixelemek halmaza, amely és között van leképezve . Azt az utat jelöli, amely minimálisra csökkenti a és közötti teljes távolságot . Az útvonal edik eleme a következőképpen van definiálva: .
Ilyen módon:
hol van az út hossza.
Az átalakítási útvonalnak meg kell felelnie a következő kényszerfeltételeknek:
Bár sok olyan transzformációs útvonal létezik, amely az összes fenti feltételt kielégíti, minket azonban csak az az útvonal érdekel, amely minimalizálja a DTW távolságot (útköltség ) .
A két sorozat közötti DTW távolság (útköltség ) az optimális transzformációs út alapján kerül kiszámításra a következő képlet segítségével:
a nevezőben azt a tényt használják, hogy a transzformációs utak különböző hosszúságúak lehetnek.
Az algoritmus térbeli és időbeli összetettsége kvadratikus, mivel a DTW algoritmusnak a transzformációs mátrix minden celláját meg kell vizsgálnia.
Bár az algoritmust számos területen sikeresen alkalmazták, hibás eredményeket produkálhat. Az algoritmus megpróbálhatja megmagyarázni a tengely volatilitását egy tengelytranszformációval . Ez olyan igazodáshoz vezethet, amelyben az első sorozat egyik pontja a második szekvencia pontjainak nagy részhalmazához van leképezve.
Egy másik probléma az, hogy az algoritmus nem találja két sorozat nyilvánvaló igazítását, mivel az egyik sorozat szinguláris pontja (csúcs, mélypont, plató, inflexiós pont ) valamivel a másik sorozat megfelelő szinguláris pontja felett vagy alatt helyezkedik el. [5] .
A DTW algoritmus különféle finomításainak célja a számítások felgyorsítása, valamint a transzformációs utak lehetséges útvonalainak jobb szabályozása.
A DTW algoritmus egyik elterjedt változata az általános (globális) korlátozó feltételek előírása a megengedett alakváltozási utakra [6] . Legyen egy részhalmaz , amely meghatározza a globális kényszer területét. Most az átalakítási útvonal a . Az optimális átalakítási útvonal az az útvonal, amely a -hoz tartozik , és minimalizálja az útvonal költségét a -ból származó összes átalakítási útvonal között .
Ennek az algoritmusnak lineáris tér és idő összetettsége van . A gyors DTW algoritmus réteges megközelítést használ három kulcsművelettel [7] :
Ennek a módszernek az a fő gondolata, hogy dinamikusan használja a hasonlóság jelenlétét és/vagy az adatok összehasonlítását két időszekvenciára vonatkozóan. Ennek az algoritmusnak három konkrét előnye van [8] :