CVAE

forkortelse for Conditional Variational Autoencoder

En CVAE er en variant af variational autoencoder (VAE), der betinger den latente repræsentation på en ekstra inputvariabel for at generere betingede uddata.

Kort fortalt

CVAE står for Conditional Variational Autoencoder – en generativ model, der lærer at generere data, der opfylder bestemte betingelser, f.eks. at generere et billede af en bestemt kategori.

Kategori
model
Niveau
øvet

Betydninger

1
  1. 1

    En generativ model, der udvider variational autoencoder (VAE) ved at betinge den latente repræsentation på en ekstra inputvariabel, så den kan generere data, der opfylder specifikke betingelser.

    • CVAE'en blev trænet til at generere håndskrevne cifre af en bestemt klasse ved at betinge på cifferets label.Sohn et al., 2015
    • Ved at betinge på en delvis observation kan CVAE bruges til dataimputation.Sohn et al., 2015

Hvornår bruges det

CVAE bruges i opgaver som billedgenerering med klassebetingelse, dataimputation og domænetilpasning. Den udvider VAE ved at inkludere betingelsesinformation i både encoder og decoder, hvilket gør det muligt at styre generationen.

Kodeeksempel

class CVAE(nn.Module):
    def __init__(self, input_dim, cond_dim, latent_dim):
        super().__init__()
        self.encoder = nn.Sequential(
            nn.Linear(input_dim + cond_dim, 256),
            nn.ReLU(),
            nn.Linear(256, latent_dim * 2)
        )
        self.decoder = nn.Sequential(
            nn.Linear(latent_dim + cond_dim, 256),
            nn.ReLU(),
            nn.Linear(256, input_dim)
        )
    def forward(self, x, c):
        xc = torch.cat([x, c], dim=-1)
        params = self.encoder(xc)
        mu, logvar = params.chunk(2, dim=-1)
        z = reparameterize(mu, logvar)
        zc = torch.cat([z, c], dim=-1)
        return self.decoder(zc), mu, logvar

Eksempel på en CVAE i PyTorch, hvor både encoder og decoder modtager betingelsesvektoren c.

Oprindelse

CVAE er en forkortelse for 'Conditional Variational Autoencoder', introduceret af Sohn et al. (2015) som en udvidelse af variational autoencoder (VAE) af Kingma og Welling (2014).

Kilder

2
  • Auto-Encoding Variational Bayes (Kingma & Welling, 2014)
  • Learning Structured Output Representation using Deep Conditional Generative Models (Sohn et al., 2015)