6

Mi è stato insegnato HMM e mi è stato dato questo problema. Ne ho capito una parte, ma non sono sicuro che sia corretto. Il problema è:Hidden Markov Model per dadi a tre facce

considerare un gioco diverso in cui il concessionario non sta lanciando una moneta, ma invece rotolamento un tre lati morire con etichette 1, 2, e 3. (non provate a pensare a ciò che un a tre lati potrebbe sembrare.) Il banco ha due dadi caricati D1 e D2. Per ogni die Di, la probabilità di rotolare il numero i è 1/2, e la probabilità di ciascuno degli altri due risultati è 1/4. Ad ogni turno, il mazziere deve decidere se (1) mantenere lo stesso dado , (2) passare all'altro morire, o (3) terminare il gioco. Sceglie (1) con probabilità 1/2 e ognuna delle altre con probabilità 1/4. All'inizio il mazziere sceglie uno dei due dadi con uguale probabilità.

  • Assegna un HMM per questa situazione. Specificare l'alfabeto, gli stati, le probabilità di transizione e le probabilità di emissione. Includere uno start start start e assumere che l'HMM inizi in stato start con probabilità 1. Includere anche un fine stato .

  • Supponiamo che si osservi la seguente sequenza di rulli di dado: 1 1 2 1 2 2. Trova una sequenza di stati che spieghi meglio la sequenza di rulli. Qual è la probabilità di questa sequenza? Trova la risposta completando la tabella di Viterbi. Includere le frecce di backtrack nelle celle in modo da poter risalire alla sequenza di stati. Alcuni dei seguenti fatti possono essere utili:

    log2 (0) = -∞
    log2 (1/4) = -2
    log2 (1/2) = -1
    log2 (1) = 0

  • Ci sono in realtà due sequenze di stati ottimali per questa sequenza di tiri di dado. Qual è l'altra sequenza di stati?

Se non sbaglio per la prima parte devo fare qualcosa di simile qui http://en.wikipedia.org/wiki/Hidden_Markov_model#A_concrete_example Ma non ho abbastanza davvero quello che è quello di assumere iniziare con probabilità 1.

Inoltre, ho Non sono sicuro di cosa devo fare per il tavolo di Viterbi nella seconda parte della domanda. Se qualche corpo può darmi un suggerimento o un indizio, te ne sarò grato.

+0

È una domanda di programmazione? –

+0

Beh, non penso sia collegato alla programmazione. Non devo fare alcuna programmazione per questa domanda, basta progettare HMM. – smandape

risposta

2

ad assumere la vostra probabilità di partenza è uno: In HMM si sia avere una partenza stato fisso o di una probabilità distribuzione su tutti gli stati in cui si afferma come probabile è quello di iniziare a X. statali per supporre che la vostra partenza la probabilità di un dato stato è 1 uguale alla prima alternativa.

Viterbi algoritmo: Nella Viterbi-matrice della offten esima riga corrisponde agli stati esima e la colonna j-esima corrisponde al prefisso di lenth j del simbolo emessa. In ogni voce (i, j) è la probabilità massima che tu abbia già visto il prefisso j e che tu sia nello stato i.

Per il backtracking è necessario tenere traccia di ogni cella (i, j) che il precursore massimo è stato coinvolto nel calcolo della cella (i, j). Se hai queste informazioni puoi tornare indietro dalla cella con il valore più alto nell'ultima colonna all'inizio. Rovescia questa traccia e ottieni il tuo percorso viterbi.

+0

Quindi è qualcosa di simile: c'è uno stato di partenza che inizia con probabilità 1, poi più lontano il mazziere che sceglie uno dei 2 dadi è 1/2 (come dato in questione: All'inizio il mazziere sceglie uno dei due dadi con uguale probabilità). – smandape

+0

esattamente. stai studiando bioinformatica? – peri4n

+0

Sì. Questo è il motivo per cui non ho molto del background di informatica e non ho mai veramente imparato HMM, sebbene ne abbia sentito parlare la maggior parte delle volte. Ma sto cercando di mettere le mani sui concetti di scienza del computer, è interessante. Grazie per l'aiuto. – smandape