[Deep Learning Attention Mechanism Series] - Mécanisme d'attention ECANet (avec implémentation pytorch)

ECANet (Efficient Channel Attention Network) est une architecture de réseau de neurones pour les tâches de traitement d'images. Il capture efficacement la relation inter-canaux dans les images tout en maintenant une efficacité élevée, améliorant ainsi la capacité de représentation des caractéristiques . ECANet atteint des performances supérieures en introduisant un mécanisme d'attention de canal et en l'intégrant dans la couche convolutive. Cet article explique en détail l'idée centrale, la structure et les avantages d'ECANet.

1. Idée centrale

L'idée centrale d'ECANet est d'introduire un mécanisme d'attention de canal dans l'opération de convolution pour capturer la relation entre différents canaux, améliorant ainsi la capacité de représentation des caractéristiques . L'objectif du mécanisme d'attention au canal est d'ajuster de manière adaptative le poids des fonctionnalités du canal, afin que le réseau puisse mieux se concentrer sur les fonctionnalités importantes et supprimer les fonctionnalités sans importance . Grâce à ce mécanisme, ECANet peut améliorer efficacement la capacité de représentation du réseau sans ajouter trop de paramètres et de coûts de calcul.

2.Structure

La structure d'ECANet est principalement divisée en deux parties : le module d'attention de canal et le module d'attention de canal intégré .

insérez la description de l'image ici

  • module d'attention de canal

Le module d'attention au canal est le composant central d'ECANet, et son objectif est d'ajuster de manière adaptative le poids des fonctionnalités du canal en fonction de la relation entre les canaux. L'entrée de ce module est une carte de caractéristiques (Feature Map), la valeur moyenne globale de chaque canal est obtenue par pooling moyen global, puis un ensemble de couches entièrement connectées est utilisé pour générer des pondérations d'attention de canal. Ces pondérations sont appliquées à chaque canal de la carte de caractéristiques d'entrée, permettant une combinaison pondérée de différents canaux dans la carte de caractéristiques. Enfin, les caractéristiques ajustées sont normalisées par un facteur d'échelle pour préserver la plage des caractéristiques.

  • Module d'attention de canal intégré

Le module d'attention de canal intégré est une partie étendue d'ECANet, qui intègre le mécanisme d'attention de canal dans la couche de convolution, introduisant ainsi des relations de canal dans l'opération de convolution. Cette conception intégrée peut effectuer un calcul d'attention de canal pendant une opération de convolution, ce qui réduit le coût de calcul. Spécifiquement, dans l'opération de convolution, la carte de caractéristiques d'entrée est divisée en plusieurs cartes de sous-caractéristiques, puis l'opération de convolution est effectuée sur chaque carte de sous-caractéristiques séparément, et l'attention du canal est introduite pendant l'opération de convolution. Enfin, les cartes de sous-caractéristiques obtenues par ces convolutions sont combinées pour obtenir la carte de caractéristiques de sortie finale.

Mécanisme de mise en œuvre :

  • À travers la couche de regroupement moyenne de l'ensemble du jeu, la grande caractéristique bidimensionnelle (h * w) de chaque canal est compressée en un nombre réel, et la dimension de la carte des caractéristiques change : (C, H, W) -> (C, 1, 1)

  • Calculez le kernel_size du noyau de convolution unidimensionnel adaptatif, et la formule de calcul est la suivante :

insérez la description de l'image ici


b = 1 γ = 2 C est le nombre de canaux b = 1 \\ \gamma = 2\\ C est le nombre de canauxb=1c=2C est le nombre de canaux

  • Utilisez le noyau de convolution unidimensionnel (même noyau unidimensionnel) avec kernel_size = k pour la carte de caractéristiques pour obtenir le vecteur de poids de chaque canal, et la dimension change (C, 1, 1) -> (C, 1, 1 ).
  • Multipliez les poids normalisés par la carte de caractéristiques d'entrée (C, H, W) * (C, 1, 1) -> (C, H, W)

3. Avantages

La conception d'ECANet présente des avantages dans les aspects suivants :

  • Efficacité

ECANet introduit un mécanisme d'attention de canal tout en maintenant une efficacité élevée grâce à un module d'attention de canal intégré. Cela permet au réseau d'améliorer la capacité de représentation des caractéristiques sans ajouter trop de coûts de calcul.

  • Boostez la représentation des fonctionnalités

Le mécanisme d'attention du canal peut ajuster de manière adaptative le poids des fonctionnalités du canal, permettant au réseau de mieux se concentrer sur les fonctionnalités importantes. Ce mécanisme contribue à améliorer la capacité discriminative des fonctionnalités, améliorant ainsi les performances du réseau.

  • réduire le surajustement

Le mécanisme d'attention du canal aide à supprimer les fonctionnalités sans importance, réduisant ainsi le risque de surajustement. Le réseau accorde plus d'attention aux fonctionnalités importantes, ce qui contribue à améliorer la capacité de généralisation.

4. Mise en œuvre du code

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

Résumer

ECANet est une architecture de réseau neuronal efficace. En introduisant un mécanisme d'attention de canal, il peut capturer efficacement la relation de canal dans l'image et améliorer la capacité de représentation des caractéristiques. Sa structure comprend un module d'attention de canal et un module d'attention de canal intégré, qui présentent les avantages d'une efficacité élevée, d'une représentation améliorée des caractéristiques et d'un surajustement réduit. Avec cette conception, ECANet atteint des performances supérieures dans les tâches de traitement d'image.

Je suppose que tu aimes

Origine blog.csdn.net/qq_43456016/article/details/132172185
conseillé
Classement