$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Ta sekcja omawia materiały badawcze i metody związane z detekcją ataków w środowisku IoT. Aby powtórzyć eksperymenty na zbiorze danych CIC-IoT-2023, protokół ten określa konkretne procedury. Następny Arkusz materiałów zawiera listę całego używanego sprzętu i oprogramowania. Do implementacji pipeline'u używa się Pythona (pandas, scikit-learn i TensorFlow Keras), który działa w Google Colab z dostępnym PySpark do wstępnego przetwarzania dużych plików. Szczegółowy opis procedur wstępnego przetwarzania danych został przedstawiony.
Dataset
Zestaw danych CIC-IoT-2023, opublikowany przez Kanadyjski Instytut Cyberbezpieczeństwa Uniwersytetu Nowego Brunszwiku. "CIC IoT dataset 2023" (strona zbiorów danych CIC UNB) oraz artykuł34 zbioru danych to oficjalna strona i artykuł zbioru danych CIC. Zbiór danych można pobrać ze strony internetowej CIC i jest dostępny dla ogółu społeczeństwa. Zamiast używać surowych PCAP, w tych badaniach wykorzystywane są wcześniej wypakowane pliki cech CSV (flows/feature). W surowych eksperymentach generujących zbiór danych wykorzystywane są Wireshark/mergecap oraz CICFlowMeter; W tej pracy wykorzystano wyróżnione pliki CSV. Ten zbiór danych pochodzi z rzeczywistych urządzeń IoT i jest wykorzystywany w tych badaniach. W zbiorze danych znajdują się rekordy z 33 znanych ataków na 105 różnych urządzeń IoT. W przeciwieństwie do wcześniejszych zbiorów danych IoT, CIC-IoT-2023 obejmuje szeroką gamę typów ataków. Ilość każdej etykiety powiązanej z łagodnym ruchem przedstawiona jest na Rysunku 1. Łącznie 46 atrybutów i 1 etykieta składa się z tego zbioru danych. W porównaniu do CSE-CIC-IDS 2018, który miał 84 funkcje, CIC-IoT-2023 ma o 37 funkcji mniej.

Rysunek 1: Liczba ataków w zbiorze danych CICIoT2023. Opisano nazwy liczników różnych typów ataków i łagodnych rekordów w zbiorze danych CICIot2023. Te różne typy ataków dzieli się ogólnie na 7 klas ataków. Łącznie istnieje 8 klas, w tym łagodne w klasyfikacji wieloklasowej. Proszę kliknąć tutaj, aby zobaczyć większą wersję tej figurki.
Wstępne przetwarzanie danych
Zbiory danych nie powinny być wykorzystywane w algorytmach głębokiego uczenia bez odpowiedniego wstępnego przetwarzania. Wstępne przetwarzanie jest wykonywane, aby dostarczyć algorytmowi dokładniejsze dane, co ostatecznie zwiększa efektywność modelu. Wyjście potoku wstępnego przetwarzania – po kodowaniu etykiet, skalowaniu cech i wyborze cech – nazywane jest "Ostatecznymi Danymi" i służy jako wejście zarówno do komponentów CNN, jak i Transformera. Następujące kroki są w Google Colab z użyciem Pythona. W tych badaniach wykorzystano Python 3.8.10, pandas 1.3.4, NumPy 1.21.4, scikit-learn 1.0.2, matplotlib 3.4.3 oraz TensorFlow/Keras 2.6.0. Losowe rozstawienie ustawiono na 42 dla wszystkich punktów.
Pozyskiwanie danych
Ten etap obejmuje czyszczenie danych uzyskanych z rzeczywistych kontekstów, ponieważ często zawierają one wiele błędów i niespójności. Jeśli zbiór danych zawiera wartości tekstowe, na przykład, nie da się ich wykorzystać w treningu głębokim bez wcześniejszego przekształcenia ich w formę liczbową. Podczas pracy z zestawem danych pierwszą czynnością jest usunięcie pustych wartości i usunięcie komórek bez danych. Wiersze z brakującymi danymi zostały usunięte, aby uniknąć negatywnych skutków dla modelu.
Zbiór danych CIC-IoT-2023 jest ładowany za pomocą pd.read_csv('ciciot2023_features_part.csv'). W tych badaniach wykorzystano Google Colab do treningu modeli oraz PySpark do początkowego czyszczenia. Aby wykryć brak, stosuje się następujące metody: df.shape, df.info(), df.isnull().sum() oraz df.duplicated().sum() dla duplikatów. Duplikaty są eliminowane za pomocą df.drop_duplicates(inplace=True). Typ kolumny numerycznej jest weryfikowany za pomocą formuły df[col] = pd.to_numeric(df[col], errors='coresistce'). Jeśli pojawią się nowe NaN, obsługa wartości brakujących jest ponownie stosowana. Cechy będące stałe lub prawie stałe są również eliminowane za pomocą df.drop(columns=low_variance_cols, inplace=True).
Kodowanie etykiet
Kolejnym krokiem jest przekształcenie etykiet tekstowych w reprezentację liczbową, aby model mógł je zrozumieć. W klasyfikacji binarnej istnieją dwa odrębne rodzaje etykiet. Istnieje 46 686 579 rekordów, z czego 45 588 384 oznaczonych jako złośliwe ataki. Przy 1 098 195 płytach, łagodna wytwórnia jest ustawiona na 0. W klasyfikacji wieloklasowej wyróżnia się siedem odrębnych typów ataków. Łącznie jest osiem etykiet, wliczając łagodny ruch. Rysunek 2 pokazuje liczbę tych etykiet w każdej kategorii. Mapowanie wieloklasowe używane w tych badaniach to: 0 dla Benign, 1 dla DoS, 2 dla DDoS, 3 dla rozpoznania, 4 dla ataku webowego, 5 dla spoofingu, 6 dla bruteForce i 7 dla ataku mirai.

