2 votos

¿Puede interpretarse un autoencoder variacional como una mezcla de gaussianos?

En un autocodificador variacional (VAE), tenemos una red codificadora $E_{\phi}$ que asigna las entradas $x$ a los parámetros de distribución de la posterior aproximada $q_{\phi}(z \vert x)$ . Lo más habitual es modelizar esta distribución sobre latente como una gaussiana de covarianza diagonal, por lo que tenemos

$$ (\mu_{\phi}(x), \Sigma_{\phi}(x)) = E_{\phi}(x) $$

Dónde $\Sigma_{\phi}(x)$ son los elementos diagonales de la matriz de covarianza correspondiente al punto de datos $x$ . El resultado es un conjunto diferente de parámetros de distribución para cada punto de datos $x$ donde el coste computacional del aprendizaje de los parámetros de la posterioridad se "amortiza" a través del aprendizaje de los parámetros del modelo del codificador. $E_{\phi}$ .

En vista de ello, ¿puede considerarse que la distribución sobre el espacio latente producida por la VAE es una mezcla muy grande de gaussianos con un número de componentes igual al número de puntos de datos que tenemos? es decir, para $N$ puntos de datos $\{x_1, x_2, \ldots x_N\}$ ¿tenemos

$$ q_{\phi}(z \vert x) = \frac{1}{N} \sum_{n=1}^N \delta(x,x_n) \mathcal{N}\left(\mu_{\phi}(x_n), \Sigma_{\phi}(x_n)\right)$$

En otras palabras, ¿puede la variable latente $Z$ como una mezcla de $N$ componentes gaussianos igualmente ponderados, con el componente $n$ con distribución $\mathcal{N}\left(\mu_{\phi}(x_n), \Sigma_{\phi}(x_n)\right)$ ?

3voto

Robert Puntos 26

En el escenario VAE, el codificador $q(z|x)$ ya funciona para cualquier $x$ (cualquier $x$ que la red codificadora ha visto durante el entrenamiento, por supuesto), por lo que no hay ninguna ganancia en representarla como una mezcla de distribuciones del conjunto de entrenamiento $q(z|x_n)$ con pesos binarios.

Sin embargo, fíjese en el agregado posterior , $$ q^\text{agg}(z) = \frac{1}{N} \sum_{n=1}^N q(z|x_n) $$ Es una mezcla finita (y no degenerada) de gaussianos, que representa la distribución media de codificación. En cierto sentido, es la distribución que debe utilizar para muestrear $z$ de después de entrenar el modelo (y no el anterior $p(z)$ ). Esto se debe a que la red decodificadora se entrenó efectivamente con muestras de $q^\text{agg}(z)$ y funciona mejor en ellos. En teoría, la Inferencia Variacional intenta hacer que la posterior agregada $q^\text{agg}(z)$ y la anterior $p(z)$ lo más cerca posible, pero en la práctica puede que no lo consiga.

Para más información, consulte el documento VampPrior .


Dejando a un lado el modelo de inferencia de la VAE, se puede afirmar que la parte generativa de la VAE es en realidad una mezcla (posiblemente infinita). De hecho, la elección más popular para la distribución de descodificación $p(x|z)$ es gaussiano, y $p(z)$ también suele ser gaussiano. Por lo tanto, $$ p(x) = \int p(x|z) p(z) dz = \int \mathcal{N}(x \mid \mu_x(z), \Sigma_x(z)) \mathcal{N}(z \mid 0, I) dz $$ Así que efectivamente aquí construimos una distribución $\mathcal{N}(x \mid \mu_x(z), \Sigma_x(z))$ para cada $z \in \mathbb{R}^d$ y luego mezclar todas estas distribuciones (¡incontables!) con pesos de la distribución gaussiana multivariante estándar. Esta mezcla es demasiado complicada para trabajar con ella directamente, por lo que recurrimos a la inferencia variacional.

0voto

user1696584 Puntos 1

Parece que estás mezclando dos componentes.

El latente $Z$ de una VAE estándar es efectivamente una mezcla de gaussianos, pero no tiene nada que ver con el número de puntos de datos.

La covarianza diagonal es en realidad un truco de notación; un espacio latente VAE comprende $N$ casos de independiente partículas" gaussianas, donde $N$ es un hiperparámetro del modelo.

Cada una de esas partículas tiene una media y una varianza codificadas por la salida del... bueno, codificador. El codificador puede tener cualquier número de capas y trata de encontrar una incrustación que pueda describirse bien utilizando un puñado de gaussianos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X