Enkel förklaring av Baum Welch / Viterbi (Svenska)

Jag letar efter en mycket enkel förklaring som möjligt för Baum Welch och Viterbi för HMM med ett enkelt och välkommenterat exempel. Nästan alla förklaringar jag hittar på nätet hoppar alltid från början till en nästan fullständig jargong / symbolbaserad förklaring. De få gånger de har ett exempel skjuts det vanligtvis åt sidan eller dåligt kommenterat (dvs. det är oklart hur symbolerna och exemplet är relaterade till varandra). Jag har hört saker som vissa källor som hävdar att Baum Welch är baserad på EM-algoritmen och andra säger att den är baserad på framåt-bakåt-algoritmen och vissa säger båda så jag vill få detaljer som det rensade upp.

Det närmaste jag hittills hittat är en 1 timmars video som publicerades här som folk sa var jättebra men inte kan spelas eftersom flash är förbjudet och en förklaring på wikipedia som har en anteckning bredvid den som säger att den är fel .

Svar

Jag letar efter en mycket enkel förklaring som möjligt för Baum Welch och Viterbi för HMMs …

  • Med tanke på de observerade uppgifterna hittar Baum-Welch-algoritmen de sannolikhetsmaximerande parametrarna.

  • Med tanke på de observerade uppgifterna och parametrarna, Viterbi-algoritmen hittar den mest troliga sekvensen av dolda tillstånd.

Jag har hört saker som vissa källor som hävdar att Baum Welch är baserat på EM-algoritmen …

Baum-Welch-algoritmen är ett speciellt fall för EM-algoritmen.

… och andra säger att den är baserad på framåt-bakåt-algoritmen

Nedbrytning framåt och bakåt är hur du gör steget ”E-” (med EM-terminologi). Det är specifikt för dolda Markov-modeller.

De få gånger de har ett exempel skjuts det vanligtvis åt sidan eller dåligt antecknat (dvs. det är oklart hur symbolerna och exemplet är relaterade till varandra)

Jag vet inte vilka exempel du tittar på, men jag kan säga att det är många bra där ute. Kom ihåg att dessa metoder uppfanns för mycket länge sedan, och de används fortfarande i stor utsträckning . Rabiner som är länkad till ovan är förmodligen den mest kända, men du måste hitta en du gillar som du kommer att fortsätta arbeta med. Jag skulle rekommendera att du hittar en med ett exempel som innehåller data du är intresserad av, och notering som du känsla är lärbar. Oavsett vad du hittar kommer det att ha mycket notering. Det finns ingen väg runt det, så du måste bara hitta något du kan slå dig ner i.

Svar

Jag har det perfekta papperet för dig: http://www.stat.columbia.edu/~liam/teaching/neurostat-fall17/papers/hmm/rabiner.pdf

Observera att det finns nyare BW-metoder.

Försökte enkel förklaring till Viterbi: Målet med viterbi är att hitta en optimal sekvens av tillstånd under en viss diskret tidsperiod.
Börja med de första sannolikheterna för att vara i ett tillstånd $ s $ vid tidpunkten. $ t = 0 $. Öka sedan $ t $ och för varje delstat vid den tiden ($ t = 1 $), hitta det bästa tillståndet $ s $ vid $ t-1 $ (bäst som i den sekvens som ger högsta sannolikhet Spara den här informationen. Det betyder för varje stat $ s $ vid $ t = 1 $ spara vad det bästa tillståndet $ s $ vid $ t = 0 $ är. Spara också sannolikheten för den (optimala) sekvensen.
Öka sedan $ t $ till $ t = 2 $ och upprepa proceduren (med sannolikheterna för varje stat $ s $ vid $ t-1 $ är de just beräknade bästa sannolikheterna för det tillståndet). poängen du når $ t = T $ (sista tidpunkten). Sedan väljer du bara staten med högsta sannolikhet och kommer ihåg för varje tillstånd vid varje gång du har sparat det bästa tillståndet för $ t-1 $, så ta det bästa tillståndet vid $ t = T $ och arbeta dig alltid bakåt alltid plocka det sparade optimala tillståndet.

För att utveckla vad det gör på en mer allmän nivå: Om du har en uppsättning stater $ S $ som alla kan plockas över en viss tid $ T $, en naiv lösning för att hitta den bästa sekvensen skulle vara att räkna upp alla möjliga sekvenser och sedan beräkna sannolikheten för var och en av dem (det betyder att beräkna produkten av tillståndet och övergångssannolikheter). Det misstag man gör här är att många av beräkningarna dupliceras, som ett exempel kan man ha två sekvenser $ p_1, p_2 $ ($ p $ är en sekvens av tillstånd) där den enda skillnaden är det slutliga tillståndet, ändå med den här metoden beräknar du sannolikheten för de delade tillstånden för både $ P (p_1) $ och $ P (p_2) $.
Genom att ta iterativt tillvägagångssätt som används i viterbi, finns det inga duplicerade beräkningar, så uppenbarligen blir det mycket effektivare.

Kommentarer

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *