Algoritmi aika-asteikon dynaamiseen muunnokseen ( DTW-algoritm , englanninkielisestä dynaamisesta aikavääristyksestä ) on algoritmi , jonka avulla voit löytää optimaalisen vastaavuuden aikajaksojen välillä. Ensin sovellettiin puheentunnistuksessa , jossa sitä käytetään määrittämään, kuinka kaksi puhesignaalia edustavat samaa alkuperäistä puhuttua lausetta. Myöhemmin sovelluksia löydettiin muilta alueilta [1] .
Aikasarjat ovat laajalti käytetty tietotyyppi[ selventää ] esiintyy käytännössä millä tahansa tieteenalalla, ja kahden sekvenssin vertailu on tavallinen tehtävä. Poikkeaman laskemiseksi riittää yksinkertainen kahden sekvenssin komponenttien välisen etäisyyden mittaus (euklidinen etäisyys). Usein kahdella sekvenssillä on kuitenkin suunnilleen samat yleiset muodot, mutta nämä muodot eivät ole kohdakkain x-akselilla. Sellaisten sekvenssien samankaltaisuuden määrittämiseksi meidän on "väännettävä" sekvenssin toisen (tai molempien) aika-akseli saavuttaa parempi kohdistus. [2]
Kahden aikasarjan välisen etäisyyden mittaaminen on tarpeen niiden samankaltaisuuden ja luokituksen määrittämiseksi. Tällainen tehokas mittaus on euklidinen metriikka . Kahdella aikajaksolla tämä on yksinkertaisesti neliöityjen etäisyyksien summa yhden sekvenssin kustakin n:nnestä pisteestä toisen n:nnen pisteen välillä. Euklidisen etäisyyden käytössä on kuitenkin merkittävä haittapuoli: jos kaksi aikasarjaa ovat samat, mutta toinen niistä on hieman ajallisesti siirtynyt (aika-akselia pitkin), niin euklidinen metriikka voi katsoa sarjan eroavan toisistaan. . DTW-algoritmi otettiin käyttöön tämän puutteen poistamiseksi ja rivien välisen etäisyyden visuaalisen mittauksen saamiseksi kiinnittämättä huomiota sekä globaaleihin että paikallisiin aika-asteikon siirtymiin . [3]
Tarkastellaan kahta aikasarjaa - pituudet ja pituudet [4] :
Algoritmin ensimmäinen vaihe on seuraava. Rakennamme järjestysmatriisin ( etäisyysmatriisi ) , jossa elementti on kahden pisteen välinen etäisyys ja . Yleensä käytetään euklidista etäisyyttä: , tai . Jokainen matriisin elementti vastaa pisteiden ja :n välistä kohdistusta .
Toisessa vaiheessa rakennamme muunnos- (muodonmuutos)matriisin , jonka jokainen elementti lasketaan seuraavan suhteen perusteella:
Muunnosmatriisin täyttämisen jälkeen siirrytään viimeiseen vaiheeseen, jossa rakennetaan optimaalinen muunnospolku (muodonmuutos) ja DTW-etäisyys ( polun hinta ).
Muunnospolku on joukko vierekkäisiä matriisielementtejä, jotka kartoitetaan välillä ja . Se edustaa polkua, joka minimoi kokonaisetäisyyden välillä ja . Polun th elementti on määritelty .
Tällä tavalla:
missä on polun pituus.
Muunnospolun on täytettävä seuraavat rajoitusehdot:
Vaikka on olemassa suuri määrä muunnospolkuja, jotka täyttävät kaikki yllä olevat ehdot, olemme kuitenkin kiinnostuneita vain polusta, joka minimoi DTW-etäisyyden ( polun kustannus ).
Kahden sekvenssin välinen DTW-etäisyys ( polkukustannus ) lasketaan optimaalisen muunnospolun perusteella kaavalla:
nimittäjässä käytetään huomioimaan, että muunnospolut voivat olla eripituisia.
Algoritmin spatiaalinen ja ajallinen monimutkaisuus on neliöllinen, koska DTW-algoritmin on tutkittava jokainen muunnosmatriisin solu.
Vaikka algoritmia on käytetty menestyksekkäästi monilla alueilla, se voi tuottaa virheellisiä tuloksia. Algoritmi voi yrittää selittää akselin volatiliteetin akselimuunnolla . Tämä voi johtaa kohdistukseen, jossa yksi piste ensimmäisessä sekvenssissä on kartoitettu suureen osajoukkoon toisen sekvenssin pisteitä.
Toinen ongelma on, että algoritmi ei välttämättä löydä kahden sarjan ilmeistä kohdistusta johtuen siitä, että yhden sarjan singulaaripiste (huippu, pohja, tasanne, käännepiste ) sijaitsee hieman toisen sarjan vastaavan singulaaripisteen ylä- tai alapuolella. [5] .
DTW-algoritmin eri parannuksilla on tarkoitus nopeuttaa sen laskemista sekä ohjata paremmin muunnospolkujen mahdollisia reittejä.
Yksi yleisimmistä DTW-algoritmin muunnelmista on yleisten (globaalien) rajoittavien ehtojen asettaminen sallituille muodonmuutospoluille [6] . Olkoon osajoukko , joka määrittää globaalin rajoitteen alueen. Nyt muunnospolku on polku, joka sisältyy . Optimaalinen muunnospolku on polku, joka kuuluu ja minimoi polun kustannukset kaikkien muunnospolkujen joukossa kohteesta .
Tällä algoritmilla on lineaarinen tila ja aika monimutkaisuus . Nopea DTW-algoritmi käyttää kerrostettua lähestymistapaa, jossa on kolme avaintoimintoa [7] :
Tämän menetelmän pääideana on käyttää dynaamisesti kahden aikajakson tietojen samankaltaisuuden ja/tai vertailun olemassaoloa. Tällä algoritmilla on kolme erityistä etua [8] :