Los codificadores automáticos variacionales a menudo se asocian con el modelo de codificador automático debido a su afinidad arquitectónica, pero con diferencias significativas en el objetivo y la formulación matemática. Los autocodificadores variacionales son modelos generativos probabilísticos que requieren redes neuronales como solo una parte de su estructura general. Los componentes de la red neuronal normalmente se denominan codificador y decodificador para el primer y segundo componente respectivamente. La primera red neuronal asigna la variable de entrada a un espacio latente que corresponde a los parámetros de una distribución variacional. De esta manera, el codificador puede producir múltiples muestras diferentes que provienen todas de la misma distribución. El decodificador tiene la función opuesta, que es mapear desde el espacio latente al espacio de entrada, para producir o generar puntos de datos. Por lo general, ambas redes se entrenan juntas mediante el uso del truco de reparametrización, aunque la varianza del modelo de ruido se puede aprender por separado.
Descripción general de la arquitectura y el funcionamiento.
Un autocodificador variacional es un modelo generativo con distribución previa y de ruido respectivamente. Por lo general, estos modelos se entrenan utilizando el metaalgoritmo de maximización de expectativas (por ejemplo, PCA probabilístico , codificación dispersa (spike & slab)). Tal esquema optimiza un límite inferior de la probabilidad de los datos, que generalmente es intratable, y al hacerlo requiere el descubrimiento de distribuciones q, o posteriores variacionales . Estas distribuciones q normalmente se parametrizan para cada punto de datos individual en un proceso de optimización separado. Sin embargo, los codificadores automáticos variacionales utilizan una red neuronal como un enfoque amortizado para optimizar conjuntamente todos los puntos de datos. Esta red neuronal toma como entrada los propios puntos de datos y genera parámetros para la distribución variacional. Como se asigna desde un espacio de entrada conocido al espacio latente de baja dimensión, se le llama codificador.
El decodificador es la segunda red neuronal de este modelo. Es una función que mapea desde el espacio latente al espacio de entrada, por ejemplo, como medio de la distribución del ruido. Es posible utilizar otra red neuronal que se asigne a la varianza; sin embargo, esto se puede omitir por simplicidad. En tal caso, la variación se puede optimizar con el descenso de gradiente.
Para optimizar este modelo, es necesario conocer dos términos: el "error de reconstrucción" y la divergencia Kullback-Leibler (KL-D). Ambos términos se derivan de la expresión de energía libre del modelo probabilístico y, por lo tanto, difieren según la distribución del ruido y el a priori supuesto de los datos. Por ejemplo, normalmente se supone que una tarea VAE estándar como IMAGENET tiene un ruido distribuido gaussianamente; sin embargo, tareas como MNIST binarizado requieren un ruido de Bernoulli. El KL-D de la expresión de energía libre maximiza la masa de probabilidad de la distribución q que se superpone con la distribución p, lo que desafortunadamente puede resultar en un comportamiento de búsqueda de modo. El término de "reconstrucción" es el resto de la expresión de energía libre y requiere una aproximación de muestreo para calcular su valor esperado. [7]
Formulación
El esquema básico de un codificador automático variacional. El modelo recibe como entrada. El codificador lo comprime en el espacio latente. El decodificador recibe como entrada la información muestreada del espacio latente y produce lo más similar posible a .
Desde el punto de vista del modelado probabilístico, se quiere maximizar la probabilidad de los datos mediante la distribución de probabilidad parametrizada elegida . Esta distribución generalmente se elige como gaussiana , parametrizada por y respectivamente, y como miembro de la familia exponencial es fácil trabajar con ella como distribución de ruido. Las distribuciones simples son bastante fáciles de maximizar; sin embargo, las distribuciones en las que se supone una prioridad sobre las latentes dan como resultado integrales intratables. Encontremos vía marginación sobre .
donde representa la distribución conjunta de los datos observables y su representación o codificación latente . Según la regla de la cadena , la ecuación se puede reescribir como
En el codificador automático variacional básico, generalmente se considera un vector de dimensión finita de números reales y una distribución gaussiana . Entonces es una mezcla de distribuciones gaussianas.
Ahora es posible definir el conjunto de relaciones entre los datos de entrada y su representación latente como
Previo
Probabilidad
Posterior
Desafortunadamente, el cálculo de es costoso y en la mayoría de los casos intratable. Para acelerar el cálculo y hacerlo factible, es necesario introducir una función adicional para aproximar la distribución posterior como
siendo definido como el conjunto de valores reales que parametrizan . A esto a veces se le llama inferencia amortizada , ya que al "invertir" en encontrar un bien , uno puede luego inferir rápidamente sin hacer integrales.
De esta manera, el problema es encontrar un buen autocodificador probabilístico, en el que el decodificador probabilístico calcule la distribución de probabilidad condicional y el codificador probabilístico calcule la distribución posterior aproximada .
Parametrice el codificador como y el decodificador como .
Límite inferior de evidencia (ELBO)
Como en todo problema de aprendizaje profundo , es necesario definir una función de pérdida diferenciable para poder actualizar los pesos de la red mediante retropropagación .
Para los codificadores automáticos variacionales, la idea es optimizar conjuntamente los parámetros del modelo generativo para reducir el error de reconstrucción entre la entrada y la salida, y acercarse lo más posible a . Como pérdida de reconstrucción, a menudo se utilizan el error cuadrático medio y la entropía cruzada .
Como pérdida de distancia entre las dos distribuciones, la divergencia de Kullback-Leibler es una buena opción para comprimirse . [7] [8]
La pérdida de distancia que acabamos de definir se expande como
El esquema del truco de reparametrización. La variable de aleatoriedad se inyecta en el espacio latente como entrada externa. De esta manera, es posible propagar hacia atrás el gradiente sin involucrar una variable estocástica durante la actualización.
Ya que reparametrizamos , necesitamos encontrar . Sea la función de densidad de probabilidad para , entonces [ se necesita aclaración ]
Variaciones
Se han utilizado muchas aplicaciones y extensiones de codificadores automáticos variantes para adaptar la arquitectura a otros dominios y mejorar su rendimiento.
-VAE es una implementación con un término de divergencia ponderado de Kullback-Leibler para descubrir e interpretar automáticamente representaciones latentes factorizadas. Con esta implementación, es posible forzar el desenredo múltiple para valores mayores que uno. Esta arquitectura puede descubrir factores latentes desenredados sin supervisión. [12] [13]
El VAE condicional (CVAE) inserta información de etiqueta en el espacio latente para forzar una representación restringida determinista de los datos aprendidos. [14]
Algunas estructuras tratan directamente con la calidad de las muestras generadas [15] [16] o implementan más de un espacio latente para mejorar aún más el aprendizaje de representación.
^ Pinheiro Cinelli, Lucas; et al. (2021). "Codificador automático variacional". Métodos variacionales para aprendizaje automático con aplicaciones a redes profundas . Saltador. págs. 111-149. doi :10.1007/978-3-030-70679-1_5. ISBN 978-3-030-70681-4. S2CID 240802776.
^ Dilokthanakul, Nat; Mediano, Pedro AM; Garnelo, Marta; Lee, Mateo CH; Salimbeni, Hugh; Arulkumaran, Kai; Shanahan, Murray (13 de enero de 2017). "Agrupación profunda no supervisada con codificadores automáticos variacionales de mezcla gaussiana". arXiv : 1611.02648 [cs.LG].
^ Hsu, Wei-Ning; Zhang, Yu; Glass, James (diciembre de 2017). "Adaptación de dominio no supervisada para un reconocimiento de voz sólido mediante aumento de datos basado en codificador automático variacional". Taller de comprensión y reconocimiento automático de voz (ASRU) de IEEE 2017 . págs. 16-23. arXiv : 1707.06265 . doi :10.1109/ASRU.2017.8268911. ISBN978-1-5090-4788-8. S2CID 22681625.
^ Ehsan Abbasnejad, M.; Dick, Antonio; van den Hengel, Antón (2017). Autocodificador variacional infinito para aprendizaje semisupervisado. págs. 5888–5897.
^ Xu, Weidi; Sol, Haoze; Deng, Chao; Bronceado, Ying (12 de febrero de 2017). "Codificador automático variacional para clasificación de texto semisupervisado". Actas de la Conferencia AAAI sobre Inteligencia Artificial . 31 (1). doi : 10.1609/aaai.v31i1.10966 . S2CID 2060721.
^ Kameoka, Hirokazu; Li, Li; Inoue, Shota; Makino, Shoji (1 de septiembre de 2019). "Separación de fuente determinada supervisada con codificador automático variacional multicanal". Computación neuronal . 31 (9): 1891-1914. doi :10.1162/neco_a_01217. PMID 31335290. S2CID 198168155.
^ abc Kingma, Diederik P.; Welling, Max (20 de diciembre de 2013). "Bayes variacionales de codificación automática". arXiv : 1312.6114 [estad.ML].
^ "De Autoencoder a Beta-VAE". Lil'Log . 2018-08-12.
^ Rezende, Danilo Jiménez; Mohamed, Shakir; Wierstra, Daan (18 de junio de 2014). "Retropropagación estocástica e inferencia aproximada en modelos generativos profundos". Congreso Internacional sobre Aprendizaje Automático . PMLR: 1278-1286. arXiv : 1401.4082 .
^ Bengio, Yoshua; Courville, Aarón; Vicente, Pascal (2013). "Aprendizaje de representación: una revisión y nuevas perspectivas". Transacciones IEEE sobre análisis de patrones e inteligencia artificial . 35 (8): 1798–1828. arXiv : 1206.5538 . doi :10.1109/TPAMI.2013.50. ISSN 1939-3539. PMID 23787338. S2CID 393948.
^ Kingma, Diederik P.; Rezende, Danilo J.; Mohamed, Shakir; Welling, Max (31 de octubre de 2014). "Aprendizaje semisupervisado con modelos generativos profundos". arXiv : 1406.5298 [cs.LG].
^ Higgins, Irina; Matthey, Loic; Pal, Arka; Burgess, Cristóbal; Glorot, Javier; Botvinick, Mateo; Mohamed, Shakir; Lerchner, Alejandro (4 de noviembre de 2016). "beta-VAE: aprendizaje de conceptos visuales básicos con un marco variacional restringido".{{cite journal}}: Citar diario requiere |journal=( ayuda )
^ Burgess, Christopher P.; Higgins, Irina; Pal, Arka; Matthey, Loic; Watters, Nick; Desjardins, Guillaume; Lerchner, Alejandro (10 de abril de 2018). "Comprender el desenredado en β-VAE". arXiv : 1804.03599 [estad.ML].
^ Sohn, Kihyuk; Lee, Honglak; Yan, Xinchen (1 de enero de 2015). "Aprendizaje de la representación de resultados estructurados mediante modelos generativos condicionales profundos" (PDF) .{{cite journal}}: Citar diario requiere |journal=( ayuda )
^ Dai, contenedor; Wipf, David (30 de octubre de 2019). "Diagnóstico y mejora de modelos VAE". arXiv : 1903.05789 [cs.LG].
^ Dorta, Garoe; Vicente, Sara; Agapito, Lourdes; Campbell, Neill DF; Simpson, Ivor (31 de julio de 2018). "Capacitación de VAE bajo residuos estructurados". arXiv : 1804.01050 [estad.ML].
^ Larsen, Anders Boesen Lindbo; Sønderby, Søren Kaae; Larochelle, Hugo; Winther, Ole (11 de junio de 2016). "Codificación automática más allá de los píxeles utilizando una métrica de similitud aprendida". Congreso Internacional sobre Aprendizaje Automático . PMLR: 1558-1566. arXiv : 1512.09300 .