Dynamic-Time-Warping kommt zum Einsatz, um ver­schie­den lange Wert­fol­gen in einem Mus­ter­ver­gleich auf Über­ein­stim­mun­gen hin zu über­prü­fen. Hierzu erzeugt der Al­go­rith­mus der dy­na­mi­schen Zeit­nor­mie­rung Warping-Pfade, an denen sich durch Back­track­ing und Dif­fe­renz­ma­ße Über­ein­stim­mun­gen trotz Zeit­ver­zer­rung oder un­ter­schied­li­cher Ge­schwin­dig­keit erkennen lassen. Zur Anwendung kommt DTW u. a. für die Sprach­er­ken­nung, zur digitalen Un­ter­schrif­ten­er­ken­nung oder auch zur Analyse von Fi­nanz­märk­ten.

Was bedeutet Dynamic-Time-Warping?

Dynamic-Time-Warping (DTW), übersetzt: „dy­na­mi­sche Zeit­nor­mie­rung“ – das klingt im ersten Moment wie eine Tech­no­lo­gie aus Star Trek. Tat­säch­lich handelt es sich jedoch um nichts anderes als einen Al­go­rith­mus für den Vergleich von ver­schie­de­nen Zeit­ab­läu­fen oder Wer­te­rei­hen. Diese werden hierzu vom Al­go­rith­mus auf­ein­an­der ab­ge­bil­det und mit­ein­an­der ver­gli­chen. Durch das na­mens­ge­ben­de „Warping“ der Sequenzen lassen sich auch bei un­ter­schied­li­cher Länge oder Ge­schwin­dig­keit Ge­mein­sam­kei­ten und über­ein­stim­men­de Muster zwischen den Sequenzen erkennen.

Zur Ver­an­schau­li­chung: Sollen zwei ver­schie­de­ne Geh­se­quen­zen auf Über­ein­stim­mun­gen hin un­ter­sucht werden, ist der Al­go­rith­mus in der Lage, auch bei un­ter­schied­li­cher Geh­ge­schwin­dig­keit oder zu­rück­ge­leg­ter Strecke iden­ti­sche Muster zu erkennen. Beim Vergleich von Un­ter­schrif­ten derselben Person wiederum lassen sich auch bei un­ter­schied­li­cher Größe der Schrift Ge­mein­sam­kei­ten iden­ti­fi­zie­ren.

Welchen Zweck hat Dynamic-Time-Warping?

Zugegeben, DTW wirkt auf den ersten Blick wie ein abs­trak­tes Konzept ohne er­kenn­ba­ren prak­ti­schen Nutzen. Das Gegenteil ist jedoch der Fall: Dynamic-Time-Warping erfüllt in viel­fäl­ti­gen An­wen­dungs­be­rei­chen eine wichtige Ana­ly­se­funk­ti­on. Das gilt vor allem für die Se­quenz­ana­ly­se von Video- und Audio-Sequenzen, Grafiken oder sta­tis­ti­schen Modellen, Sequenzen also, die sich linear abbilden und ver­glei­chen lassen. Indem DTW Über­ein­stim­mun­gen erkennt, lassen sich bestimmte Aktionen, Signale oder Funk­tio­nen auslösen.

Darüber hinaus können durch Mus­ter­mes­sung und Mus­ter­er­ken­nung in Wer­te­rei­hen ähnliche Sys­tem­ent­wick­lun­gen auch über ver­schie­de­ne Zeiträume hinweg un­ter­sucht werden. Aus diesem Grund findet der Dynamic-Time-Warping-Al­go­rith­mus auch in zu­kunfts­wei­sen­den Tech­no­lo­gien wie Machine Learning, Su­per­vi­sed Learning oder Neural Networks Anwendung, um die Analyse- und Re­ak­ti­ons­fä­hig­kei­ten selbst­ler­nen­der Systeme zu trai­nie­ren und Da­ten­sät­ze ef­fi­zi­en­ter aus­zu­wer­ten.

Wie funk­tio­niert Dynamic-Time-Warping?