Rysunek 2: Procent klas ataku w tym ruch łagodny. W klasyfikacji wieloklasowej wyróżnia się siedem odrębnych typów ataków. Łącznie jest osiem etykiet, wliczając łagodny ruch. Rysunek pokazuje liczbę tych etykiet w każdej kategorii. Proszę kliknąć tutaj, aby zobaczyć większą wersję tej figurki.
Skalowanie cech
Skalowanie cech to powszechna metoda poprawy ogólnej wydajności modeli deep learning. Skalowanie cech w tym badaniu realizowane jest za pomocą technologii Min Max Scaler oraz Standard Scaler. Badania nie wykorzystały ich do testów; zamiast tego używał tylko skalera na zbiorze treningowym, aby zapobiec wyciekom danych. Dane można znormalizować do rozkładu zerowej średniej i jednego odchylenia standardowego za pomocą metody Standard Scaler. Jednym ze sposobów jest podzielenie oryginalnej liczby przez odchylenie standardowe. Dla tej funkcji StandardScaler() wywołuje się przez import StandardScaler ze sklearn.preprocessing. Stosując zakres, często od 0 do 1, Min Max Scaler normalizuje dane. Do implementacji tego zastosowano funkcję MinMaxScaler() ze scikit-learn.
Jak wskazano w równaniu (1), wzór normalizujący to:
(1)
Gdy X oznacza wartość punktową z oryginalnym wzorem, a Xnormalized dla formy przekształconej, Xmin oznacza najniższą wartość zmiennej, natomiast Xmax oznacza najwyższą wartość zmiennej w zbiorze danych.
Wybór funkcji
Włączanie wszystkich cech z dużych zbiorów danych do treningu nie zawsze jest pomocne. Cechy w zbiorze danych mogą wykazywać korelację i nie mogą poprawiać wyniku. Ponadto zbyt wiele opłat zwiększa koszty szkolenia. Aby znaleźć cechy, które nie są potrzebne, obliczamy ich macierze korelacji i wykluczamy te o silnych korelacjach ze zbioru danych. Współczynnik korelacji Pearsona, który ilościowo określa liniową zależność między dwoma cechami, służy do obliczenia korelacji. Wartość między -1 a +1 uzyskuje się, dzieląc kowariancję dwóch zmiennych przez iloczyn ich odchyleń standardowych. Jest to opcjonalne i wykonywane w pipeline za pomocą Rekurencyjnej Eliminacji Cech (RFE) do wyboru cech za pomocą klasyfikatora drzewa decyzyjnego. Rekurencyjne eliminowanie cech wielokrotnie znajduje najbardziej istotne cechy poprzez trenowanie modelu klasyfikatora i odrzucanie tych najmniej istotnych. Kod wykorzystuje RFE z sklearn.feature_selection z klasyfikatorem drzewa decyzji jako estymatorem. Po wdrożeniu eliminacji cech rekurencyjnych, 30 z 46 cech zostało wybranych dla każdej z siedmiu kategorii ataków, jak pokazano w Tabeli 2. Cecha może być zaliczana do wielu klasyfikacji ataku. Po zakończeniu procesu opisanego na Rysunku 3 następuje proces wyboru klas ataków zawartych w zbiorze danych. Nowoczesne CNN doskonale uczą się hierarchicznych reprezentacji z surowych danych, ale wstępne wybranie niewielkiego, wysokiej jakości zestawu funkcji za pomocą RFE ma znaczące zalety. Po pierwsze, RFE z klasyfikatorem drzewa decyzyjnego szybko usuwa zaszumione lub redundantne dane, które mogłyby opóźnić zbieżność podczas wczesnych cykli treningowych. Po drugie, skupienie CNN na mniejszej puli faktycznie wartościowych sygnałów zmniejsza nadmierne dopasowanie, co jest kluczowe w zbiorach danych ruchu IoT o silnie zniekształconych, łagodnych i szkodliwych wzorcach. Rekurencyjna metoda eliminacji w drzewie decyzyjnym klasyfikuje cechy dla lepszej wyjaśnialności modelu oraz identyfikacji uprzedzeń specyficznych dla dziedziny przed głębokim trenowaniem. Wreszcie, inicjalizacja CNN-Transformera na tym ograniczonym zestawie funkcji zapewnia szybszą konwergencję i niższe zużycie pamięci GPU, co dowodzi, że RFE aktywnie przyspiesza i stabilizuje uczenie cech end-to-end.
Tabela 2: Wybrane cechy zbioru danych "CIC-IoT-2023". 30 z 46 cech zostało wybranych dla każdej z siedmiu kategorii ataków w tym badaniu przy użyciu RFE. Tabela opisuje wybrane 30 cech. Prosimy kliknąć tutaj, aby pobrać tę tabelę.

Rysunek 3: Praca proponowanego modelu hybrydowego. Zakończenie procesu przedstawiono na rysunku. Proces wyboru klas ataków zawartych w zestawie danych jest realizowany. Proszę kliknąć tutaj, aby zobaczyć większą wersję tej figurki.
Podziel zbiór danych na zestaw testowy 80% i zestaw testowy 20%, podążając za krokiem: train_test_split (X_train, y_train, test_size=0,20, random_state=42). Zestaw treningowy 80% jest dalej dzielony za pomocą train_test_split(X_train, y_train, test_size=0,20,random_state=42). Cały wybór modelu i strojenie hiperparametrów odbywa się za pomocą tych precyzyjnych podziałów. Technika nadpróbkowania syntetycznej mniejszości (SMOTE) jest stosowana, gdy występuje problem nierównowagi klasowej. Tylko zestaw treningowy poddawał się SMOTE po podziale i skalowaniu. Efekt SMOTE jest przedstawiony w wynikach. Po RFE badanie równolegle przebiega między gałęziami CNN i Transformer, wykorzystując te same 30 cech, które zostały wybrane dla każdej próbki. Dalsze szczegóły dotyczące przetwarzania tych 30 cech są opisane w proponowanej sekcji metodologicznej.
Proponowana metodologia
Skuteczne ramy bezpieczeństwa systemów IoT, które będą mogły dokładniej wykrywać ataki, zostaną zbudowane przy pomocy modelu głębokiego uczenia. Proponowana jest hybrydowa strategia bezpieczeństwa łącząca konwolucyjne sieci neuronowe (CNN) z modelami transformerów. Metoda ta polega na trenowaniu architektury CNN przy użyciu wag z większego zbioru danych, a następnie precyzyjnym dostrojeniu parametrów modelu z użyciem mniejszego zbioru danych jako celu. Głównym celem tego modelu jest poprawa efektywności wykrywania włamań w IoT.
W tych badaniach wykorzystano platformę PySpark, Google Colab, która pozwala użytkownikom uruchamiać programy Pythona na Apache Spark. Korzystając z pakietów Scikit-learn i Keras, opracowano algorytmy głębokiego uczenia. Do trenowania i testowania modelu zastosowano następującą konfigurację: System operacyjny: Mac OS v12.6; - M2 Apple Silicon; - Wyświetlacz 13,3 cala; - 8-rdzeniowy procesor; - 8-rdzeniowa karta graficzna; - 32 GB RAM; - 256 GB SSD.
Kanadyjski Instytut Cyberbezpieczeństwa (CIC) stworzył kompleksowy zbiór danych o zagrożeniach IoT, aby rozwijać aplikacje analizy bezpieczeństwa w praktycznych środowiskach IoT34. Łącznie doszło do 33 ataków na sieć 105 podłączonych urządzeń w systemie IoT. Przy łącznej liczbie 46 179 314 incydentów, ataki dzieli się na siedem grup: DDoS, Recon, DoS, webowe, spoofing i brutalna siła, oprócz Mirai. W zbiorze treningowym znajduje się 37 349 263 przypadków, w zbiorze testowym 8 830 051 przypadków, a w zbiorze danych łącznie 46 cech. W każdym przypadku złośliwe urządzenia IoT przeprowadzają ataki na inne urządzenia IoT. Łącznie 67 urządzeń IoT oraz 38 urządzeń Zigbee i Z-Wave podłączonych do 5 hubów zostało dotkniętych atakami. Sieć połączonych czujników, kamer, mikrokontrolerów i urządzeń inteligentnego domu może być skonfigurowana do przeprowadzania różnych typów ataków i rejestrowania ruchu z nich powstałego. Wireshark rejestruje ruch sieciowy w formacie PCAP do dalszej analizy. Ponieważ każdy eksperyment przechowuje dwa strumienie danych, mergecap służy do łączenia plików PCAP. Do kompilacji zestawu danych użyto różnych urządzeń IoT, w tym odtwarzaczy audio, rejestratorów wideo, hubów, gniazdek zasilających, systemów automatyki domowej, oświetlenia, czujników oraz gadżetów NextGen.
Ta sekcja przedstawia szczegółową metodologię badawczą składającą się z wielu kolejnych faz stosowanych w badaniu. Ponadto część ta definiuje proponowany algorytm sekwencyjnie i przedstawia szczegółowy schemat przepływowy procesu badawczego.
CNN
Algorytm CNN wykorzystuje sztuczną sieć neuronową, czyli podejście do głębokiego uczenia. Rysunek 4 ilustruje algorytm używany przez CNN: w pełni połączone warstwy, pulowanie, spłaszczanie i splot są jego częścią. CNN nie może funkcjonować bez warstwy splotowej. Odbierane dane komórkowe są przetwarzane przez warstwę splotową.
W równaniu (2) objętość wyjściowa (Vo) jest określana przez P (krok), Vi (objętość wejściowa), S (rozmiar jądra neuronu warstwy splotowej) oraz M (zerowe wypełnienie).
(2)
Następnie filtr służy do wyodrębniania właściwości wartości wejściowej podczas splotu. Ta warstwa tworzy mapę cech. Zmniejszenie rozmiaru danych wejściowych poprzez pulowanie upraszcza trening i zmniejsza liczbę parametrów do obliczenia. Warstwę poolingu można wybrać na podstawie największej wartości w danym rozmiarze lub średniej tych wartości. Opracowana technika obejmuje dwie warstwy splotu oraz dwa poziomy poolingu. Proces wyodrębniania cech rozpoczyna się tutaj. Uzyskane dane cech są udostępniane do obliczeń. Algorytmy CNN są dostępne w jednowymiarowym, dwu- lub trzech wymiarach. Model wykorzystywał splotową sieć neuronową o zaledwie jednym wymiarze. Warstwy w obszarze klasyfikującym nazywane są spłaszczonymi, w pełni połączonymi. Dane muszą być spłaszczone po fazie splotowej, aby mogły być używane w fazie w pełni połączonej. To właśnie warstwa spłaszczona jest miejscem, gdzie ten proces jest realizowany. W warstwie w pełni połączonej stosuje się konwencjonalny paradygmat sztucznych sieci neuronowych. Aby zastosować CNN do danych nieobazowanych na obrazach, wymiary wejściowe muszą zostać przekształcone. W rezultacie CNN może używać jednowymiarowych warstw splotowych owymiarze 35.

