$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Deze sectie bespreekt onderzoeksmaterialen en methoden gerelateerd aan aanvaldetectiesystemen in de IoT-omgeving. Om de experimenten op de CIC-IoT-2023 dataset te repliceren, beschrijft dit protocol specifieke procedures. De daaropvolgende Materiaaltabel bevat een lijst van alle gebruikte hardware en software. Python (pandas, scikit-learn en TensorFlow Keras) wordt gebruikt om de pipeline te implementeren, die draait op Google Colab met PySpark beschikbaar voor voorverwerking van grote bestanden. Er is een gedetailleerde beschrijving van de gegevensvoorverwerkingsprocedures verstrekt.
Dataset
De CIC-IoT-2023 dataset, die werd vrijgegeven door het Canadian Institute for Cybersecurity van de University of New Brunswick. "CIC IoT dataset 2023" (UNB CIC-datasets pagina) en het dataset artikel34 zijn de officiële CIC-datasetpagina en -artikel. De dataset kan worden gedownload van de CIC-website en is toegankelijk voor het grote publiek. In plaats van ruwe PCAP's worden de vooraf uitgepakte feature-CSV-bestanden (flows/features) in dit onderzoek gebruikt. Wireshark/mergecap en CICFlowMeter worden gebruikt in de ruwe experimenten die de dataset hebben gegenereerd; in dit werk worden de belangrijkste CSV's gebruikt. Deze dataset is afgeleid van echte IoT-apparaten en wordt in dit onderzoek gebruikt. In de dataset zijn records opgenomen van 33 bekende aanvallen op 105 verschillende IoT-apparaten. In tegenstelling tot eerdere IoT-datasets bevat CIC-IoT-2023 een breed scala aan aanvalstypen. De hoeveelheid van elk label gekoppeld aan goedaardig verkeer is weergegeven in Figuur 1. In totaal bestaat deze dataset uit 46 attributen en 1 label. Vergeleken met CSE-CIC-IDS 2018, dat 84 functies had, heeft CIC-IoT-2023 37 minder functies.

Figuur 1: Aantal aanvallen in de CICIoT2023-dataset. De tellingnamen van verschillende soorten aanvallen en onschuldige records in de CICIot2023-dataset worden beschreven. Deze verschillende soorten aanvallen zijn grofweg onderverdeeld in 7 aanvalsklassen. Er zijn dus in totaal 8 klassen, inclusief benign in multiclassificatie. Klik hier om een grotere versie van deze figuur te bekijken.
Datavoorverwerking
Datasets mogen niet worden gebruikt in deep learning-algoritmen zonder voldoende voorbewerking. Preprocessing wordt uitgevoerd om het algoritme van fijnere data te voorzien, waardoor het model uiteindelijk efficiënter wordt. De output van de preprocessing pipeline - na labelcodering, feature-schaal en featureselectie - wordt "Final Data" genoemd en dient als input voor zowel CNN- als Transformer-componenten. De volgende stappen zijn in Google Colab met Python. Dit onderzoek gebruikte Python 3.8.10, pandas 1.3.4, NumPy 1.21.4, scikit-learn 1.0.2, matplotlib 3.4.3 en TensorFlow/Keras 2.6.0. De willekeurige seed werd ingesteld op 42 voor alle runs.
Data-acquisitie
Deze stap omvat het opschonen van de gegevens die uit echte contexten zijn verkregen, omdat deze vaak veel fouten en inconsistenties bevat. Als de dataset bijvoorbeeld tekstwaarden bevat, is het onmogelijk om deze waarden te gebruiken in deep learning-training zonder ze eerst naar numerieke vorm om te zetten. Bij het werken met de dataset is het eerste wat je doet het verwijderen van lege waarden en het verwijderen van cellen zonder data. Rijen met ontbrekende gegevens werden geëlimineerd om nadelige effecten op het model te voorkomen.
De CIC-IoT-2023 dataset wordt geladen met behulp van pd.read_csv('ciciot2023_features_part.csv'). Dit onderzoek gebruikte Google Colab voor modeltraining en PySpark voor de eerste reiniging. Om ontbreken te detecteren, worden de volgende methoden gebruikt: df.shape, df.info(), df.isnull().sum() en df.duplicated().sum() voor duplicaten. Duplicaten worden geëlimineerd met df.drop_duplicates(inplace=True). Het numerieke kolomtype wordt geverifieerd met de formule df[col] = pd.to_numeric(df[col], errors='coerce'). Als er nieuwe NaN's verschijnen, wordt de behandeling van ontbrekende waarden opnieuw toegepast. Kenmerken die constant of bijna constant zijn, worden ook geëlimineerd met behulp van df.drop(columns=low_variance_cols, inplace=True).
Labelcodering
De volgende stap is het transformeren van de tekstlabels in een numerieke weergave zodat het model ze kan begrijpen. Voor binaire classificatie zijn er twee aparte soorten labels. Er zijn 46.686.579 records, waarvan 45.588.384 als kwaadaardige aanvallen zijn aangemerkt. Met 1.098.195 platen inbegrepen staat het goedaardige label op 0. Er zijn zeven verschillende soorten aanvallen in multiclassificatie. Er zijn in totaal acht labels, inclusief het goedaardige verkeer. Figuur 2 toont het aantal van elke categorie van deze labels. Multiclass mapping die in dit onderzoek wordt gebruikt is: 0 voor Benign, 1 voor DoS, 2 voor DDoS, 3 voor verkenning, 4 voor webgebaseerde aanval, 5 voor spoofing, 6 voor bruteForce en 7 voor mirai-aanval.

Figuur 2: Het percentage aanvalsklassen inclusief goedaardig verkeer. Er zijn zeven verschillende soorten aanvallen in multiclassificatie. Er zijn in totaal acht labels, inclusief het goedaardige verkeer. De figuur toont het aantal van elke categorie van deze labels. Klik hier om een grotere versie van deze figuur te bekijken.
Feature-schaal
Feature scaling is een veelgebruikte methode om de algehele prestaties van deep learning-modellen te verbeteren. Feature scaling in deze studie wordt uitgevoerd met behulp van Min Max Scaler- en Standard Scaler-technologieën. Het onderzoek gebruikte ze niet voor tests; in plaats daarvan gebruikte het alleen de scaler op de trainingsset om datalekken te voorkomen. Data kan worden genormaliseerd naar een nul-gemiddelde verdeling met één standaarddeviatie met behulp van de Standard Scaler-methode. Een manier om dit te doen is het oorspronkelijke getal te delen door de standaarddeviatie. Hiervoor wordt de functie StandardScaler() aangeroepen door StandardScaler te importeren vanuit sklearn.preprocessing. Door een bereik toe te passen, vaak tussen 0 en 1, normaliseert de Min Max Scaler de gegevens. De MinMaxScaler()-functie van scikit-learn werd gebruikt om dit te implementeren.
Zoals aangegeven in vergelijking (1), is de normalisatieformule:
(1)
Waar X staat voor de oorspronkelijke puntwaarde en Xnormalized voor de getransformeerde vorm, vertegenwoordigt Xmin de laagste waarde van de variabele, terwijl Xmax de hoogste waarde van de variabele binnen de dataset aanduidt.
Selectie van functies
Het opnemen van alle kenmerken uit grote datasets in de training is niet altijd behulpzaam. Kenmerken binnen de dataset kunnen correlatie vertonen en het resultaat mogelijk niet verbeteren. Bovendien verhoogt een te groot aantal waarden de kosten van training. Om kenmerken te vinden die niet nodig zijn, berekenen we hun correlatiematrices en sluiten we de matrices met sterke correlaties uit de dataset. Pearsons correlatiecoëfficiënt, die de lineaire relatie tussen twee kenmerken kwantificeert, wordt gebruikt om de correlatie te berekenen. Een waarde tussen -1 en +1 wordt verkregen door de covariantie van de twee variabelen te delen door het product van hun standaarddeviamenten. Dit is optioneel en wordt uitgevoerd in de pijplijn met Recursive Feature Elimination (RFE) voor featureselectie met een beslissingsboomclassificator. Recursieve feature-eliminatie vindt herhaaldelijk de meest relevante features door het classifiermodel te trainen en de minst significante te verwerpen. De code maakt gebruik van RFE van sklearn.feature_selection met een Decision Tree Classifier als schatter. Na de implementatie van recursieve feature-eliminatie zijn 30 van de 46 kenmerken gekozen voor elk van de zeven aanvalscategorieën, zoals weergegeven in Tabel 2. Een kenmerk kan onder veel aanvalsclassificaties worden gecategoriseerd. Na voltooiing van het proces zoals beschreven in Figuur 3, wordt het proces uitgevoerd om de aanvalsklassen in de dataset te selecteren. Moderne CNN's excelleren in het leren van hiërarchische representaties uit ruwe data, maar het vooraf selecteren van een kleine, hoogwaardige featureset met RFE heeft aanzienlijke voordelen. Ten eerste verwijdert RFE met een Decision Tree-classifier snel ruis of redundante data die de convergentie tijdens vroege trainingscycli kan vertragen. Ten tweede vermindert het centreren van de CNN op een kleinere pool van daadwerkelijk waardevolle signalen overfitting, wat cruciaal is in IoT-verkeersdatasets met sterk scheve goedaardige en schadelijke patronen. De recursieve eliminatiemethode van de beslissingsboom rangschikt kenmerken voor betere modelverklarbaarheid en het identificeren van domeinspecifieke biases vóór diepe training. Ten slotte zorgt het initialiseren van de CNN-Transformer op deze gesnoeide featureset voor snellere convergentie en lager GPU-geheugengebruik, wat bewijst dat RFE actief end-to-end feature learning versnelt en stabiliseert.
Tabel 2: De geselecteerde kenmerken van de dataset "CIC-IoT-2023". 30 van de 46 kenmerken zijn geselecteerd voor elk van de zeven aanvalscategorieën in dit onderzoek met behulp van RFE. De tabel beschrijft de geselecteerde 30 functies. Klik hier om deze tabel te downloaden.

