$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Cette section traite des matériaux de recherche et méthodes liés aux systèmes de détection d’attaques dans l’environnement IoT. Afin de reproduire les expériences sur le jeu de données CIC-IoT-2023, ce protocole décrit des procédures spécifiques. Le tableau des matériaux qui suit contient une liste de tout le matériel et logiciel utilisé. Python (pandas, scikit-learn et TensorFlow Keras) est utilisé pour implémenter le pipeline, qui fonctionne sur Google Colab avec PySpark disponible pour le prétraitement de gros fichiers. Une description détaillée des procédures de prétraitement des données a été fournie.
Jeu de données
Le jeu de données CIC-IoT-2023, publié par l’Institut canadien de cybersécurité de l’Université du Nouveau-Brunswick. « CIC IoT dataset 2023 » (page des ensembles de données UNB CIC) et l’article34 sont la page officielle et l’article du jeu de données CIC. Le jeu de données peut être téléchargé depuis le site web du CIC et est accessible au grand public. Au lieu d’utiliser des PCAP bruts, les fichiers CSV de caractéristiques pré-extraits (flux/caractéristiques) sont utilisés dans cette recherche. Wireshark/mergecap et CICFlowMeter sont utilisés dans les expériences brutes qui ont généré le jeu de données ; des CSV présentés sont utilisés dans ce travail. Cet ensemble de données, dérivé de véritables appareils IoT, est utilisé dans cette recherche. Le jeu de données comprend les enregistrements de 33 attaques connues sur 105 appareils IoT différents. Contrairement aux jeux de données IoT précédents, CIC-IoT-2023 inclut une grande variété de types d’attaques. La quantité de chaque étiquette liée au trafic bénin est indiquée à la Figure 1. Un total de 46 attributs et 1 étiquette composent ce jeu de données. Comparé au CSE-CIC-IDS 2018, qui comptait 84 fonctionnalités, le CIC-IoT-2023 en a 37 en moins.

Figure 1 : Nombre des attaques dans le jeu de données CICIoT2023. Les noms de comptage des différents types d’attaques et des enregistrements bénignes dans le jeu de données CICIot2023 sont décrits. Ces différents types d’attaques sont globalement classés en 7 classes d’attaques. Il y a donc un total de 8 classes, incluant la bénigne dans la classification multiclasse. Veuillez cliquer ici pour voir une version agrandie de cette figurine.
Prétraitement des données
Les ensembles de données ne devraient pas être utilisés dans les algorithmes d’apprentissage profond sans prétraitement suffisant. Le prétraitement est effectué pour fournir à l’algorithme des données plus fines, rendant finalement le modèle plus efficace. La sortie du pipeline de prétraitement — après l’encodage d’étiquette, la mise à l’échelle des fonctionnalités et la sélection des caractéristiques — est appelée « Final Data » et sert d’entrée aux composants CNN et Transformer. Les étapes suivantes sont dans Google Colab utilisant Python. Cette recherche a utilisé Python 3.8.10, pandas 1.3.4, NumPy 1.21.4, scikit-learn 1.0.2, matplotlib 3.4.3 et TensorFlow/Keras 2.6.0. La tête de série aléatoire était fixée à 42 pour toutes les parties.
Acquisition de données
Cette étape consiste à nettoyer les données acquises dans des contextes réels, car elles contiennent souvent de nombreuses erreurs et incohérences. Si le jeu de données contient des valeurs textuelles, par exemple, il est impossible d’utiliser ces valeurs dans l’entraînement en apprentissage profond sans les convertir d’abord en forme numérique. Lorsqu’on travaille avec le jeu de données, la première chose à faire est de supprimer les valeurs vides et de supprimer des cellules sans données. Les lignes avec des données manquantes ont été éliminées afin d’éviter tout effet négatif sur le modèle.
Le jeu de données CIC-IoT-2023 est chargé en utilisant.read_csv('ciciot2023_features_part.csv'). Cette recherche a utilisé Google Colab pour l’entraînement des modèles et PySpark pour le nettoyage initial. Pour détecter les manques, les méthodes suivantes sont utilisées : df.shape, df.info(), df.isnull().sum(), et df.duplicated().sum() pour les doublons. Les doublons sont éliminés en utilisant df.drop_duplicates(inplace=Vrai). Le type de colonne numérique est vérifié à l’aide de la formule df[col] =.to_numeric(df[col], erreurs = 'coerce'). Si de nouveaux NaN apparaissent, la gestion des valeurs manquantes est réappliquée. Les caractéristiques constantes ou presque constantes sont également éliminées en utilisant df.drop(columns=low_variance_cols, inplace=True).
Codage d’étiquettes
L’étape suivante consiste à transformer les étiquettes de texte en une représentation numérique afin que le modèle puisse les comprendre. Pour la classification binaire, il existe deux types distincts d’étiquettes. Il y a 46 686 579 enregistrements, dont 45 588 384 sont considérés comme des attaques malveillantes. Avec 1 098 195 disques inclus, le label bénin est fixé à 0. Il existe sept types distincts d’attaques dans la classification multiclasse. Il y a huit labels au total, y compris le trafic anodin. La figure 2 montre le nombre de chaque catégorie de ces labels. La cartographie multiclasse utilisée dans cette recherche est : 0 pour le bénignois, 1 pour le DoS, 2 pour le DDoS, 3 pour la reconnaissance, 4 pour l’attaque web, 5 pour l’usurpation, 6 pour la force brute, et 7 pour l’attaque mirai.

