$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Dieser Abschnitt behandelt Forschungsmaterialien und -methoden im Bereich Angriffserkennungssysteme im IoT-Umfeld. Um die Experimente auf dem CIC-IoT-2023-Datensatz zu replizieren, beschreibt dieses Protokoll spezifische Verfahren. Die folgende Materialtabelle enthält eine Liste aller verwendeten Hardware und Software. Python (pandas, scikit-learn und TensorFlow Keras) wird verwendet, um die Pipeline zu implementieren, die auf Google Colab läuft, wobei PySpark für die Vorverarbeitung großer Dateien verfügbar ist. Eine detaillierte Beschreibung der Datenvorverarbeitungsverfahren wurde bereitgestellt.
Dataset
Der CIC-IoT-2023-Datensatz, der vom Canadian Institute for Cybersecurity der University of New Brunswick veröffentlicht wurde. "CIC IoT Dataset 2023" (UNB CIC-Datensatzseite) und der Datensatz Artikel34 sind die offizielle CIC-Datensatzseite und das Papier. Der Datensatz kann von der CIC-Website heruntergeladen werden und ist für die breite Öffentlichkeit zugänglich. Anstatt rohe PCAPs zu verwenden, werden in dieser Forschung die vorab extrahierten Feature-CSV-Dateien (Flows/Features) verwendet. Wireshark/mergecap und CICFlowMeter werden in den rohen Experimenten verwendet, die den Datensatz generierten; vorgestellte CSVs werden in diesem Werk verwendet. Dieser Datensatz stammt aus echten IoT-Geräten und wird in dieser Forschung verwendet. Im Datensatz sind Datensätze von 33 bekannten Angriffen auf 105 verschiedene IoT-Geräte enthalten. Im Gegensatz zu früheren IoT-Datensätzen umfasst CIC-IoT-2023 eine große Vielfalt von Angriffstypen. Die Menge jedes Labels, die mit gutartigem Datenverkehr verknüpft ist, ist in Abbildung 1 dargestellt. Insgesamt bilden 46 Attribute und ein Label diesen Datensatz. Im Vergleich zum CSE-CIC-IDS 2018, das 84 Funktionen hatte, hat CIC-IoT-2023 37 Funktionen weniger.

Abbildung 1: Anzahl der Angriffe im CICIoT2023-Datensatz. Die Zählnamen verschiedener Angriffsarten und gutartiger Aufzeichnungen im CICIot2023-Datensatz werden beschrieben. Diese verschiedenen Angriffsarten lassen sich grob in 7 Angriffsklassen einteilen. Es gibt also insgesamt 8 Klassen, einschließlich Beignen in der Multiclass-Klassifikation. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.
Datenvorverarbeitung
Datensätze sollten in Deep-Learning-Algorithmen nicht ohne ausreichende Vorverarbeitung verwendet werden. Die Vorverarbeitung dient dazu, dem Algorithmus feinere Daten zu liefern, was letztlich das Modell effizienter macht. Die Ausgabe der Vorverarbeitungs-Pipeline – nach Label-Codierung, Feature-Skalierung und Merkmalsauswahl – wird als "Enddaten" bezeichnet und dient als Eingabe sowohl für CNN- als auch für Transformer-Komponenten. Die folgenden Schritte finden Sie in Google Colab unter Verwendung von Python. Diese Forschung verwendete Python 3.8.10, pandas 1.3.4, NumPy 1.21.4, scikit-learn 1.0.2, matplotlib 3.4.3 und TensorFlow/Keras 2.6.0. Der zufällige Seed wurde für alle Durchläufe auf 42 gesetzt.
Datenerfassung
Dieser Schritt beinhaltet das Reinigen der aus realen Kontexten gewonnenen Daten, da er oft viele Fehler und Inkonsistenzen enthält. Wenn der Datensatz beispielsweise Textwerte enthält, ist es unmöglich, solche Werte im Deep-Learning-Training zu verwenden, ohne sie vorher in numerische Form umzuwandeln. Beim Arbeiten mit dem Datensatz wird zuerst getan, leere Werte zu entfernen und Zellen ohne Daten zu löschen. Reihen mit fehlenden Daten wurden entfernt, um unerwünschte Auswirkungen auf das Modell zu vermeiden.
Der CIC-IoT-2023-Datensatz wird mit pd.read_csv('ciciot2023_features_part.csv') geladen. Diese Forschung nutzte Google Colab für das Modelltraining und PySpark für die erste Reinigung. Zur Erkennung von Fehlfunktionen werden folgende Methoden verwendet: df.shape, df.info(), df.isnull().sum() und df.duplicated().sum() für Duplikate. Duplikate werden mit df.drop_duplicates(inplace=True) eliminiert. Der numerische Spaltentyp wird mit der Formel df[col] = pd.to_numeric(df[col], errors='coerce' verifiziert). Wenn neue NaNs erscheinen, wird die Behandlung fehlender Werte erneut angewendet. Merkmale, die konstant oder nahezu konstant sind, werden ebenfalls mit df.drop(columns=low_variance_cols, inplace=True) eliminiert.
Labelcodierung
Der nächste Schritt besteht darin, die Textbeschriftungen in eine numerische Darstellung umzuwandeln, damit das Modell sie verstehen kann. Für die binäre Klassifikation gibt es zwei verschiedene Arten von Labels. Es gibt 46.686.579 Datensätze, davon sind 45.588.384 als böswillige Angriffe eingestuft. Mit 1.098.195 eingeschlossenen Platten ist das gutartige Label auf 0 gesetzt. Es gibt sieben verschiedene Arten von Angriffen in der Multiclass-Klassifikation. Insgesamt gibt es acht Etiketten, einschließlich des harmlosen Verkehrs. Abbildung 2 zeigt die Anzahl jeder Kategorie dieser Labels. Die in dieser Forschung verwendete Multiclass-Mapping lautet: 0 für Benign, 1 für DoS, 2 für DDoS, 3 für Aufklärung, 4 für webbasierte Angriffe, 5 für Spoofing, 6 für BruteForce und 7 für Mirai-Angriffe.

