Tillidsudbredelsesalgoritme

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 21. juli 2022; checks kræver 3 redigeringer .

Trosudbredelsesalgoritme , tillidsudbredelsesalgoritme , også sum-produktalgoritme , er en  marginaliseringsalgoritme , der bruger tovejsmeddelelser, der videresender en graf , der bruges til at konkludere om grafiske probabilistiske modeller (såsom Bayesianske og Markov-netværk ). Foreslået af J. Pearl i 1982.

Udtalelse af problemet

Overvej en funktion:

, hvor

For at få sandsynligheden skal du normalisere den:

Følgende opgaver overvejes:

  1. Normaliseringsopgave : _
finde
  1. Marginaliseringens opgave :
finde
  1. Normaliseret marginaliseringsproblem
finde

Alle disse problemer er NP-komplette , så deres worst case kompleksitet stiger eksponentielt. Nogle specielle tilfælde kan dog løses hurtigere, hvilket er hvad denne algoritme gør .

Grafstruktur

Grafen , som algoritmen bruger, består af hjørner svarende til variable og knudepunkter svarende til funktioner. Funktioner er forbundet med variabler, som de afhænger af.

Eksempel

For eksempel funktioner

svarer til følgende graf:

Besked passerer

To typer beskeder sendes i grafen: fra funktioner til variable og fra variable til funktioner.

Fra variabel til funktion :

(her  er det sæt af hjørner, der støder op til i)


Fra funktion til variabel :

I dette tilfælde antages det tomme produkt at være lig med én. Ud fra disse formler kan det ses, at hvis et toppunkt kun har ét nabopunkt, så kan dets (vertex) besked beregnes uden at kende de indkommende beskeder.

Algoritme

Der er to tilgange, afhængigt af karakteren af ​​den resulterende graf.

Fremgangsmåde 1

Lad os antage, at grafen er et træ . Startende fra bladene vil vi gradvist omgå alle hjørnerne og beregne meddelelser (i dette tilfælde gælder standardreglen for meddelelsesoverførsel: en meddelelse kan kun transmitteres, hvis den kan konstrueres fuldstændigt).

Derefter, i et antal trin svarende til diameteren af ​​grafen , vil algoritmen afsluttes.

Fremgangsmåde 2

Hvis grafen ikke er et træ , så kan du starte med at få alle variable til at sende besked 1, og så ændre den når beskeder fra funktioner når dem.

Sådan en algoritme fungerer generelt forkert og udfører en masse unødvendigt arbejde, men den er stadig nyttig i praksis.

Beregning af marginer

Når distributionen af ​​beskeder er afsluttet, beregnes marginerne efter følgende formel:

On-the-fly normalisering

Hvis du kun skal beregne normaliserede marginaler ( reelle sandsynligheder ), så kan du normalisere beskeder fra variable til funktioner på hvert trin:

,

hvor er valgt så at

Matematisk begrundelse af algoritmen

Fra en matematisk synsvinkel gennedbryder algoritmen den oprindelige dekomponering:

ind i arbejdet:

,

hvor svarer til funktionsknuder,  og til variable knudepunkter.

I første omgang, før beskeder og

Hver gang en besked kommer fra funktionen til variablen og genberegnes:

,

Det er indlysende, at det samlede produkt ikke ændrer sig fra dette, og ved slutningen af ​​transmissionen af ​​meddelelser vil det blive marginalt .

Links

S. Nikolenko. Probabilistisk læringskursus