Figure 2 : Le pourcentage de classes d’attaque incluant le trafic bénin. Il existe sept types distincts d’attaques dans la classification multiclasse. Il y a huit labels au total, y compris le trafic anodin. La figure montre le nombre de chaque catégorie de ces labels. Veuillez cliquer ici pour voir une version agrandie de cette figurine.
Mise à l’échelle des caractéristiques
La mise à l’échelle des fonctionnalités est une méthode courante pour améliorer les performances globales des modèles d’apprentissage profond. L’échelle des caractéristiques dans cette étude est réalisée à l’aide des technologies Min Max Scaler et Standard Scaler. La recherche ne les a pas utilisés pour les tests ; à la place, il n’utilisait que le scaler sur l’ensemble d’entraînement pour éviter la fuite de données. Les données peuvent être normalisées en une distribution moyenne nulle avec un écart-type grâce à la méthode Standard Scaler. Une façon de procéder est de diviser le nombre original par l’écart-type. Pour cela, la fonction StandardScaler() est appelée en important StandardScaler depuis sklearn.preprocessing. En appliquant une plage, souvent comprise entre 0 et 1, le Min Max Scaler normalise les données. La fonction MinMaxScaler() de scikit-learn a été utilisée pour implémenter cela.
Comme indiqué dans l’équation (1), la formule de normalisation est :
(1)
Alors que X représente la valeur initiale en points et Xnormalisé sa forme transformée, Xmin représente la valeur la plus basse de la variable, tandis que Xmax désigne la valeur la plus élevée de la variable dans l’ensemble de données.
Sélection des fonctionnalités
Intégrer toutes les caractéristiques de grands ensembles de données dans l’entraînement n’est pas toujours utile. Les caractéristiques contenues dans le jeu de données peuvent présenter une corrélation et ne pas améliorer le résultat. De plus, un nombre excessif de valeurs augmente le coût de la formation. Pour trouver des caractéristiques non nécessaires, nous calculons leurs matrices de corrélation et excluons celles ayant de fortes corrélations de l’ensemble de données. Le coefficient de corrélation de Pearson, qui quantifie la relation linéaire entre deux caractéristiques, est utilisé pour calculer la corrélation. Une valeur comprise entre -1 et +1 est obtenue en divisant la covariance des deux variables par le produit de leurs écarts-types. Cela est optionnel et effectué dans le pipeline avec l’élimination récursive des caractéristiques (RFE) pour la sélection des caractéristiques avec un classificateur d’arbre de décision. L’élimination des caractéristiques récursives trouve à plusieurs reprises les caractéristiques les plus pertinentes en entraînant le modèle de classificateur et en écartant celles les moins significatives. Le code utilise la RFE de sklearn.feature_selection avec un classificateur d’arbre de décision comme estimateur. Après la mise en œuvre de l’élimination des caractéristiques récursives, 30 des 46 caractéristiques ont été sélectionnées pour chacune des sept catégories d’attaque, comme montré dans le tableau 2. Une caractéristique peut être classée sous de nombreuses classifications d’attaque. Après l’achèvement du processus décrit à la Figure 3, le processus de sélection des classes d’attaque incluses dans le jeu de données est effectué. Les CNN modernes excellent à apprendre des représentations hiérarchiques à partir de données brutes, mais présélectionner un petit ensemble de fonctionnalités de haute qualité via RFE présente des avantages significatifs. Premièrement, RFE avec un classificateur d’arbre de décision supprime rapidement les données bruitées ou redondantes qui pourraient retarder la convergence lors des premiers cycles d’entraînement. Deuxièmement, centrer la CNN sur un pool plus restreint de signaux réellement précieux réduit le surapprentissage, ce qui est crucial dans les ensembles de données de trafic IoT aux schémas très biaisés bénins et nuisibles. La méthode d’élimination récursive de l’arbre de décision classe les caractéristiques pour une meilleure explicabilité du modèle et l’identification des biais spécifiques au domaine avant l’entraînement profond. Enfin, initialiser le CNN-Transformer sur cet ensemble de fonctionnalités taillé permet une convergence plus rapide et une utilisation de mémoire GPU réduite, prouvant que RFE accélère et stabilise activement l’apprentissage des fonctionnalités de bout en bout.
Tableau 2 : Les caractéristiques sélectionnées de l’ensemble de données « CIC-IoT-2023 ». 30 des 46 caractéristiques ont été sélectionnées pour chacune des sept catégories d’attaque de cette recherche à l’aide de RFE. Le tableau décrit les 30 caractéristiques sélectionnées. Veuillez cliquer ici pour télécharger ce tableau.