Figuur 3: Werking van het voorgestelde hybride model. De voltooiing van het proces wordt in de figuur aangegeven. Het proces van het selecteren van de aanvalsklassen die in de dataset zijn opgenomen wordt uitgevoerd. Klik hier om een grotere versie van deze figuur te bekijken.
Splits de dataset op in een 80%-trein en een 20%-testset door de stap te volgen: train_test_split (X_train, y_train, test_size=0,20, random_state=42). De 80% trainingsset wordt verder verdeeld met behulp van train_test_split(X_train, y_train, test_size=0,20,random_state=42). Alle modelselectie en hyperparameterafstemming worden uitgevoerd met deze precieze splitsingen. De synthetische minderheidsoversamplingtechniek (SMOTE) wordt gebruikt wanneer er een klasse-onevenwicht is. Alleen de trainingsset werd onderworpen aan SMOTE na splitsing en scaling. Het effect van SMOTE wordt in de resultaten weergegeven. Na RFE loopt de studie parallel aan de CNN- en Transformer-takken met dezelfde 30 kenmerken die voor elk monster zijn gekozen. De verdere details van het verwerken van deze 30 kenmerken worden genoemd in de voorgestelde methodologiesectie.
Voorgestelde methodologie
Een effectief beveiligingsraamwerk voor IoT-systemen dat aanvallen nauwkeuriger kan detecteren, zal worden gebouwd met behulp van een deep learning-model. Een hybride beveiligingsstrategie die convolutionele neurale netwerken (CNN's) combineert met transformermodellen wordt voorgesteld. Deze methode houdt in dat de CNN-architectuur wordt getraind met gewichten uit een grotere dataset en vervolgens de parameters van het model wordt verfijnd met een kleinere dataset als doel. Het primaire doel van dit model is het verbeteren van de efficiëntie van inbraakdetectie in het IoT.
Dit onderzoek maakte gebruik van PySpark, een Google Colab-platform waarmee gebruikers Python-programma's op Apache Spark kunnen draaien. Met behulp van de Scikit-learn en Keras-pakketten zijn deep learning-algoritmen ontwikkeld. Om het model te trainen en te testen werd de volgende configuratie gebruikt: Besturingssysteem: Mac OS v12.6; - M2 Apple Silicon; - 13,3-inch scherm; - 8-core CPU; - 8-core GPU; - 32 GB RAM; - 256 GB SSD.
Het Canadian Institute for Cybersecurity (CIC) heeft een uitgebreide IoT-dreigingsdataset ontwikkeld om beveiligingsanalyse-toepassingen in praktische IoT-omgevingen te bevorderen34. Er waren in totaal 33 aanvallen op een netwerk van 105 verbonden apparaten in een IoT-systeem. Met een totaal aantal van 46.179.314 incidenten worden aanvallen ingedeeld in zeven groepen: DDoS, Recon, DoS, web-based, spoofing en brute force, naast Mirai. Er zijn 37.349.263 gevallen in de trainingsset, 8.830.051 gevallen in de testset en in totaal 46 kenmerken in de dataset. In elk geval lanceren kwaadaardige IoT-apparaten aanvallen op andere IoT-apparaten. In totaal werden 67 IoT-apparaten en 38 Zigbee- en Z-Wave-apparaten die op 5 hubs waren verbonden, getroffen door de aanvallen. Een netwerk van verbonden sensoren, camera's, microcontrollers en slimme thuisapparaten kan worden opgezet om verschillende soorten aanvallen uit te voeren en het verkeer dat daaruit voortkomt vast te leggen. Wireshark vangt netwerkverkeer in PCAP-formaat voor verdere analyse. Omdat elk experiment twee datastromen opslaat, wordt mergecap gebruikt om de PCAP-bestanden te combineren. Verschillende IoT-apparaten werden gebruikt om de dataset samen te stellen, waaronder audioplayers, videorecorders, hubs, stopcontacten, huisautomatiseringssystemen, verlichting, sensoren en NextGen-gadgets.
Deze sectie geeft een gedetailleerde onderzoeksmethodologie bestaande uit vele opeenvolgende fasen die in de studie zijn gebruikt. Bovendien definieert het onderdeel het voorgestelde algoritme sequentieel en biedt het een gedetailleerd stroomdiagram van het onderzoeksproces.
CNN
Het CNN-algoritme gebruikt een kunstmatig neuraal netwerk, een deep learning-benadering. Figuur 4 illustreert het onderliggende algoritme dat CNN gebruikt: volledig verbonden lagen, pooling, flattening en convolutie maken er allemaal deel van. Een CNN kan niet functioneren zonder de convolutielaag. Het ontvangen van celdata wordt verwerkt door de convolutionele laag.
In Vergelijking (2) wordt het uitvoervolume (Vo) bepaald door P (stride), Vi (invoervolume), S (convolutionele laag neuronkerngrootte) en M (nul opvulling).
(2)
Daarna wordt een filter gebruikt om de eigenschappen van de invoerwaarde tijdens convolutie te extraheren. Deze laag creëert een featuremap. Het verkleinen van de invoerdatagrootte door pooling vereenvoudigt de training en vermindert het aantal parameters dat berekend moet worden. De poollaag kan worden gekozen met ofwel de grootste waarde binnen de gegeven grootte of het gemiddelde van de waarden. De ontwikkelde techniek omvat twee lagen convolutie en twee niveaus van pooling. Het proces van feature-extractie begint hier. De verkregen featuregegevens worden beschikbaar gesteld voor berekening. CNN-algoritmen zijn beschikbaar in één, twee of drie dimensies. Het model maakte gebruik van een convolutioneel neuraal netwerk met slechts één dimensie. De lagen in het classificatiegebied staan bekend als afgevlakt, volledig verbonden. De data moet na de convolutionele fase worden afgevlakt zodat ze in de volledig verbonden fase gebruikt kunnen worden. De afvlakte laag is waar dit proces wordt uitgevoerd. Binnen de volledig gekoppelde laag wordt het conventionele paradigma van kunstmatige neurale netwerken gebruikt. Om CNN toe te passen op data die niet op beelden gebaseerd is, moeten de invoerafmetingen worden getransformeerd. Als gevolg hiervan kan CNN eendimensionale convolutionele lagen gebruiken die eendimensional35 zijn.

Figuur 4: CNN basisalgoritme. De basiswerking en componenten van het CNN-model worden beschreven. Klik hier om een grotere versie van deze figuur te bekijken.
Transformer-leren
Bovendien maken we om verdere experimenten uit te voeren gebruik van het transformatormodelleringsframework. Het model kan gelijktijdig alle punten in de reeks behandelen dankzij het zelf-aandacht mechanisme van de transformator. Het resultaat is een snellere trainingstijd voor het model en een beter gebruik van computerbronnen door de transformator tijdens inferentie en training. De transformator bestaat voornamelijk uit een reeks gestapelde encoders en decoders. Het coderingsproces houdt in dat de ene taal in een andere wordt veranderd, maar het decoderproces houdt in dat je de kans op een andere taal bepaalt met behulp van eerdere outputs. Aangezien encoders vooral verantwoordelijk zijn voor het extraheren van kenmerken, gebruikt het voorgestelde model uitsluitend encodercomponenten. De transformatorencoder bestaat uit input/position embedding, een feedforward neuraal netwerk, laagnormalisatie, multi-head self-attention en een residueel netwerk.
Om de invoergegevens voor te bereiden op verwerking door de transformator, wordt een embeddinglaag gebruikt om de categorische kenmerken om te zetten in dichte vectorrepresentaties. Positie-embedding laat zien hoe features sequentieel met elkaar verbonden zijn, terwijl input embedding laat zien hoe verschillende inputs in een gemeenschappelijke ruimte met elkaar verbonden zijn. Voordat de transformator categorische kenmerken verwerkt, gebruikt dit onderzoek input embedding om deze om te zetten in dichte vectoren.
Een uitbreiding van het aandachtsmechanisme, het multihead zelf-aandacht mechanisme vormt de basis van de transformatorarchitectuur. Met behulp van een geschaald stipproduct maakt dit onderzoek gebruik van het multi-headed zelf-aandachtmechanisme.
(3)
waarbij respectievelijk de querymatrix (Q), sleutelmatrix (K), waardematrix (V) en sleutelmatrixdimensie (dk) worden aangeduid. Door het model toe te staan zich te concentreren op data van verschillende kenmerken die zijn afgebeeld aan afzonderlijke subruimtes, wat resulteert in verschillende aandachtswaarden, verschilt een meervoudig geschaald puntproduct-aandachtmechanisme van het geschaalde puntproduct-aandachtmechanisme. Overfitting is minder waarschijnlijk wanneer de aandachtsniveaus onafhankelijk worden berekend voor elk hoofd. De specifieke formulering is als volgt:
(4)
(5)
Waar h het aantal aandachtshoofden is, dv en dmodel de dimensie van v en model vertegenwoordigen. Ook

Vervolgens wordt laagnormalisatie gebruikt om het trainingsproces te stabiliseren. Om gradient explosion te voorkomen, beperkt laagnormalisatie de output van elke laag tot een bepaald bereik. Zowel de convergentie als de trainingssnelheid van het model kunnen hierdoor worden verbeterd. Hoewel batchnormalisatie batchdata meeneemt, doet laagnormalisatie dat niet.
CNN-Transformer voorgestelde model
Dit onderzoek biedt een hybride CNN-Transformer-techniek om indringingen in IoT-netwerken te detecteren, rekening houdend met de verschillende voordelen van beide architecturen. Figuur 5 toont de hoofdcomponenten van de voorgestelde CNN-Transformer hybride techniek. Na het uitvoeren van alle preprocessing-fasen, inclusief schoonmaken, normalisatie, labelcodering en featureselectie, wordt elk monster in de dataset weergegeven door een 30-dimensionale featurevector, die Final Data wordt genoemd. Dezelfde Final Data wordt gedupliceerd en parallel gevoed aan beide takken van het hybride model. Vervolgens wordt deze Final Data gelijktijdig naar zowel het CNN- als het Transformer-blok gestuurd. CNN en transformator zijn op geen enkele manier van elkaar afhankelijk; Ze kunnen allebei tegelijkertijd op dezelfde invoerdata werken. De afgeplatte uitgangen van de twee takken, CNN en Transformer, worden samengevoegd om een gefuseerde featurevector te produceren, die wordt doorgegeven aan de dichte lagen, die deze classificeren. Het CNN-blok verandert de invoervorm naar (num_features, 1) zodat convolutionele operaties over feature-dimensies kunnen worden uitgevoerd om lokale ruimtelijke patronen te vinden. Tegelijkertijd verandert de Transformer-tak dezelfde ingang in een sequentiële vorm en stuurt deze naar een hoger dimensionaal embeddingruimte, gevolgd door positionele codering. Dit stelt de transformator in staat om zich op de feature-ruimte te richten en globale contextuele relaties te vinden. Het unieke ontwerp van de transformator wordt gebruikt voor feature-extractie, terwijl de sigmoidfunctie en volledig gekoppelde lagen de mappingverbinding tussen features en labels bieden. Het CNN-Transformer-model wordt structureel weergegeven in Figuur 5. Het resultaat is een acht-categorie systeem voor het classificeren van aanvallen, met DDoS, Recon, DoS, Benign, Web-based, Spoofing, Brute Force en Mirai als componenten. Het evaluatieproces van de voorgestelde CNN-transformator is weergegeven in Figuur 5.

Figuur 5: Architectuur van het voorgestelde model. De figuur toont de invoervorm en het evaluatieproces van de voorgestelde CNN-transformator. Klik hier om een grotere versie van deze figuur te bekijken.
Twee eendimensionale convolutionele neurale netwerken (CNN's) met filters van 64 en 128 eenheden en een grootte van 3 kernen, twee max-poolinglagen, een afvlakstap, drie dichte lagen met 256, 128 en 64 eenheden, en drie dropout-lagen vormen de convolutioneel neurale netwerk (CNN) laag.
De invoerdata wordt verwerkt via een 1D convolutionele laag met een ReLU-activatiefunctie, 64 filters, een 3x3 kernel en een 1x1 stride in de eerste laag. Na de voorgaande laag volgt een MaxPooling1D-laag met een poolgrootte van 2. Om het model flexibeler te maken en de rekenkosten te verlagen, verkleint deze laag de ruimtelijke afmetingen van het uitvoergebied. Laag drie is weer een 1D-convolutionele laag; het heeft 128 filters, een kernel van drie groottes, een stride van één en een activatiefunctie genaamd ReLU. Door meer filters te gebruiken om inputkenmerken te extraheren, lijkt deze laag op de eerste max pooling-laag. De output van de eerste laag wordt vervolgens verwerkt met behulp van de techniek. Daarna werd na de tweede convolutielaag een maximale poollaag toegevoegd, en de poolgrootte was ook 2. Opnieuw wordt deze laag gebruikt om de featuremaps te downsamplen. De vijfde laag is een vlaklaag en neemt de output van de vorige laag en maakt er een eendimensionale vector van.
De verkregen feature-subsets worden als laatste stap ingebed voordat ze de ingang van de transformator worden. Daarnaast wordt multi-head attention gebruikt – een eendimensionale vector van acht hoofden met een dimensie van 32 toetsen – om de betekenis van elk hoofd te beoordelen. De multi-head aandachtslaag is het hoofdonderdeel van de transformator. Deze laag stelt het model in staat om op een adaptieve manier te leren van de ingebedde representaties van verschillende kenmerken. De multi-head aandachtlaag bestaat uit meerdere zelf-aandacht hoofden, die ook wel "geschaalde dot-product attention" worden genoemd. Na het toepassen van laagnormalisatie met epsilon ingesteld op 1e-6, is het doel om schaalverschillen tussen verschillende kenmerken uit te bannen en de uitgangsstabiliteit te waarborgen. Door de output van elke laag binnen een vooraf bepaald bereik te houden, verkleint laagnormalisatie de kans op een gradiëntexplosie. Na de uitgang van de transformator volgt een afvlakkingslaag, die de combinatie met de CNN vereenvoudigt door deze te reduceren tot één enkele vector.
De volgende stap is het combineren van de afgeplatte uitgangen van de CNN en Transformer met behulp van een concatenatielaag. Activatiefunctie "relu", L2-regularisatie en een dichte laag met 256 eenheden volgen op de afvlaklaag. Hierop volgt een dropoutlaag met een snelheid van 0,5, wat helpt overfitting te voorkomen. Een extra dichte laag van 128 eenheden met L2-regularisatie en de "relu" activatiefunctie volgt. Het uitvalpercentage in een extra uitvallaag is 0,3. De ReLU-activatiefunctie, L2-regularisatie en een dichte laag van 64 eenheden vormen de volgende laag. De volgende laag is een laag met een dropout-laag van 0,2, waarbij willekeurig 20% van de eenheden binnenin worden geëlimineerd. Een dichte laag met een softmax-activatiefunctie creëert een kansverdeling voor de outputklassen van de laatste laag. Er zijn precies evenveel eenheden in deze laag als er outputklassen zijn.
Het voorgestelde model kan numeriek als volgt worden uitgedrukt:
Laat X de CNN-invoergegevens zijn, waarbij X
R(n×1), na hervorming, en n respectievelijk het aantal geselecteerde kenmerken is. X wordt geplaatst in een hogere-dimensionale embeddingruimte van de vorm R(n × d_model) voor het transformatorblok. Voordat het in het zelf-aandacht mechanisme gaat, wordt positionele codering gebruikt.
De volgende uitdrukking van de operatie in de Conv1D-laag, die 64 filters en een kerngrootte van 3 gebruikt:
(6)
waarbij Yi,j de uitgang is op positie j van heti-de filter, k de kern van grootte 3, b1
R64 de biasterm voor elk filter, Wk de filtergewichten vertegenwoordigt, en ReLU de activatiefunctie is. Vervolgens wordt de MaxPooling-laag toegepast met een poolgrootte van 2, wat een output Z1,j oplevert.
(7)
Een extra ID-convolutielaag met een kerngrootte van 3 en 128 filters is opgenomen als de derde laag van het model; De uitdrukking ervan is:
(8)
Waarbij k de kern van grootte 3 is, b2
R128 de biasterm voor elk filter, en ReLU de activatiefunctie is. Er wordt een extra maximale poollaag toegepast, die de input krijgt van de tweede convolutielaag met een poolgrootte van 2. De output Z2,j wordt gegeven door:
(9)
De vijfde laag is een afvlakkingslaag, uitgedrukt als:
(10)
Vervolgens zijn er de transformerlagen, die een embeddinglaag, een multi-head aandachtslaag en laagnormalisatie omvatten
(11)
E is de embeddingvector voor het invoerklasselabel c, en We is de gewichtmatrix met embeddingvectoren voor alle categorieën. Dit beeldt elk geheel getal in c af naar een dichte vector van 32 reëelwaardige componenten. Vervolgens volgt een multi-head aandachtslaag, zoals geformuleerd in Vergelijking (3), (4) en (5).
De sleutelmatrix heeft een grootte van dk = 32 en een dimensie van h = 8. D, V en DModel staan voor de respectievelijke afmetingen van V's en Model. Ook 
Voor een output x = MultiHead(Q,K,V) biedt laagnormalisatie:
(12)
Waarbij y de genormaliseerde output is, γ en β de leerbare parameters, en μ en σ2 respectievelijk het gemiddelde en de variantie voor x aanduiden. Vervolgens is er de afvlaklaag voor de transformator, gedefinieerd als

Aan het einde van alle lagen wordt de resulterende uitdrukking weergegeven als








Waar Z1
R256, Z2
R128, Z3
R64 en Y
R8. Dit hybride model berekent ook de verliesfunctie voor multiclassificatie, die kan worden uitgedrukt als

waar:
Yc vertegenwoordigt het ware label (one-hot gecodeerd) voor klasse cc,
Y'c is de voorspelde kans voor klasse c
Het voorgestelde algoritme wordt in Tabel 3 uitvoerig uitgelegd.
Tabel 3: Het voorgestelde CNN-Transformer-algoritme. Het voorgestelde algoritme wordt stap voor stap uitgelegd in Tabel 3. Klik hier om deze tabel te downloaden.