Ich habe ein 4 Input und 3 Output Neuronales Netzwerk trainiert durch Partikelschwarm-Optimierung (PSO) mit Mean Square Error (MSE) als Fitness-Funktion mit der IRIS-Datenbank von MATLAB zur Verfügung gestellt. Die Fitness-Funktion wird 50 mal ausgewertet. Das Experiment dient zum Klassifizieren von Features. Ich habe ein paar ZweifelKonzeptionelle Fragen zum Training neuronales Netzwerk mit Partikelschwarm-Optimierung
(1) Ist die PSO Iterationen/Generationen = Anzahl der Male die Fitness-Funktion ausgewertet wird?
(2) In vielen Zeitungen Ich habe die Trainingskurve von MSE vs Generationen Plot gesehen. In dem Bild ist das Diagramm (a) auf der linken Seite ein Modell ähnlich zu NN. Es ist eine kognitive Karte mit 4 Eingängen-0 versteckter Schicht-3-Ausgabe. Und Graph (b) ist ein NN, der von demselben PSO trainiert wird. Der Zweck dieses Papiers war, die Wirksamkeit des neuen Modells in (a) über NN zu zeigen.
Aber sie erwähnen, dass das Experiment durchgeführt wird sagen Zyklen = 100 mal mit Generationen = 300. In diesem Fall hätte die Trainingskurve für (a) und (b) MSE vs Cycles und nicht MSE vs PSO generations sein sollen. Zum Beispiel Cycle1: PSO-Iteration 1-50 -> Ergebnis (Gewichte_1, Bias_1, MSE_1, Klassifikationsrate_1). Cycle2: PSO Iteration 1-50 -> Ergebnis (Weights_2, Bias_2, MSE_2, Classification Rate_2) und so weiter für 100 Zyklen. Wie kommt es, dass die X-Achse in (a), (b) anders ist und was bedeuten sie?
(3) Schließlich, für jeden unabhängigen Lauf des Programms (Lauf die m-Datei mehrmals unabhängig, über die Konsole), bekomme ich nie die gleiche Klassifikationsrate (CR) oder die gleiche Menge von Gewichten. Konkret, wenn ich das Programm zum ersten Mal ausführe, bekomme ich W (Gewichte) -Werte und CR = 100%. Wenn ich das Matlab-Code-Programm erneut ausführe, bekomme ich möglicherweise CR = 50% und einen weiteren Satz von Gewichten !! Wie unten für ein Beispiel gezeigt,
%Run1 (PSO generaions 1-50)
>>PSO_NN.m
Correlation =
0
Classification rate = 25
FinalWeightsBias =
-0.1156 0.2487 2.2868 0.4460 0.3013 2.5761
%Run2 (PSO generaions 1-50)
>>PSO_NN.m
Correlation =
1
Classification rate = 100
%Run3 (PSO generaions 1-50)
>>PSO_NN.m
Correlation =
-0.1260
Classification rate = 37.5
FinalWeightsBias =
-0.1726 0.3468 0.6298 -0.0373 0.2954 -0.3254
Was sollte die richtige Methode sein? Also, welche Gewichtsmenge sollte ich schließlich nehmen und wie sage ich, dass das Netzwerk trainiert wurde? Ich bin mir bewusst, dass evolutionäre Algorithmen aufgrund ihrer Zufälligkeit niemals die gleiche Antwort geben werden, aber wie kann ich sicherstellen, dass das Netzwerk trainiert wurde? Wird zur Klarstellung verpflichtet.
Werden Sie das Kopfgeld dem einzigen Mann geben, der Ihnen Aufmerksamkeit geschenkt hat? ;) – buzjwa
Sorry, ich habe nicht verstanden, was du mit "Give Bounty" meinst. Ich klickte auf Akzeptieren Antwortsymbol auf der linken Seite. Gibt es noch etwas, das ich vermisst habe? – SKM