β-VAE

forkortelse for Beta Variational Autoencoder

β-VAE er en variant af variational autoencoder (VAE), der introducerer en vægtningsparameter β for at kontrollere graden af disentanglement i den latente repræsentation.

Kort fortalt

En VAE med en justerbar knap (β) der gør at modellen lærer mere uafhængige og fortolkelige latente træk.

Kategori
model
Niveau
øvet

Betydninger

1
  1. 1

    En variational autoencoder med en modificeret nedre grænse (ELBO) der skalerer KL-divergensen med en faktor β, hvilket fremmer uafhængighed mellem latente variable.

    • β-VAE med β=4 opnåede betydeligt bedre disentanglement på dSprites-datasættet.Higgins et al., 2017

Hvornår bruges det

β-VAE bruges primært til at lære disentangled repræsentationer, fx i billedgenerering (som ansigter eller objekter) hvor man ønsker separate latente dimensioner for fx form, farve og størrelse.

Formel

L(θ, φ; x, z, β) = -E_{q_φ(z|x)}[log p_θ(x|z)] + β·KL(q_φ(z|x) || p(z))

Kodeeksempel

def beta_vae_loss(recon_x, x, mu, logvar, beta):
    BCE = F.binary_cross_entropy(recon_x, x.view(-1, 784), reduction='sum')
    KLD = -0.5 * torch.sum(1 + logvar - mu.pow(2) - logvar.exp())
    return BCE + beta * KLD

Eksempel på β-VAE-tabsfunktion i PyTorch; β styrer vægtningen af KL-divergensen.

Oprindelse

Begrebet kommer fra Higgins et al. (2017) hvor β opstår som en vægtning af KL-divergensen i VAE's tabelfunktion.

Kilder

1
  • β-VAE: Learning Basic Visual Concepts with a Constrained Variational Framework