machine learning intelligence artificial machine-learning neural-network recurrent-neural-network

machine-learning - intelligence - machine learning vs ai



AtenciĆ³n suave vs. atenciĆ³n dura (1)

En esta publicación del blog, La efectividad irrazonable de las redes neuronales recurrentes , Andrej Karpathy menciona direcciones futuras para el aprendizaje automático basado en redes neuronales:

El concepto de atención es la innovación arquitectónica reciente más interesante en las redes neuronales. [...] el esquema de atención suave para direccionamiento de memoria es conveniente porque mantiene el modelo totalmente diferenciable, pero desafortunadamente se sacrifica la eficiencia porque todo lo que se puede atender es atendido (pero suavemente). Piense en esto como declarar un puntero en C que no apunta a una dirección específica, sino que define una distribución completa sobre todas las direcciones en toda la memoria, y al eliminar la referencia del puntero se obtiene una suma ponderada del contenido apuntado (eso sería un costoso). ¡operación!). Esto ha motivado a varios autores a intercambiar modelos de atención suave por atención dura donde se muestrea una porción particular de memoria para atender (por ejemplo, una acción de lectura / escritura para alguna celda de memoria en lugar de leer / escribir de todas las celdas hasta cierto punto). Este modelo es mucho más filosóficamente atractivo, escalable y eficiente, pero, lamentablemente, tampoco es diferenciable.

Creo que entendí la metáfora del indicador, pero ¿qué es exactamente la atención y por qué la difícil no es diferenciable?

Encontré una explicación sobre la atención here , pero todavía confundido acerca de la parte blanda / dura.


¿Qué es exactamente la atención?

Para poder comprender esta pregunta, necesitamos sumergirnos un poco en ciertos problemas que la atención busca resolver. Creo que uno de los artículos seminales sobre atención difícil son los modelos recurrentes de atención visual, y alentaría al lector a que lo lea, aunque al principio no parezca completamente comprensible.

Para responder a la pregunta de qué es exactamente la atención, intentaré plantear una pregunta diferente que creo que es más fácil de responder. ¿Cuál es, por qué atención? . El documento que he enlazado busca responder esta pregunta de manera sucinta y reproduciré parte del razonamiento aquí.

Imagina que te vendaron los ojos y te llevaron a una fiesta sorpresa de cumpleaños y acabas de abrir los ojos. ¿Qué verías?

Ahora, cuando decimos que ve la imagen, se trata de una versión más corta de la siguiente secuencia de acciones más técnicamente correcta, que consiste en mover los ojos a lo largo del tiempo y recopilar información sobre la escena. No ves todos los píxeles de la imagen a la vez. Usted atiende ciertos aspectos de la imagen paso a paso y agrega la información. Incluso en una imagen tan desordenada, por ejemplo, reconocería a su tío Bill y su primo Sam :). ¿Porqué es eso? Porque atiendes ciertos aspectos destacados de la imagen actual.

Ese es exactamente el tipo de poder que queremos dar a nuestros modelos de redes neuronales. ¿Por qué? Piense en esto como una especie de regularización. (Esta parte de la respuesta hace referencia al documento) Su modelo de red convolucional habitual tiene la capacidad de poder reconocer imágenes desordenadas, pero ¿cómo encontramos el conjunto exacto de pesos que son "buenos"? Esa es una tarea difícil. Al proporcionar a la red una nueva función de nivel de arquitectura que le permite atender a diferentes partes de la imagen de forma secuencial y agregar información a lo largo del tiempo, facilitamos ese trabajo, porque ahora la red simplemente puede aprender a ignorar el desorden (o así es el esperanza).

Espero que esto responda a la pregunta ¿Qué es la atención difícil? . Ahora en la naturaleza de su diferenciabilidad . Bueno, ¿recuerdas cómo elegimos convenientemente los lugares correctos para mirar mientras miramos la foto de cumpleaños? Como hicimos eso? Este proceso implica realizar elecciones que son difíciles de representar en términos de una función diferenciable de la entrada (imagen) . Por ejemplo, según lo que haya visto y la imagen, decida dónde buscar a continuación. Podría tener una red neuronal que arroje la respuesta aquí, ¡pero no sabemos la respuesta correcta! De hecho, no hay una respuesta correcta. ¿Cómo entonces vamos a entrenar los parámetros de red? La formación de redes neuronales depende fundamentalmente de una función de pérdida diferenciable de las entradas. Los ejemplos de tales funciones de pérdida incluyen la función de pérdida de probabilidad de registro, función de pérdida al cuadrado, etc. Pero en este caso, no tenemos una respuesta correcta de dónde buscar a continuación. ¿Cómo entonces podemos definir una pérdida? Aquí es donde entra en juego un campo de aprendizaje automático denominado aprendizaje reforzado (RL). RL le permite hacer un gradiente en el espacio de políticas utilizando métodos como el método de refuerzo y los algoritmos de crítica de actores.

¿Qué es la atención suave?

Esta parte de la respuesta se toma de un papel que lleva el nombre de máquinas de enseñanza para leer y comprender . Un problema importante con los métodos de RL, como el método de refuerzo, es que tienen una alta varianza (en términos del gradiente de la recompensa esperada calculada) que se escala linealmente con el número de unidades ocultas en su red. Eso no es algo bueno, especialmente si vas a construir una red grande. Por lo tanto, la gente trata de buscar modelos de atención diferenciables . Todo lo que esto significa es que el término de atención y, como resultado, la función de pérdida son una función diferenciable de las entradas y, por lo tanto, todos los gradientes existen. Por lo tanto, podemos utilizar nuestro algoritmo de backprop estándar junto con una de las funciones de pérdida habituales para capacitar a nuestra red. Entonces, ¿qué es la atención suave?

En el contexto del texto, se refiere a la capacidad del modelo para elegir asociar más importancia con ciertas palabras en el documento con respecto a otros tokens. Si está leyendo un documento y tiene que responder una pregunta basada en él, concentrarse en ciertos tokens en el documento podría ayudarlo a responder mejor a la pregunta, en lugar de leer cada token como si fuera igual de importante. Esa es la idea básica detrás de la atención suave en el texto. La razón por la que es un modelo diferenciable es porque usted decide cuánta atención prestará a cada token basándose únicamente en el token particular y la consulta en cuestión. Por ejemplo, podría representar los tokens del documento y la consulta en el mismo espacio vectorial y ver la similitud entre el producto / coseno del punto como una medida de la cantidad de atención que debe prestar a ese token en particular, dada esa consulta. Tenga en cuenta que la operación de la distancia del coseno es completamente diferenciable con respecto a sus entradas y, por lo tanto, el modelo general termina siendo diferenciable. Tenga en cuenta que el modelo exacto utilizado por el artículo difiere y este argumento es solo para fines de demostración, aunque otros modelos sí usan una puntuación de atención basada en productos de puntos.