Rysunek 4: Podstawowy algorytm CNN. Opisano podstawowe działanie i elementy modelu CNN. Proszę kliknąć tutaj, aby zobaczyć większą wersję tej figurki.
Uczenie się transformatorów
Ponadto, aby prowadzić dalsze eksperymenty, korzystamy z ram modelowania transformatorów. Model może jednocześnie obsługiwać wszystkie punkty sekwencji dzięki mechanizmowi samokontroli transformatora. W rezultacie trwa szybszy czas treningu modelu oraz lepsze wykorzystanie zasobów komputerowych przez transformator podczas wnioskowania i trenowania. Transformator składa się głównie z serii nałożonych enkoderów i dekoderów. Proces kodowania polega na zmianie jednego języka na inny, natomiast proces dekodowania polega na określeniu prawdopodobieństwa pojawienia się innego języka na podstawie wcześniejszych wyników. Ponieważ enkodery odpowiadają głównie za wyodrębnianie cech, proponowany model wykorzystuje wyłącznie komponenty enkodera. Enkoder transformatora składa się z osadzenia wejścia/pozycji, sieci neuronowej z wyprzedzeniem, normalizacji warstw, wielogłowicowej samouwagi oraz sieci resztkowej.
Aby przygotować dane wejściowe do przetwarzania przez transformator, stosuje się warstwę osadzenia, która przekształca cechy kategoryczne w gęste reprezentacje wektorowe. Osadzenie pozycji pokazuje, jak cechy są połączone sekwencyjnie, natomiast osadzanie wejściowe pokazuje, jak różne wejścia są powiązane w wspólnej przestrzeni. Zanim transformator przetworzy cechy kategoryczne, badania te wykorzystują osadzanie wejściowe do przekształcenia ich w gęste wektory.
Rozszerzenie mechanizmu uwagi, mechanizm samouwagi wielogłowicowy jest fundamentem architektury transformatora. Korzystając z skalowanego iloczynu skalowego, badania te wykorzystują mechanizm wielogłowej samouwagi.
(3)
gdzie odpowiednio oznaczane są macierze zapytań (Q), macierz klucza (K), macierz wartości (V) oraz wymiar macierzy klucza (dk). Pozwalając modelu na koncentrację danych z różnych cech mapowanych na oddzielne podprzestrzenie, co skutkuje wyraźnymi wartościami uwagi, mechanizm uwagi skalowanej w skali skalowanej skali skalowej różni się od mechanizmu uwagi skalowanej dot-product. Nadmierne dopasowanie jest mniej prawdopodobne, gdy poziomy uwagi obliczane są niezależnie dla każdej głowy. Konkretna formuła jest następująca:
(4)
(5)
Gdzie h to liczba głów uwagi,model dv i d reprezentuje wymiar v i model. Też

