$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Esta sección analiza materiales y métodos de investigación relacionados con sistemas de detección de ataques en el entorno IoT. Para replicar los experimentos en el conjunto de datos CIC-IoT-2023, este protocolo describe procedimientos específicos. La siguiente Tabla de Materiales contiene una lista de todo el hardware y software utilizado. Python (pandas, scikit-learn y TensorFlow Keras) se utiliza para implementar la pipeline, que se ejecuta en Google Colab con PySpark disponible para preprocesamiento de archivos grandes. Se ha proporcionado una descripción detallada de los procedimientos de preprocesamiento de datos.
Conjunto de datos
El conjunto de datos CIC-IoT-2023, que fue publicado por el Instituto Canadiense de Ciberseguridad de la Universidad de Nuevo Brunswick. "CIC IoT dataset 2023" (página de datasets UNB CIC) y el artículo34 del conjunto de datos son la página y el artículo oficial del CIC. El conjunto de datos puede descargarse desde la página web del CIC y es accesible al público general. En lugar de usar PCAPs en bruto, en esta investigación se utilizan los archivos CSV de características preextraídos (flujos/características). Wireshark/mergecap y CICFlowMeter se utilizan en los experimentos en bruto que generaron el conjunto de datos; en esta obra se utilizan CSVs destacados. Este conjunto de datos, derivado de dispositivos IoT reales, se utiliza en esta investigación. Incluido en el conjunto de datos se incluyen registros de 33 ataques conocidos a 105 dispositivos IoT diferentes. A diferencia de conjuntos de datos IoT anteriores, CIC-IoT-2023 incluye una amplia variedad de tipos de ataques. La cantidad de cada etiqueta vinculada al tráfico benigno se muestra en la Figura 1. Un total de 46 atributos y 1 etiqueta conforman este conjunto de datos. En comparación con CSE-CIC-IDS 2018, que tenía 84 características, CIC-IoT-2023 tiene 37 menos de funcionalidades.

Figura 1: Recuento de ataques en el conjunto de datos CICIoT2023. Se describen los nombres de conteo de diferentes tipos de ataques y registros benignos en el conjunto de datos CICIot2023. Estos diferentes tipos de ataques se clasifican ampliamente en 7 clases de ataque. Así que hay un total de 8 clases, incluyendo benigna en la clasificación multiclase. Por favor, haz clic aquí para ver una versión ampliada de esta figura.
Preprocesamiento de datos
No se deben utilizar conjuntos de datos en algoritmos de aprendizaje profundo sin un preprocesamiento suficiente. El preprocesamiento se realiza para proporcionar al algoritmo datos más finos, haciendo que el modelo sea finalmente más eficiente. La salida de la tubería de preprocesamiento—tras la codificación de etiquetas, el escalado de características y la selección de características—se denomina "Datos Finales" y sirve como entrada tanto para los componentes CNN como para los de Transformer. Los siguientes pasos están en Google Colab usando Python. Esta investigación utilizó Python 3.8.10, pandas 1.3.4, NumPy 1.21.4, scikit-learn 1.0.2, matplotlib 3.4.3 y TensorFlow/Keras 2.6.0. La semilla aleatoria se estableció en 42 para todas las partidas.
Adquisición de datos
Este paso incluye limpiar los datos adquiridos en contextos reales, ya que a menudo contienen muchos errores e inconsistencias. Si el conjunto de datos contiene valores de texto, por ejemplo, es imposible utilizar dichos valores en el entrenamiento de aprendizaje profundo sin convertirlos primero a forma numérica. Al trabajar con el conjunto de datos, lo primero que se hace es eliminar los valores en blanco y eliminar celdas sin datos. Se eliminaron las filas con datos faltantes para evitar cualquier efecto adverso en el modelo.
El conjunto de datos CIC-IoT-2023 se carga usando pd.read_csv('ciciot2023_features_part.csv'). Esta investigación utilizó Google Colab para el entrenamiento de modelos y PySpark para la limpieza inicial. Para detectar ausencias, se utilizan los siguientes métodos: df.shape, df.info(), df.isnull().sum() y df.duplicated().sum() para duplicados. Los duplicados se eliminan usando df.drop_duplicates(inplace=True). El tipo numérico de columna se verifica usando la fórmula df[col] = pd.to_numeric(df[col], errors='coerce'). Si aparecen nuevos NaN, se vuelve a aplicar el manejo de valor faltante. Las características que son constantes o casi constantes también se eliminan usando df.drop(columns=low_variance_cols, inplace=True).
Codificación de etiquetas
El siguiente paso es transformar las etiquetas de texto en una representación numérica para que el modelo pueda entenderlas. Para la clasificación binaria, existen dos tipos separados de etiquetas. Hay 46.686.579 registros, de los cuales 45.588.384 están catalogados como ataques maliciosos. Con 1.098.195 discos incluidos, la etiqueta benigna está fijada en 0. Existen siete tipos distintos de ataques en la clasificación multiclase. Hay ocho etiquetas en total, incluyendo el tráfico benigno. La Figura 2 muestra el recuento de cada categoría de estas etiquetas. El mapeo multiclase usado en esta investigación es: 0 para Benigno, 1 para DoS, 2 para DDoS, 3 para reconocimiento, 4 para ataque web, 5 para suplantación, 6 para fuerza bruta y 7 para ataque mirai.

