Red neuronal BP optimizada por Satin Blue Bowerbird (aplicación de clasificación) - con código
Directorio de artículos
Resumen: Este artículo presenta principalmente cómo utilizar el algoritmo Satin Blue Bowerbird 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. Satin Blue Bowerbird 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:
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 Bowerbird azul satinado
Consulte el principio del algoritmo Satin Blue Bowerbird: https://blog.csdn.net/u011835903/article/details/107857884
Los parámetros del algoritmo Satin Blue Bowerbird 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 Satin Blue Bowerbird que el error general disminuye continuamente, lo que indica que el algoritmo Satin Blue Bowerbird desempeña un papel de optimización: