¿Cuál es una explicación intuitiva de cómo funciona la atención en el aprendizaje profundo?

Construyamos nuestra comprensión de una manera gradual. Además, basaremos nuestra discusión en aplicaciones de procesamiento del lenguaje natural (PNL) y asumiremos el conocimiento básico de las capas de memoria a corto plazo (LSTM) y las redes neuronales.

¿Cómo se usan las capas LSTM en PNL?

Los LSTM tienen un vector de salida para cada palabra en la secuencia. La forma más común de usar LSTM es tomar el vector de salida de la última palabra en la secuencia como la representación de toda la secuencia. Esto tiene sentido porque:

Crédito de la foto: WildML

  • Simplemente tomar el vector de la última palabra proporciona una manera simple de convertir una secuencia de longitud variable en un vector de longitud fija. Fácil de usar con capas densas para clasificación, etc.
  • Se supone que las redes neuronales recurrentes hacen que el vector de salida de la palabra actual dependa de las palabras anteriores de la secuencia. Se supone que los LSTM extienden esta capacidad a secuencias muy largas. Entonces (al menos en teoría) el vector de salida de la última palabra codifica información de toda la secuencia.

¿Por qué es un problema usar el vector de salida de la última palabra?

  • En la práctica, incluso los LSTM no pueden preservar la dependencia durante más de unos pocos pasos.
  • Codificar la información de una secuencia completa en un solo vector no es razonable. Estamos tratando de comprimir demasiada información en un espacio limitado.

¿Cuál es la solución?

En lugar de usar el vector de salida de la última palabra, use los vectores de salida de todas las palabras . Sin embargo, esto se vuelve complicado porque ahora, en lugar de un vector de longitud fija, estamos tratando con una matriz de dimensión variable, es decir, tenemos un vector para cada palabra de la secuencia.

Entonces, el mejor enfoque sería agregar los vectores de palabras en un vector de longitud fija basado en algún contexto . Veamos el ejemplo de Neural Machine Translation para comprender mejor este punto.

Crédito de la foto: https://arxiv.org/pdf/1409.0473.pdf

En la imagen de arriba, la palabra traducida en la posición t depende de la agregación de todos los vectores de salida de la secuencia de entrada. De esta manera, la red puede elegir qué palabras son importantes y usar información solo de esas palabras para construir el vector de longitud fija.

Finalmente, hablemos del modelo de atención

El modelo de atención es solo una forma de hacer la agregación mencionada anteriormente. Proporciona una receta para agregar los vectores de salida de cada palabra en un solo vector basado en algún contexto. En la imagen de arriba, ese contexto es el vector de estado LSTM de la palabra traducida en la posición t-1.

Permítanme presentarles la receta básica para este proceso, pero primero algunas anotaciones:

  • El vector de salida LSTM para la palabra en la posición i es [math] h_i [/ ​​math]
  • El contexto se representa usando un vector [math] c_j [/ math].
  • Hay n palabras en la secuencia.

Paso 1: Mezcle el vector de salida LSTM con el vector de contexto y emita un estado intermedio.

[matemáticas] e_ {ij} = f (h_i, c_j) [/ matemáticas]

En general, [math] f [/ math] es una red de alimentación simple con 1 o 2 capas densas. Tenga en cuenta que para cada contexto [matemática] c_j [/ matemática] tendremos n estados intermedios uno para cada palabra.

Paso 2: Calcule el peso de cada palabra vector [math] h_i [/ ​​math]

[matemáticas] \ alpha_i = \ frac {\ exp (e_ {ij})} {\ sum_ {i = 1} ^ {i = n} \ exp (e_ {ij})} [/ matemáticas]

Tenga en cuenta que esto es solo softmax sobre los estados intermedios. Softmax tiene sentido porque genera pesos para cada vector de palabras y el peso total se suma a 1.

Paso 3: Calcular el vector final de longitud fija

[matemáticas] v = \ sum_ {i = 1} ^ {i = n} \ alpha_ih_i [/ ​​matemáticas]

Ahora, algunas cosas a tener en cuenta sobre esta receta

  1. Los pesos de los diferentes vectores de salida se APRENDEN como parte de la capacitación. Este cálculo se convierte en parte del gráfico de cálculo de red. Los parámetros a aprender son los parámetros de la función [matemáticas] f. [/ Matemáticas]
  2. La atención es cara. Tenga en cuenta que en esta receta estamos calculando la atención para cada contexto [math] c_j. [/ Math] ¡¡Esto es operaciones cuadráticas !!.

Algunos ejemplos de posibles vectores de contexto:

  • En Neural Machine Translation, son los vectores de estado de la palabra traducida previamente. https://arxiv.org/pdf/1409.0473.pdf
  • En la clasificación, se utilizan las atenciones personales. Básicamente, tiene vectores globales que representan la pregunta “¿Cuáles son las palabras importantes”. Un ejemplo es este artículo. https://www.cs.cmu.edu/~diyiy/do…
  • En las tareas de preguntas y respuestas, el contexto es el vector para la secuencia de preguntas y se utiliza para atender el documento fuente (documento que tiene la respuesta).

Los modelos de atención plantean una pregunta importante: “¿Qué tan centrales son las RNNs para el procesamiento del lenguaje natural”?

Piénselo, está agregando el vector de salida en todo momento. ¿No suena como lo que hacen las redes neuronales de convolución? Además, para tareas como las clasificaciones, ¿realmente necesitamos RNN? ¿Podemos atender a la matriz de incrustación? Estas preguntas conducen a algunos documentos nuevos.

  • Uso de CNN en la traducción automática. Un enfoque novedoso para la traducción automática neuronal
  • Papeles que solo intentan usar Atención. https://arxiv.org/pdf/1706.03762…

Espero que esto sea útil 🙂

Lo primero que hay que preguntar es, ¿qué es la atención?

Básicamente es un proceso de enfocarse en una parte más pequeña de un estímulo de entrada más grande. Esto significa que cualquier sistema que aplique atención necesitará determinar dónde enfocarse. Hay varias formas en que esto se puede hacer.

  • Asistir exhaustiva e iterativamente a cada parte de los estímulos de entrada. Esto puede suceder cuando no hay señales para ayudar a reducir la búsqueda.
  • Atienda solo a las regiones de los estímulos con el contenido importante más probable. Esto requiere el uso de contexto u otras señales para calcular estas áreas de atención.

En el sentido real, la atención es una operación “difícil”, lo que significa que un sistema puede atender una región de los estímulos completamente o no atenderla. En resumen, la atención intensa utiliza una máscara binaria para determinar las regiones de enfoque. Los humanos usamos mucha atención porque mejora nuestra capacidad de asimilar estímulos complejos, como imágenes en la pantalla, mientras juegas un juego complejo como Horizon zero dawn, por ejemplo. Tus ojos y tu mente atenderán a diferentes partes de la escena de una manera difícil.

