variationel inferens

En metode til at tilnærme en kompleks posterior-fordeling i bayesiansk statistik og maskinlæring ved at optimere en enklere fordeling.

Kort fortalt

Variationel inferens er en teknik til at finde den bedste enkle sandsynlighedsfordeling, der minder mest muligt om en kompliceret fordeling, f.eks. i bayesianske neurale netværk.

Kategori
teknik
Niveau
øvet

Betydninger

1
  1. 1

    En optimeringsbaseret tilgang til at tilnærme posterior-fordelingen i bayesianske modeller ved at minimere Kullback-Leibler-divergensen mellem en genkendelsesmodel q(z) og den sande posterior p(z|x).

    • Variationel inferens bruges til at træne VAE'er, hvor genkendelsesnetværket optimeres til at minimere ELBO-tabet.Kingma & Welling, Auto-Encoding Variational Bayes, 2013
    • En ulempe ved variationel inferens er, at den ofte undervurderer variansen i posterior-fordelingen (mode-seeking).

Hvornår bruges det

Bruges når eksakt inferens i bayesianske modeller er uoverkommelig, f.eks. i bayesianske neurale netværk, emne-modeller som LDA, og ved træning af generative modeller som VAEs.

Formel

ELBO = E_q[log p(x,z)] - E_q[log q(z)] = log p(x) - KL(q||p)

Kodeeksempel

import pyro
import pyro.distributions as dist
from pyro.infer import SVI, Trace_ELBO
from pyro.optim import Adam

def model(data):
    mu = pyro.sample("mu", dist.Normal(0, 10))
    sigma = pyro.sample("sigma", dist.HalfCauchy(1))
    with pyro.plate("data", len(data)):
        pyro.sample("obs", dist.Normal(mu, sigma), obs=data)

def guide(data):
    mu_loc = pyro.param("mu_loc", lambda: torch.tensor(0.0))
    mu_scale = pyro.param("mu_scale", lambda: torch.tensor(1.0), constraint=dist.constraints.positive)
    pyro.sample("mu", dist.Normal(mu_loc, mu_scale))
    sigma_loc = pyro.param("sigma_loc", lambda: torch.tensor(1.0), constraint=dist.constraints.positive)
    pyro.sample("sigma", dist.HalfCauchy(sigma_loc))

svi = SVI(model, guide, Adam({"lr": 0.01}), Trace_ELBO())
for step in range(1000):
    svi.step(data)

Simpel variationel inferens i Pyro for at tilnærme posterior for middelværdi og standardafvigelse af normalfordelte data.

Oprindelse

Fra 'variation' (variation) og 'inferens' (slutning). Metoden stammer fra fysik og statistik, men blev udbredt i maskinlæring i 2000'erne.

Afledte ord

3

Kilder

2