[Serie de mecanismos de atención de aprendizaje profundo] - Mecanismo de atención de ECANet (con implementación de pytorch)

ECANet (Efficient Channel Attention Network) es una arquitectura de red neuronal para tareas de procesamiento de imágenes. Captura de manera efectiva la relación entre canales en imágenes mientras mantiene una alta eficiencia, mejorando así la capacidad de representación de características . ECANet logra un rendimiento superior al introducir un mecanismo de atención de canal e incorporarlo en la capa convolucional. Este artículo explicará en detalle la idea central, la estructura y las ventajas de ECANet.

1. Idea central

La idea central de ECANet es introducir un mecanismo de atención de canal en la operación de convolución para capturar la relación entre diferentes canales, mejorando así la capacidad de representación de características . El objetivo del mecanismo de atención del canal es ajustar de manera adaptativa el peso de las funciones del canal, de modo que la red pueda enfocarse mejor en las funciones importantes y suprimir las funciones sin importancia . A través de este mecanismo, ECANet puede mejorar efectivamente la capacidad de representación de la red sin agregar demasiados parámetros y costos computacionales.

2. Estructura

La estructura de ECANet se divide principalmente en dos partes: módulo de atención de canales y módulo de atención de canales incorporado .

inserte la descripción de la imagen aquí

  • modulo de atencion de canales

El módulo de atención del canal es el componente central de ECANet y su objetivo es ajustar de manera adaptativa el peso de las características del canal de acuerdo con la relación entre los canales. La entrada de este módulo es un mapa de características (Mapa de características), el valor promedio global de cada canal se obtiene a través de la agrupación promedio global y luego se usa un conjunto de capas completamente conectadas para generar pesos de atención del canal. Estos pesos se aplican a cada canal del mapa de características de entrada, lo que permite una combinación ponderada de diferentes canales en el mapa de características. Finalmente, las características ajustadas se normalizan mediante un factor de escala para preservar el rango de las características.

  • Módulo de atención de canal integrado

El módulo de atención de canal incorporado es una parte extendida de ECANet, que incorpora el mecanismo de atención de canal en la capa de convolución, introduciendo así relaciones de canal en la operación de convolución. Este diseño integrado puede realizar el cálculo de atención del canal durante la operación de convolución, lo que reduce el costo del cálculo. Específicamente, en la operación de convolución, el mapa de características de entrada se divide en múltiples mapas de subcaracterísticas, y luego la operación de convolución se realiza en cada mapa de subcaracterísticas por separado, y la atención del canal se introduce durante la operación de convolución. Finalmente, los mapas de subcaracterísticas obtenidos por estas convoluciones se combinan para obtener el mapa de características de salida final.

Mecanismo de implementación:

  • A través de la capa de agrupación promedio de toda la obra, la gran característica bidimensional (h*w) de cada canal se comprime en un número real, y la dimensión del mapa de características cambia: (C, H, W) -> (C, 1, 1)

  • Calcule el kernel_size del kernel de convolución unidimensional adaptativo y la fórmula de cálculo es la siguiente:

inserte la descripción de la imagen aquí

Donde
b = 1 γ = 2 C es el número de canales b = 1 \\ \gamma = 2\\ C es el número de canalesb=1C=2C es el número de canales

  • Use el kernel de convolución unidimensional (el mismo kernel unidimensional) con kernel_size = k para que el mapa de características obtenga el vector de peso de cada canal, y la dimensión cambia (C, 1, 1) -> (C, 1, 1 ).
  • Multiplique los pesos normalizados por el mapa de características de entrada (C, H, W) * (C, 1, 1) -> (C, H, W)

3. Ventajas

El diseño de ECANet tiene ventajas en los siguientes aspectos:

  • Eficiencia

ECANet introduce un mecanismo de atención de canales mientras mantiene una alta eficiencia a través de un módulo de atención de canales integrado. Esto permite que la red mejore la capacidad de representación de características sin agregar demasiado costo computacional.

  • Impulsar la representación de características

El mecanismo de atención del canal puede ajustar de forma adaptativa el peso de las funciones del canal, lo que permite que la red se centre mejor en las funciones importantes. Este mecanismo ayuda a mejorar la capacidad de discriminación de las características, mejorando así el rendimiento de la red.

  • reducir el sobreajuste

El mecanismo de atención del canal ayuda a suprimir características sin importancia, lo que reduce el riesgo de sobreajuste. La red presta más atención a las características importantes, lo que ayuda a mejorar la capacidad de generalización.

4. Implementación del código

class ECANet(nn.Module):
    def __init__(self, in_channels, gamma=2, b=1):
        super(ECANet, self).__init__()
        self.in_channels = in_channels
        self.fgp = nn.AdaptiveAvgPool2d((1, 1))
        kernel_size = int(abs((math.log(self.in_channels, 2) + b) / gamma))
        kernel_size = kernel_size if kernel_size % 2 else kernel_size + 1
        self.con1 = nn.Conv1d(1,
                              1,
                              kernel_size=kernel_size,
                              padding=(kernel_size - 1) // 2,
                              bias=False)
        self.act1 = nn.Sigmoid()

    def forward(self, x):
        output = self.fgp(x)
        output = output.squeeze(-1).transpose(-1, -2)
        output = self.con1(output).transpose(-1, -2).unsqueeze(-1)
        output = self.act1(output)
        output = torch.multiply(x, output)
        return output

Resumir

ECANet es una arquitectura de red neuronal eficiente. Al introducir un mecanismo de atención de canal, puede capturar de manera efectiva la relación de canal en la imagen y mejorar la capacidad de representación de características. Su estructura incluye un módulo de atención de canales y un módulo de atención de canales incorporado, que tienen las ventajas de una alta eficiencia, una mejor representación de funciones y un sobreajuste reducido. Con este diseño, ECANet logra un rendimiento superior en las tareas de procesamiento de imágenes.

Supongo que te gusta

Origin blog.csdn.net/qq_43456016/article/details/132172185
Recomendado
Clasificación