Figure 3 : Fonctionnement du modèle hybride proposé. L’achèvement du processus est décrit dans la figure. Le processus de sélection des classes d’attaque incluses dans le jeu de données est réalisé. Veuillez cliquer ici pour voir une version agrandie de cette figurine.
Divisez le jeu de données en un ensemble de 80 % de train et un ensemble de test à 20 % en suivant l’étape : train_test_split (X_train, y_train, test_size=0,20, random_state=42). L’ensemble d’entraînement à 80 % est ensuite divisé en utilisant train_test_split(X_train, y_train, test_size=0,20 random_state=42). Toute la sélection de modèles et l’ajustement des hyperparamètres sont effectués à l’aide de ces fractionnements précis. La technique de suréchantillonnage synétique des minorités (SMOTE) est utilisée lorsqu’il y a un problème de déséquilibre de classe. Seul le jeu d’entraînement a été soumis au SMOTE après la scission et l’échelle. L’effet de la SMOTE est présenté dans les résultats. Après RFE, l’étude suit les branches CNN et Transformer en utilisant les mêmes 30 caractéristiques choisies pour chaque échantillon. Les détails supplémentaires sur le traitement de ces 30 fonctionnalités sont mentionnés dans la section méthodologie proposée.
Méthodologie proposée
Un cadre de sécurité efficace pour les systèmes IoT, capable de détecter plus précisément les attaques, sera construit grâce à un modèle d’apprentissage profond. Une stratégie de sécurité hybride combinant réseaux neuronaux convolutionnels (CNN) avec des modèles de transformateurs est proposée. Cette méthode consiste à entraîner l’architecture CNN en utilisant des poids issus d’un jeu de données plus vaste, puis à affiner les paramètres du modèle en utilisant un jeu de données plus petit comme objectif. L’objectif principal de ce modèle est d’améliorer l’efficacité de la détection d’intrusion dans l’IoT.
Cette recherche a utilisé PySpark, une plateforme Google Colab qui permet aux utilisateurs d’exécuter des programmes Python sur Apache Spark. En utilisant les packages Scikit-learn et Keras, des algorithmes d’apprentissage profond ont été développés. Pour entraîner et tester le modèle, la configuration suivante a été utilisée : Système d’exploitation : Mac OS v12.6 ; - M2 Apple Silicon ; - Écran de 13,3 pouces ; - CPU 8 cœurs ; - GPU 8 cœurs ; - 32 Go de RAM ; - SSD 256 Go.
L’Institut canadien de cybersécurité (CIC) a créé un ensemble de données complet sur les menaces IoT afin de faire progresser les applications d’analyse de sécurité dans des environnements IoT pratiques34. Il y a eu un total de 33 attaques sur un réseau de 105 appareils connectés dans un système IoT. Avec un total de 46 179 314 incidents, les attaques sont classées en sept groupes : DDoS, Recon, DoS, web, usurpation et force brute, en plus de Mirai. Il y a 37 349 263 instances dans l’ensemble d’entraînement, 8 830 051 occurrences dans l’ensemble test, et un total de 46 caractéristiques dans l’ensemble de données. Dans chaque cas, des appareils IoT malveillants lancent des attaques sur d’autres appareils IoT. Au total, 67 appareils IoT et 38 appareils Zigbee et Z-Wave connectés à 5 hubs ont été affectés par les attaques. Un réseau de capteurs, caméras, microcontrôleurs et appareils domestiques connectés peut être mis en place pour exécuter différents types d’attaques et enregistrer le trafic qui en résulte. Wireshark capture le trafic réseau au format PCAP pour une analyse plus approfondie. Puisque chaque expérience stocke deux flux de données, le mergecap est utilisé pour combiner les fichiers PCAP. Divers dispositifs IoT ont été utilisés pour compiler l’ensemble de données, notamment des lecteurs audio, des magnétoscopes, des hubs, des prises électriques, des systèmes d’automatisation, de l’éclairage, des capteurs et des gadgets de nouvelle génération.
Cette section présente une méthodologie de recherche détaillée composée de nombreuses phases séquentielles utilisées dans l’étude. De plus, la partie définit l’algorithme proposé de manière séquentielle et fournit un organigramme détaillé du processus de recherche.
CNN
L’algorithme CNN utilise un réseau de neurones artificiel, une approche d’apprentissage profond. La figure 4 illustre l’algorithme sous-jacent utilisé par CNN : les couches entièrement connectées, le pooling, l’aplatissement et la convolution en font tous partie. Un CNN ne peut pas fonctionner sans la couche de convolution. La réception des données cellulaires est traitée par la couche convolutionnelle.
Dans l’équation (2), le volume de sortie (Vo) est déterminé par P (foulée), Vi (volume d’entrée), S (taille du noyau du neurone de la couche convolutionnelle) et M (bourrage nul).
(2)
Ensuite, un filtre est utilisé pour extraire les propriétés de la valeur d’entrée lors de la convolution. Ce calque crée une carte de caractéristiques. Réduire la taille des données d’entrée par le regroupement simplifie l’entraînement et réduit le nombre de paramètres à calculer. La couche de regroupement peut être choisie soit en utilisant la plus grande valeur dans la taille donnée, soit la moyenne des valeurs. La technique développée comprend deux couches de convolution et deux niveaux de pooling. Le processus d’extraction des caractéristiques commence ici. Les données de caractéristiques obtenues sont mises à disposition pour le calcul. Les algorithmes CNN sont disponibles en un, deux ou trois dimensions. Le modèle utilisait un réseau de neurones convolutionnel à une seule dimension. Les couches dans la zone de classification sont appelées aplaties, entièrement connectées. Les données doivent être aplaties après la phase convolutionnelle afin qu’elles puissent être utilisées dans la phase pleinement connectée. C’est la couche d’aplatissement que ce processus est réalisé. Dans la couche entièrement reliée, le paradigme conventionnel des réseaux de neurones artificiels est utilisé. Pour appliquer la CNN aux données qui ne sont pas basées sur l’image, les dimensions d’entrée doivent être transformées. En conséquence, le CNN peut utiliser des couches convolutionnelles unidimensionnellesunidimensionnelles à 35.