Następnie stosuje się normalizację warstw, aby ustabilizować proces treningu. Aby zapobiec eksplozji gradientów, normalizacja warstw ogranicza wyjście każdej warstwy do określonego zakresu. Dzięki temu można poprawić zarówno zbieżność, jak i szybkość treningu modelu. Podczas gdy normalizacja wsadowa uwzględnia dane wsadowe, normalizacja warstw tego nie robi.
Proponowany model CNN-Transformer
Badania te oferują hybrydową technikę CNN-Transformer do wykrywania włamań w sieciach IoT, uwzględniając unikalne zalety obu architektur. Rysunek 5 przedstawia główne elementy proponowanej techniki hybrydy CNN-Transformer. Po wykonaniu wszystkich etapów wstępnego przetwarzania, w tym czyszczenia, normalizacji, kodowania etykiet i wyboru cech, każda próbka w zbiorze danych jest reprezentowana przez 30-wymiarowy wektor cech, zwany Ostatecznymi Danymi. Te same Dane Końcowe są duplikowane i przesyłane równolegle do obu gałęzi modelu hybrydowego. Następnie te Ostateczne Dane są jednocześnie przesyłane do bloków CNN i Transformer. CNN i transformer w żaden sposób na sobie nie polegają; Oba mogą pracować na tych samych danych wejściowych w tym samym czasie. Spłaszczone wyjścia dwóch gałęzi, CNN i Transformer, są łączone, tworząc fuzjonowany wektor cech, który jest przekazywany do gęstych warstw, które je klasyfikują. Blok CNN zmienia kształt wejściowy na (num_features, 1), aby można było wykonywać operacje splotowe pomiędzy wymiarami cech w celu znalezienia lokalnych wzorców przestrzennych. Jednocześnie gałąź Transformera zmienia to samo wejście na format sekwencyjny i wysyła je do przestrzeni osadzenia o wyższych wymiarach, po czym następuje kodowanie pozycyjne. Pozwala to transformatorowi skupić się na przestrzeni funkcji i znaleźć globalne relacje kontekstowe. Unikalna konstrukcja transformatora służy do wyodrębniania cech, natomiast funkcja sigmoidalna i warstwy całkowicie połączone zapewniają połączenie mapowania między cechami i etykietami. Model CNN-Transformer jest strukturalnie przedstawiony na Rysunku 5. Efektem jest system klasyfikacji ataków podzielony na osiem kategorii, z DDoS, Rozpoznawczym, DoS, Benign, Web-based, Spoofing, Brute Force i Mirai jako elementami. Proces oceny proponowanego transformatora CNN przedstawiono na Rysunku 5.