Figura 2: El porcentaje de clases de ataque incluyendo tráfico benigno. Existen siete tipos distintos de ataques en la clasificación multiclase. Hay ocho etiquetas en total, incluyendo el tráfico benigno. La figura muestra el recuento de cada categoría de estas etiquetas. Por favor, haz clic aquí para ver una versión ampliada de esta figura.
Escalado de características
El escalado de características es un método común para mejorar el rendimiento general de los modelos de aprendizaje profundo. El escalado de características en este estudio se realiza utilizando tecnologías Min Max Scaler y Standard Scaler. La investigación no los utilizó para las pruebas; en su lugar, solo utilizaba el escalador del conjunto de entrenamiento para evitar fugas de datos. Los datos pueden normalizarse a una distribución de media cero y una desviación estándar con la ayuda del método Standard Scaler. Una forma de hacerlo es dividir el número original por la desviación estándar. Para esto, la función StandardScaler() se llama importando StandardScaler desde sklearn.preprocessing. Al aplicar un rango, a menudo entre 0 y 1, el Min Max Scaler normaliza los datos. Se utilizó la función MinMaxScaler() de scikit-learn para implementar esto.
Como se indica en la Ecuación (1), la fórmula de normalización es:
(1)
Donde X representa el valor original en puntos y X normalizado su forma transformada, Xmin representa el valor más bajo de la variable, mientras que Xmax denota el valor más alto de la variable dentro del conjunto de datos.
Selección de características
Incorporar todas las características de grandes conjuntos de datos en el entrenamiento no siempre es útil. Las características dentro del conjunto de datos pueden mostrar correlación y no mejorar el resultado. Además, un número excesivo de valores incrementa el coste de la formación. Para encontrar características que no son necesarias, calculamos sus matrices de correlación y excluimos aquellas con correlaciones fuertes del conjunto de datos. El coeficiente de correlación de Pearson, que cuantifica la relación lineal entre dos características, se utiliza para calcular la correlación. Se obtiene un valor entre -1 y +1 dividiendo la covarianza de las dos variables por el producto de sus desviaciones estándar. Esto es opcional y se realiza en la tubería con la Eliminación de Características Recursivas (RFE) para la selección de características con un clasificador de árbol de decisión. La eliminación de características recursivas encuentra repetidamente las características más relevantes entrenando el modelo clasificador y descartando las menos significativas. El código utiliza RFE de sklearn.feature_selection con un clasificador de árbol de decisión como estimador. Tras la implementación de la eliminación recursiva de características, se han seleccionado 30 de las 46 características para cada una de las siete categorías de ataque, como se muestra en la Tabla 2. Una característica puede categorizarse bajo muchas clasificaciones de ataque. Tras completar el proceso descrito en la Figura 3, se lleva a cabo el proceso de selección de las clases de ataque incluidas en el conjunto de datos. Las CNN modernas destacan en el aprendizaje de representaciones jerárquicas a partir de datos en bruto, pero preseleccionar un conjunto de características pequeño y de alta calidad usando RFE tiene ventajas significativas. Primero, RFE con un clasificador de árbol de decisión elimina rápidamente datos ruidosos o redundantes que podrían retrasar la convergencia durante los primeros ciclos de entrenamiento. En segundo lugar, centrar la CNN en un grupo más pequeño de señales realmente valiosas reduce el sobreajuste, lo cual es crucial en conjuntos de datos de tráfico IoT con patrones benignos y dañinos muy sesgados. El método de eliminación recursiva del árbol de decisión clasifica las características para una mejor explicabilidad del modelo y para identificar sesgos específicos de dominio antes del entrenamiento profundo. Finalmente, inicializar el CNN-Transformer en este conjunto de características podado produce una convergencia más rápida y un menor uso de memoria GPU, demostrando que RFE acelera y estabiliza activamente el aprendizaje de características de extremo a extremo.
Tabla 2: Las características seleccionadas del conjunto de datos "CIC-IoT-2023". Se han seleccionado 30 de las 46 características para cada una de las siete categorías de ataque en esta investigación utilizando RFE. La tabla describe las 30 características seleccionadas. Por favor, haz clic aquí para descargar esta tabla.

