Red neuronal BP basada en la optimización Dragonfly (aplicación de clasificación) - con código

Red neuronal BP basada en la optimización Dragonfly (aplicación de clasificación) - con código


Resumen: Este artículo presenta principalmente cómo utilizar el algoritmo Dragonfly para optimizar la red neuronal BP, utilizando datos del iris para dar una explicación simple.

1. Introducción a los datos del iris.

Este caso utiliza los datos públicos del iris de Matlab como datos de prueba, que tienen 4 dimensiones y 3 categorías. El formato de datos es el siguiente:

Característica 1 Característica 2 Característica 3 categoría
Conjunto único de datos de iris 5.3 2.1 1.2 1

Las tres categorías están representadas por 1, 2 y 3.

2. Organización del conjunto de datos

Los datos del iris contienen un total de 150 grupos de datos, que se dividen en 105 grupos de conjuntos de entrenamiento y 45 grupos de conjuntos de prueba. Como se muestra en la siguiente tabla:

conjunto de entrenamiento (conjunto) Conjunto de prueba (grupo) Datos totales (grupo)
105 45 150

Procesamiento de datos de categorías: las categorías de datos originales están representadas por 1, 2 y 3. Para facilitar el entrenamiento de redes neuronales, las categorías 1, 2 y 3 están representadas por 1, 0, 0; 0, 1, 0; 0, 0, 1 respectivamente.

Al realizar el entrenamiento de datos, todos los datos de características de entrada se normalizan.

3. Dragonfly optimiza la red neuronal de BP

3.1 Configuración de parámetros de la red neuronal BP

En términos generales, los algoritmos inteligentes se utilizan generalmente para optimizar los pesos y umbrales iniciales de la red neuronal BP para mejorar el rendimiento de la red neuronal BP. Este caso se basa en datos del iris. Dado que la dimensión de los datos del iris no es alta, se utiliza una red neuronal BP simple. Los parámetros de la red neuronal son los siguientes:

Estructura de la red neuronal

Figura 1. Estructura de la red neuronal

Los parámetros de la red neuronal son los siguientes:

%创建神经网络
inputnum = 4;     %inputnum  输入层节点数 4维特征
hiddennum = 10;     %hiddennum  隐含层节点数
outputnum = 3;     %outputnum  隐含层节点数
net = newff( minmax(input) , [hiddennum outputnum] , {
    
     'logsig' 'purelin' } , 'traingdx' ) ;
%设置训练参数
net.trainparam.show = 50 ;
net.trainparam.epochs = 200 ;
net.trainparam.goal = 0.01 ;
net.trainParam.lr = 0.01 ;

3.2 Aplicación del algoritmo Dragonfly

Para conocer el principio del algoritmo Dragonfly, consulte: https://blog.csdn.net/u011835903/article/details/107783363

Los parámetros del algoritmo Dragonfly se establecen como:

popsize = 10;%种群数量
    Max_iteration = 15;%最大迭代次数
lb = -5;%权值阈值下边界
ub = 5;%权值阈值上边界
%  inputnum * hiddennum + hiddennum*outputnum 为阈值的个数
%  hiddennum + outputnum 为权值的个数
dim =  inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum ;%  inputnum * hiddennum + hiddennum*outputnum维度

Cabe señalar aquí que el número de umbral de la red neuronal se calcula de la siguiente manera:

Esta red tiene 2 capas:

El número de umbrales en la primera capa es: 4*10 = 40, es decir, inputnum * hidenum;

El número de pesos en la primera capa es: 10, es decir, num oculto;

El número de umbrales en la segunda capa es: 3*10 = 30, es decir, num oculto * numsalida;

El número de pesos en la segunda capa es: 3, es decir, número de salida;

Entonces podemos ver que las dimensiones que optimizamos son: numentrada * numoculta + numoculta*numsalida + numoculta + numsalida = 83;

Configuración del valor de la función Fitness:

Este artículo establece la función de aptitud de la siguiente manera:
aptitud = argmin (T rain D ata E rror Rate + T est D ata E rror R ate) aptitud = argmin (TrainDataErrorRate + TestDataErrorRate)aptitud _ _ _ _=ar g min ( T r ain D a t a E rror R a t e _+T es t D a t a Error R a t e )
donde TrainDataErrorRate y TestDataErrorRate son las tasas de clasificación de errores del conjunto de entrenamiento y del conjunto de prueba respectivamente . La función de aptitud muestra que la red que finalmente queremos es una red que pueda obtener mejores resultados tanto en el conjunto de prueba como en el conjunto de entrenamiento.

4.Resultados de la prueba:

Se puede ver en la curva de convergencia del algoritmo Dragonfly que el error general disminuye continuamente, lo que indica que el algoritmo Dragonfly desempeña un papel de optimización:
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

5.Código Matlab

Supongo que te gusta

Origin blog.csdn.net/u011835903/article/details/133561786
Recomendado
Clasificación