1 votos

Generación de variaciones de una clase con VQ-VAE con PixelCNN a priori

Estoy tratando de entender la generación a partir de un VQ-VAE con PixelCNN previo. Sobre todo, tengo curiosidad acerca de cómo ir sobre la generación de variaciones de una determinada "clase", o un objeto. Mi (nebuloso) entendimiento, por el momento, es que el modelo cuantiza el espacio latente, de modo que los vectores asociados con un punto de cuantización dado representan una "clase" similar, o al menos alguna forma de similitud entre las imágenes. Pero no tengo claro cómo explorar variaciones de una de esas clases. (Intuitivamente, variaría la latente, claro, pero ¿cómo evitaría pasar a otro cluster/clase?).

En concreto, mi aplicación consiste en tomar una entrada dada (x) y producir variaciones de esa entrada (x1 ... xN) que mantengan alguna relación perceptible con el original. ¿Es el VQ-VAE + PixelCNN una buena opción para esta tarea? Debo mencionar que, aunque puedo proporcionar etiquetas de clase, también estoy interesado en modelos que puedan clasificar o agrupar de forma autosupervisada. Si proporcionara etiquetas, habría un número relativamente grande de ellas (por ejemplo, más de 200). Además, me interesará la generación/muestreo directo, sin una entrada x.

1voto

Yousuf Alsaiari Puntos 41

Al final del proceso de VQ-VAE tendrá una distribución categórica de la que podrá tomar muestras y generar imágenes que parecerán "reales" basándose en la distribución de su conjunto de entrenamiento. Puede codificar la clase en una de las dimensiones del espacio latente, lo que le permitirá controlar qué clase generar, es decir, puede elegir su propia clase y, a continuación, muestrear el resto de enteros aleatorios a partir del previo entrenado y generar imágenes a partir de esta clase. No estoy seguro de qué cambios quieres realizar exactamente en tus imágenes, pero cada vez que muestrees aleatoriamente a partir del previo obtendrás imágenes diferentes, es decir, imágenes diferentes para códigos muestreados diferentes. Sin embargo, no puedes "controlar" qué cambios específicos realizar, porque el espacio latente no es fácilmente interpretable. En cuanto a la agrupación no supervisada: puede intentar lo siguiente: después de muestrear a partir de la muestra previa y obtener los códigos (o alternativamente ejecutar el codificador sobre una imagen dada y obtener los códigos) puede extraer todas las incrustaciones relevantes de acuerdo con los códigos, concatenarlas, esto creará un vector que representará una imagen. A continuación, puede generar un vector para cada imagen y agrupar estos vectores con su algoritmo de agrupación favorito.

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