Aprendizaje por atención en deep learning

Contenido del Bootcamp dirigido por:

Aprendizaje por atención
¿Qué encontrarás en este post?

En 2014, Google, en alianza con Open AI, sacó un paper en el que se hablaba de un nuevo tipo de aprendizaje que consiste en el uso de la atención. Este aprendizaje es diferente a los que hemos visto hasta ahora, donde se nos pasa una representación vectorial, mientras el decoder se encarga de hacer el resto del trabajo. Esta novedad se denominó aprendizaje por atención.

¿En qué consiste el aprendizaje por atención?

El aprendizaje por atención es un enfoque de machine learning que se inspira en la forma en la que el cerebro humano procesa la información visual y auditiva. También se le denomina atención mecánica o atención neural. En lugar de procesar todos los datos de entrada por igual, el aprendizaje por atención se enfoca en las partes más relevantes o importantes de los datos y les da más peso o importancia durante el proceso de aprendizaje.

La idea principal detrás del aprendizaje por atención es que, en lugar de forzar al modelo a procesar toda la entrada de manera uniforme, se pueden asignar diferentes pesos o importancias a las distintas partes de la entrada, de acuerdo con su relevancia para la tarea en cuestión. De esta manera, el modelo puede enfocarse en las características más importantes de los datos de entrada y procesarlas de manera más efectiva.

aprendizaje por atención

El aprendizaje por atención se ha utilizado en una variedad de tareas de aprendizaje automático, incluyendo la traducción automática, la generación de texto y la clasificación de imágenes. Ha demostrado ser muy efectivo en muchas aplicaciones y se ha convertido en un área de investigación activa en el campo del machine learning.

Diferencias entre el aprendizaje por atención y el modelo seq2seq

En el caso del tipo de aprendizaje por atención, se hace un enfoque en la relevancia de cada una de las palabras pasadas al decoder.

Aquí vemos un poco cómo sería el funcionamiento y sus diferencias con el seq2seq.
Como podemos notar, la diferencia principal es que en el seq2seq pasábamos una representación única por cada frase que recibíamos para el encoder y le pasábamos su representación al completo, es decir, al decoder. No obstante, cuando estamos trabajando con aprendizaje por atención lo que hacemos es mantener por separado los states (lo que no significa que no se propaguen entre las distintas capas), pero mantenemos por separado cada uno de los hidden states de cara a entregárselos al decodificador.

Los mantenemos por separado, no los unimos y, de este modo, después se genera la salida.
Estos hidden states entre medias se pasan de uno en uno a cada una de las partes del decoder. Entonces, el contexto y las palabras más relevantes no se mezclan entre sí en una representación conjunta, sino que mantienes la importancia de las palabras de manera separada, de cara a la decodificación.
Esto ayuda a establecer frases mucho más coherentes.

Funcionamiento del aprendizaje por atención

Aquí vemos un poco mejor cómo funciona internamente. El aprendizaje por atención funciona a partir de scorings.

Observamos cómo se van activando las puertas y cómo va recibiendo el modelo. Por cada hidden state que recibe, va generando la moderación de los pesos por cada decodificación en las capas y lo va teniendo en cuenta para cada una de las capas.

La primera capa recibe el primer hidden state únicamente, la segunda recibe el segundo y así, sucesivamente, se van propagando los pesos que va generando la decodificación para, de forma posterior, generar la salida.

En comparativa a lo que pasa en un seq2seq, lo que hace el modelo de aprendizaje por atención es recibir todos los hidden states. El primero lo recibe todo, lo procesa, genera una salida y pasa lo que haya sido relevante al siguiente.

Cabe resaltar que esto solo pasa a nivel teórico; en la práctica no va a suceder de esta forma, pero es importante que sepamos a fondo cómo funciona el aprendizaje por atención.

¿Qué sigue?

Sabemos que el Big Data tiene muchísimas vertientes y, por tanto, hay muchísimos temas sobre los que puedes formart. En KeepCoding te ofrecemos la posibilidad de aprender con los mejores profesionales, que te guiarán a través de la teoría y la práctica para que, en unos meses, puedas convertirte en un gran profesional del sector IT. Échale un vistazo al temario del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp y descubre esta formación intensiva, íntegra y de alta calidad. ¡Solicita ya más información y da el paso que impulsará tu carrera!

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado