Modello nascosto di Markov vs rete neurale ricorrente


13

Quali problemi di input sequenziali sono più adatti per ciascuno? La dimensionalità dell'input determina quale è una corrispondenza migliore? I problemi che richiedono "memoria più lunga" sono più adatti per un LNN RST, mentre i problemi con i modelli di input ciclici (borsa, condizioni meteorologiche) sono più facilmente risolti da un HMM?

Sembra che ci siano molte sovrapposizioni; Sono curioso di sapere quali sottili differenze esistono tra i due.


+1 ma la domanda potrebbe essere troppo ampia ... Inoltre, per quanto ne sappia, sono abbastanza diversi ..
Haitao Du

ho aggiunto ulteriori chiarimenti
riparazione

Come nota a
margine,

Risposte:


8

Sommario

I modelli di Markov nascosti (HMM) sono molto più semplici delle reti neuronali ricorrenti (RNN) e si basano su ipotesi forti che potrebbero non essere sempre vere. Se le ipotesi sono vere, è possibile che si ottengano prestazioni migliori da un HMM poiché è meno complicato iniziare a lavorare.

Un RNN può funzionare meglio se si dispone di un set di dati molto ampio, poiché la complessità aggiuntiva può sfruttare meglio le informazioni nei dati. Questo può essere vero anche se le ipotesi degli HMM sono vere nel tuo caso.

Infine, non limitarti solo a questi due modelli per il tuo compito in sequenza, a volte le regressioni più semplici (ad es. ARIMA) possono vincere, e talvolta altri approcci complicati come le reti neurali convoluzionali potrebbero essere i migliori. (Sì, le CNN possono essere applicate ad alcuni tipi di dati di sequenza proprio come le RNN).

Come sempre, il modo migliore per sapere quale modello è il migliore è quello di realizzare i modelli e misurare le prestazioni su un set di prova tenuto.

Presupposti forti degli HMM

Le transizioni di stato dipendono solo dallo stato corrente, non da nulla del passato.

Questa ipotesi non vale in molte aree che conosco. Ad esempio, fai finta di provare a prevedere per ogni minuto della giornata se una persona era sveglia o addormentata dai dati di movimento. La possibilità che qualcuno passi dal sonno al risveglio aumenta quanto più a lungo la persona rimane nello stato di sonno . Un RNN potrebbe teoricamente apprendere questa relazione e sfruttarla per una maggiore precisione predittiva.

Puoi provare a aggirare questo problema, ad esempio includendo lo stato precedente come funzionalità o definendo stati compositi, ma la complessità aggiunta non aumenta sempre la precisione predittiva di un HMM e sicuramente non aiuta i tempi di calcolo.

È necessario pre-definire il numero totale di stati.

Tornando all'esempio del sonno, può sembrare che ci siano solo due stati a cui teniamo. Tuttavia, anche se ci preoccupiamo solo di predire la veglia contro addormentato , il nostro modello può beneficiare di capire gli stati extra come la guida, la doccia, ecc (per esempio, la doccia di solito viene a destra prima di dormire). Ancora una volta, un RNN potrebbe teoricamente apprendere una simile relazione se ne mostrasse abbastanza esempi.

Difficoltà con RNNs

Da quanto sopra può sembrare che gli RNN siano sempre superiori. Dovrei notare, tuttavia, che gli RNN possono essere difficili da far funzionare, specialmente quando il tuo set di dati è piccolo o le tue sequenze molto lunghe. Personalmente ho avuto problemi a far addestrare gli RNN su alcuni dei miei dati e ho il sospetto che la maggior parte dei metodi / linee guida RNN pubblicati siano sintonizzati su dati di testo . Quando ho cercato di utilizzare RNN su dati non testuali, ho dovuto eseguire una ricerca iperparametrica più ampia di quella a cui tengo per ottenere buoni risultati su determinati set di dati.

