Welche Art von Algorithmus für maschinelles Lernen ist das Hidden-Markov-Modell?

12

Ich habe den Hidden Markov Model-Algorithmus für die automatische Spracherkennung in einer Signalverarbeitungsklasse verwendet. In der Literatur zum maschinellen Lernen sehe ich, dass Algorithmen als "Klassifikation", "Clustering" oder "Regression" klassifiziert sind. In welchen Eimer fällt HMM? Ich bin nicht auf versteckte Markov-Modelle gestoßen, die in der Literatur aufgeführt sind.

user1411110
quelle

Antworten:

14

Ich wäre versucht, "keine" oder "sowohl Klassifizierung als auch Clustering" zu antworten.

Warum "keine"? Denn HMMs befinden sich nicht in der gleichen Tasche wie Support Vector Machines oder k-means.

Support Vector Machines oder k-means wurden speziell entwickelt, um ein Problem zu lösen (Klassifizierung im ersten Fall, Clustering im zweiten Fall) und sind in der Tat nur ein Optimierungsverfahren, um ein Kriterium "erwartete Güte der Klassifizierung" oder "Güte der Clusterung" zu maximieren . Die Schönheit liegt in der Wahl des Kriteriums und des Optimierungsverfahrens. HMM sind kein Algorithmus an sich. Sie sind eine spezielle Art der Wahrscheinlichkeitsverteilung über Folgen von Vektoren - für die wir gute Parameterschätzungs- und Randverteilungsberechnungsalgorithmen kennen. Es ist jedoch genauso lächerlich, zu fragen, ob sie zur "Clustering" - oder "Klassifikations" -Familie gehören, wie zu fragen, ob die Gaußsche Verteilung überwacht oder nicht überwacht wird.

Warum "sowohl Klassifizierung als auch Clustering"? Aus folgenden Gründen: HMM kann als Wahrscheinlichkeitsverteilung zur Klassifizierung in einem Bayes'schen Gerüst verwendet werden. Da es sich um ein Modell mit versteckten Zuständen handelt, können einige latente Cluster der Trainingsdaten aus ihren Parametern wiederhergestellt werden. Etwas präziser:

HMM kann zur Klassifizierung verwendet werden. Dies ist eine einfache Anwendung des Bayes'schen Klassifikationsrahmens, wobei das HMM als probabilistisches Modell zur Beschreibung Ihrer Daten verwendet wird. Beispielsweise verfügen Sie über eine große Datenbank mit Äußerungen von Ziffern ("eins", "zwei" usw.) und möchten ein System erstellen, mit dem eine unbekannte Äußerung klassifiziert werden kann. Für jede Klasse in Ihren Trainingsdaten ("eins", "zwei") schätzen Sie die Parameter eines HMM-Modells, das die Trainingssequenzen in dieser Klasse beschreibt, und Sie erhalten 10 Modelle. Um die Erkennung durchzuführen, berechnen Sie die 10 Wahrscheinlichkeitswerte (die angeben, mit welcher Wahrscheinlichkeit die zu erkennende Sequenz vom Modell generiert wurde) und das Modell mit den höchsten Werten geben die Ziffer an. Im Rabiner-Tutorial zu HMMs, die Trainingsphase ist "Problem 3", die Klassifikationsphase ist "Problem 2".

HMM kann auch unbeaufsichtigt eingesetzt werden, um eine Art Clustering zu erreichen. Bei einer gegebenen Sequenz können Sie ein HMM mit Status darauf trainieren und am Ende des Trainingsprozesses den Viterbi-Algorithmus für Ihre Sequenz ausführen, um den wahrscheinlichsten Status für jeden Eingabevektor zu ermitteln (oder diesen einfach aus dem während des Trainingsprozesses). Dies gibt Ihnen eine Gruppierung Ihrer Eingabesequenz inkγkKlassen, aber im Gegensatz zu dem, was Sie durch Ausführen Ihrer Daten mit k-means erhalten hätten, ist Ihre Clusterbildung auf der Zeitachse homogen. Sie können beispielsweise die Farbhistogramme jedes Einzelbilds einer Videosequenz extrahieren, diesen Prozess in dieser Sequenz ausführen und das Video in homogene zeitliche Segmente aufteilen, die Szenen entsprechen (das unpraktische Bit ist dass Sie die Anzahl der Szenen im Voraus einstellen müssen ). Diese Technik wird häufig bei der automatischen, unbeaufsichtigten Strukturanalyse von Video oder Musik verwendet .k

Pichenetten
quelle
1

Schauen wir uns zunächst die drei Optionen an:

  • Klassifizierung : Identifizieren, zu welcher Klasse eines Satzes vordefinierter Klassen die Daten gehören.
  • Clustering : Lernen der Klassen, zu denen die Daten gehören.
  • Regression : Finden einer Beziehung zwischen einer Variablen und einer oder mehreren anderen.

Die Beschreibung des HMM auf Wikipedia enthält die folgende Tabelle:

Bildbeschreibung hier eingeben

so ist die Anzahl der Zustände (Klassen) festgelegt.

Das bedeutet, dass der Algorithmus nicht versucht, die Anzahl der Klassen (Zustände) zu ermitteln - es handelt sich also nicht um ein offenes Clustering (bei dem die Anzahl der Zustände unbekannt ist).

@Nikie weist jedoch darauf hin, dass das HMM Clustering ausführt.

Es gibt nicht wirklich eine unabhängige Variable (wie sie im Regressionskontext existiert) - es ist also keine Regression.

Meine Antwort lautet also, dass das HMM eine Klassifikation und ein Clustering- Algorithmus ist. Ich glaube nicht, dass es eine Regression ist.

Peter K.
quelle
2
Wie kommt man von "Anzahl der Klassen, wenn festgelegt" zu "so dass der Algorithmus nicht versucht, herauszufinden, dass die Klassen" sind "? Die Anzahl der Klassen für k-means Clustering ist ebenfalls festgelegt, es handelt sich jedoch eindeutig um einen Clustering-Algorithmus.
Niki Estner
Ich bin wohl eher an das offene Clustering als an das Fixing gewöhnt. Wird die Antwort aktualisieren. Vielen Dank!
Peter K.