Baum–Welch algoritm
Inom elektroteknik , statistisk beräkning och bioinformatik är Baum -Welch-algoritmen ett specialfall av algoritmen för förväntan-maximering som används för att hitta de okända parametrarna för en dold Markov-modell (HMM). Den använder sig av framåt-bakåt-algoritmen för att beräkna statistiken för förväntningssteget.
Historia
Baum-Welch-algoritmen fick sitt namn efter dess uppfinnare Leonard E. Baum och Lloyd R. Welch . Algoritmen och Hidden Markov-modellerna beskrevs först i en serie artiklar av Baum och hans kamrater vid IDA Center for Communications Research, Princeton i slutet av 1960-talet och början av 1970-talet. En av de första stora tillämpningarna av HMM var till området för talbehandling . På 1980-talet växte HMMs fram som ett användbart verktyg för analys av biologiska system och information, och i synnerhet genetisk information . De har sedan dess blivit ett viktigt verktyg i probabilistisk modellering av genomiska sekvenser.
Beskrivning
En dold Markov-modell beskriver den gemensamma sannolikheten för en samling " dolda " och observerade diskreta slumpvariabler. Den förlitar sig på antagandet att den i -te dolda variabeln givet ( i − 1)-th dolda variabeln är oberoende av tidigare dolda variabler, och de aktuella observationsvariablerna beror endast på det aktuella dolda tillståndet.
Baum–Welch-algoritmen använder den välkända EM-algoritmen för att hitta den maximala sannolikhetsuppskattningen av parametrarna för en dold Markov-modell givet en uppsättning observerade funktionsvektorer.
Låt vara en diskret dold slumpvariabel med möjliga värden (dvs. Vi antar att det finns tillstånd totalt). Vi antar att är oberoende av tiden , vilket leder till definitionen av tidsoberoende stokastisk övergångsmatris
Den initiala tillståndsfördelningen (dvs när ) ges av
Observationsvariablerna kan ta ett av möjliga värden. Vi antar också att observationen givet det "dolda" tillståndet är tidsoberoende. Sannolikheten för en viss observation vid tidpunkten för tillstånd ges av
Med hänsyn till alla möjliga värden för och får vi matrisen där tillhör alla möjliga tillstånd och tillhör alla observationer.
En observationssekvens ges av .
Således kan vi beskriva en dold Markov-kedja med . Baum–Welch-algoritmen hittar ett lokalt maximum för (dvs. HMM-parametrarna som maximerar sannolikheten för observationen).
Algoritm
Ange med slumpmässiga initialvillkor. De kan också ställas in med hjälp av tidigare information om parametrarna om den är tillgänglig; detta kan påskynda algoritmen och även styra den mot det önskade lokala maximumet.
Vidarebefordran procedur
Låt se observationerna och är i tillståndet vid tidpunkten . Detta hittas rekursivt:
Eftersom denna serie konvergerar exponentiellt till noll, kommer algoritmen att sjunka numeriskt för längre sekvenser. Detta kan dock undvikas i en något modifierad algoritm genom att skala framåt och i bakåtproceduren nedan.
Bakåtprocedur
Låt sekvensen givet starttillstånd vid tidpunkten . Vi beräknar som,
Uppdatering
Vi kan nu beräkna de temporära variablerna, enligt Bayes teorem:
vilket är sannolikheten att vara i tillstånd vid tidpunkten givet den observerade sekvensen och parametrarna
vilket är sannolikheten att vara i tillståndet och vid tidpunkterna respektive givet den observerade sekvensen och parametrarna .
Nämnarna för och är desamma ; de representerar sannolikheten att göra observationen givet parametrarna .
Parametrarna för den dolda Markov-modellen kan nu uppdateras:
vilket är den förväntade frekvensen som spenderas i tillstånd vid tidpunkten .
vilket är det förväntade antalet övergångar från tillstånd i till tillstånd j jämfört med det förväntade totala antalet övergångar bort från tillstånd i . För att förtydliga, betyder antalet övergångar bort från tillstånd i inte övergångar till ett annat tillstånd j , utan till vilket tillstånd som helst inklusive sig själv. Detta motsvarar antalet gånger tillstånd i observeras i sekvensen från t = 1 till t = T − 1.
var
är en indikatorfunktion, och är det förväntade antalet gånger utdataobservationerna har varit lika med i tillstånd över det förväntade totala antalet gånger i tillstånd .
Dessa steg upprepas nu iterativt tills en önskad nivå av konvergens.
Obs: Det är möjligt att överanpassa en viss datamängd. Det vill säga . Algoritmen inte heller ett globalt maximum.
Flera sekvenser
Algoritmen som hittills beskrivits antar en enda observerad sekvens . Men i många situationer finns det flera sekvenser observerade: . I det här fallet måste informationen från alla observerade sekvenser användas i uppdateringen av parametrarna , och . Förutsatt att du har beräknat och för varje sekvens , parametrarna kan nu uppdateras:
var
är en indikatorfunktion
Exempel
Anta att vi har en kyckling som vi plockar ägg från vid middagstid varje dag. Huruvida kycklingen har lagt ägg för insamling eller inte beror på några okända faktorer som är dolda. Vi kan dock (för enkelhetens skull) anta att kycklingen alltid befinner sig i ett av två tillstånd som påverkar om hönan lägger ägg, och att detta tillstånd bara beror på tillståndet föregående dag. Nu vet vi inte tillståndet vid den initiala utgångspunkten, vi vet inte övergångssannolikheterna mellan de två tillstånden och vi vet inte sannolikheten att kycklingen lägger ett ägg givet ett visst tillstånd. Till att börja med gissar vi först övergångs- och emissionsmatriserna.
|
|
|
Vi tar sedan en uppsättning observationer (E = ägg, N = inga ägg): N, N, N, N, N, E, E, N, N, N
Detta ger oss en uppsättning observerade övergångar mellan dagar: NN, NN, NN, NN, NE, EE, EN, NN, NN
Nästa steg är att uppskatta en ny övergångsmatris. Till exempel, sannolikheten för att sekvensen NN och tillståndet är sedan ges av följande,
Observerad sekvens | Högsta sannolikhet att observera den sekvensen om tillståndet är sedan | Högsta sannolikhet att observera den sekvensen | |
---|---|---|---|
NN | 0,024 = 0,2 * 0,3 * 0,5 * 0,8 | 0,3584 | , |
NN | 0,024 = 0,2 * 0,3 * 0,5 * 0,8 | 0,3584 | , |
NN | 0,024 = 0,2 * 0,3 * 0,5 * 0,8 | 0,3584 | , |
NN | 0,024 = 0,2 * 0,3 * 0,5 * 0,8 | 0,3584 | , |
NE | 0,006 = 0,2 * 0,3 * 0,5 * 0,2 | 0,1344 | , |
EE | 0,014 = 0,2 * 0,7 * 0,5 * 0,2 | 0,0490 | , |
SV | 0,056 = 0,2 * 0,7 * 0,5 * 0,8 | 0,0896 | , |
NN | 0,024 = 0,2 * 0,3 * 0,5 * 0,8 | 0,3584 | , |
NN | 0,024 = 0,2 * 0,3 * 0,5 * 0,8 | 0,3584 | , |
Total | 0,22 | 2,4234 |
Den nya uppskattningen för övergången till är nu (kallas "Pseudo sannolikheter" i följande tabeller). Vi beräknar sedan till , till och till övergångssannolikheter och normalisera så att de adderas till 1. Detta ger oss den uppdaterade övergångsmatrisen:
|
|
|
Därefter vill vi uppskatta en ny emissionsmatris,
Observerad sekvens |
Högsta sannolikhet att observera den sekvensen om E antas komma från |
Högsta sannolikhet att observera den sekvensen | ||
---|---|---|---|---|
NE | 0,1344 | , | 0,1344 | , |
EE | 0,0490 | , | 0,0490 | , |
SV | 0,0560 | , | 0,0896 | , |
Total | 0,2394 | 0,2730 |
Den nya uppskattningen för E som kommer från emission är nu .
Detta gör att vi kan beräkna emissionsmatrisen enligt beskrivningen ovan i algoritmen, genom att lägga ihop sannolikheterna för respektive observerade sekvenser. Vi upprepar sedan för om N kom från och för om N och E kom från och normaliserar.
|
|
|
För att uppskatta de initiala sannolikheterna antar vi att alla sekvenser börjar med det dolda tillståndet och beräknar den högsta sannolikheten och upprepar sedan för . Återigen normaliserar vi sedan för att ge en uppdaterad initial vektor.
Slutligen upprepar vi dessa steg tills de resulterande sannolikheterna konvergerar på ett tillfredsställande sätt.
Ansökningar
Taligenkänning
Dolda Markov-modeller användes först för taligenkänning av James K. Baker 1975. Kontinuerlig taligenkänning sker genom följande steg, modellerade av en HMM. Särdragsanalys utförs först på temporala och/eller spektrala egenskaper hos talsignalen. Detta producerar en observationsvektor. Funktionen jämförs sedan med alla sekvenser av taligenkänningsenheterna. Dessa enheter kan vara fonem , stavelser eller helordsenheter. Ett lexikonavkodningssystem används för att begränsa de sökvägar som undersöks, så endast ord i systemets lexikon (ordlexikon) undersöks. I likhet med lexikonavkodningen är systemvägen ytterligare begränsad av reglerna för grammatik och syntax. Slutligen tillämpas semantisk analys och systemet matar ut det igenkända yttrandet. En begränsning för många HMM-applikationer för taligenkänning är att det aktuella tillståndet endast beror på tillståndet vid det föregående tidssteget, vilket är orealistiskt för tal eftersom beroenden ofta är flera tidssteg i varaktighet. Baum–Welch-algoritmen har också omfattande tillämpningar för att lösa HMMs som används inom området för talsyntes.
Kryptanalys
Baum–Welch-algoritmen används ofta för att uppskatta parametrarna för HMMs vid dechiffrering av dold eller brusig information och används därför ofta i kryptoanalys . Inom datasäkerhet skulle en observatör vilja extrahera information från en dataström utan att känna till alla parametrar för överföringen. Detta kan innebära reverse engineering av en kanalkodare . HMMs och som en konsekvens av Baum-Welch-algoritmen har också använts för att identifiera talade fraser i krypterade VoIP-samtal. Dessutom är HMM-krypteringsanalys ett viktigt verktyg för automatiserade undersökningar av cache-timingsdata. Det möjliggör automatisk upptäckt av kritiska algoritmtillstånd, till exempel nyckelvärden.
Tillämpningar inom bioinformatik
Att hitta gener
Prokaryot
Programvaran GLIMMER (Gene Locator and Interpolated Markov ModelER) var ett tidigt gensökningsprogram som användes för identifiering av kodande regioner i prokaryot DNA. GLIMMER använder Interpolated Markov Models (IMM) för att identifiera de kodande regionerna och skilja dem från det icke-kodande DNA:t . Den senaste utgåvan (GLIMMER3) har visat sig ha ökad specificitet och noggrannhet jämfört med sina föregångare när det gäller att förutsäga translationsinitieringsställen, vilket visar en genomsnittlig 99% noggrannhet i lokalisering av 3'-platser jämfört med bekräftade gener i prokaryoter.
Eukaryot
GENSCAN - webbservern är en genlokaliserare som kan analysera eukaryota sekvenser upp till en miljon baspar (1 Mbp) långa. GENSCAN använder en allmän inhomogen, tre periodiska, femte ordningens Markov-modell av DNA-kodande regioner. Dessutom står denna modell för skillnader i gendensitet och struktur (som intronlängder) som förekommer i olika isokorer . Medan de flesta integrerade gensökningsprogramvaran (vid tidpunkten för GENSCANs release) antog att indatasekvenser innehöll exakt en gen, löser GENSCAN ett allmänt fall där partiella, fullständiga eller flera gener (eller till och med ingen gen alls) är närvarande. GENSCAN visades exakt förutsäga exonlokalisering med 90 % noggrannhet med 80 % specificitet jämfört med en kommenterad databas.
Detektering av kopia-nummervariationer
Kopieringsnummervariationer (CNV) är en riklig form av genomstrukturvariation hos människor. En diskret värderad bivariat HMM (dbHMM) användes för att tilldela kromosomala regioner till sju distinkta tillstånd: opåverkade regioner, deletioner, duplikationer och fyra övergångstillstånd. Att lösa denna modell med hjälp av Baum-Welch visade förmågan att förutsäga platsen för CNV-brytpunkten till cirka 300 bp från mikroarrayexperiment . Denna upplösningsstorlek möjliggör mer exakta korrelationer mellan olika CNV och över populationer än vad som tidigare varit möjligt, vilket gör det möjligt att studera CNV-populationsfrekvenser. Det visade också ett direkt arvsmönster för en viss CNV .
Genomföranden
- Accord.NET i C#
- ghmm C-bibliotek med Python- bindningar som stöder både diskreta och kontinuerliga emissioner.
- Jajapy Python- bibliotek som implementerar Baum-Welch på olika typer av Markov-modeller ( HMM , MC , MDP , CTMC , GOHMM och MGOHMM).
- HMMBase- paket för Julia .
- HMMFit-funktion i RHmm -paketet för R .
- hmmträna i MATLAB
- rustbio i Rust
Se även
- Viterbi algoritm
- Dold Markov-modell
- EM algoritm
- Maximal sannolikhet
- Taligenkänning
- Bioinformatik
- Kryptanalys
externa länkar
- En omfattande genomgång av HMM-metoder och mjukvara inom bioinformatik – Profile Hidden Markov Models
- Tidiga HMM-publikationer av Baum:
- En maximeringsteknik som förekommer i den statistiska analysen av probabilistiska funktioner hos Markov-kedjor
- En ojämlikhet med tillämpningar på statistisk uppskattning för probabilistiska funktioner hos Markov-processer och på en modell för ekologi
- Statistisk slutledning för sannolikhetsfunktioner hos Finita State Markov-kedjor
- The Shannon Lecture av Welch, som talar om hur algoritmen kan implementeras effektivt:
- Hidden Markov Models and the Baum–Welch Algorithm , IEEE Information Theory Society Newsletter, dec. 2003.
- Ett alternativ till Baum–Welch-algoritmen, Viterbi Path Counting-algoritmen:
- Davis, Richard IA; Lovell, Brian C.; "Jämföra och utvärdera HMM-ensembleträningsalgoritmer med hjälp av tåg- och test- och tillståndsnummerkriterier", Pattern Analysis and Applications, vol. 6, nr. 4, s. 327–336, 2003.
- Ett interaktivt kalkylblad för att lära ut framåt-bakåtalgoritmen (kalkylblad och artikel med steg-för-steg-genomgång)
- Formell härledning av Baum–Welch-algoritmen
- Implementering av Baum–Welch-algoritmen