Che tipo di algoritmo di machine learning è il modello Markov nascosto?


12

Ho usato l'algoritmo Hidden Markov Model per il riconoscimento vocale automatico in una classe di elaborazione del segnale. Ora, esaminando la letteratura sull'apprendimento automatico, vedo che gli algoritmi sono classificati come "Classificazione", "Clustering" o "Regressione". In quale secchio cade l'HMM? Non mi sono imbattuto in modelli markov nascosti elencati nella letteratura.

Risposte:


14

Sarei tentato di rispondere "nessuna" o "sia classificazione che raggruppamento".

Perché "nessuno"? Perché gli HMM non si trovano nella stessa borsa delle macchine vettoriali di supporto o dei mezzi k.

Le macchine vettore di supporto o i k-media sono specificamente progettati per risolvere un problema (classificazione nel primo caso, raggruppamento nel secondo) e sono in effetti solo una procedura di ottimizzazione per massimizzare un criterio "bontà della classificazione prevista" o "bontà del raggruppamento" . Il bello sta nella scelta del criterio e della procedura di ottimizzazione. Gli HMM non sono di per sé un algoritmo. Sono un tipo specifico di distribuzione di probabilità su sequenze di vettori - per i quali conosciamo buoni algoritmi di stima dei parametri e calcolo della distribuzione marginale. Ma chiedere se appartengono alla famiglia del "raggruppamento" o della "classificazione" è ridicolo quanto chiedere se la distribuzione gaussiana è un apprendimento supervisionato o non supervisionato.

Perché "classificazione e clustering"? A causa di quanto segue: essendo distribuzioni di probabilità, HMM può essere utilizzato per la classificazione in un quadro bayesiano; ed essendo modello con stati nascosti, alcuni cluster latenti dei dati di addestramento possono essere recuperati dai loro parametri. Più precisamente:

HMM può essere utilizzato per la classificazione. Questa è una semplice applicazione del framework di classificazione bayesiana, con l'HMM usato come modello probabilistico che descrive i tuoi dati. Ad esempio, disponi di un ampio database di espressioni di cifre ("una", "due", ecc.) E desideri creare un sistema in grado di classificare una espressione sconosciuta. Per ogni classe nei dati di allenamento ("uno", "due", si stimano i parametri di un modello HMM che descrivono le sequenze di allenamento in questa classe - e si finisce con 10 modelli. Quindi, per eseguire il riconoscimento, si calcolano i 10 punteggi di probabilità (che indicano la probabilità che la sequenza che si desidera riconoscere sia stata generata dal modello) e il modello con il punteggio più alto fornisce la cifra. Nel tutorial di Rabiner sugli HMM, la fase di addestramento è "Problema 3", la fase di classificazione è "Problema 2".

L'HMM può essere utilizzato anche in modo non supervisionato, per ottenere qualcosa di simile al clustering. Data una sequenza, è possibile addestrare un HMM -state su di esso e alla fine del processo di addestramento, eseguire l'algoritmo di Viterbi sulla sequenza per ottenere lo stato più probabile associato a ciascun vettore di input (o semplicemente estrarlo dal durante il processo di allenamento). Questo ti dà un raggruppamento della sequenza di input inγ k kkγkclassi, ma diversamente da quanto avresti ottenuto eseguendo i tuoi dati attraverso k-medie, il tuo clustering è omogeneo sull'asse temporale. Ad esempio, puoi estrarre gli istogrammi di colore di ciascun fotogramma di una sequenza video, eseguire questo processo su questa sequenza e finirai con una suddivisione del video in segmenti temporali omogenei corrispondenti alle scene (il bit non pratico è che è necessario impostare in anticipo il numero di scene ). Questa tecnica viene comunemente utilizzata nell'analisi automatica, senza supervisione, della struttura di video o musica .k


1

Innanzitutto, diamo un'occhiata alle tre opzioni:

  • Classificazione : identificazione della classe di un insieme di classi predefinite a cui appartengono i dati.
  • Clustering : apprendimento dell'insieme di classi a cui appartengono i dati.
  • Regressione : ricerca di una relazione tra una variabile e una o più altre.

La descrizione dell'HMM su Wikipedia ha la seguente tabella:

inserisci qui la descrizione dell'immagine

quindi il numero di stati (classi) è fisso.

Ciò significa che l'algoritmo non cerca di capire il numero di classi (stati) che sono --- quindi non è un cluster aperto (dove il numero di stati è sconosciuto).

Tuttavia, come sottolinea @nikie, l'HMM eseguirà il clustering.

Non esiste davvero una variabile indipendente (come esiste nel contesto di regressione) --- quindi non è regressione.

Quindi la mia risposta è che l'HMM è una classificazione e un algoritmo di clustering , non credo sia una regressione.


2
Come si ottiene dal "numero di classi se fisso" a "in modo che l'algoritmo non tenti di capire che le classi sono"? Anche il numero di classi per il clustering di k-media è fisso, ma è chiaramente un algoritmo di clustering.
Niki Estner,

Suppongo di essere abituato al clustering a tempo indeterminato piuttosto che fisso. Aggiornerà la risposta. Grazie!
Peter K.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.