Um Muster und Ge­mein­sam­kei­ten in ver­schie­de­nen Wer­te­rei­hen zu erkennen, sucht DTW nach optimalen Über­ein­stim­mun­gen, auch „optimal matches“ genannt. Hierbei helfen die Prin­zi­pi­en „One-to-Many“ oder „Many-to-One“. Es werden ver­schie­de­ne Regeln und Be­din­gun­gen angewandt:

  • Jeder Wert einer Sequenz muss mit einem oder mehreren Werten der zweiten Sequenz ver­gli­chen werden (und umgekehrt).
  • Der erste Wert einer Sequenz muss mit dem ersten Wert der zweiten Sequenz ver­gli­chen werden.
  • Der letzte Wert einer Sequenz muss mit dem letzten Wert der zweiten Sequenz ver­gli­chen werden.
  • Die Abbildung (Mapping) der Wer­te­rei­hen der ersten Sequenz auf den Wer­te­rei­hen der zweiten Sequenz muss monoton zunehmen. Werte am Anfang und Ende der Sequenzen müssen also in Ihren Po­si­tio­nen über­ein­stim­men, ohne Aus­las­sung oder Über­schnei­dun­gen.

Eine optimale Über­ein­stim­mung liegt vor, wenn alle Vorgaben und Be­din­gun­gen erfüllt sind. Hierbei kommt eine so­ge­nann­te Kos­ten­funk­ti­on zum Einsatz, mit der sich ein Dif­fe­renz­maß zwischen Werten der Sequenzen erstellen lässt. Eine optimale Über­ein­stim­mung hängt von einer möglichst geringen Kos­ten­funk­ti­on ab.

Zudem erstellt der Al­go­rith­mus einen Warping-Pfad, der in der Lage ist, auch optimale Über­ein­stim­mun­gen in Sequenzen mit ver­schie­de­nen Längen zu erkennen. Der Warping-Pfad entsteht durch Back­track­ing, bei dem der Al­go­rith­mus einen oder mehrere Werte einer Sequenz auf Punkten der zweiten Sequenz abbildet. Hierdurch lassen sich trotz oder vielmehr durch Zeit­ver­zer­rung auch bei un­ter­schied­lich langen Zeit­se­quen­zen Über­ein­stim­mun­gen finden.

KI-Assistent kostenlos – Ihr smarter All­tags­hel­fer
  • DSGVO-konform & sicher gehostet in Deutsch­land
  • Pro­duk­ti­vi­tät steigern – weniger Aufwand, mehr Output
  • Direkt im Browser starten – ohne In­stal­la­ti­on

Wo kommt Dynamic-Time-Warping zum Einsatz?

Dynamic-Time-Warping kann überall dort zum Einsatz kommen, wo sich Da­ten­sät­ze in linearen Sequenzen abbilden und ver­glei­chen lassen. So wird DTW oftmals als Vor- oder Nach­un­ter­su­chung in der Da­ten­ana­ly­se ein­ge­setzt. Dabei kann es sich um Audio-Daten, Video-Daten, al­pha­nu­me­ri­sche Daten oder Big-Data-basierte Da­ten­sät­ze handeln.

Weitere An­wen­dungs­be­rei­che für DTW sind zum Beispiel:

  • Mus­ter­er­ken­nung in Audio-Sequenzen: Ein wichtiger An­wen­dungs­fall für DTW ist die Sprach­er­ken­nung. Hierbei werden auf­ge­zeich­ne­te und ge­spei­cher­te Sprach­mus­ter per DTW im Mus­ter­ver­gleich auf­ein­an­der ab­ge­bil­det. Bei un­ter­schied­lich langen oder schnellen Audio-Sequenzen nutzt DTW die adaptive Zeit­nor­mie­rung, um einen Warping-Pfad zu erstellen. Hierdurch lassen sich Über­ein­stim­mun­gen auch in un­ter­schied­lich lang oder schnell aus­ge­spro­che­nen Vokalen und Kon­so­nan­ten erkennen.
  • Mus­ter­er­ken­nung Video-Sequenzen: Zur Gesten- und Be­we­gungs­er­ken­nung werden durch DTW Video-Sequenzen, z. B. von Be­we­gungs­ab­läu­fen, auf­ein­an­der ab­ge­bil­det. Es erfolgen ein Vergleich und eine Mus­ter­er­ken­nung in Be­we­gungs­ab­läu­fen, auch bei ver­schie­de­nen zeit­li­chen Längen oder un­ter­schied­li­chen Ge­schwin­dig­kei­ten.
  • Mus­ter­er­ken­nung in Fi­nanz­da­ten: Weitere wichtige An­wen­dungs­be­rei­che sind Fi­nanz­märk­te und Un­ter­neh­mens­fi­nan­zen. Sollen Prognosen zu Fi­nanz­zy­klen, Um­satz­kur­ven oder Bör­sen­trends erstellt werden, bietet sich der Einsatz von DTW an. Über ver­schie­de­ne Zeiträume hinweg lassen sich durch DTW ähnliche oder iden­ti­sche Zyklen und Trends in Markt- und Un­ter­neh­mens­da­ten aufzeigen und vi­sua­li­sie­ren. Die Un­ter­su­chung basiert sowohl auf Prognosen als auch auf ge­sam­mel­ten Geschäfts- und Fi­nanz­da­ten.

