Eteen-taakse algoritmi

Eteen-taakse-algoritmi on johtopäätös algoritmi HMM joka laskee taka reunanumeroiden kaikkien piilotettu tilamuuttujien antanut havainto- / päästöt, ts laskee, kaikki piilotettu tilamuuttujat, jakelu. Tämä päättely tehtävä on yleensä kutsutaan tasoitusta. Algoritmi käyttää periaatteen dynaaminen ohjelmointi laskea tehokkaasti arvot on hankittava taka marginaalinen jakaumat kahdessa kulkee. Ensikierron menee ajassa eteenpäin ja toinen menee taaksepäin ajassa; joten nimi eteen-taakse algoritmi.

Termi eteen-taakse-algoritmia käytetään myös viittaamaan mihin tahansa algoritmi kuuluvat yleisen luokan algoritmeja, jotka toimivat sekvenssi mallien eteen-taakse tavalla. Tässä mielessä, kuvaukset tässä artikkelissa viitataan mutta yhteen tiettyyn esimerkiksi tämän luokan.

Yleiskatsaus

Ensimmäisessä pass, eteen-taakse algoritmi laskee joukon eteenpäin todennäköisyyksiä, jotka tarjoavat kaikkien, todennäköisyys päätyä mihinkään tiettyyn tilaan annettu ensimmäiset havainnot järjestyksessä, eli. Toisessa pass, algoritmi laskee joukko taaksepäin todennäköisyyksiä jotka tarjoavat todennäköisyys tarkkailla jäljellä huomautukset antanut mitään lähtökohta, eli. Nämä kaksi sarjaa todennäköisyysjakaumat voidaan sitten yhdistää saada jakautuminen todetaan milloin tahansa tiettynä ajankohtana annetaan koko havainto järjestyksessä:

Viimeinen vaihe seuraa soveltamisesta Bayesin säännön ja ehdollinen riippumattomuus ja annetaan.

Kuten edellä, algoritmi käsittää kolme vaihetta:

  • computing eteenpäin todennäköisyydet
  • computing taaksepäin todennäköisyydet
  • computing tasoitettu arvot.

Eteenpäin ja taaksepäin vaiheet voidaan kutsua myös "eteenpäin viesti pass" ja "taaksepäin viesti pass" - nämä ehdot johtuvat viesti ohittaen käytetty yleinen uskomus lisääminen lähestymistapoja. Jokaisen yksittäisen havainnon järjestyksessä, todennäköisyydet käytettävä laskelmissa seuraavassa havainto lasketaan. Tasoitus vaihe voidaan laskea samanaikaisesti aikana taaksepäin omille. Tämä vaihe mahdollistaa algoritmi ottaa huomioon kaikki aikaisemmat huomautukset tuotoksen laskemiseksi tarkempia tuloksia.

Eteen-taakse algoritmia voidaan käyttää löytää todennäköisin tilassa tahansa ajankohtana. Se ei voi kuitenkaan käyttää löytää todennäköisin sekvenssi toteaa.

Eteenpäin todennäköisyydet

Seuraava kuvaus käyttää matriiseja todennäköisyyden arvojen sijaan todennäköisyysjakaumia, vaikka yleisesti eteenpäin-taaksepäin-algoritmia voidaan soveltaa jatkuviin sekä erillisinä todennäköisyys malleja.

Me muuttaa todennäköisyysjakaumat liittyvät tietyn HMM mallin matriisinotaatiolla seuraavasti. Siirtyminen todennäköisyydet tietyn satunnaismuuttujan edustavat kaikkia mahdollisia valtioiden piilotettu Markovin malli edustaa matriisi, jossa rivi indeksi, I, edustaa alkutila ja sarakkeen indeksi, j, edustaa tavoitetila. Alla olevassa esimerkissä edustaa järjestelmää, jossa todennäköisyys oleskelevat samassa tilassa jokaisen vaiheen jälkeen on 70% ja todennäköisyys siirrytään muihin valtion on 30%. Siirtymämatriisiin on sitten:

