5.5 - Codificación: el codificador posicional

Lección 5 de la sección “Redes Transformer” del curso Fundamentos de Deep Learning con Python.

Introducción

En la lección anterior vimos el funcionamiento del embedding de entrada, el primer bloque de la Red Transformer encargado de generar representaciones vectoriales de cada elemento en la secuencia de entrada.

En esta lección veremos en detalle el siguiente bloque de procesamiento de la Red, el codificador posicional, la primera gran innovación introducida por esta arquitectura y que permite el procesamiento en paralelo de todos los elementos de la secuencia.

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Idea general

En las Redes Recurrentes y LSTM los elementos de la secuencia eran procesados de forma secuencial, lo cual permitía preservar el orden de los elementos durante el procesamiento pero extendía su tiempo de entrenamiento y generaba problemas como la memoria de corto plazo.

En las Redes Transformer la idea es preservar este orden pero a la vez lograr que todos los elementos de la secuencia puedan ser procesados de forma simultánea (es decir en paralelo).

El codificador posicional en detalle

Este bloque de codificación lo que hace es añadir un vector de 512 elementos al obtenido en el embedding de entrada, con la particularidad de que este vector codifica la posición del elemento dentro de la secuencia usando funciones senoidales y cosenoidales.

Así, para cada elemento en la secuencia habrá un correspondiente vector posicional único que permitirá el procesamiento en paralelo de la totalidad de la secuencia en los siguientes bloques que hacen parte de la Red Transformer.

Contenido exclusivo suscriptores

Recuerda suscribirte para acceder al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

Al añadir el vector posicional a cada uno de los elementos de la secuencia de entrada resulta posible procesar dicha secuencia de forma paralela por parte de los demás bloques de la red, y esta es una de las grandes innovaciones introducidas por esta arquitectura.

En la siguiente lección continuaremos hablando de la etapa de codificación, y en particular nos centraremos en el bloque atencional, otro de los elementos esenciales de las Redes Transformer y que le permite “comprender” las relaciones entre uno y otro elemento de la secuencia procesada.

Ver todas las lecciones de este curso