Por lo tanto, la atención es como dividir y conquistar mediante la cual los estímulos de entrada se descomponen iterativamente en fragmentos fáciles de procesar para finalmente resolver todo el problema, esto conduce a:

  • Robustez ante las distorsiones globales: dado que la atención se dirige a las regiones locales, se vuelve menos sensible a las distorsiones globales. Si intenta procesar un gran estímulo a la vez, su sistema sufrirá:
  • Caso de dimensionalidad.
  • Errores acumulados
  • Grandes parámetros ajustables.
  • Eficiencia computacional: el mecanismo de atención dura hace un uso excelente de los recursos computacionales porque los estímulos se dividen en bloques de información más fáciles de administrar.
  • Sin embargo, como se definió anteriormente, el mecanismo de atención dura plantea algunos desafíos para el aprendizaje automático moderno (ML) principalmente debido a que es “difícil” (no diferenciable). Por lo tanto, para que funcione en el contexto de los algoritmos modernos de ML, necesitamos que sea suave (diferenciable).

    Bienvenido a una atención diferenciable o mejor conocida como atención suave .

    En la atención suave, la idea es la misma, pero en lugar de una máscara binaria dura para seleccionar áreas de atención, pasamos a una máscara más suave de tamaño [matemática] m × n [/ matemática] definida por algunos pesos:

    [matemáticas] \ alpha_ {ij} [/ matemáticas]

    Tal que

    [matemáticas] 1 = \ sum_ {i = 0} ^ {m} \ sum_ {j = 0} ^ {n} \ alpha_ {ij} [/ matemáticas]

    Representa distribuciones de probabilidad sobre los estímulos. La máscara puede ser unidimensional en el procesamiento del lenguaje natural (PNL), por ejemplo.

    Las probabilidades de atención para la atención dura son, por lo tanto, iguales en todas partes en las que se centra el sistema y cero en otras partes. Para una atención suave, las probabilidades alcanzan su punto máximo en el centro de atención y gradualmente caen como una función aproximada de la distancia desde el centro de atención. Las probabilidades de atención suave nunca caen exactamente a cero, por lo tanto, esto significa que la atención suave puede tener problemas computacionales debido a esta naturaleza no dispersa.

    Esto también significa que con una atención suave en realidad no mejoramos la eficiencia computacional, la aumentamos. El único beneficio de la atención suave es la eliminación de señales contextuales irrelevantes durante la inferencia.

    Por lo tanto, en atención suave, las probabilidades de atención se calculan con la ayuda de una función softmax que utiliza una red neuronal (NN) que se alimenta de un vector de estado del sistema y otra información de soporte.

    Este mecanismo de atención puede ser útil para.

    • Escritura / lectura a / para memoria en redes neuronales aumentadas de memoria. Tal como la computadora neural diferenciable (DNC) de DeepMind.
    • Traducción automática neuronal (NMT): para atender los pasos de tiempo anteriores durante la traducción.
    • Anotación automática de imagen utilizando redes neuronales convolucionales (CNN) para la extracción de características y un mecanismo de atención para atender varias partes de la imagen a medida que el sistema genera una breve descripción de la imagen.

    En todos esos sistemas, la atención suave se calcula como una máscara de distribuciones de probabilidad que determina qué áreas de los estímulos tendrán la influencia más fuerte / más débil durante la inferencia.

    Espero que esto ayude.

    Recientemente escribí sobre los conceptos básicos de las redes de atención, puede que le resulte interesante: comprender las redes de atención neuronal

    More Interesting

    ¿Es la aplicación de aprendizaje profundo para las tareas de aprendizaje de redes neuronales artificiales con más de una capa oculta?

    ¿Las personas en Second Life estarían interesadas en criar un bebé con IA?

    ¿Cuánto tiempo tardará en emerger la IA como la de Ex Machina?

    Cómo crear un chatbot para mi sitio web

    ¿Es un software codificado a mano más caro que un software producido en fábrica? ¿Tiene aditivos o inteligencia artificial?

    ¿Quora es un experimento para recopilar datos naturales y verdaderos de la mente humana para educar a la IA en su proceso de aprendizaje profundo?

    ¿Cuáles son algunos ejemplos de aplicaciones web que utilizan el aprendizaje automático y cómo lo utilizan?

    ¿Puede una computadora usar inteligencia artificial para vencer al 'mejor' jugador de póker siempre?

    ¿Qué plan de matemáticas debería elegir en la universidad que mejor se prepare para el aprendizaje automático en la escuela de posgrado?

    Chomba Bupe, ¿cómo te interesaste en el aprendizaje automático?

    ¿Cómo se manejan las metáforas en AI / NLP / ML?

    ¿Cómo puede una IA matar a todos en el planeta al instante?

    ¿Cómo puedo usar las redes neuronales convolucionales recurrentes (RCNN) para correcciones tipográficas de OCR?

    ¿Es posible hacer el reconocimiento de voz de otras maneras aparte del reconocimiento de patrones, o podemos hacerlo mejor? Si la respuesta es sí, ¿cómo?

    ¿Hay alguna manera de probar si es posible un modelo algorítmico de la mente humana sin implementarlo?