$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
De op wrapper gebaseerde feature-selectiemethode met behulp van auto-encoders wordt gebruikt in de voorgestelde architectuur voor Android-malwaredetectie, zoals weergegeven in Figuur 1. De dataset is verdeeld in 70:30 trainings- en testsubsets. Classificatie en functieselectie zijn de twee belangrijkste stappen in het malware-analyseproces.
Functieselectie (FS): Deze stap is iteratief zoeken naar de beste feature-subsets (zie Definitie 1) met behulp van op zwermintelligentie gebaseerde algoritmen, met name Cuckoo Search Optimization (CSO), Ant Lion Optimization (ALO) en Firefly Optimization (FO). Daarna verwerken auto-encoders de gekozen features om een gecomprimeerde weergave van de binnenkomende data te produceren. Een inductiebenadering gebruikt vervolgens de output van de auto-encoders om te beoordelen hoe goed deze functies onderscheid maken tussen gevaarlijke en goedaardige apps. Om een nauwkeurige categorisering van latere gevallen mogelijk te maken, bouwt het inductie-algoritme een classifier door de featureruimte af te wijzen op een verzameling klasselabels.
Classificatie: Met behulp van de voorgestelde Kunstmatige Neuronale Classifier en bekende inductiemethoden wordt de verminderde set functies uit de featureselectiefase in deze fase geëvalueerd om te zien hoe effectief het Android-malware kan detecteren.
Door gebruik te maken van geavanceerde classificatiemethoden en zich te concentreren op de meest informatieve functies, streeft deze methodologie ernaar de nauwkeurigheid en efficiëntie van Android-malwaredetectie te verbeteren.
Selectie van functies
Een cruciale stap in machine learning is de selectie van functies, waarbij wordt bepaald welke features het meest betrouwbaar, relevant en niet-redundant zijn voor modelconstructie. Het methodisch verkleinen van featuresets wordt steeds belangrijker naarmate datasets in omvang en complexiteit blijven groeien. Het hoofddoel van feature-selectie is het maximaliseren van modelprestaties terwijl de rekenkosten worden verlaagd. Repetitieve en onnodige kenmerken worden verwijderd, waardoor het proces zich kan concentreren op variabelen die het meest belangrijk zijn voor het model. In plaats van te vertrouwen op het machine learning-algoritme om significante kenmerken te identificeren, zijn de volgende voordelen van featureselectie vóór modeltraining:
Vereenvoudigde modellen: Het verminderen van het aantal invoervariabelen leidt tot eenvoudigere modellen die makkelijker te interpreteren en te begrijpen zijn.
Variantievermindering: Door zich te richten op essentiële kenmerken helpt feature-selectie de modelvariantie te verminderen, waardoor overfitting wordt beperkt en generalisatie naar nieuwe data wordt verbeterd.
Verminderde trainingstijd: Een kleinere set functies vermindert de rekenlast, wat resulteert in snellere modeltraining en evaluatie.
Mitigatie van de Vloek van Dimensionaliteit: Hoogdimensionale data kan uitdagingen opleveren zoals verhoogde complexiteit en overfitting; Featureselectie pakt deze problemen aan door de feature-ruimte te beperken tot de meest informatieve variabelen.
Definitie 1 van feature-selectie
Denk aan een inducer I en een dataset D die een distributie D heeft over een gelabelde instantieruimte en features bevat (x1,x 2,x 3,... ,xn). De deelverzameling van kenmerken die de nauwkeurigheid van de classifier C=I(D) optimaliseert, staat bekend als de Optimale feature-subset Xopt.
Bij ongecontroleerde feature-selectie proberen wrapper-gebaseerde benaderingen de optimale combinatie van features te identificeren die de modelprestaties verbeteren. Door systematisch features toe te voegen of te verwijderen, vaak via hebzuchtige algoritmen, evalueren deze methoden verschillende modellen om de meest impactvolle features voor modelontwikkeling te selecteren. Dit proces is afgebeeld in Figuur 2.
Voor feature-selectie worden zwermintelligentie-algoritmen zoals Firefly Optimization (FO), Cuckoo Search Optimization (CSO) en Ant Lion Optimization (ALO) gebruikt om conventionele hebzuchtige tactieken te overtreffen. De objectieve functie die in de fitheidsevaluatiefase wordt gekozen, heeft een significante invloed op de effectiviteit van deze algoritmen. Zowel het aantal gekozen features als de fout van het model aan het einde van elke iteratie worden meegenomen in de iteratieve, op wrapper gebaseerde featureselectieprocedure om de geschiktheid van de geselecteerde features te evalueren. Vergelijking (1) formaliseert deze evaluatie.
(1)
De straf van het leeralgoritme voor fouten die tijdens de fitnessevaluatie worden gemaakt, wordt weergegeven door τ in deze vergelijking, waarbij τ ∈ [0,1]. De lengte van de gekozen feature-deelverzameling wordt aangeduid met de variabele l, en het totale aantal features wordt weergegeven door de variabele u.
Auto-encoders
Neurale netwerken die gespecialiseerd zijn in het leren van gecomprimeerde representaties van invoerdata worden autoencoders genoemd. Een encoder en een decoder zijn de twee hoofdonderdelen ervan. Terwijl de decoder probeert de oorspronkelijke invoer uit deze gecomprimeerde vorm te herstellen, verwerkt de encoder de invoergegevens en comprimeert deze tot een latente ruimterepresentatie. Machine learning modeltraining wordt eenvoudiger gemaakt doordat de encoder waardevolle kenmerken uit onverwerkte data kan halen zodra deze is getraind.
De voorgestelde autoencoderarchitectuur (zoals getoond in Figuur 3) bevat een encoder bestaande uit een invoerlaag met N knooppunten, gevolgd door twee verborgen lagen die respectievelijk N*2 en N knooppunten bevatten. Er is een tweede verborgen laag met N/2 knooppunten, de latente ruimte genoemd. Met twee verborgen lagen van [N, N*2] knooppunten repliceert de decoder deze structuur, eindigend met een uitvoerlaag van N knooppunten.
Elke verborgen laag wordt gevolgd door batchnormalisatie om het trainingsproces te versnellen en te stabiliseren, en alle lagen gebruiken de LeakyReLU-activatiefunctie om eventuele verdwijningsgradiëntproblemen aan te pakken. Vergelijking (2) geeft een wiskundige definitie van de LeakyReLU-activatiefunctie:
(2)
Waar hθ(x), wordt verkregen met behulp van Vergelijking (3)
(3)
Hier vertegenwoordigt xi=(x1,x 2,...,xn) de invoerwaarden voor de knooppunten, terwijl wi=(w1,w 2,...,wn) de gewichten aanduidt die aan deze knopen zijn gekoppeld. Tijdens het leerproces worden de gewichten aangepast nadat ze aanvankelijk willekeurig binnen het bereik zijn toegewezen [0,1]. Om te voorkomen dat de parameters door de oorsprong gaan, wordt op elke laag een biasterm toegevoegd. Vergelijking (4) definieert de drempel, en als de output uit vergelijking (3) deze overschrijdt, wordt een knooppunt geactiveerd.
(4)
Optimalisatie van de functie van kenmerken op basis van mierenleeuwenomhulling (ALWFSO)
De Ant Lion Optimizer (ALO) modelleert het natuurlijke roofgedrag van mierenleeuwen en werd voor het eerst gepresenteerd door Seyed Ali Mirjalili34. Dit optimalisatie-algoritme identificeert efficiënt optimale oplossingen, ongeacht de initiële parameterwaarden. ALO vertoont snelle convergentie en beheert zowel gehele als discrete beperkingen effectief. Prooivangst, vallen maken, mieren vangen, willekeurige mierenbeweging en vallen repareren zijn de stappen die het jachtproces in ALO vormen.
In de context van het Ant Lion Optimizer (ALO)-algoritme vertegenwoordigen mieren kandidaatoplossingen die willekeurige zoekopdrachten uitvoeren in de oplossingsruimte, terwijl antlions overeenkomen met de vallen of gidsen die de bewegingen van de mieren beïnvloeden op basis van fitnesswaarden. Deze dubbele populatie modelleert het natuurlijke roofzuchtige gedrag van mierenleeuwen die mieren vangen. Aan het begin worden de populaties van zowel mieren als mierenleeuwen willekeurig geïnitialiseerd. Mierenleeuwen worden voor elke mier geselecteerd met behulp van het selectiemechanisme van het roulettewiel, gevolgd door een random walk-proces (zoals getoond in Algoritme-1). Vergelijking (5) beschrijft vervolgens hoe deze wandeling wordt genormaliseerd.
(5)
Aanvankelijk worden de populaties van mieren en mierenleeuwen willekeurig gecreëerd. Voor elke mier wordt een antlion gekozen met behulp van een roulettewielmechanisme, waardoor een willekeurige wandeling mogelijk is die wordt genormaliseerd met vooraf bepaalde formules. Dit proces zorgt ervoor dat de bewegingen van mieren worden beïnvloed door de posities van mierenleeuwen, waardoor het natuurlijke jachtproces effectief wordt gesimuleerd. De positie van elke mier wordt vervolgens bijgewerkt op basis van deze interactie, waardoor de zoektocht naar optimale oplossingen wordt geleid.
Door zijn architectuur kan het ALO-algoritme effectief ingewikkelde zoekruimtes doorkruisen, waardoor het een krachtig hulpmiddel is om diverse optimalisatieproblemen op te lossen. De fitness van elke mier wordt beoordeeld aan het einde van elke herhaling. Zoals getoond in Algoritme-1, wordt de mier vervangen door de mier als de mier geschikter is dan zijn tegenhanger. In dit geval
geeft , de locatie van dei-de mier bij iteratie t aan; I is een verhouding;
geeft de locatie aan van dej-de antleeuw bij iteratie t;
is de elite voor de willekeurige wandeling bij iteratie t, die wordt gekozen door het roulettewiel; en
is de willekeurige wandeling van de antlion bij iteratie t, die ook wordt bepaald door het roulettewiel. Na elke cyclus wordt de wereldwijd optimale oplossing, bevestigd door de geïntegreerde wrapper-classifier, teruggegeven.
Algoritme 1: ALWFSO
Definieer de doelstellingsfunctie: f(x):x=(x1,x 2,...,xd)
Initialisatie van de kolonie mieren en mierleeuwen willekeurig
Berekening van de fitheid van mier en mierenleeuw
Kies de beste mierenleeuwen en ga ervan uit dat ze elite zijn.
Herhaal totdat de beëindigingsvoorwaarde is voldaan of f(x):x=(x1,x 2,...,xd)
Voor elke mieren-mierlion selectie: Gebruik een Roulette Wheel Selectiemechanisme om probabilistisch een antlion te kiezen die de beweging van de mier beïnvloedt
X(t) = [0,cum_sum(2r(t1) - 1),cum_sum(2r(t2) - 1),...,cum_sum(2r(tn)-1)]