Figure 4 : Algorithme de base CNN. Le fonctionnement de base et les composants du modèle CNN sont décrits. Veuillez cliquer ici pour voir une version agrandie de cette figurine.
Apprentissage par transformateur
De plus, pour mener d’autres expériences, nous utilisons le cadre de modélisation des transformateurs. Le modèle peut gérer simultanément tous les points de la séquence grâce au mécanisme d’auto-attention du transformateur. Le résultat est un temps d’entraînement plus rapide pour le modèle et une meilleure utilisation des ressources informatiques par le transformateur lors de l’inférence et de l’entraînement. Le transformateur est principalement composé d’une série d’encodeurs et de décodeurs empilés. Le processus d’encodage consiste à transformer un langage en un autre, mais le processus de décodage consiste à déterminer la probabilité qu’un langage différent utilise les sorties précédentes. Puisque les encodeurs sont principalement responsables de l’extraction des caractéristiques, le modèle suggéré utilise exclusivement des composants encodeurs. L’encodeur transformateur comprend l’intégration d’entrée/position, un réseau de neurones feedforward, la normalisation des couches, l’auto-attention multi-têtes et un réseau résiduel.
Pour préparer les données d’entrée à être traitées par le transformateur, une couche d’immersion est utilisée pour convertir les caractéristiques catégorielles en représentations vectorielles denses. L’inclusion de position montre comment les caractéristiques sont connectées séquentiellement, tandis que l’intégration d’entrées montre comment différentes entrées sont reliées dans un espace commun. Avant que le transformateur ne traite les caractéristiques catégorielles, cette recherche utilise l’immersion d’entrée pour les transformer en vecteurs denses.
Une extension du mécanisme d’attention, le mécanisme d’auto-attention à plusieurs têtes, constitue la base de l’architecture du transformateur. En utilisant un produit scalaire à échelle, cette recherche emploie le mécanisme d’auto-attention à plusieurs têtes.
(3)
où la matrice de requête (Q), la matrice clé (K), la matrice de valeurs (V) et la dimension de la matrice clé (dk) sont respectivement notées. En permettant au modèle de se concentrer sur des données provenant de diverses caractéristiques mappées dans des sous-espaces séparés, ce qui donne des valeurs d’attention distinctes, un mécanisme d’attention à produit scalaire à plusieurs têtes diffère du mécanisme d’attention à produit scalaire à grande échelle. Le surapprentissage est moins probable lorsque les niveaux d’attention sont calculés indépendamment pour chaque tête. La formulation spécifique est la suivante :
(4)
(5)
Où h est le nombre de têtes d’attention, d,v et dmodèles représentent la dimension de v et du modèle. Aussi

