22 votos

Reconstrucción equilibrada frente al autocodificador variacional de pérdida KL

Estoy entrenando un autoencoder variacional condicional en un conjunto de datos de caras. Cuando establezco mi pérdida KLL igual a mi término de pérdida de reconstrucción, mi autoencoder parece incapaz de producir muestras variadas. Siempre aparecen los mismos tipos de caras: enter image description here

Estas muestras son terribles. Sin embargo, cuando disminuyo el peso de la pérdida de KLL en 0,001, obtengo muestras razonables: enter image description here

El problema es que el espacio latente aprendido no es suave. Si intento realizar una interpolación latente o generar una muestra aleatoria, obtengo basura. Cuando el término KLL tiene un peso pequeño (0,001), observo el siguiente comportamiento de pérdida: enter image description here Observa que el VggLoss (el término de reconstrucción) disminuye, mientras que el KLLoss sigue aumentando.

También probé a aumentar la dimensionalidad del espacio latente, pero tampoco funcionó.

Obsérvese aquí, cuando los dos términos de pérdida tienen el mismo peso, cómo el término KLL domina pero no permite que disminuya la pérdida de reconstrucción:

enter image description here

El resultado son unas reconstrucciones terribles. ¿Hay alguna sugerencia sobre cómo equilibrar estos dos términos de pérdida o alguna otra cosa que pueda probar para que mi autocodificador aprenda un espacio latente interpolativo y suave al tiempo que produce reconstrucciones razonables?

20voto

vvv Puntos 76

Llega un poco tarde a la fiesta y es probable que ya hayas pasado por esto, pero está bien documentado que tienes que "calentar" el término de pérdida KL empezando en cero y entrenando un poco sólo con la pérdida de reconstrucción antes de introducir la pérdida KL o los resultados no serán buenos. No está claro en su mensaje si usted hizo esto, pero es un ejemplo clásico de lo delicado que puede ser la formación de estos - a veces me pregunto cómo son apropiados en cruz validado ya que es muy fuertemente ensayo y error, junto con un poco de polvo de hadas y arco iris.

7voto

user121270 Puntos 1059

Sin embargo, cuando disminuyo el peso de la pérdida KLL en 0,001, obtengo muestras razonables: (...) El problema es que el espacio latente aprendido no es suave.

Parece sobreajuste. Recuerde que la pérdida de KL en el espacio latente corresponde en cierto modo a la regularización.

¿Hay alguna sugerencia sobre cómo equilibrar estos dos términos de pérdida o cualquier otra cosa posible para tratar de que mi autoencoder aprende un suave, interpolable espacio latente, mientras que la producción razonable reconstrucciones?

Hace poco me topé con este documento: $\beta$ -VAE: Aprendizaje de conceptos visuales básicos con un marco variacional restringido (de hecho, utiliza tu conjunto de datos en un ejemplo).

Del documento ( $\beta$ es el parámetro que ha cambiado):

Introducimos un hiperparámetro ajustable $\beta$ t equilibra la capacidad del canal latente y las restricciones de independencia con precisión de la reconstrucción (...) $\beta$ -VAE es estable para entrenar, hace pocas hipótesis sobre los datos y se basa en el ajuste de un único hiperparámetro. $\beta$ , puede optimizarse directamente mediante una búsqueda de hiperparámetros utilizando datos débilmente etiquetados o mediante una inspección visual heurística para datos no supervisados.

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