Algoritmul pentru transformarea dinamică a scării de timp ( DTW-algorithm , din engleza dynamic time warping ) este un algoritm care vă permite să găsiți potrivirea optimă între secvențele de timp. Aplicat mai întâi în recunoașterea vorbirii , unde este folosit pentru a determina modul în care două semnale vocale reprezintă aceeași frază vorbită originală. Ulterior s-au găsit aplicații în alte domenii [1] .
Seria temporală este un tip de date utilizat pe scară largă[ clarifica ] care apare în aproape orice domeniu științific, iar compararea a două secvențe este o sarcină standard. Pentru a calcula abaterea, este suficientă o simplă măsurare a distanței dintre componentele a două secvențe (distanța euclidiană). Cu toate acestea, adesea două secvențe au aproximativ aceleași forme generale, dar aceste forme nu sunt aliniate pe axa X. Pentru a determina asemănarea dintre astfel de secvențe, trebuie să „deformam” axa temporală a uneia (sau a ambelor) secvențe pentru a obține o aliniere mai bună. [2]
Măsurarea distanței dintre două serii de timp este necesară pentru a determina asemănarea și clasificarea acestora. O astfel de măsurare eficientă este metrica euclidiană . Pentru două secvențe de timp, aceasta este pur și simplu suma distanțelor pătrate de la fiecare punct al n-lea al unei secvențe la al n-lea punct al celuilalt. Cu toate acestea, utilizarea distanței euclidiene are un dezavantaj semnificativ: dacă două serii temporale sunt aceleași, dar una dintre ele este ușor deplasată în timp (de-a lungul axei timpului), atunci metrica euclidiană poate considera că seria diferă una de cealaltă. . Algoritmul DTW a fost introdus pentru a depăși acest neajuns și pentru a oferi o măsurare vizuală a distanței dintre rânduri, fără a acorda atenție schimbărilor globale și locale pe scara de timp . [3]
Luați în considerare două serii temporale - lungimi și lungimi [4] :
Prima etapă a algoritmului este următoarea. Construim o matrice de ordine ( matrice de distanta ) in care elementul este distanta dintre doua puncte si . De obicei se folosește distanța euclidiană: , sau . Fiecare element al matricei corespunde alinierii dintre punctele și .
În a doua etapă, construim o matrice de transformare (deformare) , fiecare element fiind calculat pe baza următoarei relații:
După completarea matricei de transformare, trecem la pasul final, care este construirea unei căi de transformare optime (deformare) și a distanței DTW ( costul căii ).
O cale de transformare este un set de elemente matrice adiacente care se mapează între și . Reprezintă calea care minimizează distanța totală dintre și . Al-lea element al căii este definit ca .
În acest fel:
unde este lungimea drumului.
Calea de transformare trebuie să îndeplinească următoarele condiții de constrângere:
Deși există un număr mare de căi de transformare care satisfac toate condițiile de mai sus, totuși, ne interesează doar calea care minimizează distanța DTW ( costul căii ).
Distanța DTW ( costul drumului ) dintre două secvențe este calculată pe baza traseului optim de transformare folosind formula:
în numitor este folosit pentru a explica faptul că traseele de transformare pot fi de lungimi diferite.
Complexitatea spațială și temporală a algoritmului este pătratică, deoarece algoritmul DTW trebuie să examineze fiecare celulă a matricei de transformare.
Deși algoritmul a fost utilizat cu succes în multe domenii, poate produce rezultate incorecte. Algoritmul poate încerca să explice volatilitatea axei printr-o transformare a axei . Acest lucru poate duce la o aliniere în care un punct din prima secvență este mapat la un subset mare de puncte din a doua secvență.
O altă problemă este că algoritmul poate să nu găsească o aliniere evidentă a două serii din cauza faptului că punctul singular (vârf, jgheab, platou, punct de inflexiune ) al unei serii este situat puțin deasupra sau sub punctul singular corespunzător al celeilalte serii. [5] .
Diverse perfecționări ale algoritmului DTW sunt menite să accelereze calculele acestuia, precum și să controleze mai bine rutele posibile ale căilor de transformare.
Una dintre variantele comune ale algoritmului DTW este impunerea unor condiții limitative generale (globale) pe căile de deformare admisibile [6] . Fie o submulțime care definește aria constrângerii globale. Acum calea de transformare este calea conținută în . Calea optimă de transformare este calea care aparține și minimizează costul căii dintre toate căile de transformare de la .
Acest algoritm are complexitate liniară în spațiu și timp . Algoritmul rapid DTW utilizează o abordare stratificată cu trei operații cheie [7] :
Ideea principală a acestei metode este utilizarea dinamică a prezenței similarității și/sau a comparării datelor pentru două secvențe de timp. Acest algoritm are trei avantaje specifice [8] :