gpt4 book ai didi

matlab - 粒子群优化训练神经网络的概念问题

转载 作者:太空宇宙 更新时间:2023-11-03 19:35:58 25 4
gpt4 key购买 nike

我有一个通过粒子群优化 (PSO) 训练的 4 输入和 3 输出神经网络,使用 MATLAB 提供的 IRIS 数据库以均方误差 (MSE) 作为适应度函数。适应度函数被评估 50 次。实验是对特征进行分类。我有几个疑问

(1) 是否 PSO 迭代次数/代数 = 评估适应度函数的次数?

(2) 在多篇论文中Training Curve我已经看到了 MSE vs 几代人的训练曲线被绘制出来。图中左边的图(a)是一个类似于NN的模型。它是一个 4 input-0 hidden layer-3 output cognitive map。图 (b) 是由同一个 PSO 训练的神经网络。本文的目的是展示 (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 iteration 1- 50 -->Result(Weights_2,Bias_2, MSE_2, Classification Rate_2) 依此类推 100 个 Cycles。 (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

正确的方法应该是什么?那么,我最终应该采取哪个权重集,我怎么说网络已经训练好了呢?我知道进化算法由于其随机性而永远不会给出相同的答案,但是我如何确保网络已经过训练?有澄清义务。

最佳答案

  1. 与大多数机器学习方法一样,PSO 中的迭代次数是解决方案更新的次数。在 PSO 的情况下,这是所有粒子的更新轮数。这里的成本函数是在每个粒子更新后评估的,因此超过了迭代次数。大约,(# 成本函数调用)=(# 迭代)*(# 粒子)。
  2. 此处的图表比较了不同的分类器,fuzzy cognitive maps对于图 (a) 和 neural network对于图(b)。因此 X 轴显示了每个学习迭代的相关度量。
  3. 每次运行神经网络时,您都会使用不同的随机值对其进行初始化,因此结果永远不会相同。每次运行的结果差异很大这一事实意味着您遇到了收敛问题。在这种情况下要做的第一件事是尝试运行更多的迭代。一般来说,收敛是一个相当复杂的问题,解决方案因应用程序而异(请仔细阅读 Isaac 在 your other question 上给您的回答和评论)。如果在增加迭代次数后您的问题仍然存在,您可以将其作为新问题发布,提供您的数据示例以及您用于构建和训练网络的实际代码。

关于matlab - 粒子群优化训练神经网络的概念问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22976904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com