Mezcla de codificadores automáticos variacionales: una fusión entre MoE y VAE

los Codificador automático variacional (VAE) es un modelo para las redes neuronales que intentan aprender la forma del espacio de entrada. Una vez entrenado, el modelo se puede utilizar para generar nuevas muestras a partir del espacio de entrada.

Si tenemos etiquetas para nuestros datos de entrada, también es posible condicionar el proceso de generación en la etiqueta. En el MNIST caso, significa que podemos especificar para qué dígito queremos generar una imagen.

Vayamos un paso más allá… ¿Podríamos condicionar el proceso de generación al dígito sin usar etiquetas en absoluto? ¿Podríamos lograr los mismos resultados utilizando un enfoque no supervisado?

Si quisiéramos confiar en las etiquetas, podríamos hacer algo vergonzosamente simple. Podríamos entrenar 10 modelos VAE independientes, cada uno usando imágenes de un solo dígito.

Eso obviamente funcionaría, pero estás usando las etiquetas. ¡Eso es hacer trampa!

OK, no los usemos en absoluto. Entrenemos a nuestros 10 modelos y, bueno, echemos un vistazo con nuestros ojos a cada imagen antes de pasarla al modelo apropiado.

¡Oye, estás haciendo trampa otra vez! Si bien no usa las etiquetas per se, mira las imágenes para enrutarlas al modelo apropiado.

Bien… Si en lugar de hacer el enrutamiento nosotros mismos, dejamos que otro modelo aprenda el enrutamiento, eso no sería hacer trampa en absoluto, ¿verdad?

¡Derecha! 🙂

Podemos usar una arquitectura de 11 módulos de la siguiente manera:

Mezcla de codificadores automaticos variacionales una fusion entre MoE y

Pero, ¿cómo decidirá el gerente a qué experto pasar la imagen? Podríamos entrenarlo para predecir el dígito de la imagen, pero nuevamente, ¡no queremos usar las etiquetas!

Uf… Pensé que ibas a hacer trampa…

Entonces, ¿cómo podemos entrenar al gerente sin usar las etiquetas? Me recuerda a un tipo diferente de modelo: Mezcla de expertos (MoE). Permítanme tomar un pequeño desvío para explicar cómo funciona MoE. Lo necesitaremos, ya que será un componente clave de nuestra solución.


Mezcla de expertos explicada a no expertos¶

MoE es un marco de aprendizaje supervisado. Puedes encontrar una excelente explicación de Geoffrey Hinton en Coursera y en Youtube. MoE se basa en la posibilidad de que la entrada se segmente de acuerdo con el mapeo $x rightarrow y$. Echa un vistazo a esta sencilla función:

1669438766 5 Mezcla de codificadores automaticos variacionales una fusion entre MoE y

La verdad fundamental se define como la parábola violeta para $x = x$’. Si tuviéramos que especificar a mano dónde está el punto de división $x$’, podríamos aprender el mapeo en cada segmento de entrada de forma independiente usando dos modelos separados.

En conjuntos de datos complejos, es posible que no conozcamos los puntos de división. Una (mala) solución es segmentar el espacio de entrada agrupando los $x$ usando K-means. En el ejemplo de las dos parábolas, terminaremos con $x$» como el punto de división entre dos grupos. Por lo tanto, cuando entrenemos el modelo en el segmento $x

Entonces, ¿cómo podemos entrenar un modelo que aprende los puntos de división y al mismo tiempo aprende el mapeo que define los puntos de división?

MoE lo hace utilizando una arquitectura de múltiples subredes: un administrador y múltiples expertos:

1669438766 840 Mezcla de codificadores automaticos variacionales una fusion entre MoE y

El gerente mapea la entrada en una decisión suave sobre los expertos, que se usa en dos contextos:

  • La salida de la red es un promedio ponderado de las salidas de los expertos, donde los pesos son la salida del gerente.
  • La función de pérdida es $sum_i p_i(y – bar)^2$. $y$ es la etiqueta, $bar$ es la salida del i-ésimo experto, $p_i$ es la i-ésima entrada de la salida del administrador. Cuando diferencias la pérdida, obtienes estos resultados (te animo a que veas el video para más detalles):

    1. El gerente decide para cada experto cuánto contribuye a la pérdida. En otras palabras, el gerente elige qué expertos deben ajustar sus pesos de acuerdo con su error.
    2. El administrador ajusta las probabilidades que genera de tal manera que los expertos que acertaron obtendrán mayores probabilidades que los que no lo hicieron.

      Esta función de pérdida anima a los expertos a especializarse en diferentes tipos de entradas.


La última pieza del rompecabezas… es $x$¶

¡Volvamos a nuestro desafío! MoE es un marco para el aprendizaje supervisado. Seguramente podemos cambiar $y$ para que sea $x$ para el caso no supervisado, ¿verdad? El poder de MoE proviene del hecho de que cada experto se especializa en un segmento diferente del espacio de entrada con un mapeo único $x rightarrow y$. Si usamos el mapeo $x rightarrow x$, cada experto se especializará en un segmento diferente del espacio de entrada con patrones únicos en la entrada misma.

Utilizaremos VAE como expertos. Parte de la pérdida de VAE es la pérdida de reconstrucción, donde VAE intenta reconstruir la imagen de entrada original $x$:

1669438766 969 Mezcla de codificadores automaticos variacionales una fusion entre MoE y

¡Un subproducto genial de esta arquitectura es que el administrador puede clasificar el dígito que se encuentra en una imagen usando su vector de salida!

Una cosa con la que debemos tener cuidado al entrenar este modelo es que el administrador podría degenerar fácilmente y generar un vector constante, independientemente de la entrada en cuestión. Esto da como resultado un VAE especializado en todos los dígitos y nueve VAE especializados en nada. Una forma de mitigarlo, que se describe en el documento del Ministerio de Educación, es agregar un término de equilibrio a la pérdida. Alienta a equilibrar las salidas del gerente sobre un lote de entradas: $sum_text vec approx Uniform$.

¡Basta de hablar, es hora de entrenar!

Fuente del artículo

Deja un comentario