$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Questa sezione discute materiali e metodi di ricerca relativi ai sistemi di rilevamento degli attacchi nell'ambiente IoT. Per replicare gli esperimenti sul dataset CIC-IoT-2023, questo protocollo delinea procedure specifiche. La successiva Tabella dei Materiali contiene un elenco di tutto l'hardware e il software utilizzati. Python (pandas, scikit-learn e TensorFlow Keras) viene utilizzato per implementare la pipeline, che viene eseguita su Google Colab con PySpark disponibile per la pre-elaborazione di file di grandi dimensioni. È stata fornita una descrizione dettagliata delle procedure di pre-elaborazione dei dati.
Dataset
Il dataset CIC-IoT-2023, rilasciato dall'Istituto Canadese per la Cybersicurezza dell'Università del New Brunswick. "CIC IoT dataset 2023" (pagina dei dataset UNB CIC) e l'articolo34 sono la pagina ufficiale e l'articolo del dataset CIC. Il dataset può essere scaricato dal sito web del CIC ed è accessibile al pubblico generale. Invece di utilizzare PCAP grezzi, in questa ricerca vengono utilizzati i file CSV di feature pre-estratti (flow/features). Wireshark/mergecap e CICFlowMeter sono utilizzati negli esperimenti grezzi che hanno generato il dataset; in questo lavoro sono utilizzati i CSV in evidenza. Questo dataset, derivato da dispositivi IoT reali, viene utilizzato in questa ricerca. Nel set di dati sono inclusi i record di 33 attacchi noti su 105 diversi dispositivi IoT. A differenza dei precedenti dataset IoT, CIC-IoT-2023 include una vasta gamma di tipi di attacco. La quantità di ciascuna etichetta collegata al traffico benigno è mostrata nella Figura 1. Un totale di 46 attributi e 1 etichetta compongono questo dataset. Rispetto al CSE-CIC-IDS 2018, che aveva 84 funzionalità, il CIC-IoT-2023 ne ha 37 in meno.

Figura 1: Conteggio degli attacchi nel dataset CICIoT2023. Vengono descritti i nomi dei diversi tipi di attacchi e i record benigni nel dataset CICIot2023. Questi diversi tipi di attacchi sono ampiamente suddivisi in 7 classi di attacco. Quindi ci sono in totale 8 classi, inclusa la benigna nella classificazione multiclasse. Clicca qui per visualizzare una versione più grande di questa figura.
Preprocessing dei dati
I dataset non dovrebbero essere utilizzati negli algoritmi di deep learning senza un adeguato preprocessing. La pre-elaborazione viene effettuata per fornire all'algoritmo dati più fini, rendendo infine il modello più efficiente. L'output della pipeline di preprocessing - dopo la codifica delle etichette, la scala delle caratteristiche e la selezione delle feature - è chiamato "Dati Finali" e funge da input sia per i componenti CNN che per quelli di Transformer. I passaggi seguenti sono in Google Colab usando Python. Questa ricerca ha utilizzato Python 3.8.10, pandas 1.3.4, NumPy 1.21.4, scikit-learn 1.0.2, matplotlib 3.4.3 e TensorFlow/Keras 2.6.0. Il seed casuale è stato impostato a 42 per tutte le partite.
Acquisizione dati
Questo passaggio include la pulizia dei dati acquisiti da contesti reali, poiché spesso contengono molti errori e incongruenze. Se il dataset contiene valori testuali, ad esempio, è impossibile utilizzare tali valori nell'addestramento deep learning senza prima convertirli in forma numerica. Quando si lavora con il dataset, la prima cosa da fare è rimuovere i valori vuoti ed eliminare celle senza dati al loro interno. Le righe con dati mancanti sono state eliminate per evitare effetti negativi sul modello.
Il dataset CIC-IoT-2023 viene caricato utilizzando pd.read_csv('ciciot2023_features_part.csv'). Questa ricerca ha utilizzato Google Colab per l'addestramento dei modelli e PySpark per la pulizia iniziale. Per rilevare la mancanza, si usano i seguenti metodi: df.shape, df.info(), df.isnull().sum() e df.duplicated().sum() per i duplicati. I duplicati vengono eliminati usando df.drop_duplicates(inplace=Vero). Il tipo di colonna numerica viene verificato usando la formula df[col] = pd.to_numeric(df[col], errori='coerce'). Se compaiono nuovi NaN, la gestione del valore mancante viene nuovamente applicata. Le caratteristiche che sono costanti o quasi costanti vengono eliminate anche usando df.drop(columns=low_variance_cols, inplace=True).
Codifica delle etichette
Il passo successivo è trasformare le etichette del testo in una rappresentazione numerica affinché il modello possa comprenderle. Per la classificazione binaria, esistono due tipi distinti di etichette. Ci sono 46.686.579 registri, di cui 45.588.384 etichettati come attacchi malevoli. Con 1.098.195 dischi inclusi, l'etichetta benigna è impostata a 0. Esistono sette tipi distinti di attacchi nella classificazione multiclasse. Ci sono otto etichette in totale, inclusa la traffico innocuo. La Figura 2 mostra il conteggio di ciascuna categoria di queste etichette. La mappatura multiclasse utilizzata in questa ricerca è: 0 per Benigno, 1 per DoS, 2 per DDoS, 3 per ricognizione, 4 per attacco web-basato, 5 per spoofing, 6 per bruteForce e 7 per attacco mirai.

Figura 2: La percentuale di classi di attacco inclusi traffici benigni. Esistono sette tipi distinti di attacchi nella classificazione multiclasse. Ci sono otto etichette in totale, inclusa la traffico innocuo. La figura mostra il conteggio di ciascuna categoria di queste etichette. Clicca qui per visualizzare una versione più grande di questa figura.
Scalabilità delle caratteristiche
La scalabilità delle funzionalità è un metodo comune per migliorare le prestazioni complessive dei modelli di deep learning. La scalatura delle caratteristiche in questo studio viene realizzata utilizzando le tecnologie Min Max Scaler e Standard Scaler. La ricerca non li utilizzò per i test; invece, utilizzava solo lo scaler sul set di addestramento per prevenire la fuga di dati. I dati possono essere normalizzati a una distribuzione media zero con deviazione standard con l'aiuto del metodo Standard Scaler. Un modo per farlo è dividere il numero originale per la deviazione standard. Per questo la funzione StandardScaler() viene chiamata importando StandardScaler da sklearn.preprocessing. Applicando un intervallo, spesso tra 0 e 1, il Min Max Scaler normalizza i dati. La funzione MinMaxScaler() di scikit-learn è stata utilizzata per implementare questo.
Come indicato nell'Eq. (1), la formula di normalizzazione è:
(1)
Dove X rappresenta il valore originale in punti e Xnormalizzato la sua forma trasformata, Xmin rappresenta il valore più basso della variabile, mentre Xmax indica il valore più alto della variabile all'interno del set di dati.
Selezione delle caratteristiche
Incorporare tutte le caratteristiche di grandi dataset nell'addestramento non è sempre utile. Le caratteristiche all'interno del dataset possono mostrare correlazione e potrebbero non migliorare il risultato. Inoltre, un numero eccessivo di valori aumenta il costo della formazione. Per trovare caratteristiche non necessarie, calcoliamo le loro matrici di correlazione ed escludiamo quelle con forti correlazioni dal dataset. Il coefficiente di correlazione di Pearson, che quantifica la relazione lineare tra due caratteristiche, viene utilizzato per calcolare la correlazione. Un valore compreso tra -1 e +1 si ottiene dividendo la covarianza delle due variabili per il prodotto delle loro deviazioni standard. Questo è opzionale e viene eseguito nella pipeline con Recursive Feature Elimination (RFE) per la selezione delle feature con un classificatore a albero decisionale. L'eliminazione delle caratteristiche ricorsive trova ripetutamente le caratteristiche più rilevanti addestrando il modello classificatore ed escludendo quelle meno significative. Il codice utilizza RFE da sklearn.feature_selection con un classificatore a albero decisionale come stimo. Dopo l'implementazione dell'eliminazione ricorsiva delle caratteristiche, sono state selezionate 30 delle 46 caratteristiche per ciascuna delle sette categorie di attacco, come mostrato nella Tabella 2. Una caratteristica può essere classificata sotto molte classificazioni di attacco. Dopo il completamento del processo descritto nella Figura 3, viene eseguito il processo di selezione delle classi di attacco incluse nel dataset. Le CNN moderne eccellono nell'apprendere rappresentazioni gerarchiche dai dati grezzi, ma preselezionare un piccolo set di funzionalità di alta qualità tramite RFE presenta vantaggi significativi. Innanzitutto, RFE con un classificatore Decision Tree rimuove rapidamente dati rumorosi o ridondanti che potrebbero ritardare la convergenza durante i primi cicli di addestramento. In secondo luogo, centrare la CNN su un pool più piccolo di segnali effettivamente preziosi riduce l'overfitting, che è cruciale nei dataset di traffico IoT con pattern benigni e dannosi altamente distorti. Il metodo di eliminazione ricorsiva dell'albero decisionale classifica le caratteristiche per una migliore spiegabilità del modello e per identificare i bias specifici del dominio prima dell'addestramento profondo. Infine, inizializzare il CNN-Transformer su questo set di funzionalità potato produce una convergenza più rapida e un uso minore della memoria GPU, dimostrando che RFE accelera e stabilizza attivamente l'apprendimento delle funzionalità end-to-end.
Tabella 2: Le caratteristiche selezionate del dataset "CIC-IoT-2023". 30 delle 46 caratteristiche sono state selezionate per ciascuna delle sette categorie di attacco in questa ricerca utilizzando RFE. La tabella descrive le 30 caratteristiche selezionate. Clicca qui per scaricare questa tabella.

