[Aprendizaje profundo de nube de puntos] Módulos de red comunes: mecanismo de atención en transformador

Texto original del artículo: Todo lo que necesitas es atención

Recientemente, al aprender la red, se descubrió que el diseño de la red en muchos artículos nuevos todavía usa la estructura de la red clásica anterior. En el campo de la nube de puntos 3D, existe una red muy popular Deep Closet Point (DCP), que pertenece a la estructura Frame-toFrame, y el módulo Transformer se menciona en la parte de diseño de la red:

Y al comparar los efectos, DCP también tiene dos versiones: V1 y V2, la diferencia es si se agrega el módulo Atención. El autor del artículo, Wang Yue, también es el autor de DGCNN (Dynamic Graph CNN) Fue influenciado por el transformador y diseñó tal estructura.

La ampliación de la estructura del módulo Transformador se ve así:

La estructura del Transformador es:

El de la izquierda es el codificador y el de la derecha es el decodificador. El modelo fue propuesto por Google en 2017 y se utilizó por primera vez para resolver problemas de PNL. Como se muestra abajo:

 Veamos primero la imagen simple:

 La entrada es francés y la salida es inglés. Las palabras en francés se ingresan en el codificador a través de un cierto francés (incrustación) y luego se emiten como palabras en inglés a través del decodificador. Esto es lo que podemos sentir intuitivamente. Entonces, ¿cómo se diseñan los módulos Encoder y Decoder?

 Boom, de hecho, estos dos módulos se componen de una serie de codificadores y decodificadores. La estructura en la figura anterior es 6. De hecho, depende de nuestro diseño y requisitos, pero la cantidad de codificadores y decodificadores debe ser la misma. .

Escalamos el módulo:

 Se puede encontrar que los dos son similares en estructura, y el decodificador tiene una capa de Atención en el medio, lo que ayuda al decodificador a enfocarse en las partes relevantes de la entrada.

El método que mencionamos anteriormente para convertir la palabra de entrada en una determinada forma (vector) se denomina algoritmo de incrustación en NLP. Se puede entender de la siguiente manera:

 Entonces, lo que realmente implementamos es:

 Entre ellos, z es el resultado de la autoatención, que es el resultado de softmax. Los detalles se mencionarán más adelante. Hablemos de esta parte de la autoatención en detalle:

Esta parte involucra una parte muy importante del papel: Q, K, V. Cuando veamos por primera vez estas tres letras, definitivamente nos confundiremos un poco, de hecho, las tres representan: Query, Key, Value, que son las siguientes operaciones De hecho, realizamos una coincidencia entre Query y Key, y combinamos los valores correspondientes a diferentes claves para dar un puntaje. Para aquellos con puntajes altos, asignamos mayor atención. Este es el mecanismo de atención.

 Las tres matrices anteriores se obtienen durante el entrenamiento.

 El valor de la fórmula anterior es el valor z que mencionamos anteriormente.

 Esta imagen es para una sola comprensión, entonces, ¿qué pasa con múltiples? Matriz constituyente:

 Y el valor Z también se puede expresar como:

 ¿Está claro a simple vista dónde se puede entender la multiplicación de Q y K combinando el producto escalar de cada elemento? El producto escalar de dos vectores caracteriza la correlación entre los dos. Si es 0, significa que los dos son no relacionados, y cuanto más cerca de 1 mayor sea el grado de correlación entre los dos.

donde dk es la dimensión del vector de entrada. Dividir por la dimensión es asegurar la estabilidad del gradiente. La desaparición del gradiente se puede controlar de manera efectiva. Suponiendo que tanto Q como K son matrices dk-dimensionales con un valor medio de 0 y una varianza de 1, el resultado de la multiplicación es que el valor medio es 0 y la varianza es dk bajo el signo de la raíz, así que divida por dk bajo el signo de la raíz.

Para Multi-Head, es el resultado de empalmes múltiples más linealización:

 Todo el proceso se puede entender de la siguiente manera:

 El siguiente es un ejemplo de aplicación:

Distingue: The animal didn't cross the street because it was too tired" Se refiere a eso, que es muy simple para los humanos pero no para las máquinas. El modelo de múltiples cabezas es el siguiente:

 A partir de los valores de z1 y z2, podemos saber que animal y cansado se basarán en una mayor atención para la máquina.

Expanda las cinco capas, el resultado es el siguiente pero puede ser un poco difícil de entender.

 Además, hay otro problema sin resolver que es el problema del orden de las palabras: las oraciones compuestas por la misma palabra o texto tendrán significados diferentes si el orden de las palabras es diferente, lo cual es difícil de lograr en Internet. Por lo tanto, la parte de codificación de posición se agrega antes de ingresar a la red:

 Además, las dimensiones de la entrada y la salida pueden no ser las mismas. En este momento, la máscara de relleno debe eliminarse. Generalmente, agregamos infinito negativo a la posición correspondiente, de modo que el valor softmax sea 0.

En la estructura de la figura anterior: Add&Normalization se puede expresar visualmente como:

 

-------------------------------------------------- ---------------------------------------

La mayoría de las imágenes de este artículo son de:

The Illustrated Transformer – Jay Alammar – Visualizando el aprendizaje automático un concepto a la vez.

 Recomiendo encarecidamente a todos que lean el artículo anterior, es muy bueno.

También se recomienda leer o ver:

1.  Self-Atention and Transformer - machine-learning-notes  ( esta es una interpretación de los artículos recomendados )

 2. ¿  Por qué es mejor Transformer que CNN_哔哩哔哩_bilibili?

Supongo que te gusta

Origin blog.csdn.net/m0_46611008/article/details/125183892
Recomendado
Clasificación