Después de leer un poco sobre estos dos términos, tengo la impresión de que se utilizan para lo mismo. Entonces, ¿existe realmente una diferencia entre estos dos conceptos y, en caso afirmativo, en qué se diferencian?
Respuestas
¿Demasiados anuncios?Después de leer un poco más he llegado a la siguiente conclusión:
- NN invertible son sólo redes neuronales que representan funciones biyectivas $f$ .
-
Normalización de flujos son invertibles NN $f$ que también tienen un determinante trazable del jacobiano $D_x f$ así como una inversa manejable $f^{-1}$ . Esto permite la siguiente interpretación: Sea $X \sim p_X, Z \sim p_Z$ sea una variable aleatoria con $Z = f(X)$ . Entonces $$p_X(x) = p_Z(f(x)) \det D_x f .$$ Porque $f$ tiene una inversa manejable $f^{-1}$ por lo tanto, podemos muestrear fácilmente a partir de una de las dos distribuciones $p_X, p_Z$ por muestreo de la otra y utilizando la transformación anterior.
Esto podría aplicarse de la siguiente manera (sólo como ejemplo): Podríamos entrenar $f$ tal que $p_X$ representa una distribución de imágenes (por ejemplo, representada por MNIST) y $p_Z$ una gaussiana. Entonces podemos muestrear fácilmente de la distribución de imágenes muestreando $Z \sim p_Z$ (Gaussiano) y simplemente transformándolo de nuevo a $X = f^{-1}(Z) \sim p_X$ .
Una red neuronal invertible es un término general utilizado para cualquier red neuronal que sea invertible. Una red neuronal de flujo es una amable de red neuronal invertible. Lo que ocurre es que es bastante difícil construir redes neuronales invertibles, y las redes neuronales de flujo ofrecen una receta fácil.