Optimiertes neuronales BP-Netzwerk basierend auf einem Algorithmus für künstliche elektrische Felder (Vorhersageanwendung) – mit Code

Optimiertes neuronales BP-Netzwerk basierend auf einem Algorithmus für künstliche elektrische Felder (Vorhersageanwendung) – mit Code


Zusammenfassung: In diesem Artikel wird hauptsächlich vorgestellt, wie der Algorithmus für künstliche elektrische Felder verwendet wird, um das neuronale BP-Netzwerk zu optimieren und auf die Vorhersage anzuwenden.

1. Dateneinführung

In diesem Fall gibt es 2000 Datensätze, von denen 1900 Sätze für das Training und 100 Sätze für Tests verwendet werden. Die Eingabe der Daten sind zweidimensionale Daten und die vorhergesagte Ausgabe sind eindimensionale Daten

2. Künstliches elektrisches Feld zur Optimierung des BP-Neuronalen Netzwerks

2.1 Parametereinstellung des neuronalen BP-Netzwerks

Die Parameter des neuronalen Netzwerks sind wie folgt:

%% 构造网络结构
%创建神经网络
inputnum = 2;     %inputnum  输入层节点数 2维特征
hiddennum = 10;     %hiddennum  隐含层节点数
outputnum = 1;     %outputnum  隐含层节点数

2.2 Anwendung des Algorithmus für künstliche elektrische Felder

Informationen zum Prinzip des Algorithmus für künstliche elektrische Felder finden Sie unter: https://blog.csdn.net/u011835903/article/details/118929142

Die Parameter des Algorithmus für künstliche elektrische Felder sind wie folgt eingestellt:

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维度

Dabei ist zu beachten, dass die Schwellenzahl des neuronalen Netzes wie folgt berechnet wird:

Dieses Netzwerk besteht aus 2 Schichten:

Die Anzahl der Schwellenwerte in der ersten Ebene beträgt: 2 * 10 = 20; dh Eingabenum * Versteckte Zahl;

Die Anzahl der Gewichte in der ersten Schicht beträgt: 10; nämlich Hiddennum;

Die Schwellenwertzahl der zweiten Schicht beträgt: 10 * 1 = 10; nämlich Hiddennum * Outputnum;

Die Anzahl der Gewichte in der zweiten Schicht beträgt: 1, nämlich Ausgabenum;

Wir können also sehen, dass unsere optimierte Dimension ist: Eingabenum * Versteckte Zahl + Versteckte Zahl * Ausgabenum + Verborgene Zahl + Ausgabenum = 41;

Einstellung der Fitnessfunktionswerte:

In diesem Artikel wird die Fitnessfunktion wie folgt festgelegt:
fitness = argmin (mse (Train Data Error) + mes (Test Data Error)) fitness = argmin(mse(TrainDataError) + mes(TestDataError))Fitness _ _ _ _=a r g min ( m se ( T r ain D a t a E rror )+m es ( Testdatenfehler )) , wobei TrainDataError und TestDataError die
Vorhersagefehler des Trainingssatzes bzw. des Testsatzes sind . mse besteht darin, die mittlere quadratische Fehlerfunktion zu finden, und die Fitnessfunktion zeigt, dass das Netzwerk, das wir letztendlich wollen, ein Netzwerk ist, das sowohl im Testsatz als auch im Trainingssatz bessere Ergebnisse erzielen kann.

4. Testergebnisse:

Aus der Konvergenzkurve des Algorithmus für künstliche elektrische Felder ist ersichtlich, dass der Gesamtfehler kontinuierlich abnimmt, was darauf hinweist, dass der Algorithmus für künstliche elektrische Felder eine optimierte Rolle gespielt hat:

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

5. Matlab-Code

Supongo que te gusta

Origin blog.csdn.net/u011835903/article/details/132512155
Recomendado
Clasificación