Welche Tools im­ple­men­tie­ren Dynamic-Time-Warping?

Der DTW-Al­go­rith­mus findet sich in den Bi­blio­the­ken ver­schie­de­ner Open-Source-Software. Dazu zählen:

  • DTW Suite mit Pro­gram­mier­pa­ke­ten für Python und R
  • FastDTW bietet eine Java-Im­ple­men­tie­rung für DTW-Al­go­rith­men.
  • MatchBox im­ple­men­tiert DTW für Audio-Signale.
  • mlpy und pydtw bieten als Python Bi­blio­the­ken für Machine Learning auch DTW-Funk­tio­nen.
  • Gesture Re­co­gni­ti­on bietet DTW-Al­go­rith­men zur Echtzeit-Ges­ten­er­ken­nung.

Um DTW möglichst effizient an­zu­wen­den, kommen auch folgende Fast-Com­pu­ta­ti­on-Techniken zum Einsatz:

  • PruneDTW
  • SparseDTW
  • FastDTW
  • Mul­tis­ca­leDTW

Beispiel: Dynamic-Time-Warping als Al­go­rith­mus in Python

Zur Ver­an­schau­li­chung der Kom­ple­xi­tät von Dynamic-Time-Warping finden Sie im Folgenden ein Beispiel für einen DTW-Al­go­rith­mus im Python-Code:

def dtw(s, t, window):
    n, m = len(s), len(t)
    w = np.max([window, abs(n-m)])
    dtw_matrix = np.zeros((n+1, m+1))
    
    for i in range(n+1):
        for j in range(m+1):
            dtw_matrix[i, j] = np.inf
    dtw_matrix[0, 0] = 0
    
    for i in range(1, n+1):
        for j in range(np.max([1, i-w]), np.min([m, i+w])+1):
            dtw_matrix[i, j] = 0
    
    for i in range(1, n+1):
        for j in range(np.max([1, i-w]), np.min([m, i+w])+1):
            cost = abs(s[i-1] - t[j-1])
            # take last min from a square box
            last_min = np.min([dtw_matrix[i-1, j], dtw_matrix[i, j-1], dtw_matrix[i-1, j-1]])
            dtw_matrix[i, j] = cost + last_min
    return dtw_matrix

Der im Code­bei­spiel vor­ge­stell­ten Funktion werden zunächst drei Parameter übergeben: Zuerst werden die beiden Signale, die un­ter­sucht werden sollen, in den Pa­ra­me­tern namens s und t übergeben. Im Regelfall handelt es sich bei den Signalen um Arrays oder Vektoren. Mit dem Parameter namens window kann spe­zi­fi­ziert werden, mit wie vielen anderen Elementen ein Matching statt­fin­den kann.

In der Funktion wird dann zunächst eine Matrix erstellt und mit dem Wert unendlich in­itia­li­siert. Der zentrale DTW-Schritt passiert in den letzten beiden ver­schach­tel­ten For-Schleifen: Man addiert zu den bis­he­ri­gen Kosten, die in der Variable costs ge­spei­chert werden und die sich aus der Distanz der beiden Ein­ga­be­wer­te am je­wei­li­gen Index zu­ein­an­der ergeben, den Wert, der in der Variable last_min ge­spei­chert ist.

Hierbei handelt es sich um einen Wert, der sich aufgrund des dy­na­mi­schen Pro­gram­mie­rens aus bereits be­rech­ne­ten Werten ergibt. Man wählt das Minimum aus den bereits zuvor be­rech­ne­ten, um­lie­gen­den Werten aus und addiert es zu den zuvor er­rech­ne­ten Kosten. Dieser Schritt ent­schei­det darüber, ob man zwei Elemente direkt matcht, ein Element hinzufügt oder aber ein Element löscht.

Nachdem die Funktion aus­ge­führt wurde, erhält man eine Di­stanz­ma­trix, aus der man den Warping-Pfad ablesen kann.

Al­ter­na­ti­ven zu Dynamic-Time-Warping

Weitere Mög­lich­kei­ten zur Mus­ter­er­ken­nung in Sequenzen und Zeit­ab­läu­fen, die als Al­ter­na­ti­ve zu DTW zum Einsatz kommen, sind:

  • Cor­re­la­ti­on Optimized Warping (COW)
  • Funk­tio­na­le Da­ten­ana­ly­se
  • Hidden Markov Model
  • Viterbi-Al­go­rith­mus
Zum Hauptmenü