Bayesiansk programmering
av |
---|
en serie om |
Bayesiansk statistik |
Posterior = Sannolikhet × Tidigare ÷ Bevisbakgrund |
Modellbyggnad |
Posterior approximation |
Uppskattare |
Modellutvärdering |
Del av en serie om statistik |
Sannolikhetsteori |
---|
|
Bayesiansk programmering är en formalism och en metod för att ha en teknik för att specificera sannolikhetsmodeller och lösa problem när mindre än den nödvändiga informationen är tillgänglig.
Edwin T. Jaynes föreslog att sannolikhet kunde betraktas som ett alternativ och en förlängning av logiken för rationella resonemang med ofullständig och osäker information. I sin grundbok Probability Theory: The Logic of Science utvecklade han denna teori och föreslog vad han kallade "roboten", som inte var en fysisk anordning, utan en inferensmotor för att automatisera sannolikhetsresonemang - ett slags prolog för sannolikhet istället för logik . Bayesiansk programmering är en formell och konkret implementering av denna "robot".
Bayesiansk programmering kan också ses som en algebraisk formalism för att specificera grafiska modeller som till exempel Bayesianska nätverk , dynamiska Bayesianska nätverk , Kalman-filter eller dolda Markov-modeller . Faktum är att Bayesiansk programmering är mer allmän än Bayesianska nätverk och har en uttryckskraft som motsvarar sannolikhetsfaktorgrafer .
Formalism
Ett Bayesianskt program är ett sätt att specificera en familj av sannolikhetsfördelningar.
Beståndsdelarna i ett Bayesianskt program presenteras nedan:
- Ett program är uppbyggt av en beskrivning och en fråga.
- En beskrivning konstrueras med hjälp av någon specifikation ( ) som ges av programmeraren och en identifierings- eller inlärningsprocess för parametrarna som inte är helt specificerade av specifikationen, med hjälp av en datamängd ( ) .
- En specifikation är uppbyggd av en uppsättning relevanta variabler, en sönderdelning och en uppsättning former.
- Blanketter är antingen parametriska formulär eller frågor till andra Bayesianska program.
- En fråga anger vilken sannolikhetsfördelning som ska beräknas.
Beskrivning
Syftet med en beskrivning är att specificera en effektiv metod för att beräkna en gemensam sannolikhetsfördelning på en uppsättning variabler givet en uppsättning experimentella data och viss specifikation . Denna gemensamma fördelning betecknas som: .
För att specificera förkunskaper måste programmeraren göra följande:
- Definiera uppsättningen av relevanta variabler där gemensam fördelning definieras.
- Bryt upp den gemensamma fördelningen (bryt upp den i relevanta oberoende eller villkorade sannolikheter ).
- Definiera formerna för var och en av fördelningarna (t.ex. en av listan med sannolikhetsfördelningar för varje variabel ).
Sönderfall
Givet en partition av innehållande delmängder, variabler definieras , var och en motsvarar en av dessa delmängder. Varje variabel erhålls som konjunktionen av variablerna som hör till delmängden. Rekursiv tillämpning av Bayes teorem leder till:
om villkorad oberoende tillåter sedan ytterligare förenklingar. En villkorlig oberoendehypotes för variabel definieras genom att välja någon variabel bland variablerna som förekommer i konjunktionen märkning som konjunktionen av dessa valda variabler och inställning:
Vi får då:
En sådan förenkling av den gemensamma distributionen som en produkt av enklare distributioner kallas en nedbrytning, härledd med hjälp av kedjeregeln .
Detta säkerställer att varje variabel visas högst en gång till vänster om en konditioneringsstapel, vilket är det nödvändiga och tillräckliga villkoret för att skriva matematiskt giltiga uppdelningar. [ citat behövs ]
Blanketter
Varje distribution visas i produkten associeras sedan med antingen en parametrisk form (dvs. en funktion eller en fråga till ett annat Bayesiskt program .
När det är en form i allmänhet är en vektor av parametrar som kan bero på eller eller båda. Inlärning sker när några av dessa parametrar beräknas med hjälp av datamängden .
En viktig egenskap hos Bayesiansk programmering är denna förmåga att använda frågor till andra Bayesianska program som komponenter i definitionen av ett nytt Bayesianskt program. erhålls genom vissa slutsatser gjorda av en annan Bayesian program definierat av specifikationerna och data . Detta liknar att anropa en subrutin i klassisk programmering och ger ett enkelt sätt att bygga hierarkiska modeller .
Fråga
Givet en beskrivning (dvs ), erhålls en fråga genom att partitionera i tre uppsättningar: de sökta variablerna, de kända variablerna och de fria variablerna.
De 3 variablerna , och definieras som konjunktionen av variablerna som hör till dessa uppsättningar.
En fråga definieras som uppsättningen av distributioner:
gjord av många "instansierade frågor" som kardinal för , varje instansierad fråga är fördelningen:
Slutledning
Givet den gemensamma fördelningen , är det alltid möjligt att beräkna alla möjliga frågor med hjälp av följande allmänna slutledning:
där den första jämlikheten är resultatet av marginaliseringsregeln, den andra är resultatet av Bayes teorem och den tredje motsvarar en andra tillämpning av marginalisering. Nämnaren verkar vara en normaliseringsterm och kan ersättas med en konstant .
Teoretiskt tillåter detta att lösa alla Bayesianska slutledningsproblem. I praktiken blir dock kostnaden för att beräkna uttömmande och exakt är för stor i nästan alla fall.
Om vi ersätter fogfördelningen med dess nedbrytning får vi:
vilket vanligtvis är ett mycket enklare uttryck att beräkna, eftersom problemets dimensionalitet reduceras avsevärt genom nedbrytningen till en produkt av lägre dimensionsfördelningar.
Exempel
Bayesiansk skräppostdetektering
Syftet med Bayesiansk skräppostfiltrering är att eliminera skräppost.
Problemet är väldigt lätt att formulera. E-post ska klassificeras i en av två kategorier: icke-spam eller spam. Den enda tillgängliga informationen för att klassificera e-postmeddelandena är deras innehåll: en uppsättning ord. Att använda dessa ord utan att ta hänsyn till ordningen kallas vanligtvis för en påse med ord .
Klassificeraren bör dessutom kunna anpassa sig till sin användare och lära sig av erfarenhet. Utgående från en initial standardinställning bör klassificeraren ändra sina interna parametrar när användaren inte håller med sitt eget beslut. Det kommer därför att anpassa sig till användarens kriterier för att skilja mellan icke-spam och spam. Det kommer att förbättra sina resultat när det möter alltmer hemligstämplade e-postmeddelanden.
Variabler
Variablerna som krävs för att skriva detta program är följande:
- : en binär variabel, falsk om e-postmeddelandet inte är skräppost och sant annars
- : binära variabler . är sant om det ordet i ordboken finns i texten.
Dessa binära variabler summerar all information om ett e-postmeddelande.
Sönderfall
Utgående från den gemensamma fördelningen och med rekursiv tillämpning av Bayes sats får vi:
Detta är ett exakt matematiskt uttryck.
Det kan drastiskt förenklas genom att anta att sannolikheten för att ett ord ska visas som känner till textens natur (spam eller inte) är oberoende av utseendet på de andra orden. Detta är det naiva Bayes- antagandet och detta gör detta spamfilter till en naiv Bayes- modell.
Till exempel kan programmeraren anta att:
för att slutligen få:
Denna typ av antagande är känt som det naiva Bayes antagande . Det är "naivt" i den meningen att oberoendet mellan ord uppenbarligen inte är helt sant. Till exempel försummar den helt att utseendet av ordpar kan vara mer betydelsefullt än isolerade utseenden. Programmeraren kan dock anta denna hypotes och kan utveckla modellen och de tillhörande slutsatserna för att testa hur tillförlitlig och effektiv den är.
Parametriska former
För att kunna beräkna den gemensamma distributionen måste programmeraren nu specificera -distributionerna som visas i nedbrytningen:
- är en tidigare definierad, till exempel av
- Var och en av de -formerna kan specificeras med hjälp av Laplace-regeln för succession (detta är en pseudoräkning -baserad utjämningsteknik för att motverka nollfrekvensproblemet med ord som aldrig setts förut):
där står för antalet förekomster av det ordet i icke-spam-e-postmeddelanden och står för det totala antalet icke-spam-e-postmeddelanden. På liknande sätt för antalet förekomster av det ordet i spam-e-postmeddelanden och står för det totala antalet spam-e-postmeddelanden.
Identifiering
N -formerna ännu inte helt specificerade eftersom parametrar , , och har inga värden ännu.
Identifieringen av dessa parametrar kan göras antingen genom att batchbearbeta en serie sekretessbelagda e-postmeddelanden eller genom en inkrementell uppdatering av parametrarna med användning av användarens klassificeringar av e-postmeddelandena när de anländer.
Båda metoderna skulle kunna kombineras: systemet kan börja med initiala standardvärden för dessa parametrar från en generisk databas, sedan anpassar viss inkrementell inlärning klassificeraren till varje enskild användare.
Fråga
Frågan som ställs till programmet är: "Vad är sannolikheten för att en given text är spam när man vet vilka ord som förekommer och inte förekommer i denna text?" Det kan formaliseras genom:
som kan beräknas enligt följande:
Nämnaren verkar vara en normaliseringskonstant . Det är inte nödvändigt att beräkna det för att avgöra om vi har att göra med spam. Ett enkelt knep är till exempel att beräkna förhållandet:
Den här beräkningen är snabbare och enklare eftersom den bara kräver -produkter.
Bayesianskt program
Det Bayesianska spamfilterprogrammet är helt definierat av:
Bayesianska filter (ofta kallade Rekursiv Bayesiansk uppskattning ) är generiska probabilistiska modeller för tidsutvecklande processer. Många modeller är speciella exempel på detta generiska tillvägagångssätt, till exempel: Kalman-filtret eller Hidden Markov-modellen (HMM).
Variabler
- Variabler är en tidsserie av tillståndsvariabler som anses vara på en tidshorisont som sträcker sig från till .
- Variabler är en tidsserie av observationsvariabler på samma horisont.
Sönderfall
Nedbrytningen är baserad på:
- på kallad systemmodell, övergångsmodell eller dynamisk modell, som formaliserar övergången från tillstånd vid tidpunkten till tillståndet vid tidpunkten ;
- på kallad observationsmodellen, som uttrycker vad som kan observeras vid tidpunkten när systemet är i tillståndet ;
- på ett initialt tillstånd vid tidpunkten : .
Parametriska former
De parametriska formerna är inte begränsade och olika val leder till olika välkända modeller: se Kalman-filter och Hidden Markov-modeller nedan.
Fråga
Den typiska frågan för sådana modeller är : vad är sannolikhetsfördelningen för tillståndet vid tidpunkten när man känner till observationerna från ögonblicket till ?
Det vanligaste fallet är Bayesisk filtrering där som söker efter det nuvarande tillståndet, med kännedom om tidigare observationer.
Det är dock också möjligt att extrapolera ett framtida tillstånd från tidigare observationer, eller att göra utjämning ( , för att återställa en tidigare tillstånd från observationer gjorda antingen före eller efter det ögonblicket.
Mer komplicerade frågor kan också ställas som visas nedan i HMM-avsnittet.
Bayesiska filter har en mycket intressant rekursiv egenskap, vilket i hög grad bidrar till deras attraktivitet. kan helt enkelt beräknas från med följande formel:
En annan intressant synpunkt för denna ekvation är att överväga att det finns två faser: en prediktionsfas och en uppskattningsfas:
- Under prediktionsfasen förutsägs tillståndet med hjälp av den dynamiska modellen och uppskattningen av tillståndet vid föregående ögonblick:
- Under uppskattningsfasen bekräftas eller ogiltigförklaras förutsägelsen med den senaste observationen:
Bayesianskt program
Kalman filter
De mycket välkända Kalman-filtren är ett specialfall av Bayesian-filter.
De definieras av följande Bayesianska program:
- Variabler är kontinuerliga.
- Övergångsmodellen och observationsmodellen är båda specificerade med gaussiska lagar med medel som är linjära funktioner av konditioneringsvariablerna.
Med dessa hypoteser och genom att använda den rekursiva formeln är det möjligt att lösa slutledningsproblemet analytiskt för att svara på det vanliga fråga. Detta leder till en extremt effektiv algoritm, som förklarar populariteten för Kalman-filter och antalet vardagliga applikationer.
När det inte finns några uppenbara linjära övergångs- och observationsmodeller är det fortfarande ofta möjligt, med hjälp av en första ordningens Taylors expansion, att behandla dessa modeller som lokalt linjära. Denna generalisering kallas vanligtvis det utökade Kalman-filtret .
Dold Markov-modell
Hidden Markov-modeller (HMM) är en annan mycket populär specialisering av Bayesianska filter.
De definieras av följande Bayesianska program:
- Variabler behandlas som diskreta.
- Övergångsmodellen och observationsmodellen är
båda specificerade med hjälp av sannolikhetsmatriser.
- Den vanligaste frågan till HMM är:
Vilken är den mest sannolika serien av tillstånd som leder till det nuvarande tillståndet, med kännedom om tidigare observationer?
Denna speciella fråga kan besvaras med en specifik och mycket effektiv algoritm som kallas Viterbi-algoritmen .
Baum –Welch-algoritmen har utvecklats för HMM.
Ansökningar
Akademiska ansökningar
Sedan 2000 har Bayesiansk programmering använts för att utveckla både robotapplikationer och biovetenskapliga modeller.
Robotik
Inom robotteknik tillämpades bayesiansk programmering på autonom robotik , robot- CAD- system, avancerade förarassistanssystem , robotarmkontroll , mobil robotik , människa-robot-interaktion, människa-fordon-interaktion (bayesianska autonoma förarmodeller), programmering och utbildning av videospelsavatarer och strategispel i realtid (AI).
Biovetenskap
Inom biovetenskapen användes bayesiansk programmering i synen för att rekonstruera form från rörelse, för att modellera visuo-vestibulär interaktion och för att studera saccadiska ögonrörelser; i taluppfattning och kontroll för att studera tidig talinlärning och uppkomsten av artikulatoriska-akustiska system; och att modellera handstilsuppfattning och kontroll.
Mönsterigenkänning
Bayesiansk programinlärning har potentiella tillämpningar röstigenkänning och syntes, bildigenkänning och naturlig språkbehandling. Den använder sig av principerna om kompositionalitet (att bygga abstrakta representationer från delar), kausalitet (bygga komplexitet från delar) och lära sig att lära (använda tidigare erkända begrepp för att underlätta skapandet av nya begrepp).
Möjlighetsteorier
Jämförelsen mellan probabilistiska tillvägagångssätt (inte bara bayesiansk programmering) och möjlighetsteorier fortsätter att diskuteras.
Möjlighetsteorier som till exempel fuzzy sets , fuzzy logic och möjlighetsteori är alternativ till sannolikhet för att modellera osäkerhet. De hävdar att sannolikheten är otillräcklig eller obekväm för att modellera vissa aspekter av ofullständig/osäker kunskap.
Sannolikhetsförsvaret baseras huvudsakligen på Cox' teorem , som utgår från fyra postulat om rationella resonemang i närvaro av osäkerhet. Det visar att det enda matematiska ramverket som uppfyller dessa postulat är sannolikhetsteori. Argumentet är att alla andra metoder än sannolikhet med nödvändighet kränker ett av dessa postulat och värdet av den intrånget.
Probabilistisk programmering
Syftet med probabilistisk programmering är att förena omfattningen av klassiska programmeringsspråk med probabilistisk modellering (särskilt bayesianska nätverk ) för att hantera osäkerhet samtidigt som man drar nytta av programmeringsspråkens uttrycksförmåga för att koda komplexitet.
Utökade klassiska programmeringsspråk inkluderar logiska språk som föreslagits i Probabilistic Horn Abduction , Independent Choice Logic, PRISM och ProbLog som föreslår en förlängning av Prolog.
Det kan också vara förlängningar av funktionella programmeringsspråk (i huvudsak Lisp och Scheme ) som IBAL eller CHURCH. De underliggande programmeringsspråken kan vara objektorienterade som i BLOG och FACTORIE eller fler standard som i CES och FIGARO.
Syftet med Bayesiansk programmering är annorlunda. Jaynes föreskrift om "sannolikhet som logik" hävdar att sannolikhet är en förlängning av och ett alternativ till logik över vilken en komplett teori om rationalitet, beräkning och programmering kan byggas om. Bayesiansk programmering försöker ersätta klassiska språk med ett programmeringssätt baserat på sannolikhet som tar hänsyn till ofullständighet och osäkerhet .
Den exakta jämförelsen mellan semantiken och uttryckskraften hos Bayesiansk och probabilistisk programmering är en öppen fråga.
Se även
- Bayes regel
- Bayesiansk slutledning
- Bayesisk sannolikhet
- Bayesiansk skräppostfiltrering
- Trosutbredning
- Cox sats
- Förväntningsmaximeringsalgoritm
- Faktorgraf
- Grafisk modell
- Dold Markov-modell
- Judea Pearl
- Kalman filter
- Naiv Bayes klassificerare
- Pierre-Simon de Laplace
- Probabilistisk logik
- Probabilistiskt programmeringsspråk
- Subjektiv logik
Vidare läsning
- Kamel Mekhnacha (2013). Bayesiansk programmering . Chapman och Hall/CRC. doi : 10.1201/b16111 . ISBN 978-1-4398-8032-6 .
externa länkar
- En kompletterande sida till den Bayesianska programmeringsboken där man kan ladda ner ProBT en inferensmotor dedikerad till Bayesiansk programmering.
- Sajten Bayesian-programming.org Arkiverad 2013-11-23 på archive.today för att främja Bayesiansk programmering med detaljerad information och många publikationer.