Figura 3: Funzionamento del modello ibrido proposto. Il completamento del processo è descritto nella figura. Si svolge il processo di selezione delle classi di attacco incluse nel dataset. Clicca qui per visualizzare una versione più grande di questa figura.
Dividi il dataset in un set di test all'80% e uno al 20% seguendo il passaggio: train_test_split (X_train, y_train, test_size=0,20, random_state=42). L'80% dell'insieme di addestramento viene ulteriormente suddiviso usando train_test_split(X_train, y_train, test_size=0,20,random_state=42). Tutta la selezione del modello e la regolazione degli iperparametri vengono effettuate utilizzando queste suddivisioni precise. La tecnica di sovracampionamento sintetico delle minoranze (SMOTE) viene utilizzata quando si verifica un problema di squilibrio di classe. Solo il set di addestramento è stato sottoposto a SMOTE dopo la divisione e la scala. L'effetto della SMOTE è presentato nei risultati. Dopo RFE, lo studio parallela i rami CNN e Transformer utilizzando le stesse 30 caratteristiche scelte per ogni campione. I dettagli aggiuntivi sull'elaborazione di queste 30 funzionalità sono menzionati nella sezione metodologia proposta.
Metodologia proposta
Un framework di sicurezza efficace per i sistemi IoT, in grado di rilevare con maggiore precisione gli attacchi, sarà costruito con l'aiuto di un modello di deep learning. Viene proposta una strategia di sicurezza ibrida che combina reti neurali convoluzionali (CNN) con modelli di trasformatore. Questo metodo consiste nell'addestramento dell'architettura CNN utilizzando pesi da un dataset più grande e poi nel perfezionare i parametri del modello usando un dataset più piccolo come obiettivo. L'obiettivo principale di questo modello è migliorare l'efficienza del rilevamento delle intrusioni nell'IoT.
Questa ricerca ha utilizzato PySpark, una piattaforma Google Colab che permette agli utenti di eseguire programmi Python su Apache Spark. Utilizzando i pacchetti Scikit-learn e Keras, sono stati sviluppati algoritmi di deep learning. Per addestrare e testare il modello, è stata utilizzata la seguente configurazione: Sistema operativo: Mac OS v12.6; - M2 Apple Silicon; - Display da 13,3 pollici; - CPU a 8 core; - GPU a 8 core; - 32 GB di RAM; - SSD da 256 GB.
Il Canadian Institute for Cybersecurity (CIC) ha creato un dataset completo sulle minacce IoT per promuovere le applicazioni di analisi della sicurezza in ambienti IoTpratici 34. Ci sono stati in totale 33 attacchi su una rete di 105 dispositivi connessi in un sistema IoT. Con un totale di 46.179.314 incidenti, gli attacchi sono suddivisi in sette gruppi: DDoS, Ricognizione, DoS, web-based, spoofing e brute force, oltre a Mirai. Ci sono 37.349.263 istanze nel set di addestramento, 8.830.051 istanze nel set di test e un totale di 46 caratteristiche nel dataset. In ogni caso, dispositivi IoT malevoli lanciano attacchi contro altri dispositivi IoT. Un totale di 67 dispositivi IoT e 38 dispositivi Zigbee e Z-Wave collegati a 5 hub sono stati colpiti dagli attacchi. Una rete di sensori connessi, telecamere, microcontrollori e dispositivi smart home può essere configurata per eseguire diversi tipi di attacchi e registrare il traffico che ne deriva. Wireshark cattura il traffico di rete in formato PCAP per ulteriori analisi. Poiché ogni esperimento memorizza due flussi di dati, il mergecap viene utilizzato per combinare i file PCAP. Vari dispositivi IoT sono stati utilizzati per compilare il dataset, tra cui lettori audio, videoregistratori, hub, prese di corrente, sistemi di domotica, illuminazione, sensori e dispositivi NextGen.
Questa sezione fornisce una metodologia di ricerca dettagliata composta da molte fasi sequenziali utilizzate nello studio. Inoltre, la parte definisce l'algoritmo proposto in modo sequenziale e fornisce un diagramma di flusso dettagliato del processo di ricerca.
CNN
L'algoritmo CNN utilizza una rete neurale artificiale, un approccio di deep learning. La Figura 4 illustra l'algoritmo sottostante utilizzato da CNN: strati completamente connessi, pooling, appiattimento e convoluzione fanno tutti parte di esso. Una CNN non può funzionare senza lo strato di convoluzione. I dati che ricevono la cella vengono elaborati dallo strato convoluzionale.
Nell'Equazione (2), il volume di uscita (Vo) è determinato da P (passo), Vi (volume di input), S (dimensione del nucleo del neurone dello strato convoluzionale) e M (riempimento zero).
(2)
Successivamente, viene utilizzato un filtro per estrarre le proprietà del valore di ingresso durante la convoluzione. Questo livello crea una feature map. Ridurre la dimensione dei dati di input tramite il pooling semplifica l'addestramento e riduce il numero di parametri da calcolare. Il livello di pooling può essere scelto utilizzando il valore più grande all'interno della dimensione data o la media dei valori. La tecnica sviluppata include due strati di convoluzione e due livelli di pooling. Il processo di estrazione delle caratteristiche inizia qui. I dati delle caratteristiche ottenuti sono messi a disposizione per il calcolo. Gli algoritmi CNN sono disponibili in una, due o tre dimensioni. Il modello impiegava una rete neurale convoluzionale con una sola dimensione. Gli strati nell'area classificatrice sono noti come appiattiti, completamente connessi. I dati devono essere appiattiti dopo la fase convoluzionale affinché possano essere utilizzati nella fase completamente connessa. Lo strato di appiattimento è il luogo in cui viene eseguito questo processo. All'interno dello strato completamente collegato, viene utilizzato il paradigma convenzionale delle reti neurali artificiali. Per applicare la CNN ai dati non basati su immagini, le dimensioni di ingresso devono essere trasformate. Di conseguenza, la CNN può utilizzare strati convoluzionali unidimensionaliche sono unidimensionali a 35.