Rysunek 5: Architektura proponowanego modelu. Rysunek przedstawia kształt wejściowy oraz proces oceny proponowanego transformatora CNN. Proszę kliknąć tutaj, aby zobaczyć większą wersję tej figurki.
Dwie jednowymiarowe sieci neuronowe splotowe (CNN) z filtrami 64- i 128-jednostkowymi oraz rozmiarem 3 jądr, dwie warstwy maksymalnej puli, krok spłaszczania, trzy gęste warstwy o liczbie 256, 128 i 64 jednostek oraz trzy warstwy dropout tworzą warstwę sieci neuronowej splotowej (CNN).
Dane wejściowe są przetwarzane przez warstwę 1D splotową z funkcją aktywacji ReLU, 64 filtrami, jądrem 3x3 oraz krokiem 1x1 w pierwszej warstwie. Po poprzedniej warstwie znajduje się warstwa MaxPooling1D o rozmiarze puli 2. Aby uczynić model bardziej elastycznym i zmniejszyć jego koszty obliczeniowe, warstwa ta zmniejsza wymiary przestrzenne obszaru wyjściowego. Warstwa trzecia to kolejna warstwa jednowymiarowa splotowa; posiada 128 filtrów, jądro o trzech rozmiarach, krok jeden oraz funkcję aktywacyjną o nazwie ReLU. Dzięki większej liczbie filtrów do wyodrębniania cech wejściowych, ta warstwa jest podobna do pierwszej warstwy max pooling. Następnie wynik pierwszej warstwy jest przetwarzany tą techniką. Następnie po drugiej warstwie splotowej dodano warstwę maksymalnej puli, której rozmiar puli również wynosił 2. Ponownie ta warstwa służy do zmniejszania liczby map cech. Piąta warstwa to warstwa spłaszczająca i przyjmuje wyjście z poprzedniej warstwy i przekształca je w wektor jednowymiarowy.
Uzyskane podzbiory cech są wprowadzane jako ostatni krok przed przekształceniem transformatora. Dodatkowo do oceny znaczenia każdej głowy używa się wielogłowej uwagi — jednowymiarowego wektora ośmiu głów o wymiarze 32 kluczy. Warstwa wielogłowicowej uwagi jest głównym elementem transformatora. Ta warstwa pozwala modelowi uczyć się z osadzonych reprezentacji różnych cech w sposób adaptacyjny. Warstwa wielogłowicowej uwagi składa się z kilku głowic samouwagi, które nazywane są również "skalowaną uwagą iloczynu skalowego". Po zastosowaniu normalizacji warstw przy ustawieniu epsilon na 1e-6, celem jest wyeliminowanie rozbieżności skali między różnymi cechami i zapewnienie stabilności wyjściowej. Utrzymując wyjście każdej warstwy w określonym zakresie, normalizacja warstw zmniejsza prawdopodobieństwo eksplozji gradientów. Po wyjściu transformatora znajduje się warstwa spłaszczania, która upraszcza jego połączenie z CNN, redukując go do jednego wektora.
Kolejnym krokiem jest połączenie spłaszczonych wyjść CNN i Transformera za pomocą warstwy konkatenacyjnej. Funkcja aktywacji "relu", regularizacja L2 oraz warstwa gęsta o 256 jednostkach następują po warstwie spłaszczenia. Następnie następuje warstwa dropout o współczynniku 0,5, co pomaga uniknąć nadmiernego dopasowania. Następuje dodatkowa warstwa gęsta o 128 jednostkach wykorzystująca regularizację L2 oraz funkcję aktywacji "relu". Wskaźnik wypadków w dodatkowej warstwie wynosił 0,3. Funkcja aktywacji ReLU, regularizacja L2 oraz warstwa gęsta 64 jednostek tworzą kolejną warstwę. Kolejna warstwa ma formę warstwy dropout o tempie 0,2, losowo eliminującej 20% jednostek znajdujących się w środku. Gęsta warstwa z funkcją aktywacji softmax tworzy rozkład prawdopodobieństwa dla klas wyjściowych ostatniej warstwy. W tej warstwie jest dokładnie tyle jednostek, ile jest klas wyjściowych.
Sugerowany model można wyrazić numerycznie następująco:
Niech X będzie danymi wejściowymi CNN, gdzie X
R(n×1) po przekształceniu, a n to liczba wybranych cech, odpowiednio. X jest umieszczany w przestrzeni osadzania o wyższych wymiarach o kształcie R(n × d_model) dla bloku transformatora. Zanim przejdzie do mechanizmu samouwagi, stosuje się kodowanie pozycyjne.
Poniżej przedstawia się wyrażenie operacji na warstwie Conv1D, która wykorzystuje 64 filtry i rozmiar jądra 3:
(6)
gdzie Yi,j to wyjście w pozycji ji-tego filtra, k to jądro o rozmiarze 3, b1
R64 to składnik polaryzacji dla każdego filtra, Wk oznacza wagi filtra, a ReLU to funkcja aktywacji. Następnie nakładana jest warstwa MaxPooling o rozmiarze puli 2, co daje wyjście Z1,j.
(7)
Dodatkowa warstwa konwolucyjna ID o rozmiarze 3 jądra i 128 filtrach jest dołączona jako trzecia warstwa modelu; Jego wyrażenie to:
(8)
Gdzie k to jądro o rozmiarze 3, b2
R128 to składnik polaryzacji dla każdego filtra, a ReLU to funkcja aktywacji. Stosuje się kolejną warstwę max pool, która otrzymuje dane wejściowe z drugiej warstwy konwolucji o rozmiarze puli 2. Wyjście Z2,j jest dane wzorem:
(9)
Piąta warstwa to warstwa spłaszczająca wyrażona jako:
(10)
Następnie są warstwy transformatorów, które obejmują warstwę osadzenia, warstwę wielogłowej uwagi oraz normalizację warstw
(11)
E jest wektorem osadzenia dla etykiety klasy wejściowej c, a We to macierz wag zawierająca wektory osadzenia dla wszystkich kategorii. To odwzorowuje każdą liczbę całkowitą w c na gęsty wektor składający się z 32 rzeczywistych składowych. Następnie znajduje się warstwa wielogłowej uwagi, sformułowana w równaniach (3), (4) i (5).
Macierz klucza ma rozmiar dk =32 oraz wymiar h=8. Modele DV i D oznaczają odpowiednie wymiary V i modelu. Też
Dla wyjścia x = MultiHead(Q,K,V), normalizacja warstw zapewnia:
(12)
Gdzie y jest znormalizowanym wyjściem, γ i β są parametrami przyswajalnymi, a μ i σ2 oznaczają średnią i wariancję dla x, odpowiednio. Następnie jest warstwa spłaszczająca transformatora, zdefiniowana jako

Na końcu wszystkich warstw wyraz końcowy jest pokazany jako








gdzie z1
r256, z2
r128, z3
r64 oraz y
r8. Ten hybrydowy model oblicza również funkcję strat dla klasyfikacji wieloklasowej, którą można wyrazić jako

gdzie:
Yc oznacza prawdziwą etykietę (zakodowaną one-hot) dla klasy cc,
Y'c to przewidywane prawdopodobieństwo dla klasy c
Proponowany algorytm jest szczegółowo wyjaśniony w Tabeli 3 .
Tabela 3: Proponowany algorytm CNN-Transformer. Proponowany algorytm jest wyjaśniony krok po kroku w Tabeli 3. Prosimy kliknąć tutaj, aby pobrać tę tabelę.