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
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, logvarEksempel 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)