Figura 4: algoritmo base di CNN. Sono descritti i componenti di base e di funzionamento del modello CNN. Clicca qui per visualizzare una versione più grande di questa figura.
Apprendimento con trasformatori
Inoltre, per condurre ulteriori esperimenti, utilizziamo il framework di modellazione dei trasformatori. Il modello può gestire simultaneamente tutti i punti della sequenza grazie al meccanismo di auto-attenzione del trasformatore. Il risultato è un tempo di addestramento più rapido per il modello e un migliore utilizzo delle risorse informatiche da parte del trasformatore durante l'inferenza e l'addestramento. Il trasformatore è composto principalmente da una serie di encoder e decoder impilati. Il processo di codifica prevede il cambio di un linguaggio in un altro, ma il processo di decodifica comporta la determinazione della probabilità che un linguaggio diverso utilizzi output precedenti. Poiché gli encoder sono principalmente responsabili dell'estrazione delle caratteristiche, il modello suggerito utilizza esclusivamente componenti encoder. L'encoder a trasformatore consiste in embedding di input/posizione, una rete neurale feedforward, la normalizzazione dei livelli, l'auto-attenzione multi-testa e una rete residua.
Per preparare i dati di ingresso per l'elaborazione da parte del trasformatore, viene utilizzato uno strato di embedding per convertire le caratteristiche categoriche in rappresentazioni vettoriali dense. L'embedding della posizione mostra come le caratteristiche sono collegate in sequenza, mentre l'embedding degli input mostra come i diversi input sono collegati in uno spazio comune. Prima che il trasformatore elabori caratteristiche categoriche, questa ricerca utilizza l'embedding degli input per trasformarle in vettori densi.
Un'espansione del meccanismo di attenzione, il meccanismo di auto-attenzione multitesta, è la base dell'architettura del trasformatore. Utilizzando un prodotto scalare scalato, questa ricerca impiega il meccanismo di autoattenzione multi-testa.
(3)
dove sono rispettivamente indicate la matrice di query (Q), la matrice chiave (K), la matrice dei valori (V) e la dimensione della matrice chiave (dk). Permettendo al modello di concentrarsi sui dati provenienti da varie caratteristiche mappate in sottospazi separati, risultando in valori di attenzione distinti, un meccanismo di attenzione a prodotto scalare su più teste differisce dal meccanismo di attenzione scala a prodotto scalare. L'overfitting è meno probabile quando i livelli di attenzione vengono calcolati indipendentemente per ciascuna testa. La formulazione specifica è la seguente:
(4)
(5)
Dove h è il numero di teste di attenzione, d,v e drappresentano la dimensione di v e modello. Anche

