$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Metoda wyboru funkcji oparta na opakowaniu, wykorzystująca auto-enkodery, jest stosowana w sugerowanej architekturze wykrywania złośliwego oprogramowania na Androidzie, jak pokazano na Rysunku 1. Zbiór danych podzielony jest na podzbiory treningowe i testowe w formie 70:30. Klasyfikacja i wybór cech to dwa główne etapy procesu analizy malware.
Wybór funkcji (FS): Ten etap polega na iteracyjnym poszukiwaniu najlepszych podzbiorów cech (patrz Definicja 1) za pomocą algorytmów opartych na inteligencji rojowej, w szczególności Cuckoo Search Optimization (CSO), Ant Lion Optimization (ALO) oraz Firefly Optimization (FO). Następnie autoenkodery przetwarzają wybrane cechy, aby uzyskać skompresowaną reprezentację napływających danych. Podejście indukcyjne wykorzystuje następnie wyniki z auto-enkoderów do oceny, jak dobrze te cechy rozróżniają niebezpieczne od łagodnych aplikacji. Aby umożliwić precyzyjną kategoryzację kolejnych przypadków, algorytm indukcji buduje klasyfikator, mapując przestrzeń cech na zbiór etykiet klas.
Klasyfikacja: Korzystając z proponowanego Artificial Neuronal Classifier oraz znanych metod indukcji, w tej fazie oceniany jest zmniejszony zestaw funkcji z etapu wyboru cech, aby sprawdzić, jak skutecznie wykrywa złośliwe oprogramowanie na Androida.
Stosując zaawansowane metody klasyfikacji i koncentrując się na najbardziej informacyjnych cechach, metoda ta dąży do poprawy dokładności i efektywności wykrywania złośliwego oprogramowania na Androida.
Wybór funkcji
Kluczowym etapem w uczeniu maszynowym jest wybór cech, który polega na określeniu, które cechy są najbardziej niezawodne, istotne i nieredundantne do budowy modeli. Metodyczne ograniczanie zestawów cech staje się coraz ważniejsze, gdy zbiory danych stale rosną pod względem rozmiaru i złożoności. Głównym celem wyboru cech jest maksymalizacja wydajności modelu przy jednoczesnym obniżeniu kosztów obliczeniowych. Powtarzalne i niepotrzebne cechy zostają usunięte, co pozwala procesowi skoncentrować się na zmiennych najważniejszych dla modelu. Zamiast polegać na algorytmie uczenia maszynowego w celu identyfikacji istotnych cech, oto korzyści z wyboru cech przed trenowaniem modelu:
Uproszczone modele: Zmniejszenie liczby zmiennych wejściowych prowadzi do prostszych modeli, które łatwiej interpretować i zrozumieć.
Redukcja wariancji: Skupiając się na kluczowych cechach, wybór cech pomaga zmniejszyć wariancję modelu, co ogranicza nadmierne dopasowanie i zwiększa uogólnienie na nowe dane.
Skrócony czas treningu: Mniejszy zestaw funkcji zmniejsza obciążenie obliczeniowe, co skutkuje szybszym trenowaniem i oceną modeli.
Łagodzenie klątwy wymiarowości: Dane o wysokich wymiarach mogą stanowić wyzwania, takie jak zwiększona złożoność i nadmierne dopasowanie; Feature Selection rozwiązuje te problemy, ograniczając przestrzeń cech do najbardziej informacyjnych zmiennych.
Definicja 1 wyboru cech
Pomyśl o induktorze I i zbiorze danych D, który ma rozkład D w oznaczonej przestrzeni instancji i zawiera cechy (x 1,x 2,x 3,... ,xn). Podzbiór cech, który optymalizuje dokładność klasyfikatora C=I(D), znany jest jako podzbiór cech optymalnych Xopt.
W nienadzorowanym wyborze cech podejścia oparte na owijaniu mają na celu zidentyfikowanie optymalnej kombinacji cech zwiększających wydajność modelu. Systematycznie dodając lub usuwając funkcje, często za pomocą chciwych algorytmów, metody te oceniają różne modele, aby wybrać najbardziej istotne cechy dla rozwoju modeli. Proces ten przedstawiono na Rysunku 2.
Do wyboru cech stosuje się algorytmy inteligencji rojowej, takie jak Firefly Optimization (FO), Cuckoo Search Optimization (CSO) oraz Ant Lion Optimization (ALO), aby przewyższyć konwencjonalne, chciwe taktyki. Funkcja celu wybrana na etapie oceny dopasowania ma istotny wpływ na skuteczność tych algorytmów. W procedurze wyboru cech opartej na iteracyjnym opakowaniu w celu oceny odpowiedniości wybranych cech uwzględnia zarówno ilość wybranych cech, jak i błąd modelu na końcu każdej iteracji. Równanie (1) formalizuje tę ocenę.
(1)
Kara algorytmu uczenia za błędy popełnione podczas oceny przystosowania jest w tym równaniu przedstawiona jako τ, gdzie τ ∈ [0,1]. Długość wybranego podzbioru cech oznaczana jest zmienną l, a całkowita liczba cech reprezentowana przez zmienną u.
Automatyczne enkodery
Sieci neuronowe specjalizujące się w nauce skompresowanych reprezentacji danych wejściowych nazywane są autoenkoderami. Koder i dekoder to dwie główne części tych urządzeń. Podczas gdy dekoder próbuje odzyskać oryginalne wejście z tej skompresowanej formy, przetwarza dane wejściowe i kompresuje je do reprezentacji przestrzeni ukrytej. Trening modelu uczenia maszynowego jest łatwiejszy dzięki zdolności enkodera do wydobywania cennych cech z nieprzetworzonych danych po ich wytrenowaniu.
Proponowana architektura autoenkodera (jak pokazano na Rysunku 3) zawiera enkoder składający się z warstwy wejściowej z N węzłami, po której następują dwie ukryte warstwy zawierające odpowiednio N*2 i N węzłów. Istnieje druga ukryta warstwa z N/2 węzłami zwana przestrzenią ukrytą. Dysponując dwoma ukrytymi warstwami węzłów [N, N*2], dekoder replikuje tę strukturę, kończąc się warstwą wyjściową złożoną z N węzłów.
Po każdej ukrytej warstwie następuje normalizacja wsadowa, aby przyspieszyć i ustabilizować proces treningu, a wszystkie warstwy wykorzystują funkcję aktywacji LeakyReLU do obsługi ewentualnych problemów gradientu znikającego. Równanie (2) przedstawia matematyczną definicję funkcji aktywacji LeakyReLU:
(2)
Gdzie hθ(x), otrzymuje się za pomocą równania (3)
(3)
Tutaj xi=(x1,x 2,...,xn) oznacza wartości wejściowe dla węzłów, natomiast wi=(w1,w 2,...,wn) oznacza wagi związane z tymi węzłami. Podczas procesu uczenia wagi są korygowane po początkowym losowym przydzieleniu w zakresie [0,1]. Aby zapobiec przejściu parametrów przez początek początkowy, na każdej warstwie dodaje się składnik bias. Równanie (4) definiuje próg, a jeśli wyjście uzyskane z równania (3) go przekroczy, wyzwalany jest węzeł.
(4)
Optymalizacja wyboru cech oparta na owijaniu Ant Lion (ALWFSO)
Modelując naturalne drapieżne zachowania mrówków, Optymalizator Mrówek-Lw (ALO) został po raz pierwszy zaprezentowany przez Seyeda Ali Mirjaliliego,34 lata. Ten algorytm optymalizacji efektywnie identyfikuje optymalne rozwiązania niezależnie od początkowych wartości parametrów. ALO wykazuje szybką zbieżność i skutecznie zarządza zarówno ograniczeniami całkowitoliczbowymi, jak i dyskretnymi. Chwytanie ofiar, tworzenie pułapek, łapanie mrówek, losowe ruchy mrówek oraz naprawa pułapek to etapy składające się na proces polowania w ALO.
W kontekście algorytmu Ant Lion Optimizer (ALO) mrówki reprezentują kandydujące rozwiązania wykonujące losowe wyszukiwania w przestrzeni rozwiązań, podczas gdy mrówki odpowiadają pułapkom lub przewodnikom wpływającym na ruchy mrówek na podstawie wartości przystosowania. Ta podwójna populacja modeluje naturalne drapieżne zachowania mrówek łapiących mrówki. Na początku populacje zarówno mrówek, jak i mrówek są inicjowane losowo. Mrówki są wybierane dla każdej mrówki za pomocą mechanizmu wyboru ruletki, po czym następuje losowy proces spaceru (jak pokazano w Algorytmie-1). Równanie (5) opisuje wtedy, jak ten spacer jest normalizowany.
(5)
Początkowo populacje mrówek i mrówek powstają losowo. Mrówek jest wybierany dla każdej mrówki za pomocą mechanizmu ruletki, co pozwala na losowy spacer normalizowany za pomocą ustalonych wzorów. Proces ten zapewnia, że ruchy mrówek są kształtowane przez pozycje mrówek, skutecznie symulując naturalny proces polowania. Pozycja każdej mrówki jest następnie aktualizowana na podstawie tej interakcji, kierując poszukiwania ku optymalnym rozwiązaniom.
Dzięki swojej architekturze algorytm ALO może skutecznie przechodzić przez skomplikowane przestrzenie wyszukiwania, co czyni go potężnym narzędziem do rozwiązywania różnych problemów optymalizacyjnych. Sprawność każdej mrówki jest oceniana po zakończeniu każdej powtórzenia. Jak pokazano w Algorytmie-1, mrówek jest zamieniany mrówką, jeśli mrówka jest bardziej przystosowana niż jej odpowiednik. W tym przypadku
, wskazuje położeniei-tej mrówki w iteracji t; I jest stosunkiem;
wskazuje położeniej-tego antliona w iteracji T;
jest elitą dla losowego spaceru w iteracji t, który jest wybierany przez ruletkę; i
jest losowym krokiem mrówka w iteracji t, który jest również określany przez ruletkę. Po zakończeniu każdego cyklu globalnie optymalne rozwiązanie, potwierdzone przez zintegrowany klasyfikator owijania, jest zwracane.
Algorytm 1: ALWFSO
Zdefiniuj funkcję celu: f(x):x=(x1,x 2,...,xd)
Inicjalizacja kolonii mrówek i mrówek losowo
Obliczenie przydatności mrówek i mrówkowców
Wybierz najlepsze mrówki i załóż, że są elitarne.
Powtarzaj, aż spełniono warunek zakończenia lub f(x):x=(x1,x 2,...,xd)
Dla każdego wyboru mrówczo-mrówek: Użyj mechanizmu wyboru Koła Ruletki, aby probabilistycznie wybrać mrówka wpływającego na ruchy mrówki
X(t) = [0,cum_sum(2r(t1) - 1),cum_sum(2r(t2) - 1),...,cum_sum(2r(tn)-1)]


Koniec pętli mrówek
Ocena sprawności: Przelicz wartości sprawności wszystkich mrówek na podstawie ich nowych pozycji.
Zamień mrówki na mrówki, jeśli te wykazują lepszą sprawność fizyczną
Jeśli mrówek stanie się bardziej sprawny, wtedy

Koniec podczas
Optymalizacja wyboru funkcji oparta na owijaniu przeszukiwań Cuckoo (CSWFSO)
Zainspirowane zachowaniami pasożytniczymi lęgowymi niektórych gatunków kukułek, które składają jaja w gniazdach innych ptaków-gospodarzy, Xin-She Yang i Susah Deb,35 lat, stworzyły algorytm Cuckoo Search w 2009 roku. W tej procedurze każda kukułka składa jajko w gnieździe, które jest wybierane losowo. Przyszłe pokolenia odziedziczą gniazda z najlepszymi jajami. Prawdopodobieństwo, że ptak gospodarz zauważy jajo obcego, wynosi zero, a dostępnych jest tylko określona liczba gniazd gospodarzy.
Algorytm 2: CSWFSO
Zdefiniuj funkcję celu: f(x):x = (x1,x 2,...,xd)
Losowo wygeneruj początkową populację n gniazd gospodarzy, z których każde odpowiada kandydatowi na rozwiązanie xi (i=1,2,3,...,n)
Powtarzaj, aż spełniony jest warunek zatrzymania lub (tDla losowo wybranego cuckoo i wywołamy nowe rozwiązanie kandydata za pomocą lotu Lévy'ego

Oblicz przystosowanie nowo wygenerowanego rozwiązania Fi [Aby zmaksymalizować, Fi α f(xi)]
Losowo wybierz gniazdo gospodarza j z populacji n
jeśli (Fi >Fj), to j jest zastępowane nowym rozwiązaniem
koniec jeśli
Porzuć część gorszych sieci przez ułamek (pa)
Nowe gniazda buduje się w porzuconej frakcji (p a), używając 
Odłóż na bok najlepsze rozwiązania lub gniazda.
Klasyfikując je, wybierz najlepsze gniazdo lub rozwiązanie dostępne w danej chwili.
Następne pokolenie dziedziczy najlepsze dostępne obecnie rozwiązanie.
Koniec podczas
Na początku wszystkie gniazda są inicjalizowane losowo. W miarę postępu iteracji każda kukułka modyfikuje swoją pozycję w przestrzeni rozwiązań za pomocą lotów Lévy'ego, zgodnie z opisem Algorytmu 2. Rozmiar kroku jest dostosowany przez ∝, a operacja sigmoid konwertuje ciągłe wartości generowane przez Cuckoo Search Optimization (CSO) na format binarny, jak przedstawiono w równaniach (6) i (7).
(6)
(7)
Jak pokazano w Algorytmie 2, gdzie
i
są losowo wybieranymi gniazdami, a δ ∈ [0,1], na końcu każdej iteracji niektóre gniazda są porzucane i odświeżane nowymi kandydatami.
Zainspirowany pasożytnictwem lęgowym ptaka kukułki, algorytm optymalizacji wyszukiwania kukułki (CSO) okazał się użytecznym narzędziem do zadań wyboru cech35. Technika zaczyna się od inicjalizacji populacji gniazd, z których każde stanowi możliwe rozwiązanie w kontekście wyboru cech CSO opartego na owijaniach. Do oceny przystosowania tych gniazd używa się ustalonej funkcji celu. Korzystając z ocen dopasowania, algorytm określa optymalne rozwiązanie — określane jako globalnie najlepsze — w każdej iteracji. Aby lepiej eksplorować przestrzeń rozwiązań, część gniazda, reprezentowana przez groszek, jest usuwana i zastępowana nowymi zgodnie z protokołem CSO. Osadzony klasyfikator owijający potwierdza, że algorytm daje globalnie optymalne rozwiązanie po zakończeniu wszystkich iteracji.
Optymalizacja wyboru cech oparta na owijaniu Firefly (FWFSO)
Algorytm 3: FWFSO
Zdefiniuj funkcję celu: f(x):x = (x1,x 2,...,xd)
Wygeneruj początkowy rój n świetlików, z których każdy reprezentuje rozwiązanie xi (i = 1,2,3,...,n)
Określ natężenie światła I każdego świetlika na podstawie wartości funkcji celu
Zdefiniuj współczynnik pochłaniania światła γ
Powtarzaj, aż spełniony jest warunek zatrzymania lub (t < MaxGeneration)
dla każdego świetlika i (∀ i=1,2,3,... ,n)
dla każdego świetlika j (∀ j=1,2,3,... ,i)
Otrzymuj lekkie intensywności Ii iI j
jeśli jai < jaj


else
Losowo przesuwaj świetlika i, aby zbadać przestrzeń poszukiwań
koniec jeśli
Atrakcyjność maleje wraz z odległością, ponieważ 
Oceń zaktualizowane rozwiązanie i odpowiednio dostosuj intensywność świetlika
koniec dla
koniec dla
Uszereguj świetliki według ich natężenia światła i wybierz tę o najwyższej jasności jako aktualnie najlepsze rozwiązanie
Algorytm optymalizacji świetlików, wprowadzony przez George'a Lindfielda i Johna Penny'ego(36), naśladuje naturalne zachowanie świetlików w celu przyciągania innych. W tym algorytmie atrakcyjność świetlika jest bezpośrednio proporcjonalna do jej jasności, natomiast odległość między dwoma świetlikami jest odwrotnie proporcjonalna do ich atrakcyjności. Jeśli w pobliżu nie ma jaśniejszych świetlików, świetlik porusza się losowo.
Dwa świetliki przyciągają się nawzajem ze względu na swoją jasność; mniej jasny świetlik przyciągnie się do jaśniejszego. Losowy ruch jest stosowany, gdy nie ma jaśniejszego świetlika. Gdy β0 oznacza piękno, do obliczenia ich atrakcyjności używa się odległości r=0 między dwoma świetlikami. Rozdzielenie rjk między świetlikami j i k oblicza się następująco:
tutaj rji ir ki uwzględniają przestrzenne składowei-tego wymiaru dla świetlików odpowiednio jth ik th, a n oznacza liczbę wymiarów. Ruch świetlika w kierunku innego zależy od stopnia przyciągania między nimi:
. W tym równaniu rj to aktualna pozycja świetlika j, γ jest światło Ranard liczbą losową między 0 a 1, α to szybkość mutacji i współczynnik absorpcji. Jeśli nie ma już błyskotliwych świetlików, świetlik będzie poruszał się losowo zgodnie z αα. Po każdej iteracji osadzony klasyfikator owijający waliduje globalne rozwiązanie minimalne, które następnie jest zwracane.
Klasyfikator
Zarówno zbiory danych ustrukturyzowanych, jak i niestrukturalnych można klasyfikować, dzieląc je na grupy lub klasy. Celem jest wykorzystanie atrybutów świeżych punktów danych do prognozowania ich klasy lub etykiety. Procedura ta określa kategorię, do której należą świeże dane, poprzez przybliżenie funkcji odwzorowywania zmiennych wejściowych do dyskretnych zmiennych wyjściowych.
Losowe lasy, drzewa decyzyjne, k-najbliższe sąsiadów, regresja logistyczna oraz maszyny wektorowe wspierające to jedne z algorytmów indukcyjnych lub klasyfikacji używanych do oceny sugerowanego rozwiązania wykrywania złośliwego oprogramowania Android37. Ponadto w tej pracy przedstawiono Artificial Neuronal Classifier, rewolucyjny hybrydowy klasyfikator łączący konwencjonalne algorytmy indukcji ze sztucznymi sieciami neuronowymi.
Sztuczny klasyfikator neuronalny
Sugerowany projekt Artificial Neuronal Classifier (ANC) łączy klasyfikator indukcji i sztuczne sieci neuronowe (ANN), jak pokazano na Rysunku 4. Zgodnie z tą architekturą ANN jest uczony identyfikowania wzorców i korelacji między cechami wejściowymi. Klasyfikator indukcyjny wykorzystuje informacje uzyskane przez ANN, aby zwiększyć precyzję rozpoznawania złośliwego oprogramowania od bezpiecznego.
Po szeroko zakrojonych testach, ANN wewnątrz ANC został skonfigurowany z trzema w pełni połączonymi ukrytymi warstwami, każda z M węzłami, a następnie warstwą wejściową z N węzłami. Istnieje warstwa wyjściowa połączona z klasyfikatorem indukcyjnym po kolejnej, w pełni połączonej warstwie ukrytej z węzłami M/2. Równanie (8) określa liczbę węzłów w warstwach ukrytych:
(8)
gdzie M oznacza liczbę węzłów w warstwie ukrytej, N oznacza liczbę cech wejściowych, a α to parametr w zakresie od 2 do 10. Funkcja aktywacji (jak pokazano w równaniu (9)) odgrywa kluczową rolę w określaniu, czy neuron jest aktywowany, w zależności od przekroczenia określonego progu wyjściowego.
(9)
Tutaj hθ(x) oblicza się zgodnie z równaniem (3). ANC wykorzystuje optymalizator Adama do regulacji wag sieci i tempa uczenia się. W Adamie szybkości zaniku dla pierwszej estymacji
momentu i drugiej estymacji
momentu dla każdej masy ωij oznaczane są odpowiednio jakoβ 1 i β2. Niech N oznacza tempo uczenia się. Reguły aktualizacji dla Adama przedstawiono w równaniach (10) i (11):
(10)
(11)
Estymaty
z korygowaniem o pierwszy i drugi moment oraz , oblicza się za pomocą równań (12) i (13):
(12)
(13)
Te obliczenia zapewniają, że optymalizator utrzymuje odpowiednie tempo uczenia dla każdej wagi, co ułatwia efektywne i skuteczne trenowanie ANC.
Reguła aktualizacji wagi dla każdego połączenia w sieci neuronowej jest zdefiniowana przez równanie (14):
(14)
Po aktualizacji wag sieci neuronowych, wydajność ocenia się za pomocą funkcji straty, która mierzy rozbieżność między przewidywanymi a rzeczywistymi wynikami. W tym modelu stosuje się średni błąd bezwzględny (MAE), zdefiniowany w równaniu (15), do tego celu.
(15)
W tym kontekście yi oznacza rzeczywisty wynik,
oznacza przewidywany wynik, a n to łączna liczba instancji wyjściowych. Po wytrenowaniu sieci neuronowej na określonej liczbie epok, wyuczone reprezentacje z przestrzeni cech są przesyłane do klasyfikatora indukcji, aby odróżnić złośliwe oprogramowanie od nieszkodliwego.
Proponowany Sztuczny Klasyfikator Neuronalny (ANC) funkcjonuje jako hybrydowy framework, który łączy możliwości uczenia cech sztucznej sieci neuronowej (ANN) z mocnymi stronami decyzyjnymi tradycyjnych klasyfikatorów indukcyjnych, takich jak Random Forest i Decision Tree. W tym projekcie ANN najpierw przetwarza wybrane cechy uzyskane z autoenkodera, aby nauczyć się złożonych wzorców i korelacji między atrybutami wejściowymi. Wyuczone reprezentacje są następnie przekazywane do klasyfikatora indukcyjnego, który przeprowadza ostateczną klasyfikację aplikacji na Androida jako łagodne lub złośliwe. W ten sposób ANC działa jak owijanie, wzmacniając konwencjonalne klasyfikatory głębokimi osadzeniami cech, jednocześnie zachowując ich interpretowalność. Ten hybrydowy mechanizm pozwala ANC wykorzystać zarówno abstrakcji cech wysokiego poziomu z ANN, jak i solidne podejmowanie decyzji na podstawie ustalonych klasyfikatorów uczenia maszynowego, co skutkuje poprawą dokładności wykrywania i uogólnienia.
Układ eksperymentalny
W eksperymentalnym układzie zastosowano 64-bitowy system operacyjny Windows 10 z procesorem i5 – 2,30 GHz, 8 GB RAM i dyskiem twardym 2 TB. Python 3.7 był używany jako język programowania, a platforma Jupyter została stworzona, aby umożliwić pakiety uczenia maszynowego i głębokiego uczenia.
Dataport IEEE dostarczył dane sekwencji wywołań API eksperymentu, które obejmowały 43 876 sekwencji – z czego 42 797 sklasyfikowano jako złośliwe oprogramowanie, a 1 079 jako goodware. Do weryfikacji użyto Virus Total, a środowisko Cuckoo Sandbox do zbierania danych. Tabela 1 zawiera kompleksowe wyjaśnienie sekwencji wywołań API.