〰️ Dynamiczne marszczenie czasu — dopasowanie szeregów czasowych
Dynamic time warping dopasowuje dwa szeregi czasowe o różnym tempie, deformując oś czasu. Macierz kosztów w programowaniu dynamicznym znajduje najtańszą ścieżkę — podstawa rozpoznawania mowy i gestów.
O dynamicznym marszczeniu czasu — dopasowaniu szeregów czasowych
Dynamic Time Warping (DTW) to algorytm mierzący podobieństwo dwóch szeregów czasowych, które mogą różnić się tempem, długością lub fazą, poprzez elastyczne odkształcanie osi czasu. Buduje skumulowaną macierz kosztów za pomocą programowania dynamicznego, a następnie odtwarza optymalną ścieżkę marszczenia — najtańszą sekwencję par indeksów dopasowującą oba szeregi od początku do końca. Ta symulacja pozwala obserwować macierz kosztów jako mapę cieplną, oglądać formowanie się żółtej ścieżki marszczenia oraz porównywać odległość DTW z naiwną odległością euklidesową.
DTW zostało po raz pierwszy sformalizowane dla automatycznego rozpoznawania mowy w latach 70. i pozostaje dziś kluczową techniką w analizie szeregów czasowych, bioinformatyce, finansach i rozpoznawaniu gestów.
Najczęściej zadawane pytania
Co dokładnie mierzy dynamiczne marszczenie czasu?
DTW mierzy minimalny łączny koszt dopasowania dwóch szeregów czasowych, pozwalając, by każdy punkt jednego szeregu odpowiadał jednemu lub kilku kolejnym punktom drugiego. W przeciwieństwie do odległości euklidesowej, która sztywno paruje punkty o identycznych indeksach czasowych, DTW rozciąga i ściska oś czasu, dzięki czemu podobne kształty przy różnych prędkościach lub przesunięciach uzyskują małą odległość. Wynikiem jest pojedyncza skalarna odległość: im mniejsza, tym bardziej podobny kształt.
Jak korzystać z tej symulacji?
Wybierz preset pary sygnałów (Przesunięcie fazowe, Marszczenie prędkości lub Dwa garby) przyciskami trybu na lewym panelu. Dostosuj suwak Pasmo Sakoe-Chiba, aby ograniczyć ścieżkę marszczenia, oraz suwak Szum, aby dodać losowość do sygnałów, a następnie kliknij Recompute, aby przeliczyć wynik. Mapa cieplna po prawej pokazuje skumulowaną macierz kosztów D, żółta linia przekątna to optymalna ścieżka marszczenia, a połączenia dopasowania w prawym górnym panelu pokazują, które indeksy są dopasowane między dwoma szeregami.
Dlaczego odległość DTW jest mniejsza niż odległość euklidesowa dla sygnałów przesuniętych w czasie?
Gdy dwa sygnały mają identyczny kształt, ale są przesunięte w czasie, odległość euklidesowa mierzy niedopasowanie punkt po punkcie przy każdym indeksie, co może być duże nawet dla bardzo podobnych kształtów. DTW zamiast tego znajduje optymalną odpowiedniość między punktami, efektywnie przesuwając i rozciągając oś czasu, tak by szczyty odpowiadały szczytom, a doliny dolinom. Dla presetu Przesunięcie fazowe w tej symulacji zwykle zobaczysz odległość DTW znacznie mniejszą niż odległość euklidesowa, ponieważ DTW pochłania przesunięcie fazowe przy minimalnym koszcie.
Jaka jest rekurencja programowania dynamicznego stojąca za DTW?
Dla szeregu X długości n i Y długości m definiuje się koszt lokalny d(i,j) = (X[i] − Y[j])². Skumulowana macierz kosztów D spełnia D(i,j) = d(i,j) + min(D(i−1,j), D(i,j−1), D(i−1,j−1)), z D(0,0) = d(0,0). Pozwala to, by każdy krok pochodził z lewej (powtórz Y), z góry (powtórz X) lub po przekątnej (przesuń oba). Odległość DTW to √(D(n−1, m−1)), a optymalna ścieżka jest odtwarzana przez zachłanne cofanie się od dolnego prawego rogu do górnego lewego.
Czym jest pasmo Sakoe-Chiba i dlaczego ma znaczenie?
Pasmo Sakoe-Chiba to globalne ograniczenie wprowadzone przez Hiroakiego Sakoe i Seibi Chibę w ich pracy z 1978 roku, które ogranicza ścieżkę marszczenia do pozostawania w odległości |i − j| ≤ r kroków od głównej przekątnej. Bez pasma DTW ma złożoność czasową i pamięciową O(nm) i może tworzyć patologiczne dopasowania, w których pojedynczy punkt jednego szeregu jest dopasowany do całego drugiego szeregu. Dodanie pasma redukuje złożoność do O(n · r), zapobiega ekstremalnym dopasowaniom i często poprawia dokładność klasyfikacji w praktyce. W tej symulacji można zobaczyć, jak komórki ograniczone pasmem stają się ciemne na mapie cieplnej.
Gdzie DTW jest stosowane w praktyce?
DTW jest używane w systemach rozpoznawania mowy (dopasowywanie wypowiadanych słów przy różnych prędkościach), rozpoznawaniu pisma i gestów na ekranach dotykowych i czujnikach ruchu, grupowaniu finansowych szeregów czasowych (identyfikacja akcji o podobnych trajektoriach cenowych), analizie sygnałów medycznych (porównywanie zapisów EKG lub EEG między pacjentami) oraz w bioinformatyce (dopasowywanie przebiegów czasowych ekspresji genów). Wiele nowoczesnych bibliotek uczenia maszynowego, takich jak tslearn i stumpy, zawiera zoptymalizowane implementacje DTW do zastosowań na dużą skalę.
Jakie jest częste błędne przekonanie na temat DTW?
Częstym błędnym przekonaniem jest, że DTW zawsze przewyższa odległość euklidesową w zadaniach dotyczących szeregów czasowych. W rzeczywistości, dla bardzo długich szeregów lub szeregów bez znaczącej zmienności osi czasu, DTW może nadmiernie dopasować marszczenie i faktycznie radzić sobie gorzej niż odległość euklidesowa w klasyfikacji. Badania Dinga i in. (2008) pokazały, że dla wielu zbiorów danych testowych metoda 1 najbliższego sąsiada z odległością euklidesową jest konkurencyjna wobec DTW. Właściwy wybór zależy od tego, czy zniekształcenie czasowe jest rzeczywistą cechą, czy tylko szumem w danych.
Kto wynalazł DTW i kiedy?
Formalne sformułowanie DTW w programowaniu dynamicznym dla rozpoznawania mowy wprowadzili Hiroaki Sakoe i Seibi Chiba w firmie NTT w Japonii, w przełomowej pracy „Dynamic programming algorithm optimization for spoken word recognition” opublikowanej w IEEE Transactions on Acoustics, Speech, and Signal Processing w 1978 roku. Pokrewne idee elastycznego dopasowania pojawiły się jednak niezależnie na początku lat 70. w pracach Wintsjuka (1968, ZSRR) nad dopasowaniem mowy oraz w algorytmie Needlemana-Wunscha do dopasowania sekwencji w bioinformatyce (1970).
Jakie inne algorytmy są powiązane z DTW?
DTW jest ściśle powiązane z algorytmami Needlemana-Wunscha i Smitha-Watermana używanymi do dopasowania sekwencji biologicznych, które rozwiązują zasadniczo ten sam problem programowania dynamicznego z różnymi karami za przerwy. Odległość edycyjna (Levenshteina) na sekwencjach symboli jest dyskretnym odpowiednikiem. Do probabilistycznego modelowania sekwencji czasowych ukryte modele Markowa (HMM) uogólniają ideę DTW do ram stochastycznych. Uniform Time Warping i Derivative DTW (DDTW), które oblicza DTW na pierwszej pochodnej szeregu, to bezpośrednie warianty zaprojektowane, by bardziej skupiać się na kształcie.
Jak DTW jest wykorzystywane we współczesnym uczeniu maszynowym i inżynierii?
W inżynierii i uczeniu maszynowym DTW służy jako metryka odległości w klasyfikatorach k najbliższych sąsiadów dla szeregów czasowych, jako funkcja straty dla sieci sekwencja-do-sekwencji (soft-DTW) oraz jako miara podobieństwa w grupowaniu szeregów czasowych i wykrywaniu anomalii. Jest wykorzystywane w przemysłowym IoT do porównywania odczytów czujników z maszyn działających z różnymi prędkościami, w analityce sportowej do porównywania wzorców ruchu zawodników oraz w przetwarzaniu dźwięku do dopasowywania nagrań w celu modyfikacji skali czasowej bez zniekształcania wysokości dźwięku.