Successivamente, viene utilizzata la normalizzazione dei livelli per stabilizzare il processo di addestramento. Per prevenire l'esplosione del gradiente, la normalizzazione degli strati limita l'uscita di ciascun livello a un certo intervallo. Sia la convergenza che la velocità di addestramento del modello possono essere migliorate da questo. Mentre la normalizzazione batch tiene conto dei dati batch, la normalizzazione dei livelli no.
Modello proposto da CNN-Transformer
Questa ricerca offre una tecnica ibrida CNN-Transformer per rilevare intrusioni nelle reti IoT, considerando i vantaggi distinti di entrambe le architetture. La Figura 5 mostra i principali componenti della proposta tecnica ibrida CNN-Transformer. Dopo aver eseguito tutte le fasi di pre-elaborazione, inclusa pulizia, normalizzazione, codifica delle etichette e selezione delle caratteristiche, ogni campione nel dataset viene rappresentato da un vettore di caratteristiche a 30 dimensioni, chiamato Final Data. Gli stessi Dati Finali vengono duplicati e alimentati in parallelo a entrambi i rami del modello ibrido. Successivamente, questi Dati Finali vengono inviati simultaneamente sia al blocco CNN che a quello Transformer. CNN e trasformatore non dipendono l'uno dall'altro in alcun modo; Possono entrambi lavorare sugli stessi dati di ingresso contemporaneamente. Le uscite appiattite dei due rami, CNN e Transformer, vengono concatenate per produrre un vettore di caratteristiche fuse, che viene passato agli strati densi, che li classificano. Il blocco CNN modifica la forma di input in (num_features, 1) in modo che operazioni convoluzionali possano essere eseguite tra le dimensioni delle caratteristiche per trovare pattern spaziali locali. Allo stesso tempo, il ramo Transformer cambia lo stesso input in un formato sequenziale e lo invia in uno spazio di embedding di dimensione superiore, seguito dalla codifica posizionale. Questo permette al transformer di prestare attenzione a sé nello spazio delle feature e di trovare relazioni contestuali globali. Il design unico del trasformatore viene utilizzato per l'estrazione delle caratteristiche, mentre la funzione sigmoide e gli strati completamente collegati forniscono la connessione di mappatura tra caratteristiche e etichette. Il modello CNN-Transformer è strutturalmente rappresentato dalla Figura 5. Il risultato è un sistema a otto categorie per classificare gli attacchi, con DDoS, Ricognizione, DoS, Benigno, Web-based, Spoofing, Brute Force e Mirai come componenti componenti. Il processo di valutazione del CNN-Transformer proposto è mostrato nella Figura 5.

