Algoritmo genético GA Optimized BP Neural Network (GA-BP) Predicción de regresión-Implementación de código de Matlab

I. Introducción

    El algoritmo genético (GA) y la red neuronal de retropropagación (Red neuronal de retropropagación, BPNN) son algoritmos y modelos de optimización de uso común, que se pueden usar en combinación para optimizar los problemas de predicción de regresión.

    Cuando se utiliza el algoritmo genético para optimizar el problema de predicción de regresión de la red neuronal de BP, la capacidad de búsqueda del algoritmo de optimización del algoritmo genético y la capacidad de aprendizaje de la red neuronal de BP se pueden combinar para aprovechar al máximo las ventajas de ambos, de modo que para obtener mejores resultados de predicción de regresión.

    La idea principal del algoritmo genético es simular el proceso de selección natural y el aumento de la aptitud en el proceso de evolución biológica, y optimizar continuamente la aptitud de la población a través de operaciones como selección, cruce y mutación, y finalmente obtener la solución óptima. . Cuando se utiliza un algoritmo genético para optimizar el problema de predicción de regresión de la red neuronal de BP, los parámetros de la red neuronal de BP se codifican en un cromosoma y cada gen representa el valor de un parámetro. Mediante la actualización constante de los cromosomas de la población, es decir, la actualización constante de los parámetros de la red neuronal de BP, con el fin de obtener mejores resultados de predicción de regresión.

    La red neuronal BP es un modelo de red neuronal artificial de uso común con una gran capacidad de aprendizaje y adaptabilidad. La red neuronal de BP ajusta continuamente los elementos de peso y sesgo a través del algoritmo de propagación hacia atrás para reducir gradualmente el error de predicción, a fin de obtener resultados de predicción de regresión más precisos. Cuando se usa el algoritmo genético para optimizar el problema de predicción de regresión de la red neuronal de BP, los parámetros de la red neuronal de BP se usan como la función objetivo de la optimización del algoritmo genético, y el error de predicción se usa como la función de aptitud para actualizar continuamente el parámetros de la red neuronal de BP para obtener un mejor resultado de pronóstico de regresión.

Adquisición de código: haga clic aquí para saltar directamente

Dos, parte del código

net=newff(inputn,outputn,hiddennum_best,{'tansig','purelin'},'trainlm');% 建立模型

%网络参数配置
net.trainParam.epochs=1000;         % 训练次数
net.trainParam.lr=0.01;             % 学习速率
net.trainParam.goal=0.00001;        % 训练目标最小误差
net.trainParam.show=25;             % 显示频率
net.trainParam.mc=0.01;             % 动量因子
net.trainParam.min_grad=1e-6;       % 最小性能梯度
net.trainParam.max_fail=6;          % 最高失败次数

%初始化ga参数 
PopulationSize_Data=30;       %初始种群规模
MaxGenerations_Data=60;       %最大进化代数
CrossoverFraction_Data=0.8;   %交叉概率
MigrationFraction_Data=0.2;   %变异概率
nvars=inputnum*hiddennum_best+hiddennum_best+hiddennum_best*outputnum+outputnum; 
lb=repmat(-3,nvars,1);    %自变量下限
ub=repmat(3,nvars,1);     %自变量上限

%调用遗传算法函数
options = optimoptions('ga');
options = optimoptions(options,'PopulationSize', PopulationSize_Data);
options = optimoptions(options,'CrossoverFraction', CrossoverFraction_Data);
options = optimoptions(options,'MigrationFraction', MigrationFraction_Data);
options = optimoptions(options,'MaxGenerations', MaxGenerations_Data);
options = optimoptions(options,'SelectionFcn', @selectionroulette);   %轮盘赌选择
options = optimoptions(options,'CrossoverFcn', @crossovertwopoint);   %两点交叉
options = optimoptions(options,'MutationFcn', {  @mutationgaussian [] [] });   %高斯变异
options = optimoptions(options,'Display', 'iter');    %‘off’为不显示迭代过程,‘iter’为显示迭代过程
options = optimoptions(options,'PlotFcn', { @gaplotbestf });    %最佳适应度作图
%求解
[x,fval] = ga(@fitness,nvars,[],[],[],[],lb,ub,[],[],options);

3. Resultados de la simulación

(1) Según la fórmula empírica, el número óptimo de nodos de capa oculta se obtiene a través del número de nodos de entrada y salida:

(2) Tabla de comparación de predicciones y tabla de errores

 (3) Varios indicadores de error de BP y GA-BP

(4) Curva de evolución del valor de aptitud GA del algoritmo genético

 (5) Diagrama de regresión de los modelos BP y GA-BP

(6) Histogramas de error de los modelos BP y GA-BP

Cuatro Conclusión

    Cabe señalar que tanto el algoritmo genético como la red neuronal de BP son algoritmos basados ​​en la aleatoriedad, por lo que los resultados de optimización del mismo conjunto de parámetros pueden ser diferentes y se requieren múltiples experimentos repetidos para verificar la robustez y confiabilidad del modelo.

Supongo que te gusta

Origin blog.csdn.net/baoliang12345/article/details/130331210
Recomendado
Clasificación