Análisis de parámetros de cálculo de transformadores
Primero, veamos la estructura del transformador, que es la estructura del primer artículo: ¿Se propone atención? Incluye un codificador y un decodificador. El codificador toma la información de entrada de atención. aprendizaje A medida que las consultas y las claves se pasan al decodificador, todos los módulos del codificador y del decodificador contienen atención de múltiples cabezales y estructuras de alimentación de palabras. Es una red neuronal convolucional que no se ha tocado antes, en la que la atención de múltiples cabezas es el núcleo del transformador. A continuación, explicaremos en detalle la estructura específica de la atención de múltiples cabezas y el proceso de implementación en detr.
La entrada de la atención de múltiples cabezales es consulta, clave y valor. La consulta y la clave se obtienen primero mediante la multiplicación de matrices para obtener la matriz de atención, y luego la multiplicación de matrices se realiza en el valor de la matriz de atención para obtener. las características con información de atención adicional. En detr, las consultas, las palabras clave y los valores provienen de las características extraídas por la red troncal. La única diferencia es que la consulta y las palabras clave agregan información de codificación de posición en función de las características (se presentará en detalle más adelante), por lo que se presta atención. obtenido está relacionado con la ubicación;
La longitud y latitud características generadas por la red troncal es N, y la latitud característica es NxCxHxW. La latitud obtenida al remodelar y transponer es HWxNxC, y luego pasa a través. una capa CxC completamente conectada respectivamente. Los tres no son iguales aquí. Tiene peso, por lo que el número de parámetros es 3xCxC y la cantidad de cálculo es 3xHWxCxC.
El siguiente es el procesamiento de múltiples cabezales. El principio de múltiples cabezales es dividir el canal C-dimensional en múltiples cabezales. Cada cabezal aprende diferentes aspectos de la información de ATENCIÓN, y la cantidad de parámetros y la cantidad de cálculo serán. no aumentar adicionalmente; en detr, C = 256, el número de cabezas es 8, por lo que cada cabeza tiene 32 dimensiones. A continuación, la consulta, las claves y los valores se reforman y se transponen a NhxHWxD, y las claves se transponen nuevamente a NhxDxHW. bmm (matriz-matriz por lotes) obtiene el tensor NhxHWxHW. El resultado del cálculo de este bmm es CxHWxHW. El tensor obtenido contiene la relación de atención (HWxHW) entre cada característica y otras características, luego se escala (1/); ¿Por qué el transformador pasa por escala, multiplica por la máscara y vuelve a pasar por softmax? Obtenemos el gráfico de atención de la característica y luego activamos esta matriz de atención y su valor. Luego incendiamos esta matriz de atención y su valor, obtenemos nuevamente el mapa de características de atención a través de bmm y luego obtenemos la salida del transformador a través de una conexión completa nuevamente. Se puede ver que todo el proceso incluye dos cálculos de bmm y cuatro cálculos de conexión completa. La cantidad total de cálculo es:
El número de parámetros es 4xCxC.
Se puede ver que la mayor cantidad de cálculo es calcular bmm en la matriz que tiene una relación cuadrada con HW, y estos dos cálculos son principalmente para calcular la relación entre cada característica y otras características de HW. entonces la transformación swin El servidor resuelve este problema. Para resolver este problema, el transformador swin recomienda calcular solo las características WxW dentro de la ventana local y la relación entre cada característica y otras características WxW, por lo que la complejidad del cálculo es HWxWxW, W se establece en 7. Para específicos. situaciones Puede esperar a que se publique el código del transformador swin.