La position actuelle:Accueil du site>BP Neural Network Based on Particle Swarm Optimization (Predictive application) - Attached Code

BP Neural Network Based on Particle Swarm Optimization (Predictive application) - Attached Code

2022-05-15 05:48:42Intelligent Algorithm Research Institute (Jack Xu)

Basé sur l'optimisation de l'essaim de particulesBPRéseau neuronal(Application des prévisions) - Code joint


Résumé:Cet article présente principalement comment optimiser avec l'algorithme PSOBPRéseaux neuronaux et leur application à la prévision.

1.Présentation des données

Les données de ce cas totalisent2000Groupe,Parmi eux1900Les groupes sont utilisés pour l'entraînement,100Les groupes sont utilisés pour tester.L'entrée des données est2Données dimensionnelles,Les résultats prévus sont les suivants:1Données dimensionnelles

3.PSOOptimisationBPRéseau neuronal

3.1 BPParamètres du réseau neuronal

Les paramètres du réseau neuronal sont les suivants:

%% Structure du réseau de construction
%Créer un réseau neuronal
inputnum = 2;     %inputnum  Saisissez le nombre de noeuds de couche 2Caractéristiques de la dimension
hiddennum = 10;     %hiddennum  Nombre de noeuds cachés
outputnum = 1;     %outputnum  Nombre de noeuds cachés

3.2 Application de l'algorithme d'essaim de particules

Pour les principes spécifiques de l'algorithme PSO, veuillez consulter d'autres ressources du réseau

Les paramètres de l'algorithme PSO sont définis à:

popsize = 20;%Nombre de populations
Max_iteration = 20;%Itérations maximales
lb = -5;% Limite inférieure du seuil de poids 
ub = 5;% Limite supérieure du seuil de poids 
%  inputnum * hiddennum + hiddennum*outputnum  Nombre de seuils 
%  hiddennum + outputnum  Est le nombre de poids 
dim =  inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum ;%  inputnum * hiddennum + hiddennum*outputnumDimensions

Ce qui est important ici, c'est que, Le nombre seuil du réseau neuronal est calculé comme suit: :

Ce réseau a 2Couche:

Le nombre de seuils pour la première couche est :2*10 = 20; C'est - à - dire:inputnum * hiddennum;

Le nombre de poids de la première couche est :10;C'est - à - dire:hiddennum;

Le nombre de seuils pour la deuxième couche est :10*1 = 10;C'est - à - dire:hiddenum * outputnum;

La quantité de poids de la deuxième couche est :1;C'est - à - dire:outputnum;

Donc nous pouvons voir que la dimension que nous optimisons est :inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum = 41;

Réglage de la valeur de la fonction de fitness :

Cet article définit la fonction de fitness comme suit: :
f i t n e s s = a r g m i n ( m s e ( T r a i n D a t a E r r o r ) + m e s ( T e s t D a t a E r r o r ) ) fitness = argmin(mse(TrainDataError) + mes(TestDataError)) fitness=argmin(mse(TrainDataError)+mes(TestDataError))
Parmi euxTrainDataError,TestDataError Erreur de prédiction de l'ensemble d'entraînement et de l'ensemble d'essai respectivement .mse Pour obtenir la fonction d'erreur carrée moyenne , La fonction de fitness indique que le réseau que nous voulons finalement obtenir est un réseau qui peut obtenir de meilleurs résultats sur les ensembles d'essai et d'entraînement. .

4.Résultats des tests:

On peut voir à partir de la courbe de convergence de l'algorithme PSO , L'erreur globale diminue , L'algorithme d'optimisation de l'essaim de particules joue un rôle d'optimisation :

Veuillez ajouter une description de l'image

Fig.1 Courbe de convergence et diagramme d'erreur de l'algorithme PSO

5.MatlabCode

Mentions de copyright
Auteur de cet article [Intelligent Algorithm Research Institute (Jack Xu)],Réimpression s’il vous plaît apporter le lien vers l’original, merci
https://fra.chowdera.com/2022/135/202205142241159168.html

Recommandé au hasard