Figura 3: Funcionamiento del modelo híbrido propuesto. La finalización del proceso se detalla en la figura. Se lleva a cabo el proceso de selección de las clases de ataque incluidas en el conjunto de datos. Por favor, haz clic aquí para ver una versión ampliada de esta figura.
Divide el conjunto de datos en un conjunto de 80% de tren y otro de prueba del 20% siguiendo el paso: train_test_split (X_train, y_train, test_size=0,20, random_state=42). El 80% del conjunto de entrenamiento se divide además usando train_test_split(X_train, y_train, test_size=0,20,random_state=42). Toda la selección de modelos y el ajuste de hiperparámetros se realizan utilizando estas divisiones precisas. La técnica de sobremuestreo de minorías sintéticas (SMOTE) se utiliza cuando existe un problema de desequilibrio de clases. Solo el set de entrenamiento fue sometido a SMOTE tras la división y escalado. El efecto de la SMOTE se presenta en los resultados. Tras RFE, el estudio sigue en paralelo las ramas CNN y Transformer utilizando las mismas 30 características que se eligieron para cada muestra. Los detalles adicionales sobre el procesamiento de estas 30 características se mencionan en la sección de metodología propuesta.
Metodología propuesta
Se construirá un marco de seguridad eficaz para sistemas IoT que pueda detectar ataques con mayor precisión con la ayuda de un modelo de aprendizaje profundo. Se propone una estrategia de seguridad híbrida que combine redes neuronales convolucionales (CNN) con modelos transformadores. Este método consiste en entrenar la arquitectura CNN usando pesos de un conjunto de datos mayor y luego afinar los parámetros del modelo usando un conjunto de datos más pequeño como objetivo. El objetivo principal de este modelo es mejorar la eficiencia de la detección de intrusiones en el IoT.
Esta investigación utilizó PySpark, una plataforma de Google Colab que permite a los usuarios ejecutar programas en Python en Apache Spark. Utilizando los paquetes Scikit-learn y Keras, se han desarrollado algoritmos de aprendizaje profundo. Para entrenar y probar el modelo, se utilizó la siguiente configuración: Sistema operativo: Mac OS v12.6; - M2 Apple Silicon; - Pantalla de 13,3 pulgadas; - CPU de 8 núcleos; - GPU de 8 núcleos; - 32 GB de RAM; - SSD de 256 GB.
El Instituto Canadiense de Ciberseguridad (CIC) ha creado un conjunto de datos completo de amenazas IoT para avanzar en aplicaciones de análisis de seguridad en entornos prácticosde IoT 34. Hubo un total de 33 ataques a una red de 105 dispositivos conectados en un sistema IoT. Con un total de 46.179.314 incidentes, los ataques se dividen en siete grupos: DDoS, Recon, DoS, basados en la web, suplantación y fuerza bruta, además de Mirai. Hay 37.349.263 instancias en el conjunto de entrenamiento, 8.830.051 instancias en el conjunto de pruebas y un total de 46 características en el conjunto de datos. En todos los casos, dispositivos IoT malintencionados lanzan ataques a otros dispositivos IoT. Un total de 67 dispositivos IoT y 38 dispositivos Zigbee y Z-Wave conectados a 5 hubs se vieron afectados por los ataques. Se puede configurar una red de sensores, cámaras, microcontroladores y dispositivos inteligentes para el hogar que ejecuten diferentes tipos de ataques y registren el tráfico que resulta de ellos. Wireshark captura el tráfico de red en formato PCAP para su análisis más profundo. Como cada experimento almacena dos flujos de datos, se utiliza mergecap para combinar los archivos PCAP. Se utilizaron varios dispositivos IoT para compilar el conjunto de datos, incluyendo reproductores de audio, grabadoras de vídeo, hubs, enchufes, sistemas de domótica, iluminación, sensores y dispositivos de nueva generación.
Esta sección ofrece una metodología de investigación detallada que consta de muchas fases secuenciales utilizadas en el estudio. Además, la parte define el algoritmo propuesto de forma secuencial y proporciona un diagrama de flujo detallado del proceso de investigación.
CNN
El algoritmo CNN utiliza una red neuronal artificial, un enfoque de aprendizaje profundo. La Figura 4 ilustra el algoritmo subyacente que utiliza CNN: capas totalmente conectadas, pooling, aplanamiento y convolución forman parte de él. Una CNN no puede funcionar sin la capa de convolución. Los datos de las celdas receptoras se procesan mediante la capa convolucional.
En la Ecuación (2), el volumen de salida (Vo) está determinado por P (zancada), Vi (volumen de entrada), S (tamaño del núcleo de neuronas de la capa convolucional) y M (relleno cero).
(2)
Después, se utiliza un filtro para extraer las propiedades del valor de entrada durante la convolución. Esta capa crea un mapa de características. Reducir el tamaño de los datos de entrada mediante agrupación simplifica el entrenamiento y reduce el número de parámetros a calcular. La capa de agrupación puede elegirse utilizando el valor más grande dentro del tamaño dado o la media de los valores. La técnica desarrollada incluye dos capas de convolución y dos niveles de agrupación. Aquí comienza el proceso de extracción de características. Los datos de características obtenidos están disponibles para su cálculo. Los algoritmos CNN están disponibles en una, dos o tres dimensiones. El modelo empleaba una red neuronal convolucional con solo una dimensión. Las capas en el área clasificadora se conocen como aplanadas, completamente conectadas. Los datos deben aplanarse tras la fase convolucional para que puedan usarse en la fase completamente conectada. La capa de aplanamiento es donde se realiza este proceso. Dentro de la capa totalmente enlazada, se utiliza el paradigma convencional de las redes neuronales artificiales. Para aplicar CNN a los datos que no son basados en imágenes, las dimensiones de entrada deben transformarse. Como resultado, CNN puede usar capas convolucionales unidimensionales que sonunidimensionales de 35 dimensiones.