Figura 5: Architettura del modello proposto. La figura mostra la forma dell'input e il processo di valutazione del CNN-Transformer proposto. Clicca qui per visualizzare una versione più grande di questa figura.
Due reti neurali convoluzionali unidimensionali (CNN) con filtri da 64 e 128 unità e una dimensione di 3 kernel, due strati di max-pooling, uno step di appiattimento, tre strati densi con 256, 128 e 64 unità, e tre strati dropout costituiscono il livello di rete neurale convoluzionale (CNN).
I dati di input vengono elaborati tramite uno strato convoluzionale 1D con funzione di attivazione ReLU, 64 filtri, un kernel 3x3 e un stride 1x1 nel primo livello. Dopo il livello precedente c'è un livello MaxPooling1D con una dimensione del pool pari a 2. Per rendere il modello più flessibile e diminuire il suo costo computazionale, questo livello diminuisce le dimensioni spaziali dell'area di output. Il terzo livello è un altro livello convoluzionale 1D; ha 128 filtri, un kernel di tre dimensioni, un passo di uno e una funzione di attivazione chiamata ReLU. Utilizzando più filtri per estrarre le caratteristiche di input, questo strato è simile al primo strato di max pooling. L'output del primo livello viene poi elaborato utilizzando questa tecnica. Successivamente, è stato aggiunto uno strato massimo di pooling dopo il secondo strato di convoluzione, e la dimensione del pool era anch'essa 2. Ancora una volta, questo livello viene utilizzato per ridurre il campionamento delle feature map. Il quinto livello è uno strato appiattimento, e prende l'output del livello precedente trasformandolo in un vettore unidimensionale.
I sottoinsiemi di caratteristiche ottenuti vengono inseriti in input come ultimo passaggio prima di diventare l'input del trasformatore. Inoltre, l'attenzione multi-testa — un vettore unidimensionale di otto teste con una dimensione di 32 chiavi — viene utilizzata per valutare il significato di ciascuna testa. Lo strato di attenzione multi-testa è il componente principale del trasformatore. Questo livello permette al modello di apprendere dalle rappresentazioni incorporate di diverse caratteristiche in modo adattivo. Lo strato di attenzione multi-testa è composto da diverse teste di auto-attenzione, chiamate anche "attenzione scalata a prodotto scalare". Dopo l'applicazione della normalizzazione degli strati con epsilon impostato su 1e-6, l'obiettivo è eliminare le discrepanze di scala tra le varie caratteristiche e garantire la stabilità dell'uscita. Mantenendo l'output di ciascun livello entro un intervallo predeterminato, la normalizzazione dello strato riduce la probabilità di esplosione del gradiente. Dopo l'uscita del trasformatore si trova uno strato di appiattimento, che ne semplifica la combinazione con la CNN riducendola a un singolo vettore.
Il passo successivo è combinare le uscite appiattite di CNN e Transformer usando uno strato di concatenazione. La funzione di attivazione "relu", regolarizzazione L2 e uno strato denso di 256 unità seguono lo strato appiattito. Segue uno strato di dropout con tasso di 0,5, che aiuta a evitare il sovrafitting. Segue uno strato denso aggiuntivo di 128 unità utilizzando regolarizzazione L2 e la funzione di attivazione "relu". Il tasso di abbandono in uno strato aggiuntivo è 0,3. La funzione di attivazione di ReLU, la regolarizzazione L2 e uno strato denso di 64 unità costituiscono lo strato successivo. Il livello successivo assume la forma di uno strato di dropout a tasso 0,2, eliminando casualmente il 20% delle unità interne. Uno strato denso con una funzione di attivazione softmax crea una distribuzione di probabilità per le classi di output dell'ultimo strato. Ci sono esattamente tante unità in questo livello quante classi di output ci sono.
Il modello suggerito può essere espresso numericamente come segue:
Sia X i dati di input CNN, dove X
R(n×1), dopo la rimodellazione, e n è il numero di caratteristiche selezionate, rispettivamente. X viene inserito in uno spazio di immersione di dimensione superiore di forma R(n × d_model) per il blocco Transformer. Prima di entrare nel meccanismo di auto-attenzione, viene utilizzata la codifica posizionale.
Di seguito è l'espressione dell'operazione nel livello Conv1D, che utilizza 64 filtri e una dimensione del kernel pari a 3:
(6)
dove Yi,j è l'uscita in posizione j del filtro i, k è il nucleo di dimensione 3, b1
R64 è il termine di bias per ciascun filtro, Wk rappresenta i pesi dei filtri e ReLU è la funzione di attivazione. Successivamente, viene applicato il livello MaxPooling con una dimensione del pool pari a 2, ottenendo un'uscitaZ 1,j.
(7)
Un ulteriore livello di convoluzione ID con una dimensione del nucleo di 3 e 128 filtri è incluso come terzo livello del modello; La sua espressione è:
(8)
Dove k è il nucleo di dimensione 3, b2
R128 è il termine di bias per ciascun filtro, e ReLU è la funzione di attivazione. Viene applicato un altro livello max pool, che riceve l'input dal secondo livello di convoluzione con una dimensione del pool di 2. L'uscita Z2,j è data da:
(9)
Il quinto strato è uno strato appiattiente espresso come:
(10)
Successivamente ci sono i layer transformer, che includono uno strato di embedding, uno strato di attenzione multi-head e la normalizzazione dei layer
(11)
E è il vettore di immersione per l'etichetta di classe di input c, e We è la matrice di pesi contenente i vettori di embedding per tutte le categorie. Questo mappa ogni intero in c su un vettore denso di 32 componenti a valori reali. Segue un livello di attenzione multi-testa, come formulato nell'Equazione (3),(4) e (5).
La matrice chiave ha una dimensione dk =32 e una dimensione di h=8. Imodelli D, V e D rappresentano rispettivamente le dimensioni di V e modello. Anche
Per un'uscita x = MultiHead(Q,K,V), la normalizzazione dei layer fornisce:
(12)
Dove y è l'output normalizzato, γ e β sono i parametri imparabili, e μ e σ2 indicano rispettivamente la media e la varianza per x. Successivamente c'è lo strato di appiattimento per il trasformatore, definito come

Alla fine di tutti i livelli, l'espressione risultante viene mostrata come








dove Z1
R256, Z2
R128, Z3
R64 e Y
R 8. Questo modello ibrido calcola anche la funzione di perdita per la classificazione multiclasse, che può essere espressa come

dove:
Yc rappresenta l'etichetta vera (codificata a un caldo) per la classe cc,
Y'c è la probabilità prevista per la classe c
L'algoritmo proposto è spiegato in dettaglio nella Tabella 3 .
Tabella 3: L'algoritmo proposto CNN-Transformer. L'algoritmo proposto è spiegato passo dopo passo nella Tabella 3. Clicca qui per scaricare questa tabella.