Dann wunderschönen guten Morgen.
Der Herr Weibel ist heute unterwegs.
Deswegen müssen Sie mit mir Vorliebe nehmen.
Und wir werden heute ein bisschen weitermachen bei dem Thema
automatische Spracherkennung und auch ein paar Sachen aus der letzten
Vorlesung zum einen ein bisschen vertiefen und
zum anderen weitere Themen bearbeiten, sodass man jetzt nach Wochen
nach die gesamte Pipeline, die ganze Technologiekette, die man
braucht, um automatische Spracherkennung zu betreiben, sehen werden.
Etwas, was Sie letzte Woche oder bei der letzten Vorlesung meines
Wissens nach nicht gesehen haben, war die Fundamentalformel der
automatischen Spracherkennung.
Haben Sie die schon gesehen in dieser Vorlesung?
Nein?
Gut, das hatte ich mir vermutet, weil ich hatte gesehen, Sie hatten
das Blogschau-Bild gesehen, wie man so einen automatischen
Spracherkenner aufbaut.
Aber was jetzt mathematisch dahinter steckt, hatten Sie nicht gesehen.
Und was dahinter steckt, ist eben diese Fundamentalformel der
automatischen Spracherkennung.
Erst mal einfach so hingeschrieben mit irgendwelchen
Wahrscheinlichkeiten, irgendwelchen Symbolen W und dann macht man noch
eine Umformung.
Was macht man jetzt da und warum macht man es?
Das Erste, was einem auffällt, ist, wir arbeiten mit
Wahrscheinlichkeiten.
Warum arbeiten wir mit Wahrscheinlichkeiten?
Der Grund, warum wir mit Wahrscheinlichkeiten arbeiten, hängt damit
zusammen, dass menschliche Sprache so fürchterlich variabel ist.
Sie hatten letztes Mal ein bisschen was gesehen zum Thema
Sprachproduktion, wie der Mensch Sprache produziert und die Art und
Weise, wie der Mensch Sprache produziert, beeinflusst natürlich
direkt, wie das Signal, das dann hinterher am Mikrofon ankommt und mit
dem Spracherkennung betrieben werden soll, wie dieses Signal aussieht.
Und das kann man sich leicht vorstellen.
Der Mensch ist halt ein biologisches System.
Jeder von uns ist anders gewachsen und hat andere leicht anatomische
verschiedene Strukturen.
Und dementsprechend ist allein schon die Aussprache von jedem von uns
unterschiedlich.
Selbst wenn wir also auf die gleiche Art und Weise die Sprache gelernt
haben, also in anderen Worten den gleichen Akzent haben.
Wenn wir genau das Gleiche unter den genau selben Bedingungen
aussprechen, wenn wir uns das Signal anschauen von diesen beiden
Sprechern, was am Mikrofon ankommt, wird sich das radikal
unterscheiden.
Da werden Sie auf den ersten Blick nicht so ohne weiteres als Mensch
erkennen können, dass jetzt beides mal dasselbe gesprochen wurde.
Das können Sie sogar mit ein und derselben Person machen.
Wenn Sie ein und dieselbe Person nehmen und unter den gleichen
Bedingungen ein und dasselbe sprechen lassen, werden Sie feststellen,
dass Sie nicht zweimal genau das identische Signal bekommen, sondern
dass Sie da auch bereits nicht nur leichte, sondern teilweise sogar
signifikante Änderungen im Signal haben.
Für die Maschine ist Spracherkennung jetzt aber nichts anderes als ein
Klassifikationsproblem.
Das haben Sie in der Vorlesung schon kennengelernt.
Sie haben sich schon mit Musterklassifikation beschäftigt.
Und auch wenn man sich den allerneuesten Spracherkennungstechnologie
Stack da anschaut, die allerneuesten tollsten Spracherkennungssysteme
mit den tollsten KI-Methoden, wie sie heutzutage propagiert werden.
In ihrem Kern, was am Ende wirklich passiert, ist nichts anderes als
Musterklassifikation.
Sie haben irgendwie Referenzmuster, die Ihnen sagen, eine Wortfolge
muss so oder so ähnlich aussehen, wenn ich sie mit dem Mikrofon
aufnehme.
Und dann haben Sie Modelle.
Und wenn Sie jetzt eine neue Aufnahme haben, dann machen Sie nichts
anderes, wenn Sie wirklich ganz bis unten durch gehen und schauen, was
da passiert, als Sie einfach nach dem passendsten Referenzmuster
suchen und damit Spracherkennung betreiben.
Das Ganze wird natürlich ein bisschen komplizierter.
Das ist nicht so, dass Sie für jede Wortfolge immer ein Referenzmuster
haben und dann müssen Sie suchen, sondern Sie wollen flexibel sein.
Sie wollen beliebige Wortfolgen erkennen können und setzen sich
Wortfolgen aus kleineren Einheiten zusammen.
Und bei diesen kleineren Einheiten machen Sie dann diesen
Referenzmustervergleich.
Sie gucken auch nicht mit einfachen Distanzen, also stimmen die beiden
Muster miteinander überein oder ist da irgendwie eine euklidische
Distanz zwischen zwei Mustern gleich, sondern Sie machen das
komplizierter.
Und der Grund, warum Sie diesen Mustervergleich komplizierter machen,
der hängt mit der Variabilität zusammen.
Und wie kann man jetzt Mustervergleich komplizierter machen, als
einfach nur eine geometrische Distanz zwischen zwei Vektoren, zwischen
zwei Bildern, zwischen irgendwas auszurechnen?
Das macht man mit Wahrscheinlichkeiten.
Sie ersetzen also Distanzmaße durch Wahrscheinlichkeiten.
Und ganz am Ende ist diese Wahrscheinlichkeit nichts anderes als ein
Distanzmaß.
Und so kommt man zu einem Musterklassifizierer, der so aussieht.
Da ist es natürlich hilfreich, wenn man sich ein bisschen auskennt,
was bedeuten denn die einzelnen Symbole.
Ganz links steht das W-Dach.
Das W-Dach ist die Wortfolge, die wir erkennen.
Wir nennen das die Hypothese.
Und da gibt es ein X.
Das X ist unsere Aufnahme.
Das ist das, was wir mit dem Mikrofon erstmal prinzipiell aufgenommen
haben.
Und deswegen steht da jetzt erstmal, wenn man sich ganz den linken
Teil anstaut, W-Dach gleich argmax über W von P von W gegeben X.
Das heißt nichts anderes, als wir suchen nach der wahrscheinlichsten
Wortfolge, die zu der Aufnahme X gehört.
Das ist die Wortfolge, die am wahrscheinlichsten zu der Aufgabe, zu
der Aufnahme X gehört.
Das macht dieser Operator argmax.
Muss man aufpassen.
Hat man vielleicht noch nicht immer gesehen.
Das ist so ähnlich wie Maximum.
Argmax steht halt für Argumentmaximum.
Das heißt, was man macht, ist das Symbol W unter dem argmax Das gibt
an, welches Argument man variiert.
Und dieses Argument wird so lange variiert, bis der Ausdruck, der
hinter dem argmax steht, das P von W gegeben X, bis der maximal wird.
Das heißt, wir suchen also das W, das, wenn ich es da oben einsetze,
in P von W gegeben X einsetze, das diese Wahrscheinlichkeit maximiert.
Das besagt dieser Argumentmaximumoperator.
Und dieses W, das halt aus dem Argumentmaximumoperator rauspurzelt,
das nennen wir W-Dach.
Das ist das Ergebnis der Spracherkennung.
Jetzt ist das erste Problem, das man hatte, ist, man weiß nicht, wie
man P von W gegeben X ausrechnen soll.
Das kann man nicht.
Inzwischen, Klammer auf, Forschung geht weiter, gibt es da durchaus
Methoden, wie man das vielleicht doch machen kann, Klammer zu, aber
wir sind noch auf dem Stand von vor zwei Jahren.
Wir wissen erst mal nicht, wie das geht.
Und weil man erst mal nicht weiß, wie das geht, hat man einfach die
gute alte Base-Formel angewendet und hat aus diesem P von W gegeben X
durch Anwendung der Base-Formel einfach gemacht P von X gegeben W mal
P von W durch P von X.
Das ist erst mal aus Stochastik, Grundlagen der
Wahrscheinlichkeitstheorie bekannt, die Base-Formel, und darauf
angewandt.
Und jetzt kann man das noch ein bisschen vereinfachen, weil wir ja
nicht daran interessiert sind, was ist die Wahrscheinlichkeit der
wahrscheinlichsten Wortfolge, sondern wir wollen erst mal nur wissen,
was ist die wahrscheinlichste Wortfolge, kann man sich das anschauen
und sich überlegen, naja, ich optimiere, maximiere diesen Quotienten,
indem ich das W variiere.
Unten, das P von X, das hängt gar nicht vom W ab.
Das ist egal, welches W ich einsetze, das ist völlig egal.
Es reicht also vollständig, um den Zähler zu optimieren.
Es reicht also, das Maximum des Zählers zu finden, und das, was den
Zähler maximiert, das maximiert automatisch den gesamten Quotienten,
also kann man diese Formel so vereinfachen.
Und hinterher steht dann, W' ist das Argument Maximum von P von X
gegeben W mal P von W.
Und diesen Termen, den gibt man entsprechend Namen.
W' sagt mir schon, ist die Hypothese.
X sind die Merkmalsvektoren.
Da ist nochmal ganz wichtig, dass man sich jetzt überlegt, was ist
unklar?
Okay, besser als andersrum.
Also, da ist jetzt die Frage, dieses X sind die Merkmalsvektoren.
Das ist also nicht das Signal, wie ich es mit dem Mikrofon aufnehme,
sondern das ist irgendwie vorverarbeitet.
Also alles, was Sie gemacht haben mit, wir falten und wir machen
Foyertransformationen und so weiter und so fort, das wird da drauf
geworfen, um dieses X irgendwie zu gewinnen aus dem rohen Signal, das
ich mit dem Mikrofon aufnehme.
Da wird also digitalisiert und Foyertransformiert und nochmal
gefiltert und irgendwelche Faltungen durchgeführt und so weiter und so
fort.
Wenn Sie sich eine Sache merken, dann müssen Sie sich immer merken,
warum mache ich das?
Warum arbeite ich nicht mit dem einfach digitalisierten
Mikrofonsignal?
Warum mache ich da so komplizierte Mathematik, dass ich da so
fürchterliche Vorverarbeitung mache?
Das müssen Sie deshalb machen, weil Sie bei der Spracherkennung bei
dem Mikrofonsignal zwei Dinge ändern wollen.
Erstens, Sie wollen redundante, überflüssige Informationen wegwerfen.
Wenn Sie sich anschauen, wie der Mensch Sprache produziert und da zum
Beispiel mal die Datenraten, die man so messen kann, ins Verhältnis
setzt zwischen dem Text, den ich mir als Gedanken ausdenke und dann
der Schallwelle, die durch den Raum reist, dann werden Sie sehen, dass
die Datenraten zwischen der Schallwelle und dem eigentlichen Text
deutlich unterschiedlich sind.
Die Datenrate von der Schallwelle ist immens viel größer.
Und das ist ein guter Hinweis darauf, dass da wohl redundante
Information drin ist.
Und warum soll ich redundante Informationen verarbeiten?
Das erhöht nur die Datenrate, erhöht den Aufwand an Operationen, die
ich ausführen muss.
Also die redundanten Informationen, die würde ich gerne rausfiltern.
Das ist der eine Teil.
Und der andere Teil hat wieder mit der Variabilität zu tun.
Wir sind nur interessiert an dieser Wortfolge.
Wer die gesprochen hat, das interessiert uns nicht.
Ob die Wortfolge langsam oder schnell gesprochen wurde, das
interessiert uns nicht.
Ob ich laut oder ob ich leise spreche, das interessiert uns nicht.
Das sind alles aber Informationen, die offensichtlich in dieser
Schallwelle vorhanden sind.
Sie können unterschiedliche Sprecher unterscheiden.
Sie wissen, ob laut oder leise, ob schnell oder langsam gesprochen
wurde.
Sie wissen Akzent.
Sie können hören, war das Mann oder eine Frau und so weiter und so
fort.
Das sind alles Informationen, die für die Spracherkennung eigentlich
uninteressant sind, sondern diese Musterklassifikation soll immer
gleich aussehen.
Das Muster, das ich extrahiere und gegen das Referenzmuster, das ich
vergleiche, sollte möglichst immer gleich aussehen, egal ob gesprochen
von Mann, Frau, laut, leise, mit Akzent oder ohne Akzent.
Das heißt, es gibt Informationen, die sind für die Klassifikation.
Wir nennen das dann entsprechend die Diskriminierung.
Wir diskriminieren Muster gegeneinander.
Wir grenzen Muster voneinander ab.
Diese Diskriminierung, Informationen, die für diese Diskriminierung
wichtig sind, sind vorhanden und ganz viele Informationen, die nicht
wichtig sind.
Und die wollen wir wegwerfen.
Und das macht alles die Vorverarbeitung.
Das heißt, wir machen also zwei Dinge.
Datenraten reduzieren dadurch, dass wir redundante Informationen
wegwerfen.
Plus die für die Klassifikationsaufgabe relevanten Informationen
werden extrahiert.
Irrelevante Informationen werden weggeworfen.
Und dann gibt man diesen beiden
Operatoren in der Multiplikation, den beiden Faktoren, denen gibt man
Namen.
Das P von X gegeben W, das nennt man das akustische Modell.
Einfach deshalb, weil das beschreibt, wie sieht denn eine Schallwelle
aus, die produziert wird, wenn eine bestimmte Wortfolge gesprochen
wird.
Und das andere, das nennt man das Sprachmodell.
P von W.
Sprachmodell deshalb, weil das völlig losgelöst ist von der Akustik.
Diese Wahrscheinlichkeit beschreibt nur in einer Sprache, die halt
gesprochen wird.
In dieser Sprache, welche Wortfolgen sind denn wahrscheinlich und
welche Wortfolgen sind eher unwahrscheinlich.
Mathematisch brauchen wir das, weil wir hier eine Zerlegung machen von
links P von W gegeben X, eine A-Posteriori-Wahrscheinlichkeit.
Und die zerlegen wir in eine klassenbedingte Wahrscheinlichkeit P von
X gegeben W.
Also ich lege die Klasse W fest und berechne die Wahrscheinlichkeit
aus dafür, dass dieses Muster jetzt von dieser Klasse hervorgebracht
wurde und der A-Priori-Wahrscheinlichkeit der Wortfolge P von W.
Das heißt, wenn Sie jetzt zurückdenken, wahrscheinlich drei, vier
Vorlesungen zurück.
Wir haben hier einen Klassifikator und das ist nichts anderes, auch
wenn es Fundamentalformel der Spracherkennung heißt.
Das ist nichts anderes als ein naiver Base-Klassifikator.
Sie müssen A-Priori-Wahrscheinlichkeiten schätzen und sie müssen
klassenbedingte Wahrscheinlichkeiten schätzen und die Kombination der
beiden sagt Ihnen dann hinterher, welche Klasse, sprich welche
Wortfolge, war es denn.
Und daraus wurde halt dieses Blog-Schaubild gemacht.
Da finden Sie auch wieder das akustische Modell, Sie finden wieder das
Sprachmodell.
Da vorne finden Sie wieder das Frontend, das ist die
Merkmalsvorverarbeitung, das macht Ihnen aus der Schallwelle das X.
Sie finden da einen Decoder.
Dieser Decoder ist nichts anderes als der technische Term für den Arc
-Max -Operator.
Das ist also, was der Arc-Max-Operator, so locker flockig in
mathematischer Schreibweise hinschreibt, wir nehmen halt die
wahrscheinlichste Wortfolge, das muss der Decoder machen.
Sie können sich schon überlegen, das könnte nicht ganz so einfach
sein.
Wenn ich unter allen möglichen Wortfolgen, die es gibt, diejenige
Wortfolge herausfinden muss, die mir jetzt P von W gegeben X
maximiert, das könnte ekelhaft sein.
Und das ist auch ekelhaft, das ist eine extrem schwierige Aufgabe.
Und dann brauchen Sie halt sowas wie ein akustisches Modell.
Sie müssen also diese Wahrscheinlichkeit P von X gegeben W ausrechnen
können.
Sie müssen die Wahrscheinlichkeit P von W ausrechnen können.
Und wenn Sie das alles zusammen haben, dann können Sie die
wahrscheinlichste Wortfolge W Dach oder hier wird sie nur noch mit W
benannt herausbekommen.
Und letztes Mal hatten Sie schon ein bisschen was kennengelernt zu dem
akustischen Modell, also zu der Frage, wie kann ich jetzt P von X
gegeben W vernünftig ausrechnen für die automatische Spracherkennung.
Und um das zu machen, haben Sie kennengelernt die Hidden Markov
Modelle.
Die Hidden Markov Modelle sind ein Modell, mit dem Sie P von X gegeben
W ausrechnen können.
Allgemein sind Hidden Markov Modelle ein Modell, mit dem man relativ
gut sogenannte Markov Prozesse modellieren kann.
Und Markov Prozesse wiederum modellieren so Zeitfolgen.
Sie haben also so über die Zeit hinweg eine Folge von Beobachtungen
und laufen durch solche Zustände hindurch.
Und das ist etwas, das passt eigentlich ganz gut darüber, wie man sich
menschliche Sprache so vorstellen kann.
Wenn man nochmal so denkt an menschlichen Sprachproduktionsprozess, da
gibt es Wörter.
Die Wörter bestehen aus Phonemen und vielleicht noch kleineren
Einheiten.
Und wir Menschen produzieren dann diese Phoneme in zeitlicher
Reihenfolge.
Diese Phoneme werden in zeitlicher Reihenfolge als Schallwelle
ausgesendet und man bekommt dann nach der Vorverarbeitung auch so eine
Zeitabfolge von Merkmalsvektoren.
Es geht los mit dem ersten Merkmalsvektor X1, X2 bis zu X groß T.
T wie lang die Aufnahme, die ich gemacht habe, ist.
Das heißt, hier haben wir so eine schöne Time Series, eine Zeitfolge.
Und diesen Prozess kann man mit Markov-Prozessen schön modellieren.
Bei der Spracherkennung haben wir jetzt eine unschöne Sache.
Wenn ich mir diese Merkmalsvektorfolge X1 bis XT anschaue und mir so
einen Merkmalsvektor, den ich aus der Vorverarbeitung rausbekommen
habe mit Fourier-Transformation und allem Pipapo, wenn ich mir den
anschaue, dem sehe ich nicht an, zu welchem Phonem er gehört.
Ich weiß, er muss von irgendeinem Phonem bei der Produktion, bei der
Aussprache eines Phonems hervorgebracht worden sein, aber ich kann dem
das nicht angucken.
Ich will ansehen, welches Phonem das war.
Dazu sind die Sachen zu unterschiedlich.
Und deswegen ist eine einfache Markov-Kette nicht ausreichend.
Bei einer Markov-Kette wissen Sie immer, in welchem Zustand Sie sind,
sprich Sie wissen, in welchem Phonem Sie gerade sind, wenn Sie die
Beobachtung sehen.
Beobachtung und Zustand sind dasselbe bei einer Markov-Kette.
Und weil wir das nicht wissen, brauchen wir die sogenannten Hidden
-Markov -Modelle.
Und was bei den Hidden-Markov-Modellen, also versteckt ist, das ist
eben der Zustand.
Wenn wir von außen uns anschauen, was ein Hidden-Markov-Modell
vorbringt, dann ist das eine Folge von Merkmalsvektoren.
Man kann das machen kontinuierlich.
Dann kriegt man zum Beispiel so etwas, Vektoren aus dem R hoch N raus
oder auch einfach nur reelle Zahlen.
Man kann das machen diskret.
Dann beobachtet man Symbole, die aus so einem abzielbaren, diskreten
Alphabet kommen.
Und von außen, was man vom Markov-Modell sieht, ist einfach diese
zeitliche Reihenfolge dieser Symbole oder dieser kontinuierlichen
Merkmalsvektoren.
Zu jedem Zeitpunkt bekomme ich ein neues Symbol, einen neuen
Merkmalsvektor.
Was ich dem Markov-Modell nicht, Hidden-Markov-Modell nicht mehr
ansehe, ist, welcher Zustand jetzt diese Beobachtung hervorgebracht
hat.
Und deswegen, weil das nicht mehr beobachtbar ist, spricht man von
einem doppelstochastischen Prozess.
Eine einfache Markov-Kette ist ein einfacher stochastischer Prozess,
der halt so eine Zeitfolge, so einen stochastischen Prozess über die
Zeit hinweg abbildet.
Und hier haben wir zwei stochastische Prozesse, die übereinander
gelagert sind.
Ich habe zum einen die Phoneme, die sind meine Zustände, da laufe ich
so im Laufe der Zeit durch.
Ich weiß nicht genau, wann ich den Übergang mache, sondern der wird
als zufällig angenommen, dass ich also zufällig entweder zum nächsten
Phonem übergehe oder im aktuellen Phonem bleibe.
Und ich habe einen zweiten Zufallsprozess und der beinhaltet eben die
Ausgabe der Symbole dieses Zustandes.
Mein Markov-Prozess deterministisch einen Zustand bringt immer
dasselbe Symbol hervor, deswegen Zustandssymbol ist alles das Gleiche,
kommt man nur mit dem Zustand aus.
Hier ist es jetzt so, dass jeder Zustand prinzipiell jedes Symbol aus
meinem Alphabet emittieren, hervorbringen kann.
Nur unterschiedliche Zustände machen das mit unterschiedlichen
Wahrscheinlichkeiten.
Macht ja auch Sinn, dass ich also bestimmte Merkmalsvektoren sehe,
wenn ich einen A ausspreche, sind bestimmte Merkmalsvektoren jetzt für
diesen Zustand A sehr wahrscheinlich und andere sind eher
unwahrscheinlich.
Und wenn ich zum Beispiel einen P ausspreche, wird das ganz anders
aussehen.
Da werden die Merkmalsvektoren, die bei einem A eine sehr hohe
Wahrscheinlichkeit haben, bei dem P zum Beispiel eher eine sehr kleine
Wahrscheinlichkeit haben.
Und das modellieren wir dann mit den sogenannten Ausgabe
-Wahrscheinlichkeiten, den Output Probability Distributions.
Und gleichzeitig habe ich wie bei dem Markov-Modell
Wahrscheinlichkeiten dafür, dass ich zwischen Zuständen hin und her
wechsle.
Das sind meine Transition Probabilities.
Wenn Sie jetzt irgendwann mal in der Literatur lesen und lesen
vielleicht Wikipedia oder irgendwas Tiefergehendes, dann klassifiziert
man diese Hidden-Markov-Modelle noch weiter.
Da gibt es wieder unterschiedliche Typen.
Der meiste und eigentlich der einzige, den Sie meistens in der Praxis
sehen werden, ist der Typ Hidden-Markov-Modell erster Ordnung.
Wenn also irgendeiner Hidden-Markov-Modell sagt und die Ordnung nicht
spezifiziert, heißt das immer Hidden-Markov-Modell erster Ordnung.
Jetzt ist natürlich die Frage, was heißt das erster Ordnung?
Erster Ordnung sagt etwas über die sogenannte Markov-Annahme aus.
Das hat man ursprünglich, das Hidden-Markov-Modell, so definiert, dass
der Herr Markov eine Annahme gemacht hat.
Und diese Annahme besagt etwas darüber, über diese
Übergangswahrscheinlichkeiten, bei den Zustandsübergängen.
Die Markov-Annahme sagt, die Wahrscheinlichkeiten davon, von einem
Zustand, in dem ich mich aktuell befinde, in einen anderen Zustand,
anderer heißt immer inklusive mich selber, überzugehen.
Diese Wahrscheinlichkeiten, die sind nur abhängig davon, von welchem
Zustand, von dem Zustand, in dem ich mich gerade befinde.
Deswegen dieses P von Q von T gleich SI.
Das heißt, der Zustand, die Wahrscheinlichkeit, vom Zeitpunkt T-1 zum
Zeitpunkt T, den Übergangszustand zu machen, in einen Zustand SI.
Diese Wahrscheinlichkeit hängt nur davon ab, in welchem Zustand ich
mich hier zum Zeitpunkt T-1 befand.
Deswegen da gegeben K von T-1 gleich SJ.
Oder andersrum, wenn man sich das anvorstellt, als so ein Bild, wenn
ich da Zustände, sind Kreise, Übergänge, sind solche Pfeile.
Die Wahrscheinlichkeit dafür, in den Zustand A oder B zu gehen, hängt
nur davon ab, befinde ich mich jetzt im Zustand A oder befinde ich
mich im Zustand B.
Das ist also nur von dem aktuellen Zustand abhängig.
Dementsprechend kann man sich vorstellen, höhere Ordnung bedeutet
dann, dass man weiter zurückgeht.
Bei zweiter Ordnung hängt das davon ab, in welchen zwei Zuständen war
ich denn in den letzten beiden Zeitschritten, wenn ich jetzt den
Übergang mache in einen neuen.
Enderordnung, dementsprechend die letzten Endzustände.
Das ist natürlich viel schöner, da kann man viel genauer mit
modellieren, ist aber verdammt aufwendig auszurechnen und deswegen
macht man es einfach nicht, weil die Algorithmen werden kompliziert
und sehr rechenintensiv.
Markov-Modelle, Markov-Modelle, erste Ordnung, kann man relativ gut im
Rechner berechnen, deswegen nimmt man die.
Das haben wir schon gesehen, also für automatische Spracherkennung
bedeutet das nichts anderes als Wörter werden zerlegt in Phoneme.
Phoneme werden unter Umständen noch zerlegt in kleinere Einheiten,
weil man sagt, die Merkmalsvektoren, die ich emittiere, wenn ich am
Anfang eines Phonemes bin, die unterscheiden sich schon noch irgendwie
von denen, wenn ich eher gegen Ende des Phonemes bin.
Deswegen werden Phoneme zum Beispiel noch in drei Untereinheiten
zerlegt und so kann man dann aus Wörtern Phoneme machen, aus Phoneme
Unterphoneme und jedes dieser Unterphoneme in dem Beispiel drei
Zustände pro Phonem, das sind dann meine Zustände in meinem Markov
-Modell.
Jetzt fällt einem, wenn man jetzt mal einen Blick draufwirft auf
dieses Markov-Modell, einem sollte einem etwas auffallen.
Also Kreise sind Zustände, Pfeile sind Übergänge.
Was stimmt nicht, wenn wir uns jetzt einfach nur die einfache plain
vanilla Definition des Hidden Markov-Modells ansehen.
Was fehlt da noch?
Das Problem ist, wir gucken da so drauf und das macht Sinn, weil so
ist Sprache.
Kommt erst das erste Phoneme, das zweite Phoneme und das dritte
Phoneme.
Verlangt das das Hidden Markov-Modell, dass das so aussehen muss?
Nö.
Das Hidden Markov-Modell sagt erst mal, von jedem Zustand darf ich in
jedem anderen inklusive mir selber beliebig vorgehen.
Also ein Hidden Markov-Modell würde auch sagen, von dem E-Endzustand
darf ich jederzeit auch zum Beispiel in den The-Endzustand übergehen
oder in den Mittelzustand.
Da fehlen also mit anderen Worten ganz, ganz viele Pfeile, die man
eigentlich alle noch einzeichnen müsste.
Klar, die Wahrscheinlichkeit, dass ich von einem Endzustand E in den
Mittelzustand von einem The gehe, die sollte eher gering sein.
Warum?
Naja, weil menschliche Sprache so ist.
Menschliche Sprache ist linear in der Zeit.
Ich spreche die Phoneme nicht wild durcheinander, ich spreche die
Phoneme schön der Reihe nach.
Dementsprechend sollte ich die Phoneme auch schön der Reihe nach
ablaufen.
Also ich sollte, wenn ich das Wort The modelliere, werde ich nicht
erst mal durch das Phoneme ß durchgehen und danach kommt das ß.
Das ist ein anderes Wort.
Weil wir das, wir wissen das, menschliche Sprache ist so.
In Mathof-Modelle sind erst mal allgemeingültig.
Aber weil wir wissen, dass das so ist, greift man sozusagen ein und
setzt gedanklich bestimmte Übergänge einfach auf Null und sagt, die
dürfen nicht sein.
Es darf nicht sein, dass erst das Phoneme ß kommt und dann das Phoneme
ß.
Das darf nicht sein, also sind alle Pfeile, die sozusagen in der Zeit
nach hinten zeigen, die werden manuell mit einer Wahrscheinlichkeit
Null gesetzt.
Da wird manuell die Wahrscheinlichkeit in dieser
Übergangswahrscheinlichkeitstabelle auf Null gesetzt und diese Pfeile
zeichnet man dann auch nicht mehr ein.
Das ist aber schon ein menschlicher Eingriff.
Da ist schon menschliches, überwachtes Wissen, das man jetzt in das
Modell einpflegt.
Allgemein sind Hidden Markov Modelle halt so schön, weil es drei
Probleme gibt.
Und Problem heißt hier nicht, da ist was doof dran, sondern Problem
heißt hier im Sinne von Fragestellung.
Es gibt drei Fragestellungen, die man mit Hidden Markov Modellen
ausrechnen kann, für die es schöne Algorithmen gibt, mit denen man
diese drei Fragestellungen beantworten kann.
Und diese drei Fragestellungen sind das Evaluierungsproblem, das
Dekodierungsproblem und das Trainingsproblem.
Das Evaluierungsproblem ist das, was man für die Fundamentalformel
braucht.
In der Fundamentalformel muss man ja ausrechnen P von X gegeben W.
Und genau das rechnet das Evaluierungsproblem aus, halt allgemein auf
Hidden Markov Modelle bezogen, jetzt nicht nur auf Wortfolgen bezogen.
Bei uns, beim akustischen Modell, Wortfolge ist da nichts anderes als
ein anderes Wort für ein bestimmtes, spezielles HMM.
Dementsprechend besagt das Evaluierungsproblem, gegeben eine
Beobachtung, Spracherkennung also zu einer Folge von X, von irgendwas,
was wir aus der Vorverarbeitung raushaben, gegeben ein HMM.
Bei uns also die Wortfolge.
Wie wahrscheinlich ist es, dass das HMM diese Beobachtung
hervorgebracht hat?
P von O gegeben Lambda, also O Beobachtung Lambda HMM oder halt P von
X gegeben W, den Symbolen einfach andere Namen gegeben.
Und das macht man mit dem sogenannten Forward-Algorithmus.
Jetzt steht da auch Viterbi-Algorithmus und das stimmt so nicht.
Da muss man aufpassen.
Also das streichen Sie mal mental, sondern prinzipiell macht man das
erstmal mit dem Forward-Algorithmus und dann gibt es noch einen
zweiten Algorithmus, der nennt sich der Backward-Algorithmus.
Warum ist hier Viterbi-Algorithmus steht da?