Quel type d'algorithme d'apprentissage automatique est le modèle de Markov caché?


12

J'ai utilisé l'algorithme du modèle de Markov caché pour la reconnaissance vocale automatisée dans une classe de traitement du signal. En parcourant maintenant la littérature sur l'apprentissage automatique, je vois que les algorithmes sont classés comme "Classification", "Clustering" ou "Regression". Dans quel seau HMM tombe-t-il? Je n'ai pas rencontré de modèles de markov cachés répertoriés dans la littérature.

Réponses:


14

Je serais tenté de répondre «aucun» ou «classification et regroupement».

Pourquoi "aucun"? Parce que les HMM ne sont pas dans le même sac que les machines à vecteurs de support ou les k-means.

Les machines à vecteurs supports ou k-means sont spécifiquement conçues pour résoudre un problème (classification dans le premier cas, clustering dans le second), et ne sont en effet qu'une procédure d'optimisation pour maximiser un critère de "qualité attendue de la classification" ou de "qualité du clustering" . La beauté réside dans le choix du critère et de la procédure d'optimisation. Les HMM ne sont pas un algorithme en soi. Il s'agit d'un type spécifique de distribution de probabilité sur des séquences de vecteurs - pour lequel nous connaissons de bons algorithmes d'estimation de paramètres et de calcul de distribution marginale. Mais se demander s'ils font partie de la famille des «clusters» ou des «classifications» est aussi ridicule que de demander si la distribution gaussienne est un apprentissage supervisé ou non.

Pourquoi "à la fois la classification et le clustering"? En raison de ce qui suit: Étant des distributions de probabilité, HMM peut être utilisé pour la classification dans un cadre bayésien; et étant un modèle avec des états cachés, un certain regroupement latent des données d'apprentissage peut être récupéré à partir de leurs paramètres. Plus précisément:

HMM peut être utilisé pour la classification. Il s'agit d'une application simple du cadre de classification bayésien, le HMM étant utilisé comme modèle probabiliste décrivant vos données. Par exemple, vous avez une grande base de données d'énoncés de chiffres ("un", "deux", etc.) et souhaitez construire un système capable de classer un énoncé inconnu. Pour chaque classe de vos données d'entraînement ("un", "deux", vous estimez les paramètres d'un modèle HMM décrivant les séquences d'entraînement de cette classe - et vous vous retrouvez avec 10 modèles. Ensuite, pour effectuer la reconnaissance, vous calculez les 10 les scores de vraisemblance (qui indiquent la probabilité que la séquence que vous souhaitez reconnaître a été générée par le modèle), et le modèle avec le score le plus élevé vous donne le chiffre. Dans le tutoriel Rabiner sur les HMM, l'étape de formation est "Problème 3", l'étape de classification est "Problème 2".

HMM peut également être utilisé de manière non supervisée, pour réaliser quelque chose qui ressemble au clustering. Étant donné une séquence, vous pouvez former un HMM state dessus, et à la fin du processus de formation, exécutez l'algorithme Viterbi sur votre séquence pour obtenir l'état le plus probable associé à chaque vecteur d'entrée (ou tirez-le simplement du pendant le processus de formation). Cela vous donne un regroupement de votre séquence d'entrée enkγkmais contrairement à ce que vous auriez obtenu en exécutant vos données via k-means, votre clustering est homogène sur l'axe du temps. Par exemple, vous pouvez extraire les histogrammes de couleur de chaque image d'une séquence vidéo, exécuter ce processus sur cette séquence, et vous vous retrouverez avec une décomposition de la vidéo en segments temporels homogènes correspondant à des scènes (le bit peu pratique est que vous devez configurer le nombre de scènes à l'avance). Cette technique est couramment utilisée dans l'analyse de structure automatique et non supervisée de la vidéo ou de la musique .k


1

Voyons d'abord les trois options:

  • Classification : Identifier à quelle classe d'un ensemble de classes prédéfinies les données appartiennent.
  • Clustering : apprentissage de l'ensemble des classes auxquelles les données appartiennent.
  • Régression : recherche d'une relation entre une variable et une ou plusieurs autres.

La description du HMM sur Wikipedia a le tableau suivant:

entrez la description de l'image ici

donc le nombre d'états (classes) est fixe.

Cela signifie que l'algorithme n'essaie pas de comprendre le nombre de classes (états) sont --- donc ce n'est pas un clustering ouvert (où le nombre d'états est inconnu).

Cependant, comme le souligne @nikie, le HMM effectuera le clustering.

Il n'y a pas vraiment de variable indépendante (comme cela existe dans le contexte de régression) --- donc ce n'est pas de la régression.

Donc ma réponse est que le HMM est une classification et un algorithme de clustering , je ne pense pas que ce soit une régression.


2
Comment passez-vous du "nombre de classes si fixé" à "pour que l'algorithme n'essaye pas de comprendre que les classes sont"? Le nombre de classes pour le clustering k-means est également fixe, mais il s'agit clairement d'un algorithme de clustering.
Niki Estner,

Je suppose que je suis habitué au clustering ouvert plutôt que fixe. Mettra à jour la réponse. Merci!
Peter K.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.