Predicción de series temporales | MATLAB implementa el algoritmo de ballenas WOA-CNN-LSTM para optimizar la predicción de series temporales de redes neuronales de memoria convolucional a largo plazo

Predicción de series temporales | MATLAB implementa el algoritmo de ballenas WOA-CNN-LSTM para optimizar la predicción de series temporales de redes neuronales de memoria convolucional a largo plazo

efecto predictivo

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

introducción básica

Predicción de series temporales | MATLAB implementa el algoritmo de ballenas WOA-CNN-LSTM para optimizar la predicción de series temporales de redes neuronales de memoria convolucional a largo plazo y el entorno operativo es Matlab2020b y superior. Optimice la tasa de regularización, la tasa de aprendizaje, la cantidad de unidades de capa oculta.
1. MATLAB implementa el algoritmo de ballenas WOA-CNN-LSTM para optimizar la predicción de series temporales de redes neuronales de memoria convolucional a largo plazo a corto plazo 2.
Predicción de series temporales univariadas
3. Evaluación multiíndice, los indicadores de evaluación incluyen: R2, MAE, MSE , RMSE, etc., la calidad del código es extremadamente alta
4. Los parámetros de optimización del algoritmo de ballena son: tasa de aprendizaje, nodos de capa oculta y parámetros de regularización
5. Datos de Excel, fáciles de reemplazar y el entorno operativo es 2020 y por encima.

Descripcion del modelo

El algoritmo de optimización de ballenas (WOA) es un algoritmo de optimización basado en el comportamiento de los grupos de ballenas en la naturaleza, que se puede utilizar para resolver problemas de optimización. La red neuronal convolucional de memoria a corto y largo plazo (CNN-LSTM) es una estructura de red que combina una red neuronal convolucional (CNN) y una red neuronal de memoria a corto y largo plazo (LSTM), que puede procesar datos de secuencia y datos espaciales. datos. La predicción de regresión de múltiples entradas y una sola salida se refiere a un problema de regresión en el que se ingresan múltiples características y se genera un solo valor.
Los siguientes son los pasos para usar el algoritmo de ballenas para optimizar la red CNN-LSTM para la predicción de regresión de múltiples entradas y una sola salida:
Primero, debe determinar la estructura de la red, incluidas las capas convolucionales, las capas LSTM, las capas completamente conectadas, etc.
Luego, se debe definir una función de aptitud, que es el error de predicción de la red en el conjunto de entrenamiento. Aquí se puede elegir el error cuadrático medio (RMSE) como la función de aptitud.
A continuación, el algoritmo de la ballena se puede utilizar para la optimización de parámetros. Específicamente, los parámetros de la red CNN-LSTM se pueden usar como variables de optimización, la función de aptitud se puede usar como función objetivo y el algoritmo de ballena se puede usar para la optimización iterativa hasta que la función objetivo converja o alcance el número preestablecido de iteraciones. .
En el proceso de optimización, es necesario establecer los parámetros del algoritmo de ballenas, incluida la optimización de la tasa de regularización, la tasa de aprendizaje y la cantidad de unidades de capa oculta.
Finalmente, la red CNN-LSTM optimizada se puede utilizar para la predicción de regresión de múltiples entradas y una sola salida.
Cabe señalar que, aunque el algoritmo de la ballena se puede utilizar para optimizar la red neuronal, no es una panacea y tiene limitaciones. Cuando se utiliza el algoritmo de ballena para la optimización, es necesario ajustar los parámetros y optimizar de acuerdo con problemas específicos para obtener mejores resultados de optimización.

programación

  • Código fuente completo y método de adquisición de datos 1: los blogueros de mensajes privados responden al algoritmo de ballenas WOA-CNN-LSTM para optimizar la predicción de series temporales de redes neuronales de memoria convolucional a largo plazo a corto plazo e intercambiar programas de igual valor;
  • Complete el programa y el método de descarga de datos 2 (suscríbase a la columna "Optimización combinada" y, al mismo tiempo, obtenga los 8 programas incluidos en la columna "Optimización combinada", y envíeme un mensaje privado para obtener los datos después de la suscripción): WOA-CNN -LSTM Whale Algorithm Optimized Convolucional Long Short-Term Memory Pronóstico de series de tiempo de red neuronal , solo este programa se puede obtener fuera de la columna.
%%  获取最优种群
   for j = 1 : SearchAgents
       if(fitness_new(j) < GBestF)
          GBestF = fitness_new(j);
          GBestX = X_new(j, :);
       end
   end
   
