Hidden-Markov-Modell einfach erklärt

Erstellt am 11.09.08 von Markus, 2 Kommentare, Tags: Informatik,

Erklärungen zum Hidden-Markov-Modell (HMM) gibt es viele im Netz. Sie haben jedoch eins gemein: Sie sind entweder sehr mathematisch oder so allgemein, dass man sich nicht vorstellen kann, wie sie in der Spracherkennung eingesetzt werden. Also hier mal der Versuch es einfach, aber dennoch praxisnah zu erklären.

Mit Hilfe eines Hidden-Markov-Modells wird versucht zu ermitteln mit welcher Wahrscheinlichkeit eine gegebene Merkmalsfolge (vereinfacht gesagt eine Spracheingabe) zu einem bestimmten Wort gehört. Dafür wird zu jedem Wort aus dem Lexikon (also für jedes zu erkennende Wort) ein HMM erzeugt. Sobald ein Sprachsignal vorliegt (Beobachtung), wird dieses quasi mit jedem HMM verglichen. Das beste Ergebnis stellt das erkannte Wort dar.

Ein HMM ist ein stochastisches Modell, das aus zwei grundlegenden Wahrscheinlichkeiten besteht:

  • Zustandsübergangswahrscheinlichkeit
  • Emissionswahrscheinlichkeit

Die Zustandsübergangswahrscheinlichkeit gibt an, wie wahrscheinlich es ist, dass das Modell in den nächsten Zustand wechselt (vgl. endlicher Automat). Alternativ bleibt der Automat im gleichen Zustand. Dies entspricht einem lang ausgesprochenen Buchstaben (bzw. Laut). Die Emissionswahrscheinlichkeit beschreibt, wie wahrscheinlich die verschiedenen Ausgabemöglichkeiten eines bestimmten Zustands sind (haben kann auch habm ausgesprochen werden, somit wird das n zum m). Diese Wahrscheinlichkeiten werden oftmals in Matrixform dargestellt.

Hidden Markov Modell

Die Abbildung (mit fiktiven Werten) fasst den Sachverhalt nochmal zusammen: Für jedes zu erkennende Wort gibt es ein HMM. Das Eingangssignal wird zunächst abgetastet und gefenstert (Betrachtung der lokalen Änderungen, nicht den gesamten Audiostream analysieren sondern jeweils nur einen Ausschnitt). Diese Fenster werden nun analysiert und bestimmte signifikante Merkmale extrahiert (vorher Transformation in den Frequenzraum: Fourier). Aus diesen Merkmalen lässt sich nun eine Folge von Phonemen ableiten, die über einen Algorithmus mit der Ausgabe der HMM 'verglichen' wird (wie wahrscheinlich ist es, dass das HMM den Eingabemerkmalsvektor erzeugt?). Das größte (wahrscheinlichste) Ergebnis wird nun ausgewählt und das entsprechende Wort ausgegeben. Ziel der Berechnung mit Wahrscheinlichkeiten ist es, dass aus der Eingabe 'ham' oder 'haabm' das Wort 'haben' erkannt werden kann.

Dies ist aber auch nur die halbe Wahrheit: In Wirklichkeit existiert nicht zu jedem Wort ein HMM, sondern zu jedem Phonem. Diese HMM werden nun miteinander kombiniert, um somit Wörter zu bilden. Ein HMM verfügt pro Phonem meist über sechs Zustände. Weiterhin wird als Eingabe keine Hypothese über die erkannten Buchstaben benutzt, sondern der eigentliche Merkmalsvektor (HMM werden also auf Merkmalsvektoren angewendet). Gleichzeitig gibt das HMM keine Buchstaben aus, sondern ebenfalls Merkmale. Diese werden nun miteinander verglichen, um das wahrscheinlichste Wort zu ermitteln, bzw. eher andersrum: Es wird das Modell gesucht, das am wahrscheinlichsten die Eingabe erzeugt haben könnte. Beim HMM handelt es sich übrigens um ein sogenanntes akustisches Modell. Es beschreibt die Aussprachewahrscheinlichkeit (trainiert durch zahlreiche Sprecher). Zur Verbesserung der Erkennungsrate wird ein Sprachmodell eingesetzt, das Homophone (Main - mein, Rhein - rein, Meer - mehr) aufgrund von Syntax und Semantik auseinanderhält.

Kommentare

  1. Danke für die verständliche Abhandlung über die HMM!
    Könntest du mir einen Tipp geben, wie man HMM am besten zeichnen kann?
    Vielleicht kennst du ja ein Tool mit dem es komfortabler geht, als alles manuell zu zeichnen..

    — Marcus F. · 21.06.09

  2. Auf Anhieb fällt mir da auch nichts ein. Die Grafik aus dem Artikel ist mit Visio entstanden, aber halt manuell…

    — Markus · 21.06.09

Kommentar erstellen