Einde van de mierenlus
Fitnessevaluatie: Herbereken de fitnesswaarden van alle mieren op basis van hun nieuwe posities.
Vervang mierleeuwen door mieren als de mieren superieure fitheid tonen
Als een mierenleeuw fitter wordt, dan

Einde terwijl
Cuckoo search wrapper-gebaseerde feature-selectieoptimalisatie (CSWFSO)
Geïnspireerd door het broedparasitismegedrag van sommige koekoeksoorten, die hun eieren in de nesten van andere gastvogels leggen, ontwikkelden Xin-She Yang en Susah Deb35 in 2009 het Cuckoo Search-algoritme. Bij deze procedure legt elke koekoek een ei in een willekeurig gekozen nest. Toekomstige generaties zullen nesten erven met de beste eieren. De kans dat een gastvogel een buitenaards ei ziet is nul, en er zijn slechts een beperkt aantal gastnesten beschikbaar.
Algoritme 2: CSWFSO
Definieer de doelstellingsfunctie: f(x):x = (x1,x 2,...,xd)
Genereer willekeurig een initiële populatie van n host-nesten, elk overeenkomend met een kandidaatoplossing xi (i=1,2,3,...,n)
Herhaal dit totdat aan de stopvoorwaarde is voldaan of (tVoor een willekeurig geselecteerde koekoek i, produceer een nieuwe kandidaatoplossing met behulp van Lévy flight

Bereken de fitness van de nieuw gegenereerde oplossing Fi [Voor maximalisatie geldt Fi α f(xi)]
Selecteer willekeurig een gastnest j uit de populatie n
als (Fi >Fj) dan wordt j vervangen door een nieuwe oplossing
einde als
Laat een deel van de slechtste netten vallen met (pa) fractie
Nieuwe nesten worden gebouwd in abandoned fraction (pa) met behulp van 
Leg de beste oplossingen of nesten apart.
Door ze te rangschikken, kies je het beste nest of de beste oplossing die nu beschikbaar is.
De volgende generatie erft de beste oplossing die nu beschikbaar is.
Einde terwijl
Aan het begin worden alle nesten willekeurig geïnitialiseerd. Naarmate iteraties vorderen, wijzigt elke koekoek zijn positie binnen de oplossingsruimte via Lévy-vluchten, zoals beschreven in Algoritme 2. De stapgrootte wordt aangepast met ∝, en een sigmoid-operatie zet de continue waarden die door de Cuckoo Search Optimization (CSO) worden gegenereerd om in een binair formaat, zoals weergegeven in Vergelijkingen (6) en (7).
(6)
(7)
Zoals getoond in Algoritme 2, waarbij
en
willekeurig gekozen nesten zijn en δ ∈ [0,1], worden aan het einde van elke iteratie sommige nesten verlaten en ververst met nieuwe kandidaatoplossingen.
Geïnspireerd door het broedparasitisme van de koekoeksvogel heeft het Cuckoo Search Optimization (CSO)-algoritme zich bewezen als een nuttig hulpmiddel voor featureselectietaken35. De techniek begint met het initialiseren van een populatie van nesten, die elk een mogelijke oplossing vormen in de context van wrapper-gebaseerde CSO-featureselectie. Een vooraf ingestelde doelfunctie wordt gebruikt om de fitheid van deze nesten te beoordelen. Met behulp van fitness-evaluaties bepaalt het algoritme bij elke iteratie de optimale oplossing—aangeduid als de globale beste. Om de oplossingsruimte beter te verkennen, wordt een deel van het nest, vertegenwoordigd door erwten, verwijderd en vervangen door nieuwe in overeenstemming met het CSO-protocol. De ingebedde wrapper-classifier bevestigt dat het algoritme het globaal optimale antwoord oplevert nadat alle iteraties zijn voltooid.
Firefly wrapper-gebaseerde feature-selectieoptimalisatie (FWFSO)
Algoritme 3: FWFSO
Definieer de Doelstellingsfunctie: f(x):x = (x1,x 2,...,xd)
Genereer een initiële zwerm van n vuurvliegjes, elk vertegenwoordigend een oplossing xi (i = 1,2,3,...,n)
Bepaal de lichtintensiteit I van elk vuurvliegje op basis van de waarde van de doelfunctie
Definieer lichtabsorptiecoëfficiënt γ
Herhaal totdat aan de stopvoorwaarde is voldaan of (t < MaxGeneration)
voor elke vuurvlieg i (∀ i=1,2,3,... ,n)
voor elke vuurvliegje j (∀ j=1,2,3,... ,i)
Krijg lichtintensiteiten van Ii enI j
als iki < jdan


anders
Beweeg willekeurig de vuurvlieg om de zoekruimte te verkennen
einde als
Aantrekkelijkheid neemt af met de afstand als 
Evalueer de bijgewerkte oplossing en pas de intensiteit van het vuurvliegje daarop aan
einde voor
einde voor
Rangschik de vuurvliegjes op basis van hun lichtintensiteit en identificeer degene met de hoogste helderheid als de huidige beste oplossing
Het Firefly Optimization-algoritme, geïntroduceerd door George Lindfield en John Penny36, bootst het natuurlijke gedrag van vuurvliegjes na om anderen aan te trekken. In dit algoritme is de aantrekkelijkheid van een vuurvliegje recht evenredig met zijn helderheid, terwijl de afstand tussen twee vuurvliegjes omgekeerd evenredig is met hun aantrekkelijkheid. Als er geen helderdere vuurvliegjes in de buurt zijn, zal een vuurvliegje willekeurig bewegen.
Twee vuurvliegjes worden door hun helderheid tot elkaar aangetrokken; Een minder heldere vuurvliegje zal naar een helderdere neig trekken. Willekeurige beweging wordt gebruikt wanneer er geen helderder vuurvliegje is. Met β0 als schoonheid wordt de afstand r=0 tussen twee vuurvliegjes gebruikt om hun aantrekkelijkheid te berekenen. De rjk afstand tussen vuurvliegjes j en k wordt als volgt berekend:
Hier noteren rji en rki de ruimtelijke componenten van dei-de dimensie voor vuurvliegjes jth en kth, respectievelijk, en n vertegenwoordigt het aantal dimensies. De beweging van een vuurvliegje naar een ander wordt bepaald door de mate van aantrekking tussen hen:
. In deze vergelijking is rj de huidige positie van vuurvliegje j, γ is het licht Ranard is een willekeurig getal tussen 0 en 1, α is de mutatiesnelheid en de absorptiecoëfficiënt. Als er geen briljante vuurvliegjes meer zijn, zal het vuurvliegje willekeurig bewegen volgens αα. Na elke iteratie valideert de ingebedde wrapper-classifier de globale minimumoplossing, die vervolgens wordt teruggegeven.
Classifier
Zowel gestructureerde als ongestructureerde datasets kunnen worden geclassificeerd door ze op te splitsen in discrete groepen of klassen. Het doel is om de attributen van verse datapunten te gebruiken om hun klasse of label te voorspellen. Deze procedure bepaalt de categorie waartoe verse data behoort door een mapping functie van invoervariabelen naar discrete outputvariabelen te benaderen.
Random Forests, Decision Trees, K-Nearest Neighbors, Logistic Regression en Support Vector Machines behoren tot de inductie- of classificatie-algoritmen die worden gebruikt om de voorgestelde Android-malwaredetectieoplossing37 te evalueren. Bovendien presenteert dit werk de Artificial Neuronal Classifier, een revolutionaire hybride classifier die conventionele inductie-algoritmen combineert met kunstmatige neurale netwerken.
Kunstmatige neuronale classifier
Het voorgestelde ontwerp van de Kunstmatige Neuronale Classifier (ANC) combineert een inductieclassifier en Kunstmatige Neurale Netwerken (ANN), zoals te zien is in Figuur 4. Volgens deze architectuur wordt het ANN geleerd patronen en correlaties tussen de invoerkenmerken te identificeren. De inductieclassifier gebruikt de informatie die de ANN heeft geleerd om de precisie van het identificeren van kwaadaardige software van veilige software te verbeteren.
Na uitgebreide tests werd het ANN binnen de ANC geconfigureerd met drie volledig verbonden verborgen lagen, elk met M-knooppunten, gevolgd door een invoerlaag met N knooppunten. Er is een uitvoerlaag die is verbonden met de inductieclassifier na een verder volledig verbonden verborgen laag met M/2-knooppunten. Vergelijking (8) bepaalt het aantal knopen in de verborgen lagen:
(8)
waarbij M het aantal knopen in een verborgen laag aanduidt, N het aantal invoerkenmerken vertegenwoordigt, en α een parameter is die varieert tussen 2 en 10. De activatiefunctie (zoals weergegeven in Vergelijking (9)) speelt een cruciale rol bij het bepalen of een neuron wordt geactiveerd, afhankelijk van het feit dat de output een bepaalde drempel overschrijdt.
(9)
Hier wordt hθ(x) berekend volgens Vergelijking (3). De ANC gebruikt de Adam-optimizer om netwerkgewichten en leersnelheden aan te passen. In Adam worden de vervalsnelheden voor de eerste momentschatting
en de tweede momentschatting
voor elk gewicht ωij respectievelijk aangeduid met β1 en β2. Laat N de leersnelheid vertegenwoordigen. De updateregels voor Adam worden weergegeven in Vergelijkingen (10) en (11):
(10)
(11)
De bias-gecorrigeerde eerste en tweede momentschattingen,
en
, worden berekend met behulp van vergelijkingen (12) en (13):
(12)
(13)
Deze berekeningen zorgen ervoor dat de optimizer de juiste leersnelheden voor elk gewicht aanhoudt, wat efficiënte en effectieve training van het ANC mogelijk maakt.
De gewichtsupdateregel voor elke verbinding in het neurale netwerk wordt gedefinieerd door Vergelijking (14):
(14)
Na het bijwerken van de gewichten van het neurale netwerk wordt de prestatie beoordeeld met behulp van een verliesfunctie die het verschil meet tussen de voorspelde en werkelijke outputs. In dit model wordt hiervoor de Gemiddelde Absolute Fout (MAE), zoals gedefinieerd in Vergelijking (15), gebruikt:
(15)
In deze context vertegenwoordigt yi de daadwerkelijke output,
de voorspelde output, en n het totale aantal outputinstanties. Nadat het neurale netwerk over een bepaald aantal epochs is getraind, worden de geleerde representaties uit de featurespace overgedragen aan de inductieclassifier om het verschil te maken tussen malware en goedaardige software.
De voorgestelde Kunstmatige Neuronale Classifier (ANC) functioneert als een hybride raamwerk dat de feature-learningmogelijkheden van een Kunstmatig Neural Netwerk (ANN) combineert met de beslissingskwaliteiten van traditionele inductieclassifiers, zoals Random Forest en Decision Tree. In dit ontwerp verwerkt de ANN eerst de geselecteerde kenmerken die van de autoencoder worden verkregen om complexe patronen en correlaties tussen invoerattributen te leren. De resulterende representaties die worden geleerd, worden vervolgens doorgegeven aan de inductieclassifier, die de definitieve classificatie van Android-applicaties uitvoert als goedaardig of kwaadaardig. Op deze manier fungeert de ANC als een wrapper, waarbij conventionele classifiers worden versterkt met diepe feature-embeddings, terwijl hun interpreteerbaarheid behouden blijft. Dit hybride mechanisme stelt de ANC in staat zowel high-level feature-abstractie vanuit de ANN als robuuste besluitvorming van gevestigde machine learning-classifiers te benutten, wat resulteert in verbeterde detectienauwkeurigheid en generalisatie.
Experimentele opstelling
Een 64-bit Windows 10-besturingssysteem, met een i5-processor - 2,30 GHz, 8 GB RAM en een harde schijf van 2 TB, werd gebruikt in de experimentele opstelling. Python 3.7 werd gebruikt als programmeertaal, en het Jupyter-platform was opgezet om machine learning- en deep learning-pakketten mogelijk te maken.
De IEEE Dataport leverde de API-aanroepsequentiegegevens van het experiment, die 43.876 sequenties omvatten - waarvan 42.797 als malware en 1.079 als goodware werden geclassificeerd. Virus Total werd gebruikt voor verificatie, en de Cuckoo Sandbox-omgeving werd gebruikt voor gegevensverzameling. Tabel 1 geeft een uitgebreide uitleg van de API-aanroepsequenties.