Abbildung 2: Der Prozentsatz der Angriffsklassen einschließlich gutartigem Verkehr. Es gibt sieben verschiedene Arten von Angriffen in der Multiclass-Klassifikation. Insgesamt gibt es acht Etiketten, einschließlich des harmlosen Verkehrs. Die Abbildung zeigt die Anzahl jeder Kategorie dieser Etiketten. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.
Feature-Skalierung
Feature-Skalierung ist eine gängige Methode zur Verbesserung der Gesamtleistung von Deep-Learning-Modellen. Die Feature-Skalierung in dieser Studie erfolgt mit Min Max Scaler- und Standard Scaler-Technologien. Die Forschung verwendete sie nicht für Tests; stattdessen wurde der Scaler nur auf dem Trainingsset verwendet, um Datenlecks zu verhindern. Daten können mit Hilfe der Standard Scaler-Methode auf eine Null-Mittelwert-Verteilung mit einer Standardabweichung normalisiert werden. Eine Möglichkeit ist, die ursprüngliche Zahl durch die Standardabweichung zu teilen. Dafür wird die Funktion StandardScaler() aufgerufen, indem StandardScaler aus sklearn.preprocessing importiert wird. Durch Anwendung eines Bereichs, oft zwischen 0 und 1, normalisiert der Min Max Scaler die Daten. Die MinMaxScaler()-Funktion von scikit-learn wurde verwendet, um dies zu implementieren.
Wie in Gleichung (1) angegeben, lautet die Normierungsformel:
(1)
Dabei steht X für den ursprünglichen Punktwert und Xnormalisiert für seine transformierte Form, stellt Xmin den niedrigsten Wert der Variablen dar, während Xmax den höchsten Wert der Variablen im Datensatz bezeichnet.
Auswahl der Ausstattung
Alle Eigenschaften großer Datensätze in das Training einzubeziehen, ist nicht immer hilfreich. Merkmale im Datensatz können Korrelation zeigen und das Ergebnis möglicherweise nicht verbessern. Außerdem erhöhen zu viele Werte die Schulungskosten. Um Merkmale zu finden, die nicht benötigt werden, berechnen wir deren Korrelationsmatrizen und schließen die mit starken Korrelationen aus dem Datensatz aus. Der Pearsonsche Korrelationskoeffizient, der die lineare Beziehung zwischen zwei Merkmalen quantifiziert, wird zur Berechnung der Korrelation verwendet. Ein Wert zwischen -1 und +1 wird erhalten, indem die Kovarianz der beiden Variablen durch das Produkt ihrer Standardabweichungen geteilt wird. Dies ist optional und wird in der Pipeline mit Rekursiver Merkmalselimination (RFE) zur Merkmalsauswahl mit einem Entscheidungsbaum-Klassifikator durchgeführt. Die rekursive Feature-Elimination findet wiederholt die relevantesten Features, indem das Klassifikatormodell trainiert und die am wenigsten signifikanten verworfen werden. Der Code verwendet RFE von sklearn.feature_selection mit einem Decision Tree Classifier als Schätzer. Nach der Implementierung der rekursiven Merkmalselimination wurden 30 der 46 Eigenschaften für jede der sieben Angriffskategorien ausgewählt, wie in Tabelle 2 dargestellt. Ein Merkmal kann unter vielen Angriffsklassifikationen kategorisiert werden. Nach Abschluss des in Abbildung 3 dargestellten Prozesses wird die Auswahl der im Datensatz enthaltenen Angriffsklassen durchgeführt. Moderne CNNs sind hervorragend darin, hierarchische Darstellungen aus Rohdaten zu lernen, aber die Vorwahl eines kleinen, hochwertigen Funktionssatzes mit RFE hat erhebliche Vorteile. Erstens entfernt RFE mit einem Decision Tree-Klassifikator schnell verrauschte oder redundante Daten, die die Konvergenz während früher Trainingszyklen verzögern könnten. Zweitens reduziert die Zentrierung des CNN auf einen kleineren Pool tatsächlich wertvoller Signale Überanpassung, was in IoT-Datensätzen mit stark verzerrten harmlosen und schädlichen Mustern entscheidend ist. Die rekursive Eliminationsmethode des Entscheidungsbaums bewertet Merkmale für bessere Modellerklärbarkeit und die Identifizierung domänenspezifischer Verzerrungen vor dem tiefen Training. Schließlich führt die Initialisierung des CNN-Transformers auf diesem gekürzten Feature-Set zu einer schnelleren Konvergenz und einem geringeren GPU-Speicherverbrauch, was beweist, dass RFE das End-to-End-Feature Learning aktiv beschleunigt und stabilisiert.
Tabelle 2: Die ausgewählten Funktionen des Datensatzes "CIC-IoT-2023". 30 der 46 Eigenschaften wurden für jede der sieben Angriffskategorien in dieser Forschung mittels RFE ausgewählt. Die Tabelle beschreibt die ausgewählten 30 Merkmale. Bitte klicken Sie hier, um diese Tabelle herunterzuladen.

Abbildung 3: Funktionsweise des vorgeschlagenen Hybridmodells. Der Abschluss des Prozesses ist in der Abbildung dargestellt. Der Prozess zur Auswahl der im Datensatz enthaltenen Angriffsklassen wird durchgeführt. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.
Teilen Sie den Datensatz in einen 80%-Zug und einen 20%-Testsatz auf, indem Sie den Schritt folgen: train_test_split (X_train, y_train, test_size=0,20, random_state=42). Der 80%-Trainingssatz wird weiter aufgeteilt und verwendet train_test_split(X_train, y_train, test_size=0,20,random_state=42). Alle Modellauswahl und Hyperparameter-Tuning erfolgen mit diesen präzisen Splits. Die synthetische Minderheiten-Übersampling-Technik (SMOTE) wird verwendet, wenn ein Klassenungleichgewicht vorliegt. Nur das Trainingsset wurde nach Spaltung und Skalierung SMOTE unterzogen. Die Wirkung von SMOTE wird in den Ergebnissen dargestellt. Nach RFE verläuft die Studie parallel zu den CNN- und Transformer-Verzweigungen und verwendet dieselben 30 Merkmale, die für jede Stichprobe ausgewählt wurden. Weitere Details zur Verarbeitung dieser 30 Merkmale werden im Abschnitt zur vorgeschlagenen Methodik erwähnt.
Vorgeschlagene Methodik
Ein effektives Sicherheitsframework für IoT-Systeme, das Angriffe genauer erkennen kann, wird mit Hilfe eines Deep-Learning-Modells aufgebaut. Eine hybride Sicherheitsstrategie, die konvolutionelle neuronale Netze (CNNs) mit Transformatormodellen kombiniert, wird vorgeschlagen. Diese Methode beinhaltet das Training der CNN-Architektur mit Gewichten aus einem größeren Datensatz und anschließend die Feinabstimmung der Modellparameter mit einem kleineren Datensatz als Ziel. Das Hauptziel dieses Modells ist es, die Effizienz der Eindringlingserkennung im IoT zu verbessern.
Diese Forschung nutzte PySpark, eine Google Colab-Plattform, die es Nutzern ermöglicht, Python-Programme auf Apache Spark auszuführen. Mit den Paketen Scikit-learn und Keras wurden Deep-Learning-Algorithmen entwickelt. Um das Modell zu trainieren und zu testen, wurde folgende Konfiguration verwendet: Betriebssystem: Mac OS v12.6; - M2 Apple Silicon; - 13,3-Zoll-Display; - 8-Kern-CPU; - 8-Kern-GPU; - 32 GB RAM; - 256 GB SSD.
Das Canadian Institute for Cybersecurity (CIC) hat einen umfassenden IoT-Bedrohungsdatensatz erstellt, um Sicherheitsanalysen in praktischen IoT-Umgebungen voranzutreiben34. Insgesamt gab es 33 Angriffe auf ein Netzwerk von 105 verbundenen Geräten in einem IoT-System. Mit insgesamt 46.179.314 Vorfällen werden Angriffe in sieben Gruppen eingeteilt: DDoS, Aufklärung, DoS, webbasiert, Spoofing und Brute Force, zusätzlich zu Mirai. Der Trainingssatz enthält 37.349.263 Fälle, 8.830.051 Fälle im Testsatz und insgesamt 46 Merkmale. In jedem Fall starten bösartige IoT-Geräte Angriffe auf andere IoT-Geräte. Insgesamt waren 67 IoT-Geräte sowie 38 Zigbee- und Z-Wave-Geräte, die an 5 Hubs angeschlossen sind, von den Angriffen betroffen. Ein Netzwerk aus vernetzten Sensoren, Kameras, Mikrocontrollern und Smart-Home-Geräten kann eingerichtet werden, um verschiedene Arten von Angriffen auszuführen und den daraus resultierenden Datenverkehr aufzuzeichnen. Wireshark erfasst Netzwerkverkehr im PCAP-Format für weitere Analysen. Da jedes Experiment zwei Datenströme speichert, wird Mergecap verwendet, um die PCAP-Dateien zu kombinieren. Verschiedene IoT-Geräte wurden zur Zusammenstellung des Datensatzes verwendet, darunter Audioplayer, Videorekorder, Hubs, Steckdosen, Hausautomationssysteme, Beleuchtung, Sensoren und NextGen-Geräte.
Dieser Abschnitt bietet eine detaillierte Forschungsmethodik, die aus vielen aufeinanderfolgenden Phasen besteht, die in der Studie verwendet werden. Darüber hinaus definiert der Teil den vorgeschlagenen Algorithmus sequenziell und bietet ein detailliertes Flussdiagramm des Forschungsprozesses.
CNN
Der CNN-Algorithmus verwendet ein künstliches neuronales Netzwerk, einen Deep-Learning-Ansatz. Abbildung 4 veranschaulicht den zugrundeliegenden Algorithmus, den CNN verwendet: vollständig zusammenhängende Schichten, Pooling, Flattening und Konvolution sind alle Teil davon. Ein CNN kann ohne die Faltungsschicht nicht funktionieren. Die empfangenden Zelldaten werden von der Faltungsschicht verarbeitet.
In Gleichung (2) wird das Ausgangsvolumen (Vo) durch P (Stride), Vi (Eingangsvolumen), S (Kerngröße des Faltungsschicht-Neurons) und M (Nullpolsterung) bestimmt.
(2)
Anschließend wird ein Filter verwendet, um die Eigenschaften des Eingabewerts während der Faltung zu extrahieren. Diese Ebene erstellt eine Merkmalskarte. Die Reduzierung der Eingabedatengröße durch Pooling vereinfacht das Training und reduziert die Anzahl der zu berechnenden Parameter. Die Pooling-Schicht kann entweder anhand des größten Wertes innerhalb der gegebenen Größe oder des Durchschnitts der Werte gewählt werden. Die entwickelte Technik umfasst zwei Schichten der Faltung und zwei Ebenen des Poolings. Der Prozess der Merkmalsextraktion beginnt hier. Die gewonnenen Feature-Daten werden für die Berechnung bereitgestellt. CNN-Algorithmen sind in einer, zwei oder drei Dimensionen verfügbar. Das Modell verwendete ein konvolutionales neuronales Netzwerk mit nur einer Dimension. Die Schichten im klassifizierenden Bereich werden als abgeflacht, vollständig zusammenhängend bezeichnet. Die Daten müssen nach der Faltungsphase abgeflacht werden, damit sie in der vollständig verbundenen Phase verwendet werden können. Die Abflachungsschicht ist der Ort, an dem dieser Prozess durchgeführt wird. Innerhalb der vollständig verknüpften Schicht wird das konventionelle Paradigma künstlicher neuronaler Netze verwendet. Um CNN auf nicht bildbasierte Daten anzuwenden, müssen die Eingabedimensionen transformiert werden. Daher kann CNN eindimensionale Faltungsschichten verwenden, die eindimensional35 sind.

