DAB-DETR

DAB-DETR(2022ICLR)

DAB: Cajas de anclaje dinámicas

Insertar descripción de la imagen aquí

contribuir:

  1. Se aclaró que la convergencia lenta no es causada por consultas que se pueden aprender.

  2. ancla 4D

  3. Actualización de anclaje

  4. Ancho y altura modulados

  5. Ajuste de temperatura

Primera parte: ¿Por qué un previo posicional podría acelerar el entrenamiento?

¿Por qué la posición previa puede acelerar el entrenamiento DETR?

imagen

(a) Característica de imagen + incrustación de posición

(b) Salida inicial/decodificador + consulta de objeto

Dos posibles razones para la lenta convergencia:

  1. Desafío de optimización, la consulta de objetos es difícil de aprender
  2. La información de posición en las consultas de objetos aprendidos se codifica de manera diferente a la codificación de posición sinusoidal utilizada para las características de la imagen (la detr original está incrustada y la incrustación de posición es diferente)

Experimento 1: entregue la consulta del objeto aprendido al DETR no capacitado. Es solo un poco más alto en la primera mitad de la época, por lo que no es que la consulta sea difícil de aprender.

Insertar descripción de la imagen aquí

Experimento 2: La consulta en auto atención selecciona información de interés , enfocándose en el área o tamaño de una determinada imagen

Si lo considera como una restricción de posición, tiene malas propiedades (la anterior era para dibujar):

  1. Centrado en objetos en múltiples modos (un objetivo pequeño, horizontal, vertical)
  2. Comprobar si el peso de un objeto es similar

imagen

Figura (a) Si el objetivo en el conjunto de datos de coco tiene GT encima y debajo, será difícil localizarlo si hay varios objetos.

La parte inferior de la Figura (a) se centra en áreas que son demasiado grandes o demasiado pequeñas y no pueden inyectar información de ubicación útil en el proceso de extracción.

La figura (b) se centra en un determinado objeto en comparación con detr, pero ignora la información de escala del objeto (todos los círculos parecen del mismo tamaño)

Modelo

Insertar descripción de la imagen aquí

Consulte la estructura específica: https://img-blog.csdnimg.cn/c7bf7283aca94942b55606c667861bef.png

contribuir

Anclajes 4D: Aq=(xq,yq,wq,hq) (el método de uso proviene de detr condicional)

q significa el q-ésimo punto de anclaje
P q = MLP ( PE ( A q ) ) P_q={\mathrm{MLP}}\left(\mathrm{PE}\left(A_q\right)\right)PAGq=MLP( educación física( Unq) )
el anclaje se convierte en 4d. Después de la codificación de posición, MLP obtiene el
PE (A) de inserción posicional de la consulta. = PE (xq, yq, wq, hq) = C at (PE (xq), PE (yq), PE ( wq ) , PE ( hq ) ) {\mathrm{PE}\left(A\right)}_{.}=\mathrm{PE}\left(x_{q},y_{q},w_{q}, h_ {q}\right)=\mathrm{Cat}\left(\mathrm{PE}\left(x_{q}\right),\mathrm{PE}\left(y_{q}\right),\mathrm { PE}\left(w_{q}\right),\mathrm{PE}\left(h_{q}\right)\right)EDUCACIÓN FÍSICA( Un ).=EDUCACIÓN FÍSICA( xq,yq,wq,hq)=Gato( educación física( xq),EDUCACIÓN FÍSICA( yq),EDUCACIÓN FÍSICA( wq),EDUCACIÓN FÍSICA( hq) )
La entrada PE es información de cuatro dimensiones. Los cuatro componentes de cat están codificados como 128 dimensiones. Después de cat, es 512 y mlp vuelve a 256. Auto-Atención:
Q q = C q + P q, K q = C q + P q , V q = C q \text{Auto-Atención:}\quad Q_q=C_q+{P_q},\quad K_q=C_q+{P_q},\quad{V_q=C_q}Atención propia:qq=Cq+PAGq,kq=Cq+PAGq,Vq=Cq
autoatención没什么更改
Atención cruzada: Q q = Cat ( C q , PE ( xq , yq ) ⋅ MLP ( csq ) ( C q ) ) , K x , y = Cat ( F x , y , PE ( x , y ) ) , V x , y = F x , y , \begin{aligned}\text{Cross-Attn:}\quad&Q_q=\text{Cat}\left(C_q,\text{PE}(x_q,y_q) \cdot\text{MLP}^{(\text{csq})}\left(C_q\right)\right),\\&K_{x,y}=\text{Cat}\left(F_{x,y) },\text{PE}(x,y)\right),\quad V_{x,y}=F_{x,y},\end{alineado}Atención cruzada:qq=Gato( Cq,educación física ( xq,yq)MLP( csq )( Cq) ),kx , y=Gato( Fx , y,educación física ( x ,y ) ),Vx , y=Fx , y,
atención cruzada