Figura 4: Algoritmo básico de CNN. Se describen el funcionamiento básico y los componentes del modelo CNN. Por favor, haz clic aquí para ver una versión ampliada de esta figura.
Aprendizaje con transformadores
Además, para realizar más experimentos, utilizamos el marco de modelado de transformadores. El modelo puede manejar simultáneamente todos los puntos de la secuencia gracias al mecanismo de auto-atención del transformador. El resultado es un tiempo de entrenamiento más rápido para el modelo y un mejor uso de los recursos informáticos por parte del transformador durante la inferencia y el entrenamiento. El transformador está compuesto principalmente por una serie de codificadores y decodificadores apilados. El proceso de codificación implica cambiar un lenguaje por otro, pero el proceso de decodificación implica determinar la probabilidad de que otro lenguaje se utilice con resultados previos. Dado que los codificadores son principalmente responsables de la extracción de características, el modelo sugerido utiliza exclusivamente componentes codificadores. El codificador transformador consta de incrustación de entrada/posición, una red neuronal de avance, normalización de capas, autoatención multicabeza y una red residual.
Para preparar los datos de entrada para su procesamiento por el transformador, se utiliza una capa de incrustación para convertir las características categóricas en representaciones vectoriales densas. La incrustación de posición muestra cómo las características se conectan secuencialmente, mientras que la incrustación de entradas muestra cómo diferentes entradas están relacionadas en un espacio común. Antes de que el transformador procese características categóricas, esta investigación utiliza incrustación de entrada para transformarlas en vectores densos.
Una expansión del mecanismo de atención, el mecanismo de autoatención multicabezal, es la base de la arquitectura del transformador. Utilizando un producto escalar escalar, esta investigación emplea el mecanismo de autoatención multicabezal.
(3)
donde se denotan respectivamente la matriz de consulta (Q), la matriz clave (K), la matriz de valores (V) y la dimensión de la matriz clave (dk). Al permitir que el modelo se concentre en datos de diversas características mapeadas a subespacios separados, resultando en valores de atención distintos, un mecanismo de atención a escala de producto escalar con múltiples cabezas difiere del mecanismo de atención escalar escalar a escala. El sobreajuste es menos probable cuando los niveles de atención se calculan de forma independiente para cada cabeza. La formulación específica es la siguiente:
(4)
(5)
Donde h es el número de cabezas de atención, d,v yd representan la dimensión de v y el modelo. Además

