$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
La méthode de sélection de caractéristiques basée sur des enveloppes utilisant des auto-encodeurs est utilisée dans l’architecture suggérée pour la détection de logiciels malveillants Android, comme montré à la Figure 1. Le jeu de données est divisé en sous-ensembles d’entraînement et de test 70:30. La classification et la sélection des caractéristiques sont les deux principales étapes du processus d’analyse des malwares.
Sélection des caractéristiques (FS) : Cette étape consiste à rechercher de manière itérative les meilleurs sous-ensembles de caractéristiques (voir Définition 1) en utilisant des algorithmes basés sur l’intelligence en essaim, notamment l’optimisation de recherche Cuckoo (CSO), l’optimisation des lions fourmis (ALO) et l’optimisation des lucioles (FO). Ensuite, les auto-encodeurs traitent les fonctionnalités choisies pour produire une représentation compressée des données entrantes. Une approche d’induction utilise ensuite la sortie des auto-encodeurs pour évaluer dans quelle mesure ces fonctionnalités différencient les applications dangereuses des applications bénignes. Afin de permettre une catégorisation précise des cas suivants, l’algorithme d’induction construit un classificateur en associant l’espace des caractéristiques à une collection d’étiquettes de classes.
Classification : En utilisant le classificateur neuronal artificiel suggéré et des méthodes d’induction bien connues, le jeu réduit de fonctionnalités à partir de la phase de sélection des caractéristiques est évalué à cette étape afin de voir dans quelle mesure il peut détecter les malwares Android.
En utilisant des approches sophistiquées de classification et en se concentrant sur les fonctionnalités les plus informatives, cette méthodologie vise à améliorer la précision et l’efficacité de la détection des malwares Android.
Sélection des fonctionnalités
Une étape cruciale de l’apprentissage automatique est la sélection de caractéristiques, qui consiste à déterminer quelles caractéristiques sont les plus fiables, pertinentes et non redondantes pour la construction de modèles. Réduire méthodiquement les ensembles de fonctionnalités devient plus crucial à mesure que les ensembles de données continuent de croître en taille et en complexité. L’objectif principal de la sélection de fonctionnalités est de maximiser la performance du modèle tout en réduisant les coûts de calcul. Les fonctionnalités répétitives et inutiles sont supprimées, permettant au processus de se concentrer sur les variables les plus significatives pour le modèle. Au lieu de dépendre de l’algorithme d’apprentissage automatique pour identifier des caractéristiques significatives, voici les avantages de la sélection des caractéristiques avant l’entraînement du modèle :
Modèles simplifiés : Réduire le nombre de variables d’entrée conduit à des modèles plus simples, plus faciles à interpréter et à comprendre.
Réduction de la variance : En se concentrant sur les caractéristiques essentielles, la sélection des caractéristiques aide à diminuer la variance du modèle, atténuant ainsi le surapprentissage et améliorant la généralisation vers de nouvelles données.
Réduction du temps d’entraînement : Un ensemble de fonctionnalités plus restreint réduit la charge de calcul, ce qui permet un entraînement et une évaluation plus rapides du modèle.
Atténuation de la malédiction de la dimensionnalité : Les données de haute dimension peuvent poser des défis tels qu’une complexité accrue et un surapprentissage ; La sélection des caractéristiques répond à ces problèmes en limitant l’espace des caractéristiques aux variables les plus informatives.
Définition 1 de la sélection des caractéristiques
Pensez à un inducteur I et à un jeu de données D qui a une distribution D sur un espace d’instance étiqueté et contient des caractéristiques (x 1,x 2,x 3,... ,x n). Le sous-ensemble des caractéristiques qui optimise la précision du classificateur C=I(D) est appelé le sous-ensemble optimal Xopt.
Dans la sélection non supervisée des fonctionnalités, les approches basées sur des enveloppes visent à identifier la combinaison optimale de fonctionnalités qui améliorent les performances du modèle. En ajoutant ou en supprimant systématiquement des fonctionnalités, souvent via des algorithmes avides, ces méthodes évaluent divers modèles afin de sélectionner les caractéristiques les plus impactantes pour le développement de modèles. Ce processus est illustré à la Figure 2.
Pour la sélection des caractéristiques, des algorithmes d’intelligence en essaim comme l’optimisation des lucioles (FO), l’optimisation de recherche cucou (CSO) et l’optimisation des lions fourmis (ALO) sont utilisés pour surpasser les tactiques avides conventionnelles. La fonction objectif sélectionnée lors de l’évaluation de la fitness a un impact significatif sur l’efficacité de ces algorithmes. La quantité de caractéristiques choisies et l’erreur du modèle à la fin de chaque itération sont prises en compte dans la procédure itérative de sélection de caractéristiques basée sur des enveloppes afin d’évaluer la pertinence des caractéristiques sélectionnées. L’équation (1) formalise cette évaluation.
(1)
La pénalité de l’algorithme d’apprentissage pour les erreurs commises lors de l’évaluation de la condition physique est représentée par τ dans cette équation, où τ ∈ [0,1]. La longueur du sous-ensemble de caractéristiques choisi est notée par la variable l, et le nombre total de caractéristiques est représenté par la variable u.
Encodeurs automatiques
Les réseaux de neurones spécialisés dans l’apprentissage des représentations compressées des données d’entrée sont appelés autoencodeurs. Un encodeur et un décodeur sont les deux parties principales de ces composantes. Pendant que le décodeur tente de récupérer l’entrée originale de cette forme compressée, il traite les données d’entrée et les comprime en une représentation en espace latent. L’entraînement des modèles en apprentissage automatique est facilité par la capacité de l’encodeur à extraire des fonctionnalités précieuses à partir de données non traitées une fois entraîné.
L’architecture d’autoencodeur proposée (comme montré à la Figure 3) comprend un encodeur composé d’une couche d’entrée avec N nœuds, suivie de deux couches cachées contenant respectivement N*2 et N nœuds. Il existe une seconde couche cachée avec N/2 nœuds appelée l’espace latent. Avec deux couches cachées de [N, N*2], le décodeur réplique cette structure, se terminant par une couche de sortie de N nœuds.
Chaque couche cachée est suivie d’une normalisation par lots pour accélérer et stabiliser le processus d’entraînement, et toutes les couches utilisent la fonction d’activation LeakyReLU pour gérer tout problème possible de gradient nul. L’équation (2) fournit une définition mathématique de la fonction d’activation de LeakyReLU :
(2)
Où hθ(x), est obtenu à l’aide de l’équation (3)
(3)
Ici, xi=(x1,x 2,...,xn) représente les valeurs d’entrée des nœuds, tandis que wi=(w1,w 2,...,wn) désigne les poids associés à ces nœuds. Au cours du processus d’apprentissage, les poids sont ajustés après avoir été initialement attribués au hasard dans la plage [0,1]. Pour empêcher les paramètres de passer par l’origine, un terme de polarisation est ajouté à chaque couche. L’équation (4) définit le seuil, et si la sortie obtenue de l’équation (3) le dépasse, un nœud est déclenché.
(4)
Optimisation de la sélection de caractéristiques basée sur l’emballage de lions de fourmis (ALWFSO)
Modélisant le comportement prédateur naturel des fourmiliers, l’Optimeur de lions de fourmis (ALO) a été présenté pour la première fois par Seyed AliMirjalili 34. Cet algorithme d’optimisation identifie efficacement les solutions optimales indépendamment des valeurs initiales des paramètres. ALO présente une convergence rapide et gère efficacement à la fois les contraintes entières et discrètes. La capture de proies, la création de pièges, l’emprisonnement des fourmis, les mouvements aléatoires des fourmis et la réparation des pièges sont les étapes qui composent le processus de chasse dans ALO.
Dans le contexte de l’algorithme Ant Lion Optimizer (ALO), les fourmis représentent des solutions candidates effectuant des recherches aléatoires dans l’espace des solutions, tandis que les fourmilions correspondent aux pièges ou guides influençant les mouvements des fourmis en fonction des valeurs de fitness. Cette double population modélise le comportement prédateur naturel des fourmiliers capturant les fourmis. Au départ, les populations de fourmis et de fourmis sont initialisées de manière aléatoire. Les fourmiliers sont sélectionnés pour chaque fourmi à l’aide du mécanisme de sélection de la roulette, suivi d’un processus de marche aléatoire (comme montré dans l’Algorithme-1). L’équation (5) décrit alors comment cette marche est normalisée.
(5)
Au début, les populations de fourmis et de fourmiliers sont créées au hasard. Un fourmili est choisi pour chaque fourmi à l’aide d’un mécanisme de roulette, permettant une marche aléatoire normalisée à l’aide de formules prédéterminées. Ce processus garantit que les mouvements des fourmis sont influencés par la position des fourmiliers, simulant efficacement le processus naturel de chasse. La position de chaque fourmi est ensuite mise à jour en fonction de cette interaction, guidant la recherche vers des solutions optimales.
Grâce à son architecture, l’algorithme ALO peut efficacement parcourir des espaces de recherche complexes, ce qui en fait un outil puissant pour résoudre une variété de problèmes d’optimisation. La condition physique de chaque fourmi est évaluée à la fin de chaque répétition. Comme montré dans l’algorithme-1, la fourmi est remplacée par la fourmi si celle-ci est plus adaptée que sa seconde. Dans ce cas
, indique la position de la iième fourmi à l’itération t ; I est un ratio ;
indique la position dela fourmili j à l’itération t ;
est l’élite pour la marche aléatoire à l’itération t, choisie par la roulette ; et
est la marche aléatoire de la fourmilier à l’itération t, qui est également déterminée par la roulette. Après chaque cycle, la solution globalement optimale, confirmée par le classificateur intégré des enveloppes, est restituée.
Algorithme 1 : ALWFSO
Définir la fonction objectif : f(x) :x=(x1,x 2,...,x d)
Initialisation aléatoire de la colonie de fourmis et de fourmiliers
Calcul de la condition physique des fourmis et des fourmilis
Choisissez les meilleurs fourmiliers et supposez qu’ils sont d’élite.
Répéter jusqu’à ce que la condition de terminaison soit remplie ou f(x) :x=(x1,x 2,...,xd)
Pour chaque sélection fourmi-fourmi : Utilisez un mécanisme de sélection de la roue de roulette pour choisir probabilisticement un fourmili-lion qui influencera le déplacement de la fourmi
X(t) = [0,cum_sum(2r(t 1) - 1),cum_sum(2r(t 2) - 1),...,cum_sum(2r(t n)-1)]


