Autocodificador variacionalVariational Autoencoder

El autocodificador que recuerda con un rango, no con un punto

Puntos clave
  • El autocodificador variacional guarda cada dato no como un punto, sino como un rango: anota el centro y también cuánto se extiende alrededor.
  • Al reconstruir, saca un valor al azar dentro de ese rango. El mismo dato produce un resultado un poco distinto cada vez.
  • Hay dos penalizaciones a la vez: cuánto se aleja del original y cuán rara queda la forma del rango.
  • Como los rangos se superponen entre sí, el espacio queda bien relleno, así que meter un valor entre dos datos también da un resultado verosímil.
  • A cambio, el resultado tiende a salir más suave que nítido.
Contenido

1La analogía

En un taller de jabones, para volver a hacer una barra hay que anotar la receta. Si se anota como un solo punto —tantos gramos de base, tantas gotas de esencia—, esa barra en particular se puede repetir con exactitud, pero cualquier barra que no quedó anotada no tiene cómo rehacerse.

Entonces se cambia la forma de anotar. Se apunta que la esencia va entre tanto y tanto, y el tiempo de secado, cerca de tal valor: se anota un rango, no un punto. Cada vez que se hace la barra, se elige algo distinto dentro de ese rango, así que sale una barra ligeramente diferente cada vez, pero siempre una barra que sirve.

Cuando los rangos anotados se superponen entre sí, ya no quedan huecos vacíos entre receta y receta. Tomar cualquier punto entre las recetas de dos jabones distintos también da un jabón que no se siente raro.

2En detalle

Se anota un rango en lugar de un punto

El autocodificador reduce cada dato a un solo grupo de números: a cada dato le corresponde un único punto. El problema es que entre esos puntos no hay nada. Tomar un punto entre uno y otro da un resultado irreconocible.

El autocodificador variacional hace que el lado que comprime entregue dos grupos de valores: uno es el centro y el otro es el ancho de dispersión alrededor. Cada dato queda registrado, no como un punto, sino como una región redonda.

Al registrarse como región, las regiones de datos vecinos empiezan a superponerse. En esa zona de superposición sale un resultado que mezcla propiedades de un dato y del otro. Rellenar el hueco entre puntos es lo central de este método.

Cada vez se saca un punto al azar dentro del rango

El lado que reconstruye no recibe el centro tal cual. Saca un punto al azar dentro del ancho anotado, y con ese valor arma el resultado. Aunque entre la misma imagen, el punto que sale sorteado cambia cada vez, así que el resultado también cambia un poco cada vez.

Este sorteo complica el entrenamiento: si el azar se mete en el medio, no se puede rastrear hacia atrás cuánto ni dónde corregir. Por eso se cambia la forma de sortear. Primero se genera un valor al azar aparte, y la posición se arma sumando el centro más el ancho multiplicado por ese azar. Como el azar queda afuera, el centro y el ancho se pueden ajustar de forma normal.

Hay dos penalizaciones

Durante el entrenamiento se miden dos cosas. La primera es cuánto se aleja el resultado reconstruido del original. La segunda es cuánto se aparta el rango anotado de una forma estándar fijada de antemano: una regla que impide que las recetas queden anotadas cada una muy lejos de las demás.

Las dos penalizaciones tiran en direcciones opuestas. Si solo importara reconstruir bien, el ancho se achicaría al máximo hasta volverse casi un punto, y el hueco entre datos volvería a quedar vacío. Si solo importara ajustarse a la forma estándar, todas las recetas se apretarían hacia el centro y cualquier imagen que entrara daría un resultado parecido.

Cómo se reparte el peso entre las dos penalizaciones es lo que define el carácter del modelo. De ahí también salieron los intentos de separar con más claridad qué propiedad le toca a cada posición, ajustando ese peso.

Caminar entre dos puntos también da algo verosímil

Cuando los rangos se superponen y el espacio queda bien relleno, se vuelve posible algo interesante. Si se toman las posiciones de dos imágenes y se camina entre ellas a intervalos regulares, generando un resultado en cada paso, salen escenas que van cambiando suavemente de una a otra. No aparece nada irreconocible en el medio.

También se simplifica generar algo nuevo: basta con sacar un valor al azar del rango estándar y pasarlo al lado que reconstruye, sin necesitar ningún dato original. Aunque sea un lugar que nunca se usó en el entrenamiento, sale un resultado que mezcla propiedades de lo que está cerca.

Por qué el resultado sale suave

Lo que se genera con este método tiende a verse estable en la forma, pero con los bordes blandos y los detalles algo borrosos. Como la estructura permite que salga más de un resultado válido en la misma posición, al lado que reconstruye le conviene dibujar algo cercano al promedio de esas posibilidades, porque eso reduce la penalización.

Por eso, donde hace falta una imagen bien nítida, este método se combina con otro: se le deja solo el trabajo de reducir el dato a un resumen chico, y el trabajo de afinar el resultado se lo pasa a un método que va limpiando manchas paso a paso. En campos como el sonido o las estructuras moleculares, donde hace falta que las posiciones se conecten sin saltos, este método por sí solo sigue siendo muy usado.

3Con más precisión

En el autocodificador variacional, el codificador entrega la distribución de probabilidad de una variable latente, y el decodificador reconstruye el original a partir de una muestra sacada de esa distribución. El objetivo de entrenamiento reduce, a la vez, el error de reconstrucción y cuánto se aleja la distribución del codificador de una distribución de referencia fijada de antemano. A la técnica de reescribir el sorteo como un cálculo de centro más ancho, para poder entrenar aun sacando muestras al azar, se le llama reparametrización.

La analogía también tiene grietas. Una receta de jabón se anota con dos o tres números, pero la variable latente real llega a tener de decenas a cientos de posiciones, y cada una no representa necesariamente una propiedad reconocible como el aroma o la dureza. Además, el ancho de la receta lo fija una persona, mientras que aquí el ancho mismo se decide durante el entrenamiento y cambia según el dato.

La penalización que ajusta a la distribución de referencia rellena el espacio a costa de difuminar los detalles. Las dos cosas no mejoran juntas, así que siempre queda la decisión de cuánto se sacrifica de un lado para ganar del otro.

4Pruébalo

5Malentendidos comunes

  • Es fácil pensar que el autocodificador variacional es solo un autocodificador con algo de azar mezclado, pero en realidad su objetivo es guardar el dato como una distribución, no como un punto, y rellenar todo el espacio.

  • Es fácil pensar que, al guardarse como un rango, el resultado sale al azar y sin control, pero en realidad la penalización que fija el rango es justamente lo que da resultados estables incluso en los valores intermedios.

  • Es fácil pensar que un resultado borroso significa que el entrenamiento quedó a medias, pero en realidad es una propiedad que viene de una estructura donde conviene dibujar el promedio de varias posibilidades.

7Resumen en una línea

En resumenEl autocodificador variacional guarda cada dato como un rango en vez de un punto, rellena los huecos entre posiciones y, gracias a eso, también genera resultados verosímiles en los valores intermedios.

¿Has visto un error o tienes una analogía mejor? Sugerir una corrección · Última actualización2026-09-02