Saltar al contenido principal

términos del glosario

Encoder-Decoder

Categoría
Neural Networks & Architectures
Dificultad
Intermedio

Definición

Un encoder-decoder es una arquitectura de red neuronal que consta de dos componentes principales: un encoder que comprime los datos de entrada en una representación latente, y un decoder que reconstruye o transforma esa representación en una salida objetivo.

Cómo funciona y contexto

La arquitectura encoder-decoder, a menudo denominada modelado de secuencia a secuencia (seq2seq), es una piedra angular del aprendizaje profundo moderno. El encoder funciona leyendo una secuencia de entrada (como una oración en inglés) y mapeándola en un vector de longitud fija o una secuencia de estados ocultos conocidos como vector de contexto. Este vector captura la esencia semántica de la entrada. El decoder luego toma este contexto y genera una secuencia de salida (como la traducción al francés de la oración original), un token a la vez. Aunque las primeras versiones dependían de redes neuronales recurrentes (RNN) o LSTM, las implementaciones modernas utilizan predominantemente la arquitectura Transformer. Una limitación crítica de los modelos básicos encoder-decoder es el 'cuello de botella de información', donde el vector de longitud fija tiene dificultades para representar entradas largas y complejas, lo que llevó al desarrollo de mecanismos de atención para permitir que el decoder se centre en partes específicas de la entrada.

Por qué es importante

Potencia la traducción automática, el resumen de texto, la conversión de voz a texto e incluso la generación de subtítulos para imágenes.

Ejemplo real

En un sistema de traducción automática, el encoder lee una oración en japonés y la convierte en una representación numérica de alta dimensión que captura el significado de las palabras y sus relaciones gramaticales. El decoder luego recibe esta representación y genera la oración equivalente en inglés. Si el sistema utiliza un mecanismo de atención, el decoder puede 'mirar hacia atrás' a partes específicas de la entrada en japonés mientras genera cada palabra en inglés, asegurando una alta precisión incluso en oraciones complejas.

Errores frecuentes

  • Confundir la arquitectura encoder-decoder con una red simple de alimentación directa (feed-forward); maneja específicamente datos secuenciales o estructurados.
  • Asumir que el encoder y el decoder deben usar el mismo tipo de capa de red neuronal (por ejemplo, es posible usar un encoder RNN con un decoder Transformer).
  • Descuidar la importancia del tamaño del vector de contexto, lo que puede provocar pérdida de información si es demasiado pequeño para la complejidad de la entrada.
  • Pasar por alto la necesidad de mecanismos de atención, que casi siempre son necesarios para aplicaciones modernas de alto rendimiento.

Preguntas frecuentes

¿En qué se diferencia esto de un Autoencoder?

Aunque ambos utilizan una estructura encoder-decoder, un autoencoder se utiliza normalmente para el aprendizaje no supervisado para reconstruir la entrada original (por ejemplo, para eliminación de ruido o reducción de dimensionalidad). Por el contrario, la arquitectura encoder-decoder suele estar diseñada para el aprendizaje supervisado para mapear una entrada a una salida objetivo diferente.

¿Por qué se considera el 'vector de contexto' un cuello de botella?

En modelos antiguos, toda la secuencia de entrada debía comprimirse en un único vector de longitud fija. Si la entrada era muy larga o compleja, el modelo no podía ajustar toda la información necesaria en ese espacio limitado, lo que provocaba un bajo rendimiento en secuencias largas.

¿Son los Transformers solo encoder-decoders?

El artículo original de Transformer introdujo una estructura encoder-decoder específica. Sin embargo, muchos modelos modernos son 'solo decoder' (como GPT) o 'solo encoder' (como BERT), dependiendo de si la tarea requiere generar secuencias o entenderlas y clasificarlas.