Fin de la boucle de fourmi
Évaluation de la condition physique : Recalculez les valeurs de fitness de toutes les fourmis en fonction de leurs nouvelles positions.
Remplacer les fourmiliers par des fourmis si celles-ci démontrent une meilleure forme physique
Si un fourmilier devient plus apte, alors

Fin tandis que
Optimisation de la sélection de caractéristiques basée sur des enveloppes de recherche cuckoo (CSWFSO)
Inspirés par le comportement parasitaire de la couvée de certaines espèces de coucous, qui déposent leurs œufs dans les nids d’autres oiseaux hôtes, Xin-She Yang et SusahDeb 35 ont créé l’algorithme de recherche du coucou en 2009. Dans cette procédure, chaque coucou pond un œuf dans un nid choisi au hasard. Les générations futures hériteront des nids contenant les meilleurs œufs. La probabilité qu’un oiseau hôte repère un œuf extraterrestre est nulle, et il n’y a qu’un certain nombre de nids hôtes accessibles.
Algorithme 2 : CSWFSO
Définir la fonction objectif : f(x) :x = (x 1,x 2,...,xd)
Générer aléatoirement une population initiale de n nids d’hôtes, chacun correspondant à une solution candidate xi (i=1,2,3,...,n)
Répéter jusqu’à ce que la condition d’arrêt soit satisfaite ou (tPour un coucou i sélectionné au hasard, produire une nouvelle solution candidate en utilisant le vol de Lévy

Calculer la fitness de la nouvelle solution générée Fi [Pour maximiser, Fi α f(xi)]
Sélectionnez aléatoirement un nid d’hôtes j parmi la population n
si (Fi >Fj) alors j est remplacé par une nouvelle solution
fin si
Abandonner une partie des filets les plus mauvais par une fraction (pa)
De nouveaux nids sont construits en fraction abandonnée (pa) en utilisant 
Mettez de côté les meilleures solutions ou nids.
En les classant, choisissez le meilleur nid ou la meilleure solution disponible en ce moment.
La génération suivante hérite de la meilleure solution disponible aujourd’hui.
Fin tandis que
Au départ, tous les nids sont initialisés de manière aléatoire. Au fil des itérations, chaque coucou modifie sa position dans l’espace des solutions via des vols de Lévy, comme décrit dans l’Algorithme 2. La taille du pas est ajustée par ∝, et une opération sigmoïde convertit les valeurs continues générées par l’optimisation de la recherche cuckoo (CSO) en format binaire, comme illustré dans les équations (6) et (7).
(6)
(7)
Comme montré dans l’Algorithme 2, où
et
sont des nids choisis au hasard et δ ∈ [0,1], à la fin de chaque itération, certains nids sont abandonnés et rafraîchis avec de nouvelles solutions candidates.
Inspiré par le parasitisme de la couvée du coucou, l’algorithme d’optimisation de recherche du coucou (CSO) s’est avéré être un outil utile pour les tâches de sélectionde caractéristiques 35. La technique commence par initialiser une population de nids, chacun représentant une solution possible dans le contexte de la sélection de caractéristiques CSO basée sur des enveloppes. Une fonction objectif prédéfinie est utilisée pour évaluer la valeur de ces nids. À l’aide d’évaluations d’aptitude, l’algorithme détermine la solution optimale — appelée la meilleure globale — à chaque itération. Pour mieux explorer l’espace de solutions, une partie du nid, représentée par un pois, est supprimée et remplacée par de nouvelles selon le protocole CSO. Le classificateur enveloppant intégré confirme que l’algorithme fournit la réponse globalement optimale une fois toutes les itérations terminées.
Optimisation de la sélection de caractéristiques basée sur le wrapper Firefly (FWFSO)
Algorithme 3 : FWFSO
Définissons la fonction objectif : f(x) :x = (x1,x 2,...,xd)
Générer un essaim initial de n lucioles, chacune représentant une solutionx i (i = 1,2,3,...,n)
Déterminez l’intensité lumineuse I de chaque luciole en fonction de la valeur de la fonction objectif
Définissez le coefficient d’absorption de la lumière γ
Répéter jusqu’à ce que la condition d’arrêt soit remplie ou (t < MaxGeneration)
Pour chaque luciole I (∀ i=1,2,3,... ,n)
pour chaque luciole j (∀ j=1,2,3,... ,i)
Obtenez des intensités lumineuses de Ii etI j
sije i <j j alors


sinon
Déplacez aléatoirement le luciole i pour explorer l’espace de recherche
fin si
L’attractivité diminue avec la distance comme 
Évaluez la solution mise à jour et ajustez l’intensité de la luciole en conséquence
fin pour
fin pour
Classez les lucioles selon leur intensité lumineuse et identifiez celle avec la plus grande luminosité comme la meilleure solution actuelle
L’algorithme d’optimisation des lucioles, introduit par George Lindfield et JohnPenny 36, émule le comportement naturel des lucioles pour attirer d’autres lucioles. Dans cet algorithme, l’attractivité d’une luciole est directement proportionnelle à sa luminosité, tandis que la distance entre deux lucioles est inversement proportionnelle à leur attractivité. Si aucune luciole plus brillante n’est à proximité, une luciole se déplacera de façon aléatoire.
Deux lucioles sont attirées l’une par l’autre en fonction de leur luminosité ; Une luciole moins brillante se tournera vers une plus brillante. Le mouvement aléatoire est utilisé lorsqu’il n’y a pas de luciole plus brillante. Avec β0 désignant la beauté, la distance r=0 entre deux lucioles est utilisée pour calculer leur attractivité. La séparation rjk entre les lucioles j et k est calculée comme suit :
ici, rji et rki notent en aparté les composantes spatiales de la iième dimension pour les lucioles jth et kth, respectivement, et n représente le nombre de dimensions. Le déplacement d’une luciole vers une autre est régi par le degré d’attraction entre elles :
. Dans cette équation, rj est la position actuelle de la luciole j, γ est la lumière Ranard est un nombre aléatoire entre 0 et 1, α est le taux de mutation et le coefficient d’absorption. S’il n’y a plus de lucioles brillantes, celle-ci se déplacera au hasard selon αα. Après chaque itération, le classificateur enveloppeur intégré valide la solution minimale globale, qui est ensuite retournée.
Classificateur
Les ensembles de données structurés et non structurés peuvent être classés en les décomposant en groupes ou classes discrets. L’objectif est d’utiliser les attributs des nouveaux points de données pour prévoir leur classe ou leur label. Cette procédure détermine la catégorie à laquelle appartiennent les données fraîches en approximant une fonction de correspondance des variables d’entrée vers des variables de sortie discrètes.
Les forêts aléatoires, arbres de décision, K-plus proches voisins, régression logistique et machines à vecteurs de support font partie des algorithmes d’induction ou de classification utilisés pour évaluer la solution de détection de malware Androidsuggérée 37. De plus, ce travail présente le Classificateur Neuronal Artificiel, un classificateur hybride révolutionnaire qui combine des algorithmes d’induction conventionnels avec des réseaux neuronaux artificiels.
Classificateur neuronal artificiel
La conception suggérée d’un Classificateur Neuronal Artificiel (ANC) combine un classificateur d’induction et des réseaux neuronaux artificiels (RNA), comme on le voit à la Figure 4. Selon cette architecture, l’ANN est instruit à identifier les motifs et corrélations entre les caractéristiques d’entrée. Le classificateur d’induction utilise les informations acquises par l’ANN pour améliorer la précision de l’identification des logiciels malveillants des logiciels sûrs.
Après des tests approfondis, l’ANN à l’intérieur de l’ANC a été configuré avec trois couches cachées entièrement connectées, chacune avec M nœuds, suivant une couche d’entrée avec N nœuds. Il existe une couche de sortie qui est connectée au classificateur d’induction après une couche cachée entièrement connectée avec M/2 nœuds. L’équation (8) détermine le nombre de nœuds dans les couches cachées :
(8)
où M désigne le nombre de nœuds dans une couche cachée, N représente le nombre de caractéristiques d’entrée, et α est un paramètre allant de 2 à 10. La fonction d’activation (telle que montrée dans l’équation (9)) joue un rôle crucial dans la détermination de l’activation d’un neurone, à condition que la sortie dépasse un seuil spécifié.
(9)
Ici, hθ(x) est calculé selon l’équation (3). L’ANC utilise l’optimiseur Adam pour ajuster les poids du réseau et les taux d’apprentissage. Dans Adam, les taux de désintégration pour l’estimation
du premier moment et l’estimation
du second moment pour chaque poids ωij sont notés respectivement β1 et β2. Soit N le taux d’apprentissage. Les règles de mise à jour pour Adam sont présentées dans les équations (10) et (11) :
(10)
(11)
Les estimations corrigées du premier et du second moment,
et
, sont calculées à l’aide des équations (12) et (13) :
(12)
(13)
Ces calculs garantissent que l’optimiseur maintient des taux d’apprentissage appropriés pour chaque poids, facilitant un entraînement efficace et efficace de l’ANC.
La règle de mise à jour du poids pour chaque connexion dans le réseau de neurones est définie par l’équation (14) :
(14)
Après mise à jour des poids du réseau de neurones, la performance est évaluée à l’aide d’une fonction de perte qui mesure l’écart entre les sorties prédites et réelles. Dans ce modèle, l’erreur absolue moyenne (MAE), telle que définie dans l’équation (15), est utilisée à cette fin.
(15)
Dans ce contexte, yi représente la sortie réelle,
désigne la sortie prédite, et n est le nombre total d’instances de sortie. Après que le réseau de neurones a été entraîné sur un nombre défini d’époques, les représentations apprises de l’espace des caractéristiques sont transférées au classificateur d’induction pour distinguer les logiciels malveillants et les logiciels bénins.
Le Classificateur Neuronal Artificiel (ANC) proposé fonctionne comme un cadre hybride qui combine les capacités d’apprentissage des caractéristiques d’un réseau neuronal artificiel (RNA) avec les forces décisionnelles des classificateurs d’induction traditionnels, tels que la forêt aléatoire et l’arbre décisionnel. Dans cette conception, l’ANN traite d’abord les caractéristiques sélectionnées obtenues à partir de l’autoencodeur afin d’apprendre des motifs complexes et des corrélations entre les attributs d’entrée. Les représentations obtenues apprises sont ensuite transmises au classificateur d’induction, qui effectue la classification finale des applications Android comme bénignes ou malveillantes. De cette manière, l’ANC agit comme un enveloppement, améliorant les classificateurs conventionnels avec des encadrements profonds de caractéristiques tout en préservant leur interprétabilité. Ce mécanisme hybride permet à l’ANC de tirer parti à la fois de l’abstraction de caractéristiques de haut niveau de l’ANN et de la prise de décision robuste issue des classificateurs d’apprentissage automatique établis, ce qui entraîne une amélioration de la précision et de la généralisation de la détection.
Installation expérimentale
Un système d’exploitation Windows 10 64 bits, avec un processeur i5 - 2,30 GHz, 8 Go de RAM et un disque dur de 2 To, a été utilisé dans la configuration expérimentale. Python 3.7 a été utilisé comme langage de programmation, et la plateforme Jupyter a été conçue pour permettre l’apprentissage automatique et les paquets d’apprentissage profond.
Le Dataport IEEE fournissait les données de séquence d’appels API de l’expérience, qui comprenaient 43 876 séquences – dont 42 797 classées comme malwares et 1 079 comme goodware. Virus Total était utilisé pour la vérification, et l’environnement Cuckoo Sandbox était utilisé pour la collecte de données. Le tableau 1 offre une explication complète des séquences d’appels API.