Deep Learning Academy · Lezione

Autoencoder variazionali e spazio latente

Generi nuovi dati campionando da una distribuzione appresa

Lezione 3 di 413 passaggi

Autoencoder variazionali e spazio latente è una lezione Deep Learning Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Deep Learning Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Deep Learning Academy include 4 lezioni in totale.

Oltre i codici semplici

Un variational autoencoder, o VAE, non memorizza un singolo codice fisso per ogni input. Impara invece uno spazio latente uniforme e organizzato dal quale è possibile effettuare il sampling.

Codificare in una distribuzione

L'encoder del VAE restituisce una media e una varianza invece di un singolo punto. Ogni input diventa una piccola nube di probabili codici latenti.

mu, logvar = encoder(x)

Effettuare il sampling dalla nube

Per ottenere un codice, si effettua il sampling da quella nube usando la media e la varianza. Il sampling aggiunge la casualità che rende lo spazio generativo.

Il reparameterization trick

Il sampling casuale blocca i gradienti, quindi il reparameterization trick sposta la casualità altrove. Ora è ancora possibile eseguire la backpropagation attraverso il campione.

std = torch.exp(0.5 * logvar)
z = mu + std * torch.randn_like(std)

Due loss, non una

Un VAE bilancia due obiettivi: la reconstruction loss per ricostruzioni accurate e un termine che modella lo spazio latente. Questi obiettivi sono in contrasto tra loro.

Il termine di divergenza KL

La seconda loss è la divergenza KL. Spinge ogni nube verso una normale standard, mantenendo lo spazio latente ordinato e continuo.

kl = -0.5 * torch.sum(1 + logvar - mu**2 - logvar.exp())

Uno spazio latente uniforme

Grazie al termine KL, codici vicini vengono decodificati in output simili. Questa uniformità consente di spostarsi tra i punti e ottenere risultati sensati. ✨

Generare dati completamente nuovi

Poiché lo spazio è organizzato, è possibile effettuare il sampling di nuovi codici da una distribuzione normale e decodificarli in campioni nuovi e mai osservati prima.

z = torch.randn(1, latent_dim)
new_sample = decoder(z)

Interpolare tra gli input

Si combinano due codici latenti e si decodifica la combinazione per trasformare un input in un altro. Questa interpolazione uniforme è una tecnica tipica dei VAE.

z = 0.5 * z_a + 0.5 * z_b

VAE vs autoencoder semplice

Un autoencoder semplice comprime; un VAE comprime e diventa generativo. È il termine KL aggiuntivo a rendere possibile il sampling di nuovi dati.

Regolare il bilanciamento

Il peso del termine KL, spesso chiamato beta, controlla il compromesso. Un beta più alto produce uno spazio più ordinato, ma ricostruzioni leggermente più sfocate.

Verifica rapida

Che cosa conferisce a un VAE la sua capacità generativa?

Riepilogo

Un VAE codifica gli input come distribuzioni, esegue il sampling con il reparameterization trick e aggiunge un termine KL per ottenere uno spazio uniforme da cui effettuare il sampling e l'interpolazione. 🎉

Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Autoencoder variazionali e spazio latente» è gratuita?

Sì — il testo completo di «Autoencoder variazionali e spazio latente» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Deep Learning Academy, passa a CoddyKit PRO. Il corso Deep Learning Academy include 4 lezioni in totale.

Cosa imparerò in «Autoencoder variazionali e spazio latente»?

Generi nuovi dati campionando da una distribuzione appresa Eserciti Deep Learning Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Deep Learning Academy?

Non è richiesta alcuna esperienza precedente. Deep Learning Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Autoencoder variazionali e spazio latente»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Deep Learning Academy?

Sì. Ogni lezione Deep Learning Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Encoder, collo di bottiglia e decoder
  2. Autoencoder per la riduzione del rumore
  3. Autoencoder variazionali e spazio latente
  4. Rilevare anomalie con l'errore di ricostruzione
← Torna a Deep Learning Academy