Ensuite, la normalisation des couches est utilisée pour stabiliser le processus d’entraînement. Pour éviter l’explosion du gradient, la normalisation des couches limite la sortie de chaque couche à une certaine plage. La convergence et la vitesse d’entraînement du modèle peuvent être améliorées par cela. Alors que la normalisation par lots prend en compte les données par lots, la normalisation de couche ne le fait pas.
Modèle proposé par CNN-Transformer
Cette recherche propose une technique hybride CNN-Transformer pour détecter les intrusions dans les réseaux IoT, en tenant compte des avantages distincts des deux architectures. La figure 5 montre les principaux composants de la technique hybride CNN-Transformateur proposée. Après avoir effectué toutes les étapes de prétraitement, y compris le nettoyage, la normalisation, l’encodage des étiquettes et la sélection des caractéristiques, chaque échantillon de l’ensemble de données est représenté par un vecteur de caractéristiques en 30 dimensions, appelé Données Finales. Les mêmes Données Finales sont dupliquées et transmises en parallèle aux deux branches du modèle hybride. Ensuite, ces données finales sont envoyées simultanément aux blocs CNN et Transformer. CNN et Transformer ne dépendent en rien l’un de l’autre ; ils peuvent tous deux fonctionner sur les mêmes données d’entrée en même temps. Les sorties aplaties des deux branches, CNN et Transformer, sont concaténées pour produire un vecteur de caractéristiques fusionnées, qui est transmis aux couches denses, qui les classifient. Le bloc CNN modifie la forme d’entrée en (num_features, 1) afin que des opérations convolutionnelles puissent être effectuées entre les dimensions des caractéristiques pour trouver des motifs spatiaux locaux. En même temps, la branche Transformer modifie la même entrée en un format séquentiel et l’envoie dans un espace d’immersion de dimension supérieure, suivi d’un codage positionnel. Cela permet au transformateur de se concentrer sur lui-même dans l’espace des caractéristiques et de trouver des relations contextuelles globales. La conception unique du transformateur est utilisée pour l’extraction des caractéristiques, tandis que la fonction sigmoïde et les couches entièrement liées fournissent la connexion de cartographie entre les caractéristiques et les labels. Le modèle CNN-Transformer est structurellement représenté par la Figure 5. Le résultat est un système en huit catégories pour classer les attaques, avec DDoS, Recon, DoS, Bénigne, Web-basé, Usurpation, Brute Force et Mirai comme composants. Le processus d’évaluation du transformateur CNN proposé est illustré à la Figure 5.

