$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
El método de selección de características basado en envoltorios que utiliza auto-codificadores se utiliza en la arquitectura sugerida para la detección de malware en Android, como se muestra en la Figura 1. El conjunto de datos se divide en subconjuntos 70:30 de entrenamiento y prueba. La clasificación y la selección de características son los dos pasos principales en el proceso de análisis de malware.
Selección de características (FS): Este paso consiste en buscar iterativamente los mejores subconjuntos de características (véase Definición 1) utilizando algoritmos basados en inteligencia de enjambre, especialmente Cuckoo Search Optimization (CSO), Ant Lion Optimization (ALO) y Firefly Optimization (FO). Después de eso, los autocodificadores procesan las características elegidas para producir una representación comprimida de los datos recibidos. Un enfoque de inducción utiliza entonces la salida de los autocodificadores para evaluar qué tan bien diferencian estas características entre aplicaciones peligrosas y benignas. Para permitir una categorización precisa de casos posteriores, el algoritmo de inducción construye un clasificador mapeando el espacio de características a una colección de etiquetas de clase.
Clasificación: Utilizando el Clasificador Neuronal Artificial sugerido y métodos de inducción bien conocidos, se evalúa en esta fase el conjunto reducido de características de la fase de selección de características para ver cuán eficazmente puede detectar malware de Android.
Mediante el uso de enfoques sofisticados de clasificación y la atención a las características más informativas, esta metodología busca mejorar la precisión y eficiencia de la detección de malware en Android.
Selección de características
Un paso crucial en el aprendizaje automático es la selección de características, que implica determinar cuáles características son más fiables, pertinentes y no redundantes para la construcción de modelos. Reducir los conjuntos de características de manera metódica se vuelve más crucial a medida que los conjuntos de datos siguen creciendo en tamaño y complejidad. El objetivo principal de la selección de características es maximizar el rendimiento del modelo mientras se reducen los gastos computacionales. Se eliminan características repetitivas e innecesarias, permitiendo que el proceso se centre en las variables más significativas para el modelo. En lugar de depender del algoritmo de aprendizaje automático para identificar características significativas, los siguientes son los beneficios de la selección de características antes del entrenamiento del modelo:
Modelos simplificados: Reducir el número de variables de entrada conduce a modelos más sencillos y más fáciles de interpretar y entender.
Reducción de la varianza: Al centrarse en características esenciales, la selección de características ayuda a disminuir la variación del modelo, mitigando así el sobreajuste y mejorando la generalización a nuevos datos.
Reducción del tiempo de entrenamiento: Un conjunto de características más pequeño reduce la carga computacional, lo que resulta en un entrenamiento y evaluación de modelos más rápidos.
Mitigación de la maldición de la dimensionalidad: Los datos de alta dimensión pueden plantear desafíos como mayor complejidad y sobreajuste; La selección de características aborda estos problemas limitando el espacio de características a las variables más informativas.
Definición 1 de selección de características
Piensa en un inductor I y un conjunto de datos D que tiene una distribución D sobre un espacio de instancia etiquetado y contiene características (x 1,x 2,x 3,... ,x n). El subconjunto de características que optimiza la precisión del clasificador C=I(D) se conoce como subconjunto óptimo de características Xopt.
En la selección no supervisada de características, los enfoques basados en envoltorios buscan identificar la combinación óptima de características que mejoran el rendimiento del modelo. Añadiendo o eliminando sistemáticamente características, a menudo mediante algoritmos codiciosos, estos métodos evalúan varios modelos para seleccionar las características más impactantes para el desarrollo de modelos. Este proceso se muestra en la Figura 2.
Para la selección de características, se utilizan algoritmos de inteligencia en enjambre como Firefly Optimization (FO), Cuckoo Search Optimization (CSO) y Ant Lion Optimization (ALO) para superar las tácticas codiciosas convencionales. La función objetivo seleccionada en la etapa de evaluación de aptitud tiene un impacto significativo en la efectividad de estos algoritmos. Tanto la cantidad de características seleccionadas como el error del modelo al final de cada iteración se tienen en cuenta en el procedimiento iterativo de selección de características basado en envoltorios para evaluar la idoneidad de las características seleccionadas. La ecuación (1) formaliza esta evaluación.
(1)
La penalización del algoritmo de aprendizaje por errores cometidos durante la evaluación de aptitud se representa por τ en esta ecuación, donde τ ∈ [0,1]. La longitud del subconjunto de características elegida se denota por la variable l, y el número total de características se representa con la variable u.
Codificadores automáticos
Las redes neuronales que se especializan en aprender representaciones comprimidas de datos de entrada se denominan autocodificadores. Un codificador y un decodificador son las dos partes principales de ellos. Mientras el decodificador intenta recuperar la entrada original de esta forma comprimida, procesa los datos de entrada y los comprime en una representación en espacio latente. El entrenamiento de modelos de aprendizaje automático se facilita gracias a la capacidad del codificador para extraer características valiosas de datos no procesados una vez entrenado.
La arquitectura propuesta de autocodificador (como se muestra en la Figura 3) presenta un codificador compuesto por una capa de entrada con N nodos, seguida de dos capas ocultas que contienen N*2 y N nodos, respectivamente. Existe una segunda capa oculta con N/2 nodos llamada espacio latente. Con dos capas ocultas de nodos [N, N*2], el decodificador replica esta estructura, terminando en una capa de salida de N nodos.
Cada capa oculta es seguida por una normalización por lotes para acelerar y estabilizar el proceso de entrenamiento, y todas las capas utilizan la función de activación LeakyReLU para gestionar cualquier posible problema de gradiente nulo. La ecuación (2) proporciona una definición matemática de la función de activación de LeakyReLU:
(2)
Donde hθ(x), se obtiene usando la ecuación (3)
(3)
Aquí, xi=(x1,x 2,...,xn) representa los valores de entrada de los nodos, mientras que wi=(w1,w 2,...,wn) denota los pesos asociados a estos nodos. Durante el proceso de aprendizaje, los pesos se ajustan tras asignarse inicialmente al azar dentro del rango [0,1]. Para evitar que los parámetros pasen por el origen, se añade un término de sesgo en cada capa. La ecuación (4) define el umbral, y si la salida obtenida de la ecuación (3) lo supera, se activa un nodo.
(4)
Optimización de selección de características basada en envoltorio de león hormiga (ALWFSO)
Modelando el comportamiento depredador natural del hormiguero león, el Optimizador de León Hormiga (ALO) fue presentado por primera vez por Seyed AliMirjalili 34. Este algoritmo de optimización identifica eficientemente soluciones óptimas independientemente de los valores iniciales de los parámetros. ALO exhibe convergencia rápida y gestiona eficazmente tanto restricciones enteras como discretas. La captura de presas, la creación de trampas, el atrapamiento de hormigas, el movimiento aleatorio de las hormigas y la reparación de trampas son los pasos que conforman el proceso de caza en ALO.
En el contexto del algoritmo Ant Lion Optimizer (ALO), las hormigas representan soluciones candidatas que realizan búsquedas aleatorias en el espacio de soluciones, mientras que los antlions corresponden a las trampas o guías que influyen en los movimientos de las hormigas basándose en los valores de aptitud. Esta doble población modela el comportamiento depredador natural de las hormigas que capturan hormigas. Al principio, las poblaciones tanto de hormigas como de hormigueras se inicializan aleatoriamente. Se seleccionan hormigas para cada hormiga usando el mecanismo de selección de la ruleta, seguido de un proceso de paseo aleatorio (como se muestra en el Algoritmo-1). La ecuación (5) describe entonces cómo se normaliza esta caminata.
(5)
Al principio, las poblaciones de hormigas y hormigueras se crean al azar. Se elige un hormiga para cada hormiga mediante un mecanismo de ruleta, permitiendo un paseo aleatorio normalizado mediante fórmulas predeterminadas. Este proceso asegura que los movimientos de las hormigas estén influenciados por la posición de las hormigas leonas, simulando eficazmente el proceso natural de caza. La posición de cada hormiga se actualiza en función de esta interacción, guiando la búsqueda hacia soluciones óptimas.
Debido a su arquitectura, el algoritmo ALO puede recorrer eficazmente espacios de búsqueda complejos, lo que lo convierte en una herramienta poderosa para resolver una variedad de problemas de optimización. La aptitud de cada hormiga se evalúa al concluir cada repetición. Como se muestra en el Algoritmo-1, el hormiguero se sustituye por la hormiga si la hormiga está más en forma que su contraparte. En este caso
, indica la ubicación de la iésima hormiga en la iteración t; I es una proporción;
indica la ubicación delj-ésimo hormiga en la iteración t;
es la élite para la caminata aleatoria en la iteración t, que se elige con la ruleta; y
es el paseo aleatorio del hormiga león en la iteración t, que también está determinado por la ruleta. Tras finalizar cada ciclo, se devuelve la solución globalmente óptima, confirmada por el clasificador integrado de envoltorios.
Algoritmo 1: ALWFSO
Define función objetivo: f(x):x=(x1,x 2,...,xd)
Inicialización aleatoria de la colonia de hormigas y hormigueras
Cálculo de la aptitud de hormigas y hormigas
Elige las mejores hormigas y asume que son élite.
Repetir hasta que se cumpla la condición de terminación o f(x):x=(x1,x 2,...,x d)
Para cada selección hormiga-hormiguera: Utiliza un mecanismo de selección de ruleta para elegir probabilísticamente un hormiga que influirá en el movimiento de la hormiga
X(t) = [0,cum_sum(2r(t 1) - 1),cum_sum(2r(t 2) - 1),...,cum_sum(2r(t n)-1)]