Q_q: donde C_q: el resultado de la autoatención anterior, seguido del método de detr condicional

k: Memoria+incrustación de poses

v: v permanece sin cambios

Actualización de anclaje (refinamiento de caja deformable):

Ancho y altura modulados:

El mapeo de atención posicional tradicional se utiliza como un método previo de tipo gaussiano, que supone un tamaño fijo,
pero el método previo simplemente supone que todos los objetos son isotrópicos y de tamaño fijo, ignorando su información de escala (ancho y alto).
Insertar descripción de la imagen aquí

Lo anterior es la atención estándar original.

Modifique el mapa de atención posicional separando por separado el ancho y el alto del ancla relevante de su parte x e y para suavizar el gaussiano antes de combinar mejor con objetos de diferentes escalas.

wq y hq son el ancho y alto del ancla Aq, wqref y hqref se obtienen mediante MLP

Ajuste de temperatura (aviso):

La codificación de posición en Transformer se codifica mediante funciones seno y coseno . La fórmula es la siguiente

pos representa la posición de la palabra en la oración, 2i o 2i + 1 representa un componente del vector de codificación de posición, 2i representa un número par y 2i + 1 representa un número impar. Se puede ver que la codificación de posición de un cierta palabra es un vector y no un valor. Está compuesta de palabras. La posición y la posición del componente se determinan conjuntamente.

imagen

def GetPosEncodingMatrix(max_len, d_emb):
    # 位置编码
    pos_enc = np.array([
        [pos / np.power(10000, 2 * (j // 2) / d_emb) for j in range(d_emb)]
        if pos != 0 else np.zeros(d_emb)
        for pos in range(max_len)
    ])
    pos_enc[1:, 0::2] = np.sin(pos_enc[1:, 0::2])  # dim 2i
    pos_enc[1:, 1::2] = np.cos(pos_enc[1:, 1::2])  # dim 2i+1
    return pos_enc
            
设置max_len为每个句子的最大长度为50,d_emb为每个词的embedding的维度为256,最终得到一个[50, 256]的位置编码矩阵,每一行代表一个位置的位置编码结果,每一列代表某个词在某个位置编码分量上的值。所有句子共享这个位置编码矩阵,也就是说所有句子相同位置的字/词的位置编码结果是一致的,

PE ⁡ ( x ) 2 i = sin ⁡ ( x T 2 i / D ) , PE ⁡ ( x ) 2 i + 1 = cos ⁡ ( x T 2 i / D ) \operatorname{PE}(x)_{2 i}=\sin \left(\frac{x}{T^{2 i / D}}\right), \quad \operatorname{PE}(x)_{2 i+1}=\cos \left( \frac{x}{T^{2 i / D}}\right)educación física ( x )2i _=pecado(t2i / D_ _x),educación física ( x )2 yo + 1=porque(t2i / D_ _x)
Parámetro de temperatura: NLP original es 10000, no apto para DETR

Supongo que te gusta

Origin blog.csdn.net/qq_52038588/article/details/133207380
Recomendado
Clasificación