Abbildung 4: CNN-Grundalgorithmus. Die grundlegenden Funktionsweisen und Komponenten des CNN-Modells werden beschrieben. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.
Transformator-Lernen
Darüber hinaus nutzen wir zur Durchführung weiterer Experimente das Transformer-Modellierungs-Framework. Das Modell kann dank des Selbstaufmerksamkeitsmechanismus des Transformators gleichzeitig alle Punkte in der Sequenz verarbeiten. Das Ergebnis ist eine schnellere Trainingszeit für das Modell und eine bessere Nutzung der Computerressourcen durch den Transformator während der Inferenz und des Trainings. Der Transformator besteht hauptsächlich aus einer Reihe gestapelter Encoder und Decoder. Der Kodierungsprozess beinhaltet die Übergabe einer Sprache in eine andere, aber der Dekodierungsprozess beinhaltet die Bestimmung der Wahrscheinlichkeit, dass eine andere Sprache anhand früherer Ausgaben verwendet wird. Da Encoder hauptsächlich für die Feature-Extraktion verantwortlich sind, verwendet das vorgeschlagene Modell ausschließlich Encoderkomponenten. Der Transformatorencoder besteht aus Eingangs-/Positions-Embedding, einem Vorwärts-neuronalen Netzwerk, Schichtnormalisierung, Mehrkopf-Selbstaufmerksamkeit und einem Restnetzwerk.
Um die Eingabedaten für die Verarbeitung durch den Transformator vorzubereiten, wird eine Einbettungsschicht verwendet, um die kategorialen Eigenschaften in dichte Vektorrepräsentationen umzuwandeln. Position Embedding zeigt, wie Features sequentiell verbunden sind, während Input Embedding zeigt, wie verschiedene Eingaben in einem gemeinsamen Raum zusammenhängen. Bevor der Transformator kategorische Eigenschaften verarbeitet, wird in dieser Forschung Input Embedding verwendet, um diese in dichte Vektoren umzuwandeln.
Eine Erweiterung des Aufmerksamkeitsmechanismus, der Multihead-Selbstaufmerksamkeitsmechanismus, bildet die Grundlage der Transformatorarchitektur. Mit einem skalierten Punktprodukt verwendet diese Forschung den Multi-Headed Self-Attention-Mechanismus.
(3)
wobei die Abfragematrix (Q), die Schlüsselmatrix (K), die Wertmatrix (V) und die Schlüsselmatrixdimension (dk) jeweils bezeichnet werden. Indem das Modell sich auf Daten verschiedener Merkmale konzentrieren kann, die auf separate Unterräume abgebildet sind, was zu unterschiedlichen Aufmerksamkeitswerten führt, unterscheidet sich ein mehrköpfiger skalierter Punktprodukt-Aufmerksamkeitsmechanismus vom skalierten Punktprodukt-Aufmerksamkeitsmechanismus. Overfitting ist weniger wahrscheinlich, wenn die Aufmerksamkeitsstufen für jeden Kopf unabhängig berechnet werden. Die spezifische Formulierung ist wie folgt:
(4)
(5)
Wobei h die Anzahl der Aufmerksamkeitsköpfe ist, das d, v- und d-Modell die Dimension von v und Modell darstellen. Auch

