Luonto | Algoritmi |
---|---|
Keksijä | Judea Pearl |
Keksintöpäivä | 1982 |
Kaava |
Leviäminen uskomus (Belief eteneminen tai BP Englanti), joka tunnetaan myös sanoman lähetys summa-tuote , on algoritmi viesti kulkee tehdä päätelmiä siitä graafinen malleja , kuten Bayes-verkkojen ja Markovin satunnainen aloilla . Se laskee kunkin "havaitsemattoman" solmun marginaalijakauman , joka on ehdollistettu havaituille solmuille. Uskomusten levittämistä käytetään yleisesti tekoälyssä ja informaatioteoriassa, ja sen on empiirisesti osoitettu onnistuneen monissa sovelluksissa, mukaan lukien LDPC- koodien tai turbokoodien dekoodaus , vapaan energian lähentäminen ja tyydyttävyysmallit .
Tämän algoritmin ehdotti ensimmäisen kerran Judea Pearl , vuonna 1982. Algoritmi muotoiltiin alun perin puista ja laajennettiin sitten suuntautuneisiin puihin. Sittemmin se on osoittautunut hyödylliseksi likimääräisenä algoritmina yleisemmissä kaavioissa.
Jos X = { X i } on joukko erillisiä satunnaisia muuttujia, joilla on yhteinen todennäköisyyden jakauma p , reunajakauma yksittäisen elementin X i on yksinkertaisesti summa p yli kaikki muut muuttujat:
Tämä laskelma muuttuu kuitenkin nopeasti kohtuuttomaksi: jos binäärisiä muuttujia on 100, lasketaan yhteen 2 99 ≈ 6,338 × 10 29 mahdolliset arvot. Puun rakennetta hyödyntämällä vakaumusten leviäminen mahdollistaa marginaalien laskemisen paljon tehokkaammin.
Erilaisia kaaviotyyppejä (erityisesti Bayesin verkot ja Markov-kentät ) varten on olemassa erilaisia variantteja vakaumuksen etenemisalgoritmista . Kuvailemme tässä muunnosta, joka toimii tekijäkaaviossa. Faktorointikaavio on kahdenvälinen kaavio, joka sisältää muuttujia V ja tekijöitä F vastaavat solmut , linkkien kanssa muuttujien ja tekijöiden välillä, joissa ne esiintyvät. Voimme sitten kirjoittaa yhteisen massafunktion:
jossa x on vektori naapurisolmuilta tekijän solmun . Mikä tahansa Bayesin verkon tai Markovin kenttä voidaan esittää tekijäkaaviona.
Algoritmi toimii "välittämällä" reaaliarvoisia toimintoja, joita kutsutaan viesteiksi piilotettujen solmujen välisten linkkien varrella. Tarkemmin sanottuna, jos v on muuttuja solmu ja a on tekijä solmu, joka on kytketty kaavioon v , v : n sanat v : lle a (merkitään ): llä ja a: sta v: hen ( ) ovat reaaliarvoisia funktioita, joiden toimialue on Dom ( v ): joukko arvoja, jotka voidaan ottaa v: ään liittyvällä satunnaismuuttujalla . Nämä viestit sisältävät "vaikutteet", joita yksi muuttuja toiselle antaa. Viestit lasketaan eri tavalla riippuen siitä, onko viesti vastaanottava solmu muuttuva solmu vai tekijäsolmu. Samat merkinnät:
Kuten edellisestä kaavasta käy ilmi, täydellinen marginaalisuus supistuu siten yksinkertaisempien termien summaksi kuin koko yhteisjakelussa esiintyvät. Tästä syystä sitä kutsutaan summa-tuotealgoritmiksi.
Tyypillisessä käytössä kukin viesti päivitetään iteratiivisesti naapuriviestien edellisestä arvosta. Viestien päivittäminen voidaan ajoittaa eri tavoin. Siinä tapauksessa, että kaavio on puu, optimaalinen suunnittelu mahdollistaa konvergenssin saavuttamisen kunkin viestin laskemisen jälkeen vain kerran (katso seuraava osa). Kun kaaviossa on jaksoja, tällaista optimaalista aikataulua ei ole, ja tyypillinen valinta on päivittää kaikki viestit samanaikaisesti jokaisella iteraatiolla.
Konvergenssin aikana (jos jälkimmäinen tapahtuu) estimaatti kunkin solmun marginaalisesta jakaumasta on verrannollinen vierekkäisten tekijöiden kaikkien sanomien tulokseen (vain normalisointivakio puuttuu):
Samoin arvio yksittäiseen tekijään kuuluvien muuttujien joukon marginaalisesta jakaumasta on verrannollinen tekijän tulokseen vierekkäisten muuttujien sanomien kanssa:
Siinä tapauksessa, että käyräkerroin on asyklinen (eli puu tai metsä), nämä arvioidut marginaalit yhtyvät todellisiin marginaaleihin rajallisessa määrässä iteraatioita. Mikä voidaan todistaa induktiolla .
Siinä tapauksessa, että kaavio on puu , vakaumusten etenemisalgoritmi mahdollistaa tarkkojen marginaalien saamisen. Lisäksi suunnittelemalla viestien päivitykset oikein, se päättyy 2 vaiheeseen. Tämä optimaalinen suunnittelu voidaan kuvata seuraavasti. Aluksi kaavio on suunnattu nimeämällä solmu juureksi ; mitä tahansa muuta vain yhteen toiseen solmuun liitettyä solmua kutsutaan lehdeksi .
Ensimmäisen vaiheen aikana viestit etenevät sisäänpäin: lehdistä alkaen kukin solmu levittää sanomaa yhden linkin kautta juurelle. Puun rakenne varmistaa, että on mahdollista saada viestejä kaikista vierekkäisistä solmuista ennen oman viestin välittämistä. Tämä jatkuu, kunnes juuri on saanut viestit kaikista vierekkäisistä solmuistaan.
Toinen vaihe on lähettää viestit takaisin ulkopuolelle: juuresta alkaen viestit lähetetään vastakkaiseen suuntaan. Algoritmi on valmis, kun kaikki lehdet ovat saaneet viestinsä.
Kummallista kyllä, vaikka se oli alun perin suunniteltu asyklisille kaavioille. On havaittu, että vakaumuksen etenemisalgoritmia voidaan käyttää mihin tahansa kuvaajaan. Algoritmia kutsutaan silloin joskus "silmukan" uskomuksen etenemiseksi, koska kaaviot sisältävät yleensä syklejä tai silmukoita. Viestien alustus ja aikataulu päivityksiä varten on muutettava hieman (verrattuna puiden tapaukseen), koska nämä kaaviot eivät välttämättä sisällä lehtiä. Sen sijaan alustetaan kaikki muuttuvan solmun viestit arvoon 1, minkä jälkeen käytetään yllä olevaa sanomäärittelyä. Kaikki viestit päivitetään jokaisella iteraatiolla (vaikka tunnettujen lehtien tai alipuiden viestit eivät enää tarvitse päivityksiä riittävän määrän iteraatioiden jälkeen). On helppo osoittaa, että puussa tämän muokkauksen tuottamat sanomat yhtyvät edellä kuvattuihin viesteihin useiden iteraatioiden jälkeen, jotka ovat yhtä suuret kuin puun halkaisija .
Tarkkoja olosuhteita, joissa "silmukan" vakaumuksen eteneminen lähentyy, ei vielä tunneta. Tiedetään, että yhden silmukan sisältävissä kaavioissa se lähentyy useimmissa tapauksissa, mutta saadut todennäköisyydet voivat olla virheellisiä. Useat ehdot ovat riittäviä (mutta eivät välttämättömiä) yhden kiinteän lähentymispisteen olemassaolon varmistamiseksi. On kaavioita, jotka eivät lähene toisiaan tai edes värähtelevät useiden tilojen välillä useiden iteraatioiden jälkeen. EXIT: n kaltaiset tekniikat voivat tarjota likimääräisen visualisoinnin algoritmin etenemisestä ja siten karkean arvion lähentymisestä.
Marginaalien laskemiseksi on muita likimääräisiä menetelmiä, mukaan lukien variaatiomenetelmät ja Monte Carlon menetelmät .
Tarkkaa marginaalien laskentamenetelmää kutsutaan yleisesti tapaukseksi risteyspuun algoritmiksi , joka on yksinkertaisesti uskomusten leviämistä kaavion muokatun version yli, joka taataan olevan puu. Perusperiaate on poistaa syklit ryhmittelemällä ne yhteen solmuun.
Samanlaista algoritmia kutsutaan yleisesti Viterbi-algoritmiksi , se on max-tuotteen tai min-sum-algoritmin erityistapaus maksimoinnin ongelman ratkaisemiseksi tai todennäköisin. Marginaalien laskemisen sijaan tavoitteena on löytää arvot, jotka maksimoivat kokonaisfunktion (ts. Todennäköisimmät arvot todennäköisyyskehyksessä), ja se voidaan määrittää käyttämällä max arg : a:
Algoritmi, joka ratkaisee tämän ongelman, on melkein identtinen uskomusten etenemisen kanssa, korvaamalla summat määritelmissä maksimilla.
Mielenkiintoista on, että päättelyongelmia , kuten marginalisointia ja optimointia, on NP-vaikea ratkaista tarkoissa ja jopa likimääräisissä tapauksissa (ainakin suhteellisen virheen vuoksi ) mille tahansa kuvaajalle. Tarkemmin sanottuna yllä määritelty marginalisointiongelma on # P-täydellinen ja maksimointiongelma on NP-täydellinen .
Muistin käyttöä uskomusten levittämisellä voidaan vähentää käyttämällä saaren algoritmia (edulliseen ajanhintaan).
Summatuotealgoritmi liittyy vapaan energian laskemiseen termodynamiikassa . Olkoon Z on partitiofunktio . Todennäköisyysjakauma
(huomioi samankaltaisuus tekijäkaavion kanssa) voidaan ajatella järjestelmän sisäisen energian mittana , joka lasketaan
Järjestelmän vapaa energia on silloin
Voidaan osoittaa, että summa-tuotealgoritmin konvergenssipisteet edustavat tällaisen järjestelmän vapaan energian minimitiloja. Samoin voidaan osoittaa, että iteratiivisen vakaumuksen etenemisalgoritmin kiinteä piste syklikäyrissä on myös kiinteä piste vapaan energian lähentämisestä.
Vakaumuksen etenemisalgoritmit esitetään tavallisesti yhtälöiden päivityksinä tekijäkaaviossa, joka sisältää viestejä muuttuvien solmujen ja niiden viereisten tekijäsolmujen välillä ja päinvastoin . Kaavion alueiden välisten viestien huomioon ottaminen on tapa yleistää vakaumuksen etenemisalgoritmi. On useita tapoja määrittää kaavion alueet, jotka voivat vaihtaa viestejä. Yksi menetelmä käyttää Kikuchin fyysisessä kirjallisuudessa esittämiä ideoita, ja se tunnetaan nimellä Kikuchi Cluster Variation Method.
Uskomusten etenemisalgoritmien suorituskyvyn parantaminen on mahdollista myös rikkomalla vihjeiden symmetria kenttäjakaumissa (sanomat). Tämä yleistys johtaa uuden tyyppiseen algoritmiin, jota kutsutaan etenemiskyselyksi, jonka on osoitettu olevan erittäin tehokas NP-täydellisiin ongelmiin, kuten tyydyttävyyteen ja kuvaajan väritykseen .
Klusterivariaatiomenetelmät ja etenemiskartoitus ovat kaksi erilaista parannusta uskomusten levittämiseen.
Gaussin uskonlisäys (PCG) on muunnelma uskonlisäysalgoritmista, kun taustalla olevat jakaumat ovat Gaussin . Ensimmäiset tämän erityismallin analysoijat olivat Weiss ja Freeman.
PCG-algoritmi ratkaisee seuraavan marginaalisen laskutehtävän:
missä Z on normalisointivakio, A on symmetrinen positiivinen määritelty matriisi (kovarianssimatriisin käänteinen eli matriisin tarkkuus) ja b on muutosvektori.
Vastaavasti voidaan osoittaa, että Gaussin mallia käytettäessä marginalisaatio-ongelman ratkaisu on sama kuin tehtäväongelman takimmainen maksimi :
Tämä ongelma vastaa seuraavaa asteen yhtälön minimointiongelmaa:
Se vastaa myös lineaarista yhtälöjärjestelmää
PCG-algoritmin lähentymistä on helpompi analysoida (suhteessa yleiseen tuomioiden ohjelmoinnin tapaukseen), ja on olemassa kaksi tunnettua riittävää lähentymisehtoa. Ensimmäisen muotoilivat Weiss et ai. vuonna 2000: kun matriisin A tiedot ovat diagonaalisesti hallitsevia . Toisen lähentymisehdon muotoilivat Johnson et ai. vuonna 2006, jolloin matriisin spektrisäde tyydyttää
missä D = lävistäjä (A).
PCG-algoritmi on liittynyt lineaariseen algebraan ja on osoitettu, että PCG-algoritmia voidaan pitää iteratiivisena algoritmina lineaarisen yhtälöjärjestelmän Ax = b ratkaisemiseksi, jossa A on informaatiomatriisi ja b on muutosvektori. Empiirisesti PCG-algoritmin havaitaan lähestyvän nopeammin kuin klassiset iteratiiviset menetelmät, kuten Jacobi-menetelmä, Gauss-Seidel- menetelmä tai peräkkäinen ylirelaxointimenetelmä ja muut. Lisäksi PCG-algoritmin on osoitettu olevan immuuni ennakkolain konjugaattigradienttimenetelmän numeerisille ongelmille.