In alcuni casi, ho scoperto che il modello migliore per i dati sequenziali è in realtà uno stile UNet ( https://arxiv.org/pdf/1505.04597.pdf ) Modello di rete neurale convoluzionale poiché è più facile e veloce da addestrare ed è in grado per tenere conto dell'intero contesto del segnale.


1

Vediamo prima le differenze tra HMM e RNN.

Da questo documento: un tutorial sui modelli nascosti di Markov e sulle applicazioni selezionate nel riconoscimento vocale possiamo imparare che HMM dovrebbe essere caratterizzato dai seguenti tre problemi fondamentali:

Problema 1 (Probabilità): dati un HMM λ = (A, B) e una sequenza di osservazione O, determinare la probabilità P (O | λ).
Problema 2 (Decodifica): data una sequenza di osservazione O e un MMM λ = (A, B), scopri la migliore sequenza di stati nascosti Q.
Problema 3 (Apprendimento): data una sequenza di osservazione O e l'insieme di stati nell'HMM, apprendere i parametri HMM A e B.

Possiamo confrontare l'HMM con l'RNN da quelle tre prospettive.

Probabilità

somma su tutte le sequenze nascoste Probabilità in HMM (Figura A.5) Modello di linguaggio in RNN
ottieni la probabilità dalle funzioni di softmax

In HMM calcoliamo la probabilità di dove la rappresenta tutte le possibili sequenze di stati nascosti e la probabilità è reale probabilità nel grafico. Mentre in RNN l'equivalente, per quanto ne so, è l'inverso della perplessità nella modellazione del linguaggio in cui e non sommiamo gli stati nascosti e non otteniamo la probabilità esatta. P(O)=QP(O,Q)=QP(O|Q)P(Q)Q1p(X)=t=1T1p(xt|x(t1),...,x(1))T

decodifica

In HMM l'attività di decodifica sta calcolando e determinando quale sequenza di variabili è la fonte sottostante di qualche sequenza delle osservazioni usando l'algoritmo di Viterbi e la lunghezza del risultato è normalmente uguale all'osservazione; mentre in RNN la decodifica sta calcolando e la lunghezza di non è normalmente pari osservazione .vt(j)=maxi=1Nvt1(i)aijb(ot)P(y1,...,yO|x1,...,xT)=o=1OP(yo|y1,...,yo1,co)YX

il percorso audace
Decodifica in HMM (Figura A.10)

la parte del decodificatore
Decodifica in RNN

Apprendimento

L'apprendimento in HMM è molto più complicato di quello in RNN. In HMM di solito utilizzava l'algoritmo Baum-Welch (un caso speciale dell'algoritmo Expectation-Maximization) mentre in RNN di solito è la discesa del gradiente.

Per le tue domande:

Quali problemi di input sequenziali sono più adatti per ciascuno?

Quando non si dispone di dati sufficienti, utilizzare l'HMM e quando è necessario calcolare la probabilità esatta, l'HMM sarebbe anche una soluzione migliore (attività generative che modellano il modo in cui i dati vengono generati). Altrimenti, puoi usare RNN.

La dimensionalità dell'input determina quale è una corrispondenza migliore?

Non credo, ma potrebbe essere necessario più tempo all'HMM per sapere se gli stati nascosti sono troppo grandi poiché la complessità degli algoritmi (avanti indietro e Viterbi) è sostanzialmente il quadrato del numero di stati discreti.

I problemi che richiedono una "memoria più lunga" si adattano meglio a un LSTM RNN, mentre i problemi con i modelli di input ciclici (borsa, condizioni meteorologiche) sono più facilmente risolti da un HMM?

In HMM anche lo stato corrente è influenzato dagli stati e dalle osservazioni precedenti (dagli stati parent) e puoi provare il modello Markov nascosto del secondo ordine per "memoria più lunga".

Penso che puoi usare RNN per fare quasi

Riferimenti

  1. Elaborazione del linguaggio naturale con Deep Learning CS224N / Ling284
  2. Modelli nascosti di Markov

Ma nel documento di riferimento afferma che HMM ha uno stato nascosto, sebbene discreto?
Oleg Afanasyev,

@OlegAfanasyev Sì. Penso di sbagliarmi, ma tornerò su questa risposta più tardi.
Lerner Zhang,

Questo è stato corretto?
GENIVI-LEARNER

1
@ GENIVI-LEARNER Ho riscritto la risposta e spero che ti possa essere di aiuto e spero anche che mi fornirai alcuni suggerimenti su come migliorarlo.
Lerner Zhang,

0

Ho trovato questa domanda, perché mi chiedevo anche delle loro somiglianze e differenze. Penso che sia molto importante affermare che i modelli Hidden Markov (HMM) non hanno input e output nel senso più stretto.

Gli HMM sono i cosiddetti modelli generativi , se si dispone di un HMM, è possibile generare alcune osservazioni da esso così come sono. Questo è fondamentalmente diverso dagli RNN, poiché anche se si dispone di un RNN addestrato, è necessario un input.

Un esempio pratico in cui questo è importante è la sintesi vocale. Gli stati nascosti di Markov sono i telefoni e gli eventi di probabilità emessi sono l'acustica. Se hai formato un modello di parole, puoi generare tutte le diverse realizzazioni che desideri.

Ma con gli RNN, è necessario fornire almeno un seed input per ottenere l'output. Potresti sostenere che negli HMM devi anche fornire una distribuzione iniziale, quindi è simile. Ma se seguiamo l'esempio di sintesi vocale, non è perché la distribuzione iniziale sarà corretta (a partire sempre dai primi telefoni della parola).

Con gli RNN si ottiene una sequenza di output deterministica per un modello addestrato, se si utilizza sempre lo stesso seed di input. Con HMM, non lo fai perché le transizioni e le emissioni sono sempre campionate da una distribuzione di probabilità.

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.