Als Nächstes wird die Schichtnormalisierung verwendet, um den Trainingsprozess zu stabilisieren. Um eine Gradientenexplosion zu verhindern, begrenzt die Schichtnormalisierung die Ausgabe jeder Schicht auf einen bestimmten Bereich. Sowohl die Konvergenz als auch die Trainingsgeschwindigkeit des Modells können dadurch verbessert werden. Während die Batch-Normalisierung Batch-Daten berücksichtigt, tut die Layer-Normalisierung dies nicht.
CNN-Transformer vorgeschlagenes Modell
Diese Forschung bietet eine hybride CNN-Transformer-Technik zur Erkennung von Eindringlingen in IoT-Netzwerken unter Berücksichtigung der unterschiedlichen Vorteile beider Architekturen. Abbildung 5 zeigt die Hauptkomponenten der vorgeschlagenen CNN-Transformer-Hybridtechnik. Nach Durchführung aller Vorverarbeitungsschritte, einschließlich Reinigung, Normalisierung, Beschriftungskodierung und Merkmalsauswahl, wird jede Probe im Datensatz durch einen 30-dimensionalen Merkmalvektor dargestellt, der als Enddaten bezeichnet wird. Die gleichen Enddaten werden dupliziert und parallel zu beiden Zweigen des Hybridmodells eingespeist. Anschließend werden diese Enddaten gleichzeitig an sowohl den CNN- als auch den Transformer-Block gesendet. CNN und Transformator sind in keiner Weise voneinander abhängig; Sie können beide gleichzeitig mit denselben Eingabedaten arbeiten. Die abgeflachten Ausgänge der beiden Zweige, CNN und Transformer, werden miteinander verkettet, um einen fusionierten Merkmalsvektor zu erzeugen, der an die dichten Schichten weitergeleitet wird, welche sie klassifizieren. Der CNN-Block ändert die Eingabeform zu (num_features, 1), sodass Faltungsoperationen über Merkmalsdimensionen hinweg durchgeführt werden können, um lokale räumliche Muster zu finden. Gleichzeitig ändert der Transformer-Branch denselben Eingang in ein sequentielles Format und sendet ihn in einen höherdimensionalen Einbettungsraum, gefolgt von der Positionskodierung. Dies ermöglicht es dem Transformer, sich im Feature-Bereich selbst zu konzentrieren und globale kontextuelle Beziehungen zu finden. Das einzigartige Design des Transformators wird für die Feature-Extraktion verwendet, während die Sigmoid-Funktion und vollständig verknüpfte Schichten die Mapping-Verbindung zwischen Features und Labels herstellen. Das CNN-Transformer-Modell wird strukturell durch Abbildung 5 dargestellt. Das Ergebnis ist ein System mit acht Kategorien zur Klassifizierung von Angriffen, mit DDoS, Recon, DoS, Benign, Web-basiert, Spoofing, Brute Force und Mirai als Bestandteile. Der Bewertungsprozess des vorgeschlagenen CNN-Transformators ist in Abbildung 5 dargestellt.