A continuación, se utiliza la normalización de capas para estabilizar el proceso de entrenamiento. Para evitar la explosión de gradiente, la normalización de capas limita la salida de cada capa a un cierto rango. Tanto la convergencia como la velocidad de entrenamiento del modelo pueden mejorar con esto. Mientras que la normalización por lotes tiene en cuenta los datos por lotes, la normalización por capas no lo hace.
Modelo propuesto CNN-Transformer
Esta investigación ofrece una técnica híbrida CNN-Transformer para detectar intrusiones en redes IoT, considerando los beneficios distintivos de ambas arquitecturas. La Figura 5 muestra los componentes principales de la técnica híbrida propuesta CNN-Transformador. Tras realizar todas las etapas de preprocesamiento, incluyendo limpieza, normalización, codificación de etiquetas y selección de características, cada muestra del conjunto de datos se representa mediante un vector de características de 30 dimensiones, llamado Datos Finales. Los mismos Datos Finales se duplican y se alimentan en paralelo a ambas ramas del modelo híbrido. Luego, estos Datos Finales se envían simultáneamente a los bloques CNN y Transformer. CNN y Transformer no dependen en absoluto el uno del otro; Ambos pueden trabajar con los mismos datos de entrada al mismo tiempo. Las salidas aplanadas de las dos ramas, CNN y Transformer, se concatenan para producir un vector de características fusionadas, que se pasa a las capas densas, que las clasifican. El bloque CNN cambia la forma de entrada a (num_features, 1) para que se puedan realizar operaciones convolucionales entre dimensiones de características para encontrar patrones espaciales locales. Al mismo tiempo, la rama Transformer cambia la misma entrada a un formato secuencial y la envía a un espacio de incrustación de dimensión superior, seguido de la codificación posicional. Esto permite al transformador prestar atención a sí mismo en el espacio de características y encontrar relaciones contextuales globales. El diseño único del transformador se utiliza para la extracción de características, mientras que la función sigmoide y las capas completamente enlazadas proporcionan la conexión de mapeo entre características y etiquetas. El modelo CNN-Transformador está representado estructuralmente por la Figura 5. El resultado es un sistema de ocho categorías para clasificar ataques, con DDoS, Reconocimiento, DoS, Benigno, Web-based, Suplantación, Brute Force y Mirai como partes componentes. El proceso de evaluación del transformador CNN propuesto se muestra en la Figura 5.

Figura 5: Arquitectura del modelo propuesto. La figura muestra la forma de entrada y el proceso de evaluación del CNN-Transformer propuesto. Por favor, haz clic aquí para ver una versión ampliada de esta figura.
Dos redes neuronales convolucionales unidimensionales (CNN) con filtros de 64 y 128 unidades y un tamaño de 3 núcleos, dos capas de max-pooling, un escalón de aplanamiento, tres capas densas con 256, 128 y 64 unidades, y tres capas de dropout conforman la capa de red neuronal convolucional (CNN).
Los datos de entrada se procesan mediante una capa convolucional 1D con una función de activación de ReLU, 64 filtros, un núcleo 3x3 y un paso 1x1 en la primera capa. Tras la capa anterior hay una capa MaxPooling1D con un tamaño de pool de 2. Para hacer el modelo más flexible y disminuir su coste computacional, esta capa disminuye las dimensiones espaciales del área de salida. La tercera capa es otra capa convolucional 1D; tiene 128 filtros, un núcleo de tres tamaños, una escala de uno y una función de activación llamada ReLU. Usando más filtros para extraer las características de entrada, esta capa es similar a la primera capa de max pooling. La salida de la primera capa se procesa entonces usando la técnica. Después, se añadió una capa máxima de pooling después de la segunda capa de convolución, y su tamaño de pool también fue 2. Una vez más, esta capa se utiliza para reducir el muestreo de los mapas de características. La quinta capa es una capa de aplanamiento, y toma la salida de la capa anterior y la convierte en un vector unidimensional.
Los subconjuntos de características obtenidos se incrustan como último paso antes de convertirse en la entrada del transformador. Además, se utiliza la atención multi-cabeza —un vector unidimensional de ocho cabezas con una dimensión de 32 claves— para evaluar la importancia de cada cabeza. La capa de atención multi-cabeza es el componente principal del transformador. Esta capa permite al modelo aprender de las representaciones incrustadas de diferentes características de forma adaptativa. La capa de atención de múltiples cabezas está compuesta por varios cabezales de autoatención, que también se denominan "atención escalada en producto escalar". Tras aplicar la normalización de capas con la épsilon ajustada a 1e-6, el objetivo es eliminar discrepancias de escala entre diversas características y garantizar la estabilidad de la salida. Al mantener la salida de cada capa dentro de un rango predeterminado, la normalización de capas reduce la probabilidad de explosión del gradiente. Tras la salida del transformador hay una capa de aplanamiento, que simplifica su combinación con la CNN al reducirla a un solo vector.
El siguiente paso es combinar las salidas aplanadas de CNN y Transformer usando una capa de concatenación. La función de activación "relu", regularización L2 y una capa densa con 256 unidades siguen a la capa de aplanamiento. A esto le sigue una capa de dropout con una tasa de 0,5, que ayuda a evitar el sobreajuste. A continuación se sigue una capa densa adicional de 128 unidades usando regularización L2 y la función de activación "relu". La tasa de abandono en una capa adicional es 0,3. La función de activación de ReLU, la regularización L2 y una capa densa de 64 unidades conforman la capa siguiente. La siguiente capa adopta la forma de una capa de dropout de 0,2 tasas, eliminando aleatoriamente el 20% de las unidades en su interior. Una capa densa con una función de activación softmax crea una distribución de probabilidad para las clases de salida de la última capa. Hay exactamente tantas unidades en esta capa como clases de salida.
El modelo sugerido puede expresarse numéricamente de la siguiente manera:
Sea X los datos de entrada CNN, donde X
R(n×1), tras remodelar, y n es el número de características seleccionadas, respectivamente. X se coloca en un espacio de incrustación de dimensión superior de forma R(n × d_model) para el bloque Transformer. Antes de entrar en el mecanismo de autoatención, se utiliza codificación posicional.
A continuación se muestra la expresión de la operación en la capa Conv1D, que utiliza 64 filtros y un tamaño de núcleo de 3:
(6)
donde Yi,j es la salida en la posición j deli-ésimo filtro, k es el núcleo de tamaño 3, b1
R64 es el término de sesgo para cada filtro, Wk representa los pesos del filtro y ReLU es la función de activación. A continuación, se aplica la capa MaxPooling con un tamaño de pool de 2, dando una salidaZ 1,j.
(7)
Se incluye una capa adicional de convolución ID con un tamaño de núcleo de 3 y 128 filtros como tercera capa del modelo; su expresión es:
(8)
Donde k es el núcleo de tamaño 3, b2
R128 es el término de sesgo para cada filtro, y ReLU es la función de activación. Se aplica otra capa de pool máximo, recibiendo la entrada de la segunda capa de convolución con un tamaño de pool de 2. La salida Z2,j viene dada por:
(9)
La quinta capa es una capa de aplanamiento expresada como:
(10)
A continuación están las capas transformadoras, que incluyen una capa de incrustación, una capa de atención multicabeza y normalización de capas
(11)
E es el vector de incrustación para la etiqueta de clase de entrada c, y We es la matriz de pesos que contiene los vectores de incrustación para todas las categorías. Esto asigna cada entero en c a un vector denso de 32 componentes reales. A continuación viene una capa de atención multicabeza, como se formula en las Ecuaciones (3),(4) y (5).
La matriz clave tiene un tamaño ded k = 32 y una dimensión de h=8. D,V yD Modelo representan las dimensiones respectivas de V y modelo. Además 
Para una salida x = MultiHead(Q,K,V), la normalización de capas proporciona:
(12)
Donde y es la salida normalizada, γ y β son los parámetros aprendibles, y μ y σ2 denotan la media y la varianza para x, respectivamente. A continuación está la capa de aplanamiento para el transformador, definida como

Al final de todas las capas, la expresión resultante se muestra como








donde Z1
R256, Z2
R128, Z3
R 64 e Y
R 8. Este modelo híbrido también calcula la función de pérdida para la clasificación multiclase, que puede expresarse como

Dónde:
Yc representa la etiqueta verdadera (codificada con un solo hot) para la clase cc,
Y'c es la probabilidad predicha para la clase c
El algoritmo propuesto se explica en detalle en la Tabla 3 .
Tabla 3: El algoritmo propuesto CNN-Transformer. El algoritmo propuesto se explica paso a paso en la Tabla 3. Por favor, haz clic aquí para descargar esta tabla.