Tyypillisessä Markov-malli olisimme kerrotaan tilavektori tämän matriisin saamiseksi todennäköisyydet myöhemmin tilan. Piilotettu Markovin malli valtio on tuntematon, ja me sen sijaan tarkkailla liittyvien tapahtumien mahdolliset tilat. Tapahtuma matriisin muodossa:

säädetään todennäköisyydet tarkkailemalla tapahtumia tietyn tietyssä tilassa. Yllä olevassa esimerkissä, tapahtuma 1 on havaittu 90% ajasta, jos olemme tilassa 1, kun taas tapauksessa 2 on 10% todennäköisyys esiintyy tässä tilassa. Sen sijaan tapauksessa 1 tarkkaillaan vain 20% ajasta, jos olemme tilassa 2 ja tapahtuma 2 on 80% mahdollisuus esiintyy. Koska tilavektori, todennäköisyys tarkkailemalla tapahtuma j on sitten:

Tämä voidaan esittää matriisimuodossa kertomalla valtion vektorin havaintomatriisi sisältävät vain diagonaalinen merkintöjä. Jokainen merkintä on todennäköisyys havaittu tapahtuma annetaan kunkin valtion. Jatketaan edellä esimerkiksi havainto kokoustilaa 1 olisi:

Tämä antaa meille mahdollisuuden laskea todennäköisyydet liittyy siirrytään uuteen tilaan ja havainnoimalla tietyn tapahtuman kuten:

Todennäköisyysvektori että tuloksia on merkintöjä osoittaa todennäköisyys siirrytään kunkin valtion ja noudattaen siellä annettuja tapahtuma. Tämä prosessi voidaan siirtää ylimääräisiä havainnoistaan ​​käyttämällä:

Tämä arvo on eteenpäin todennäköisyys vektori. I'th merkintä tämän vektorin säädetään:

Tyypillisesti, me normalisoi todennäköisyyden vektori jokaisessa vaiheessa siten, että sen merkintöjen summa on 1. skaalauskerroin siten käyttöön jokaisessa vaiheessa siten, että:

jossa edustaa skaalattu vektori edellisessä vaiheessa, ja se edustaa skaalauskerroin, joka aiheuttaa tuloksena vektorin merkintöjä summa 1. tuote skaalauskertoimet on yhteensä todennäköisyys havaita tietyn tapahtumia riippumatta lopullisen todetaan:

Tämä antaa meille mahdollisuuden tulkita skaalataan todennäköisyys vektorin:

Meillä on siis löytää että tuote skaalauskertoimet tarjoaa meille koko todennäköisyys havaita annetussa järjestyksessä asti aikaa t ja että skaalattu todennäköisyys vektori antaa meille todennäköisyys olla kunkin valtion tällä hetkellä.

Taaksepäin todennäköisyydet

Vastaavaa menettelyä voidaan rakentaa löytää taaksepäin todennäköisyyksiä. Nämä aio antaa todennäköisyydet:

Eli haluamme nyt olettaa, että aloitamme tietyssä tilassa, ja olemme nyt kiinnostuneita todennäköisyys että kaikkia tulevia tapahtumia tässä tilassa. Koska alkuperäiseen tilaan oletetaan annettuna, aloitamme:

Huomaa, että olemme nyt käyttäen sarakevektorina samalla eteenpäin todennäköisyydet käytetty rivivektoreita. Voimme sitten palattava taaksepäin käyttämällä:

Vaikka voisimme normalisoimaan tämän vektorin sekä niin, että sen merkintöjä summa on yksi, tämä ei yleensä tehdä. Toteaa, että jokainen merkintä sisältää todennäköisyys tulevan tapahtuman sekvenssi annetaan aluksi erityisesti valtio, normalisoi tämä vektori vastaisi soveltaa Bayesin lause löytää todennäköisyys kunkin alkutilassa annetaan tulevia tapahtumia. Kuitenkin, se on yleisempää mittakaavassa tämän vektorin käyttäen samaa vakioita käytettiin eteenpäin todennäköisyyslaskentaa. ei ole alennettu, mutta seuraavien toimien käyttää:

jossa edustaa edellinen, skaalattu vektori. Tämä tulos on, että skaalattu todennäköisyys vektori liittyy taaksepäin todennäköisyydet mukaan:

Tämä on hyödyllinen, koska se antaa meille mahdollisuuden löytää koko todennäköisyys olla kunkin valtion tietyllä hetkellä, t, kertomalla nämä arvot:

Tämän ymmärtämiseksi, toteamme, että säädetään todennäköisyys havaita tietyn tapahtumista tavalla, joka kulkee tilan hetkellä t. Tämä todennäköisyys sisältää eteenpäin todennäköisyydet kattaa kaikki Tapahtumia jopa ajan t sekä taaksepäin todennäköisyyksiä jotka sisältävät kaikki tuleviin tapahtumiin. Tämä on osoittaja etsimme meidän yhtälössä, ja jaamme kokonaispinta todennäköisyys havainto sekvenssin normalisoida tämä arvo ja poimia vain todennäköisyydellä. Nämä arvot ovat joskus kutsutaan "tasoitetaan arvoja", koska niissä yhdistyvät eteenpäin ja taaksepäin todennäköisyydet laskemaan lopullinen todennäköisyys.

Arvot tarjoavat siten todennäköisyys olla kunkin valtion hetkellä t. Siten ne ovat käyttökelpoisia määritettäessä todennäköisin tila milloin tahansa. On kuitenkin huomattava, että termi "todennäköisin tila" on jokseenkin epäselvä. Kun todennäköisin tila on kaikkein todennäköisesti oikein tietyssä kohdassa, sekvenssi erikseen todennäköinen todetaan ei todennäköisesti todennäköisin sekvenssi. Tämä johtuu siitä, että todennäköisyydet kunkin kohdan lasketaan toisistaan ​​riippumatta. Niissä ei oteta huomioon siirtymisen todennäköisyydet valtioiden välillä, ja se on siten mahdollista saada valtiot kahdessa hetket, jotka ovat molemmat todennäköisin kyseisissä ajankohtina mutta joilla on hyvin vähän todennäköisyys esiintyvät yhdessä, eli. Todennäköisin sekvenssi valtioiden että tuotettu havainto-sekvenssi löytyy käyttämällä Viterbi-algoritmia.

Esimerkki

Tämä esimerkki perustaksi otetaan sateenvarjo maailman Russell & amp; Norvig 2010 Luku 15 s. 566, jossa haluaisimme päätellä sään havainnon miehen joko kuljettaa liittyykö niihin sateenvarjo. Oletamme kaksi mahdollista tilaa varten sää: 1 = sade, valtio 2 = ei sadetta. Oletamme, että sää on 70% mahdollisuus pysyä samana joka päivä ja 30% mahdollisuus muuttumassa. Siirtymätodennäköisyydet ovat sitten:

Oletamme myös kunkin valtion tuottaa 2 tapahtumaa: tapahtuma 1 = sateenvarjo, tapahtuma 2 = ei sateenvarjo. Ehdollinen todennäköisyydet nämä esiintyvät kunkin valtion annetaan todennäköisyys matriisi:

Sitten noudata seuraavia tapahtumasarja: {sateenvarjo, sateenvarjo, ei sateenvarjo, sateenvarjo, sateenvarjo} jota edustaa meidän laskelmien:

Huomaa, että eroaa muista, koska "ei sateenvarjo" havainto.

Laskettaessa eteenpäin todennäköisyydet aloitamme:

joka on meidän ennen tilavektori osoittaa, että emme tiedä joissa todetaan sää on ennen havaintomme. Vaikka tilavektori tulee antaa rivivektorin, käytämme transpoosi matriisin jotta laskelmat alla on helpompi lukea. Meidän laskelmat sitten kirjoittaa muotoon:

sijasta:

Huomaa, että muunnosmatriisi on myös osaksi, mutta esimerkissä transpoosi on yhtä suuri kuin alkuperäisen matriisin. Näiden laskelmien ja normalisoida tulokset säädetään:

Sillä taaksepäin todennäköisyydet aloitamme:

Olemme sitten voi laskea:

Lopuksi, me laskea tasoitettu todennäköisyys arvot. Nämä tulos myös on mitoitettu niin, että sen merkintöjä summa on 1, koska emme mittakaavassa taaksepäin todennäköisyydet n löydetty aikaisemmin. Taaksepäin todennäköisyys vektorit edellä siten itse asiassa edustavat todennäköisyyttä kunkin valtion hetkellä t annetaan tulevaisuudessa huomautukset. Koska nämä vektorit ovat suhteessa todelliseen taaksepäin todennäköisyydet, tulos on skaalattava lisäaikaa.

Huomaa, että arvo on sama, ja joka on yhtä suuri kuin. Tästä seuraa luonnollisesti koska molemmat ja aluksi yhtenäinen prioritodennäköisyydet yli ensimmäisen ja viimeisen valtion vektorit ja ottaa huomioon kaikki huomautukset. Kuitenkin vain on sama kuin silloin, kun alunperin tilavektorille edustaa yhtenäinen ennen. Kun tämä ei ole syytä yhdistää alkuperäiseen tilavektorin löytää todennäköisin alkutilaan. Olemme siis todeta, että eteenpäin todennäköisyydet itse riittävät laskea todennäköisin lopullinen tila. Vastaavasti taaksepäin todennäköisyydet voidaan yhdistää alkuperäiseen tilavektorin tarjota todennäköisin alkutilaan antanut huomautukset. Eteenpäin ja taaksepäin todennäköisyydet täytyy vain yhdistää päätellä todennäköisin valtioiden välillä alun ja lopun pistettä.

Laskelmat Edellä paljastavat, että todennäköisin sää valtio joka päivä paitsi kolmas oli "sade." Ne kertovat enemmän kuin tämä, mutta koska ne nyt tarjota tapa määrittää todennäköisyydet kunkin valtion eri aikoina. Ehkä tärkeintä, meidän arvo määrällisesti tietomme tilavektorin lopussa havainto järjestyksessä. Voimme sitten käyttää tätä ennustaa todennäköisyys eri sää valtiot huomenna sekä todennäköisyys tarkkailemalla sateenvarjo.

Suorituskyky

Brute-force menettelyn ratkaisu tähän ongelmaan on tuottaa kaikki mahdolliset valtion sekvenssit ja laskemalla yhteinen todennäköisyys kunkin valtion sekvenssin havaittiin useita tapahtumia. Tämä lähestymistapa on aikavaativuus, jossa on pituus sekvenssit ja on symbolien lukumäärä valtion aakkoset. Tämä on hankala realistisia ongelmia, koska useita mahdollisia piilevän solmun sekvenssit tyypillisesti on erittäin korkea. Kuitenkin, eteen-taakse algoritmin on aikakompleksisuus.

Parannus yleistä eteen-taakse algoritmi, jota kutsutaan saari algoritmi, kaupat pienempi muistin käyttöä pidempään käyntiaika, ottaa aikaa ja muistia. Tietokoneella, jossa rajoittamaton määrä prosessorit, tämä voidaan vähentää koko ajan, mutta silti ottaa muistiin.

Lisäksi algoritmeja on kehitetty laskea tehokkaasti kautta online tasoitusta kuten kiinteän viive tasoitus algoritmi Russell & amp; Norvig 2010 Kuva 15.6 s. 580.

Pseudokoodilla

Python esimerkki

Koska HMM edustettuina Python:

Voimme kirjoittaa täytäntöönpanoa näin:

Funktio ottaa seuraavat väitteet: on havainto-, esimerkiksi ; on joukko piilotettu valtioissa; on alku todennäköisyys; ovat siirtymätodennäköisyydet; ja ovat päästöjen todennäköisyyksiä.

Yksinkertaisuuden koodia, oletamme, että havainto sekvenssi on ei-tyhjä ja että ja on määritelty kaikkia valtioita i, j.

Vuonna käynnissä esimerkissä, eteen-taakse algoritmia käytetään seuraavasti:

  0   0
Edellinen artikkeli New Jersey Performing Arts Center
Seuraava artikkeli Jerry Tyke

Aiheeseen Liittyvät Artikkelit

Kommentit - 0

Ei kommentteja

Lisääkommentti

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Merkkiä jäljellä: 3000
captcha