Fin del bucle de hormigas
Evaluación de aptitud: Recalcular los valores de aptitud de todas las hormigas en función de sus nuevas posiciones.
Sustituye a las hormigas por hormigas si estas demuestran una mejor forma física
Si un hormiga se vuelve más apto, entonces

Fin mientras
Optimización de selección de características basada en envoltorios de búsqueda Cuckoo (CSWFSO)
Inspirados por el comportamiento parasitario de cría de algunas especies de cuco, que depositan sus huevos en los nidos de otras aves hospedadoras, Xin-She Yang y Susah Deb35 crearon el algoritmo de búsqueda de cuco en 2009. En este procedimiento, cada cuco pone un huevo en un nido que se selecciona al azar. Las futuras generaciones heredarán nidos con los mejores huevos. La probabilidad de que un ave huésped vea un huevo alienígena es cero, y solo hay un número limitado de nidos hospedadores disponibles.
Algoritmo 2: CSWFSO
Define la función objetivo: f(x):x = (x1,x 2,...,xd)
Genera aleatoriamente una población inicial de n nidos de huéspedes, cada uno correspondiente a una solución candidata xi (i=1,2,3,...,n)
Repite hasta que se cumpla la condición de parada o (tPara un cuco i seleccionado al azar, se produce una nueva solución candidata usando vuelo de Lévy

Calcular la aptitud de la solución recién generada Fi [Para maximizar, Fi α f(xi)]
Seleccionar aleatoriamente un nido de hospedadores j de la población n
si (Fi >F j) entonces j se reemplaza por una nueva solución
fin si
Abandona parte de las peores redes por una fracción (pa)
Se construyen nuevos nidos en fracción abandonada (pa) utilizando 
Reserva las mejores soluciones o nidos.
Al clasificarlos, elige el mejor nido o solución disponible en ese momento.
La siguiente generación hereda la mejor solución disponible actualmente.
Fin mientras
Al principio, todos los nidos se inicializan aleatoriamente. A medida que avanzan las iteraciones, cada cuco modifica su posición dentro del espacio de soluciones mediante vuelos de Lévy, como se describe en el Algoritmo 2. El tamaño del paso se ajusta por ∝, y una operación sigmoide convierte los valores continuos generados por la Optimización de Búsqueda Cuckoo (CSO) en un formato binario, como se muestra en las Ecuaciones (6) y (7).
(6)
(7)
Como se muestra en el Algoritmo 2, donde
y
son nidos seleccionados aleatoriamente y δ ∈ [0,1], al final de cada iteración, algunos nidos se abandonan y se refrescan con nuevas soluciones candidatas.
Inspirado por el parasitismo de la cría del pájaro cuco, el algoritmo de Optimización de Búsqueda del Cucú (CSO) ha demostrado ser una herramienta útil para tareas de selección de características35. La técnica comienza inicializando una población de nidos, cada uno de los cuales representa una posible solución en el contexto de la selección de características CSO basada en envoltorios. Se utiliza una función objetivo preestablecida para evaluar la aptitud de estos nidos. Utilizando evaluaciones de aptitud, el algoritmo determina la solución óptima—denominada la mejor global—en cada iteración. Para explorar mejor el espacio de soluciones, se elimina una parte del nido, representada por guisante, y se reemplaza por otras nuevas conforme al protocolo CSO. El clasificador de envoltorio incrustado confirma que el algoritmo da la respuesta globalmente óptima una vez finalizadas todas las iteraciones.
Optimización de selección de características basada en envoltorios de Firefly (FWFSO)
Algoritmo 3: FWFSO
Defina la función objetivo: f(x):x = (x1,x 2,...,xd)
Generar un enjambre inicial de n luciérnagas, cada una representando una solución xi (i = 1,2,3,...,n)
Determina la intensidad de luz I de cada luciérnaga basándose en el valor de la función objetivo
Defina el coeficiente de absorción de luz γ
Repite hasta que se cumpla la condición de parada o (t < MaxGeneration)
para cada luciérnaga i (∀ i=1,2,3,... ,n)
para cada luciérnaga j (∀ j=1,2,3,... ,i)
Consigue intensidades de luz de Ii eI j
siyo i <j entonces


si no,
Mueve aleatoriamente la luciérnaga i para explorar el espacio de búsqueda
fin si
La atractividad disminuye con la distancia como 
Evalúa la solución actualizada y ajusta la intensidad de la luciérnaga en consecuencia
fin para
fin para
Clasifica las luciérnagas según su intensidad de luz e identifica la que tenga mayor brillo como la mejor solución actual
El algoritmo de Optimización de Luciérnagas, introducido por George Lindfield y JohnPenny 36, emula el comportamiento natural de las luciérnagas para atraer a otras. En este algoritmo, la atractividad de una luciérnaga es directamente proporcional a su brillo, mientras que la distancia entre dos luciérnagas es inversamente proporcional a su atractivo. Si no hay luciérnagas más brillantes cerca, una se moverá aleatoriamente.
Dos luciérnagas se sienten atraídas por su brillo; una luciérnaga menos brillante se inclinará hacia una más brillante. El movimiento aleatorio se usa cuando no hay una luciérnaga más brillante. Con β0 denotando belleza, la distancia r=0 entre dos luciérnagas se utiliza para calcular su atractivo. La separación rjk entre luciérnagas j y k se calcula de la siguiente manera:
Aquí, rji y rki aparte, los componentes espaciales de la idimensión para luciérnagas jth y kth, respectivamente, y n representa el número de dimensiones. El movimiento de una luciérnaga hacia otra está gobernado por el grado de atracción entre ellas:
. En esta ecuación, rj la posición actual de Firefly j, γ es la luz Ranard es un número aleatorio entre 0 y 1, α es la tasa de mutación y el coeficiente de absorción. Si no hay más luciérnagas brillantes, la luciérnaga se moverá al azar según αα. Tras cada iteración, el clasificador wrapper incrustado valida la solución mínima global, que luego se devuelve.
Clasificador
Tanto los conjuntos de datos estructurados como los no estructurados pueden clasificarse dividiéndolos en grupos o clases discretos. El objetivo es utilizar los atributos de los nuevos datos para predecir su clase o etiqueta. Este procedimiento determina la categoría a la que pertenecen los datos frescos aproximando una función de mapeo de variables de entrada a variables de salida discretas.
Bosques aleatorios, árboles de decisión, K-vecinos más cercanos, regresión logística y máquinas de vectores de soporte están entre los algoritmos de inducción o clasificación utilizados para evaluar la solución sugerida de detección de malwarepara Android 37. Además, este trabajo presenta el Clasificador Neuronal Artificial, un clasificador híbrido revolucionario que combina algoritmos de inducción convencionales con Redes Neuronales Artificiales.
Clasificador neuronal artificial
El diseño sugerido de Clasificador Neuronal Artificial (ANC) combina un clasificador de inducción y Redes Neuronales Artificiales (RNA), como se muestra en la Figura 4. Según esta arquitectura, se enseña al NA a identificar patrones y correlaciones entre las características de entrada. El clasificador de inducción utiliza la información que el ANN ha aprendido para mejorar la precisión en la identificación de software malicioso de software seguro.
Tras extensas pruebas, el ANN dentro del ANC se configuró con tres capas ocultas totalmente conectadas, cada una con M nodos, siguiendo una capa de entrada con N nodos. Hay una capa de salida que se conecta al clasificador de inducción tras una capa oculta adicional completamente conectada con M/2 nodos. La ecuación (8) determina el número de nodos en las capas ocultas:
(8)
donde M denota el número de nodos en una capa oculta, N representa el número de características de entrada, y α es un parámetro que varía entre 2 y 10. La función de activación (como se muestra en la Ecuación (9)) desempeña un papel crucial para determinar si una neurona está activada, dependiendo de que la salida supere un umbral especificado.
(9)
Aquí, hθ(x) se calcula según la ecuación (3). El ANC utiliza el optimizador Adam para ajustar los pesos de la red y las tasas de aprendizaje. En Adam, las tasas de decaimiento para la estimación
del primer momento y la estimación del segundo momento
para cada peso ωij se denotan por β1 y β2, respectivamente. Sea N la tasa de aprendizaje. Las reglas de actualización para Adán se muestran en Ecuaciones (10) y (11):
(10)
(11)
Las estimaciones de primer y segundo momento corregidas por sesgo,
y
, se calculan como se calcula usando las Ecuaciones (12) y (13):
(12)
(13)
Estos cálculos aseguran que el optimizador mantenga tasas de aprendizaje adecuadas para cada peso, facilitando un entrenamiento eficiente y eficaz del ANC.
La regla de actualización de peso para cada conexión en la red neuronal se define mediante la Ecuación (14):
(14)
Tras actualizar los pesos de la red neuronal, el rendimiento se evalúa utilizando una función de pérdida que mide la discrepancia entre las salidas previstas y reales. En este modelo, se emplea el Error Absoluto Medio (MAE), tal como se define en la Ecuación (15), para este propósito:
(15)
En este contexto, yi representa la salida real,
denota la salida predicha y n es el número total de instancias de salida. Después de que la red neuronal ha sido entrenada durante un número definido de épocas, las representaciones aprendidas del espacio de características se transfieren al clasificador de inducción para distinguir entre malware y software benigno.
El propuesto Clasificador Neuronal Artificial (ANC) funciona como un marco híbrido que combina las capacidades de aprendizaje de características de una Red Neuronal Artificial (RNA) con las fortalezas de toma de decisiones de los clasificadores de inducción tradicionales, como el Bosque Aleatorio y el Árbol de Decisión. En este diseño, el RNA primero procesa las características seleccionadas obtenidas del autocodificador para aprender patrones complejos y correlaciones entre atributos de entrada. Las representaciones resultantes aprendidas se pasan luego al clasificador de inducción, que realiza la clasificación final de las aplicaciones Android como benignas o maliciosas. De este modo, el ANC actúa como un envoltorio, mejorando los clasificadores convencionales con incrustaciones profundas de características mientras preserva su interpretabilidad. Este mecanismo híbrido permite al ANC aprovechar tanto la abstracción de características de alto nivel del ANN como la toma de decisiones robusta de clasificadores de aprendizaje automático establecidos, lo que resulta en una mayor precisión y generalización en la detección.
Montaje experimental
En la configuración experimental se utilizó un sistema operativo Windows 10 de 64 bits, con un procesador i5 - 2,30 GHz, 8 GB de RAM y un disco duro de 2 TB. Se utilizó Python 3.7 como lenguaje de programación, y la plataforma Jupyter se configuró para habilitar paquetes de aprendizaje automático y deep learning.
El IEEE Dataport proporcionó los datos de secuencias de llamadas API del experimento, que incluían 43.876 secuencias, de las cuales 42.797 fueron clasificadas como malware y 1.079 como goodware. Virus Total se utilizó para la verificación, y el entorno Cuckoo Sandbox para la recopilación de datos. La Tabla 1 ofrece una explicación completa de las secuencias de llamadas a la API.