Figure 5 : Architecture du modèle proposé. La figure montre la forme d’entrée et le processus d’évaluation du CNN-Transformer proposé. Veuillez cliquer ici pour voir une version agrandie de cette figurine.
Deux réseaux neuronaux convolutionnels unidimensionnels (CNN) avec filtres de 64 et 128 unités et une taille de 3 noyaux, deux couches de max-pooling, une étape d’aplatissement, trois couches denses de 256, 128 et 64 unités, et trois couches de dropout composent la couche de réseau de neurones convolutionnel (CNN).
Les données d’entrée sont traitées via une couche convolutionnelle 1D avec une fonction d’activation ReLU, 64 filtres, un noyau 3x3 et un stride 1x1 dans la première couche. Après la couche précédente se trouve une couche MaxPooling1D avec une taille de pool de 2. Afin de rendre le modèle plus flexible et de diminuer son coût de calcul, cette couche diminue les dimensions spatiales de la zone de sortie. La troisième couche est une autre couche convolutionnelle 1D ; il possède 128 filtres, un noyau de trois tailles, une marche d’une seule et une fonction d’activation nommée ReLU. En utilisant plus de filtres pour extraire les caractéristiques d’entrée, cette couche est similaire à la première couche de max pooling. La sortie de la première couche est ensuite traitée selon cette technique. Par la suite, une couche maximale de pooling a été ajoutée après la deuxième couche de convolution, et sa taille de pool était également de 2. Encore une fois, ce calque sert à réduire l’échantillonnage des feature maps. La cinquième couche est une couche d’aplatissement, et elle prend la sortie de la couche précédente pour la transformer en un vecteur unidimensionnel.
Les sous-ensembles de caractéristiques obtenus sont intégrés en entrée comme dernière étape avant de devenir l’entrée du transformateur. De plus, l’attention multi-têtes — un vecteur unidimensionnel de huit têtes avec une dimension de 32 clés — est utilisée pour évaluer la signification de chaque tête. La couche d’attention multi-têtes est le composant principal du transformateur. Cette couche permet au modèle d’apprendre de manière adaptative à partir des représentations intégrées de différentes caractéristiques. La couche d’attention multi-têtes est composée de plusieurs têtes d’auto-attention, également appelées « attention scalaire à échelle ». Après avoir appliqué la normalisation des couches avec l’epsilon réglé à 1e-6, l’objectif est d’éliminer les écarts d’échelle entre diverses caractéristiques et d’assurer la stabilité de la sortie. En maintenant la sortie de chaque couche dans une plage prédéterminée, la normalisation des couches réduit la probabilité d’explosion du gradient. Après la sortie du transformateur se trouve une couche d’aplatissement, qui simplifie sa combinaison avec le CNN en la réduisant à un seul vecteur.
L’étape suivante consiste à combiner les sorties aplaties du CNN et du Transformer à l’aide d’une couche de concaténation. La fonction d’activation « relu », la régularisation L2, et une couche dense de 256 unités suivent la couche d’aplatissement. Cela est suivi d’une couche de dropout à un taux de 0,5, ce qui aide à éviter le sur-ajustement. Une couche dense supplémentaire de 128 unités utilisant la régularisation L2 et la fonction d’activation « relu » suit. Le taux d’abandon dans une couche supplémentaire est de 0,3. La fonction d’activation de ReLU, la régularisation L2 et une couche dense de 64 unités constituent la couche suivante. La couche suivante prend la forme d’une couche de déglution à taux de 0,2, éliminant aléatoirement 20 % des unités à l’intérieur. Une couche dense avec une fonction d’activation softmax crée une distribution de probabilité pour les classes de sortie de la dernière couche. Il y a exactement autant d’unités dans cette couche que de classes de sortie.
Le modèle suggéré peut s’exprimer numériquement comme suit :
Soit X les données d’entrée CNN, où X
R(n×1), après remodelage, et n est le nombre de caractéristiques sélectionnées, respectivement. X est placé dans un espace d’immersion de dimension supérieure de forme R(n × d_model) pour le bloc Transformer. Avant d’entrer dans le mécanisme d’auto-attention, on utilise un codage positionnel.
Voici l’expression de l’opération dans la couche Conv1D, qui utilise 64 filtres et une taille de noyau de 3 :
(6)
où Yi,j est la sortie à la position j duième filtre, k est le noyau de taille 3, b1
R64 est le terme de polarisation pour chaque filtre, Wk représente les poids des filtres, et ReLU est la fonction d’activation. Ensuite, la couche MaxPooling est appliquée avec une taille de pool de 2, donnant une sortieZ 1,j.
(7)
Une couche convolution supplémentaire d’ID avec une taille de noyau de 3 et 128 filtres est incluse comme troisième couche du modèle ; son expression est la suivante :
(8)
Où k est le noyau de taille 3, b2
R128 est le terme de polarisation pour chaque filtre, et ReLU est la fonction d’activation. Une autre couche max pool est appliquée, recevant l’entrée de la deuxième couche de convolution avec une taille de pool de 2. La sortieZ 2,j est donnée par :
(9)
La cinquième couche est une couche d’aplatissement exprimée comme suit :
(10)
Ensuite, il y a les couches transformateur, qui incluent une couche d’immersion, une couche d’attention multi-têtes et la normalisation des couches
(11)
E est le vecteur d’immersion pour l’étiquette de classe d’entrée c, et We est la matrice de poids contenant les vecteurs d’immersion pour toutes les catégories. Cela associe chaque entier de c à un vecteur dense de 32 composantes réelles. Ensuite, il y a une couche d’attention à plusieurs têtes, telle que formulée dans les équations (3),(4) et (5).
La matrice clé a une taille dk = 32 et une dimension de h = 8. Lesmodèles D, V et D représentent respectivement les dimensions de V et de modèle. Aussi
Pour une sortie x = MultiHead(Q,K,V), la normalisation des couches fournit :
(12)
Où y est la sortie normalisée, γ et β sont les paramètres apprenables, et μ et σ2 désignent respectivement la moyenne et la variance pour x. Ensuite, il y a la couche d’aplatissement du transformateur, définie comme

À la fin de toutes les couches, l’expression résultante est indiquée comme








où Z1
R256, Z2
R128, Z3
R64, et Y
R 8. Ce modèle hybride calcule également la fonction de perte pour la classification multiclasse, qui peut s’exprimer comme

où:
Yc représente la véritable étiquette (encodée à un chaud) pour la classe cc,
Y’c est la probabilité prédite pour la classe c
L’algorithme proposé est expliqué en détail dans le tableau 3 .
Tableau 3 : L’algorithme CNN-Transformer proposé. L’algorithme proposé est expliqué étape par étape dans le tableau 3. Veuillez cliquer ici pour télécharger ce tableau.