Red neuronal BP optimizada según el algoritmo del grupo salp (aplicación de predicción) - con código
Directorio de artículos
Resumen: Este artículo presenta principalmente cómo utilizar el algoritmo del grupo salp para optimizar la red neuronal BP y aplicarlo a la predicción.
1. Introducción de datos
En este caso, hay 2000 conjuntos de datos, de los cuales 1900 conjuntos se utilizan para entrenamiento y 100 conjuntos para pruebas. La entrada de los datos son datos bidimensionales y la salida prevista son datos unidimensionales.
2. Red neuronal BP de optimización del grupo Salp
2.1 Configuración de parámetros de la red neuronal BP
Los parámetros de la red neuronal son los siguientes:
%% 构造网络结构
%创建神经网络
inputnum = 2; %inputnum 输入层节点数 2维特征
hiddennum = 10; %hiddennum 隐含层节点数
outputnum = 1; %outputnum 隐含层节点数
2.2 Aplicación del algoritmo de enjambre de salpas
Consulte el principio del algoritmo del grupo salp: https://blog.csdn.net/u011835903/article/details/107767869
Los parámetros del algoritmo del enjambre de salpas se establecen como:
popsize = 20;%种群数量
Max_iteration = 20;%最大迭代次数
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: 2*10 = 20, es decir, inputnum * hidenum;
El número de pesos en la primera capa es: 10, es decir, hidenum;
El número de umbral de la segunda capa es: 10*1 = 10, es decir, num oculto * numsalida;
El número de pesos en la segunda capa es: 1, es decir, número de salida;
Entonces podemos ver que nuestra dimensión optimizada es: numentrada * numoculta + numoculta*numosalida + numoculta + numsalida = 41;
Configuración del valor de la función Fitness:
En este artículo, la función de aptitud se establece de la siguiente manera:
aptitud = argmin (mse (Error de datos de tren) + mes (Error de datos de prueba)) aptitud = argmin(mse(TrainDataError) + mes(TestDataError))aptitud _ _ _ _=arg min ( m se ( T r ain D a t a E rror ) _ _+m es ( T es t D a t a Error )) donde TrainDataError y TestDataError son
los errores de predicción del conjunto de entrenamiento y del conjunto de prueba respectivamente. mse es encontrar la función de error cuadrático medio, y la función de aptitud muestra que la red que finalmente queremos es una red que puede 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 del enjambre de salpas que el error general disminuye continuamente, lo que indica que el algoritmo del enjambre de salpas ha desempeñado un papel optimizado: