Algoritm för dynamisk transformation av tidsskalan ( DTW-algorithm , från engelskan dynamic time warping ) är en algoritm som låter dig hitta den optimala matchningen mellan tidssekvenser. Tillämpas först i taligenkänning , där det används för att bestämma hur två talsignaler representerar samma ursprungliga talade fras. Därefter hittades tillämpningar inom andra områden [1] .
Tidsserier är en mycket använd datatyp[ förtydliga ] förekommer inom praktiskt taget vilket vetenskapligt område som helst, och att jämföra två sekvenser är en standarduppgift. För att beräkna avvikelsen räcker det med en enkel mätning av avståndet mellan komponenterna i två sekvenser (euklidiskt avstånd). Ofta har dock två sekvenser ungefär samma allmänna former, men dessa former är inte inriktade på x-axeln. För att fastställa likheten mellan sådana sekvenser måste vi "förvränga" tidsaxeln för en (eller båda) av sekvensen till uppnå bättre anpassning. [2]
Att mäta avståndet mellan två tidsserier är nödvändigt för att bestämma deras likhet och klassificering. En sådan effektiv mätning är den euklidiska metriken . För två tidssekvenser är detta helt enkelt summan av de kvadratiska avstånden från varje n:te punkt i en sekvens till n:te punkten i den andra. Användningen av det euklidiska avståndet har dock en betydande nackdel: om två tidsserier är lika, men en av dem är något förskjuten i tid (längs tidsaxeln), kan den euklidiska metriken anse att serierna skiljer sig från varandra . DTW-algoritmen introducerades för att övervinna denna brist och ge en visuell mätning av avståndet mellan raderna, utan att ta hänsyn till både globala och lokala förändringar på tidsskalan . [3]
Tänk på två tidsserier - längder och längder [4] :
Det första steget i algoritmen är som följer. Vi konstruerar en ordningsmatris ( avståndsmatris ) där elementet är avståndet mellan två punkter och . Vanligtvis används det euklidiska avståndet: , eller . Varje element i matrisen motsvarar inriktningen mellan punkterna och .
I det andra steget bygger vi en transformations (deformation) matris , vars varje element beräknas baserat på följande förhållande:
Efter att ha fyllt i transformationsmatrisen går vi vidare till det sista steget, som är att bygga någon optimal transformationsväg (deformation) och DTW-avstånd ( vägkostnad ).
En transformationsbana är en uppsättning intilliggande matriselement som mappar mellan och . Den representerar vägen som minimerar det totala avståndet mellan och . Det e elementet i sökvägen definieras som .
På det här sättet:
var är vägens längd.
Transformationsvägen måste uppfylla följande villkor:
Även om det finns ett stort antal transformationsvägar som uppfyller alla ovanstående villkor, är vi dock bara intresserade av vägen som minimerar DTW-avståndet ( path cost ).
DTW-avståndet ( vägkostnad ) mellan två sekvenser beräknas baserat på den optimala transformationsvägen med hjälp av formeln:
i nämnaren används för att redogöra för det faktum att transformationsvägar kan vara av olika längd.
Algoritmens rumsliga och tidsmässiga komplexitet är kvadratisk, eftersom DTW-algoritmen måste undersöka varje cell i transformationsmatrisen.
Även om algoritmen har använts framgångsrikt på många områden, kan den ge felaktiga resultat. Algoritmen kan försöka förklara axelvolatiliteten med en axeltransformation . Detta kan leda till en inriktning där en punkt i den första sekvensen mappas till en stor delmängd av punkter i den andra sekvensen.
Ett annat problem är att algoritmen kanske inte hittar en uppenbar anpassning av två serier på grund av det faktum att singularpunkten (topp, dal, platå, böjningspunkt ) för en serie ligger något över eller under motsvarande singularpunkt i den andra serien [5] .
Olika förbättringar av DTW-algoritmen är avsedda att påskynda dess beräkningar, såväl som att bättre kontrollera de möjliga vägarna för transformationsvägar.
En av de vanliga varianterna av DTW-algoritmen är införandet av allmänna (globala) begränsande villkor på tillåtna deformationsvägar [6] . Låt vara en delmängd som definierar området för den globala begränsningen. Nu är transformeringsvägen den sökväg som finns i . Den optimala transformationsvägen är den väg som hör till och minimerar kostnaden för vägen bland alla transformationsvägar från .
Denna algoritm har linjär rums- och tidskomplexitet . Den snabba DTW-algoritmen använder en skiktad metod med tre nyckeloperationer [7] :
Huvudidén med denna metod är att dynamiskt använda närvaron av likhet och/eller jämförelse av data för två tidssekvenser. Denna algoritm har tre specifika fördelar [8] :