Abbildung 5: Architektur des vorgeschlagenen Modells. Die Abbildung zeigt die Eingangsform und den Auswertungsprozess des vorgeschlagenen CNN-Transformators. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.
Zwei eindimensionale konvolutionelle neuronale Netzwerke (CNNs) mit 64- und 128-Einheiten-Filtern und einer 3-Kernel-Größe, zwei Max-Pooling-Schichten, einem Abflachungsschritt, drei dichten Schichten mit 256, 128 und 64 Einheiten sowie drei Dropout-Schichten bilden die Schicht des Convolutional Neural Network (CNN).
Die Eingabedaten werden über eine 1D-Faltungsschicht mit einer ReLU-Aktivierungsfunktion, 64 Filtern, einem 3x3-Kernel und einem 1x1-Stride in der ersten Schicht verarbeitet. Auf die vorhergehende Schicht folgt eine MaxPooling1D-Schicht mit einer Poolgröße von 2. Um das Modell flexibler zu machen und seine Rechenkosten zu senken, verringert diese Schicht die räumlichen Abmessungen des Ausgabebereichs. Schicht drei ist eine weitere 1D-Faltungsschicht; er verfügt über 128 Filter, einen Kernel mit drei Größen, einen Schritt-Durchmesser von einer und eine Aktivierungsfunktion namens ReLU. Mit mehr Filtern zur Extraktion von Eingabemerkmalen ähnelt diese Schicht der ersten Max-Pooling-Schicht. Die Ausgabe der ersten Schicht wird dann mit dieser Technik verarbeitet. Anschließend wurde nach der zweiten Faltungsschicht eine maximale Poolschicht hinzugefügt, deren Poolgröße ebenfalls 2 betrug. Auch diese Ebene wird verwendet, um die Merkmalskarten herunterzusetzen. Die fünfte Schicht ist eine Abflachungsschicht, die die Ausgabe der vorherigen Schicht in einen eindimensionalen Vektor umwandelt.
Die erhaltenen Merkmalsteilmengen werden als letzten Schritt eingebettet, bevor sie zum Eingang des Transformators werden. Zusätzlich wird Multi-Head-Attention – ein eindimensionaler Vektor aus acht Köpfen mit einer Dimension von 32 Tasten – verwendet, um die Bedeutung jedes Kopfes zu bewerten. Die Mehrkopf-Aufmerksamkeitsschicht ist die Hauptkomponente des Transformators. Diese Schicht ermöglicht es dem Modell, aus den eingebetteten Darstellungen verschiedener Eigenschaften auf adaptive Weise zu lernen. Die Multi-Head-Aufmerksamkeitsschicht besteht aus mehreren Selbst-Attention-Heads, die auch als "skalierte Punktprodukt-Aufmerksamkeit" bezeichnet werden. Nach Anwendung der Schichtnormalisierung mit Epsilon auf 1e-6 ist das Ziel, Skalenabweichungen zwischen verschiedenen Eigenschaften zu beseitigen und die Ausgabestabilität sicherzustellen. Indem die Ausgabe jeder Schicht innerhalb eines vorgegebenen Bereichs gehalten wird, verringert die Schichtnormalisierung die Wahrscheinlichkeit einer Gradientenexplosion. Nach dem Ausgang des Transformators folgt eine Abflachungsschicht, die ihre Kombination mit dem CNN vereinfacht, indem sie sie auf einen einzigen Vektor reduziert.
Der nächste Schritt besteht darin, die abgeflachten Ausgänge von CNN und Transformer mithilfe einer Verkettungsschicht zu kombinieren. Die Aktivierungsfunktion "Relu", L2-Regularisierung und eine dichte Schicht mit 256 Einheiten folgen der Abflachungsschicht. Darauf folgt eine Dropout-Schicht mit einer Rate von 0,5, die hilft, Überanpassungen zu vermeiden. Eine zusätzliche 128-Einheiten-Dichtschicht mit L2-Regularisierung und der "Relu"-Aktivierungsfunktion folgt. Die Aussetzrate in einer zusätzlichen Aussetzerschicht beträgt 0,3. Die ReLU-Aktivierungsfunktion, L2-Regularisierung und eine 64-Einheiten-dichte Schicht bilden die folgende Schicht. Die nächste Schicht besteht aus einer 0,2-Rate-Dropout-Schicht, die zufällig 20 % der darin enthaltenen Einheiten eliminiert. Eine dichte Schicht mit einer Softmax-Aktivierungsfunktion erzeugt eine Wahrscheinlichkeitsverteilung für die Ausgabeklassen der letzten Schicht. In dieser Schicht gibt es genau so viele Einheiten wie es Ausgabeklassen gibt.
Das vorgeschlagene Modell kann numerisch wie folgt ausgedrückt werden:
Sei X die CNN-Eingabedaten, wobei X
R(n×1) nach der Umformung und n die Anzahl der ausgewählten Merkmale ist. X wird in einen höherdimensionalen Einbettungsraum der Form R(n × d_model) für den Transformatorblock gebracht. Bevor es in den Selbst-Aufmerksamkeitsmechanismus geht, wird Positionskodierung verwendet.
Im Folgenden ist der Ausdruck der Operation in der Conv1D-Schicht, die 64 Filter und eine Kerngröße von 3 verwendet:
(6)
wobei Yi,j der Ausgang an Position j desi-ten Filters ist, k der Kern der Größe 3, b1
R64 der Bias-Term für jeden Filter, Wk die Filtergewichte repräsentiert und ReLU die Aktivierungsfunktion ist. Anschließend wird die MaxPooling-Schicht mit einer Poolgröße von 2 angewendet, was die Ausgabe Z1,j ergibt.
(7)
Eine zusätzliche ID-Faltungsschicht mit 3 Kernelgrößen und 128 Filtern ist als dritte Schicht des Modells enthalten; Seine Ausdrucksweise lautet:
(8)
Dabei ist k der Kern der Größe 3, b2
R128 der Vorspannterm für jeden Filter und ReLU die Aktivierungsfunktion. Eine weitere Max-Pool-Schicht wird angewendet, die die Eingabe von der zweiten Faltungsschicht mit einer Poolgröße von 2 bekommt. Der Ausgang Z2,j ist gegeben durch:
(9)
Die fünfte Schicht ist eine Abflachungsschicht, ausgedrückt als:
(10)
Als nächstes kommen die Transformer-Schichten, zu denen eine Embedding-Schicht, eine Multi-Head-Aufmerksamkeitsschicht und eine Schichtnormalisierung gehören
(11)
E ist der Einbettungsvektor für das Eingabeklassenlabel c, und We ist die Gewichtsmatrix, die Einbettungsvektoren für alle Kategorien enthält. Dadurch wird jede ganze Zahl in c auf einen dichten Vektor aus 32 reellwertigen Komponenten abgebildet. Als nächstes folgt eine Mehrkopf-Aufmerksamkeitsschicht, wie sie in Gleichungen (3), (4) und (5) formuliert ist.
Die Schlüsselmatrix hat die Größe dk = 32 und die Dimension h = 8. D, V und DModell stehen für die jeweiligen Maße von V und Modell. Auch 
Für einen Ausgang x = MultiHead(Q,K,V) ergibt die Schichtnormalisierung:
(12)
Wobei y die normalisierte Ausgabe ist, γ und β die lernbaren Parameter und μ und σ2 jeweils den Mittelwert und die Varianz für x bezeichnen. Als nächstes folgt die Abflachungsschicht für den Transformator, definiert als

Am Ende aller Schichten wird der resultierende Ausdruck wie folgt dargestellt:








Wobei Z1
R256, Z2
R128, Z3
R64 und Y
R8 sind. Dieses Hybridmodell berechnet auch die Verlustfunktion für die Mehrklassenklassifikation, die wie folgt ausgedrückt werden kann

wo:
Yc stellt das wahre Label (One-Hot-codiert) für die Klasse cc dar,
Y'c ist die vorhergesagte Wahrscheinlichkeit für Klasse c
Der vorgeschlagene Algorithmus wird in Tabelle 3 ausführlich erklärt.
Tabelle 3: Der vorgeschlagene CNN-Transformer-Algorithmus. Der vorgeschlagene Algorithmus wird in Tabelle 3 Schritt für Schritt erklärt. Bitte klicken Sie hier, um diese Tabelle herunterzuladen.