我有一个4输入和3输出神经网络,通过粒子群优化(PSO)训练,均方误差(MSE)作为适应度函数,使用MATLAB提供的IRIS数据库。适应度函数评估50次。该实验是对特征进行分类。我有一些疑惑
(1)PSO迭代/世代是否评估适应度函数的次数?
(2)在许多论文中,我看到MSE与世代的训练曲线是情节。在图中,左侧的图(a)是类似于NN的模型。它是一个4输入0隐藏的第3层输出认知图。并且图(b)是由相同PSO训练的NN。本文的目的是展示新模型在(a)中对NN的有效性。
但是他们提到实验进行说Cycles = 100次,Generations = 300。在这种情况下,(a)和(b)的训练曲线应该是MSE vs Cycles而不是MSE vs PSO世代?例如,Cycle1:PSO迭代1-50 - >结果(Weights_1,Bias_1,MSE_1,Classification Rate_1)。 Cycle2:PSO迭代1-50 - >结果(Weights_2,Bias_2,MSE_2,Classification Rate_2)等等100个周期。为什么(a),(b)中的X轴是不同的,它们是什么意思?
(3)最后,对于程序的每次独立运行(通过控制台独立运行m文件几次),我从未得到相同的分类率(CR)或相同的权重集。具体地说,当我第一次运行程序时,我得到W(权重)值,CR = 100%。当我再次运行Matlab代码程序时,我可能得到CR = 50%和另一组权重!如下例所示,
%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
正确的方法应该是什么?那么,我最终应该采用哪个权重集,以及如何说网络已经过培训?我知道由于它们的随机性而导致的进化算法永远不会给出相同的答案,但是我如何确保网络已经过训练? 我们有义务澄清。
答案 0 :(得分:4)