%%  更新种群和适应度值
   pop_new = X_new;
   fitness = fitness_new;

%%  更新种群 
   [fitness, index] = sort(fitness);
   for j = 1 : SearchAgents
      pop_new(j, :) = pop_new(index(j), :);
   end

%%  得到优化曲线
   curve(i) = GBestF;
   avcurve(i) = sum(curve) / length(curve);
end

%%  得到最优值
Best_pos = GBestX;
Best_score = curve(end);

%%  得到最优参数
NumOfUnits       =abs(round( Best_pos(1,3)));       % 最佳神经元个数
InitialLearnRate =  Best_pos(1,2) ;% 最佳初始学习率
L2Regularization = Best_pos(1,1); % 最佳L2正则化系数
% 
inputSize = k;
outputSize = 1;  %数据输出y的维度  
%  参数设置
opts = trainingOptions('adam', ...                    % 优化算法Adam
    'MaxEpochs', 20, ...                              % 最大训练次数
    'GradientThreshold', 1, ...                       % 梯度阈值
    'InitialLearnRate', InitialLearnRate, ...         % 初始学习率
    'LearnRateSchedule', 'piecewise', ...             % 学习率调整
    'LearnRateDropPeriod', 6, ...                     % 训练次后开始调整学习率
    'LearnRateDropFactor',0.2, ...                    % 学习率调整因子
    'L2Regularization', L2Regularization, ...         % 正则化参数
    'ExecutionEnvironment', 'gpu',...                 % 训练环境
    'Verbose', 0, ...                                 % 关闭优化过程
    'SequenceLength',1,...
    'MiniBatchSize',10,...
    'Plots', 'training-progress');                    % 画出曲线

resumir

El flujo del algoritmo es el siguiente:
preprocesamiento de datos. Preprocesar los datos de entrada, como convertir datos de tipo de tarjeta en números, normalizar, completar valores faltantes, etc. red convolucional. Los datos de entrada son procesados ​​por la red neuronal convolucional (CNN) para extraer su representación de características. red LSTM. La secuencia de características extraída por la red convolucional se ingresa en una red neuronal de memoria a corto plazo (LSTM) para convertirla en una sola salida. Muestra los resultados de predicción de la red LSTM.
En este algoritmo, la red convolucional se usa para extraer las características de los datos de entrada, y la red LSTM convierte la secuencia de características extraída por la red convolucional en una sola salida y retiene su información de serie temporal, para que pueda predecir mejor los resultados futuros. . El método de optimización de este algoritmo se centra principalmente en dos etapas de la red convolucional y la red LSTM: optimización de la red convolucional. Al aumentar la profundidad y el ancho de la red convolucional, se puede aumentar su capacidad expresiva y se puede mejorar la capacidad de extracción de características de la secuencia de entrada. Al mismo tiempo, se pueden utilizar mejores funciones de activación y métodos de regularización, como ReLU y Dropout, para aumentar la capacidad no lineal y la capacidad de generalización de la red.
Optimización de la red LSTM. Al aumentar el tamaño de la capa oculta y el número de capas de la red LSTM, se puede aumentar su capacidad de expresión y capacidad de memoria, y se puede mejorar la capacidad de modelado de la secuencia de entrada. Al mismo tiempo, se pueden utilizar mejores mecanismos de activación y métodos de recorte de gradiente, como LSTM y Clip Gradient, para aumentar la estabilidad y la capacidad de generalización de la red.
En resumen, a través de la combinación de la red neuronal convolucional y la red neuronal de memoria a corto plazo, se puede modelar y predecir la tarea de predicción de regresión con entrada múltiple y salida única. Sus métodos de optimización incluyen principalmente el ajuste de la estructura del modelo, la optimización de la función de pérdida y el algoritmo de optimización, la fusión de múltiples fuentes de datos, el aumento del preprocesamiento y la mejora de los datos y el ajuste de los hiperparámetros del modelo. A través de estos métodos de optimización, el rendimiento predictivo y la capacidad de generalización del modelo se pueden mejorar para adaptarse a una gama más amplia de escenarios de aplicación.

Referencias

[1] https://blog.csdn.net/kjm13182345320/article/details/128577926?pm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm131823453320/details = 1001.2014 .3001.5501

Supongo que te gusta

Origin blog.csdn.net/kjm13182345320/article/details/132287526
Recomendado
Clasificación