pso的参数选择

作者&投稿:佐昌 (若有异议请与网页底部的电邮联系)
PSO优化SVM参数的问题~

Elapsed time is 64.799304 seconds.
bestc =
45.3915

bestg =
0.0100

bestCVaccuarcy =
97.7528
Accuracy = 97.7528% (87/89) (classification)
trainacc =
97.7528
0.0225
0.9633
Accuracy = 93.2584% (83/89) (classification)
testacc =
93.2584
0.0674
0.9007

代码:

%% 清空环境
clc
clear
load wine;
train = [wine(1:30,:);wine(60:95,:);wine(131:153,:)];
train_label = [wine_labels(1:30);wine_labels(60:95);wine_labels(131:153)];
test = [wine(31:59,:);wine(96:130,:);wine(154:178,:)];
test_label = [wine_labels(31:59);wine_labels(96:130);wine_labels(154:178)];
[train,pstrain] = mapminmax(train');
pstrain.ymin = 0;
pstrain.ymax = 1;
[train,pstrain] = mapminmax(train,pstrain);
[test,pstest] = mapminmax(test');
pstest.ymin = 0;
pstest.ymax = 1;
[test,pstest] = mapminmax(test,pstest);
train = train';
test = test';
%% 参数初始化
%粒子群算法中的两个参数
c1 = 1.6; % c1 belongs to [0,2]
c2 = 1.5; % c2 belongs to [0,2]
maxgen=300; % 进化次数
sizepop=30; % 种群规模
popcmax=10^(2);
popcmin=10^(-1);
popgmax=10^(3);
popgmin=10^(-2);
k = 0.6; % k belongs to [0.1,1.0];
Vcmax = k*popcmax;
Vcmin = -Vcmax ;
Vgmax = k*popgmax;
Vgmin = -Vgmax ;
% SVM参数初始化
v = 3;
%% 产生初始粒子和速度
for i=1:sizepop
% 随机产生种群
pop(i,1) = (popcmax-popcmin)*rand+popcmin; % 初始种群
pop(i,2) = (popgmax-popgmin)*rand+popgmin;
V(i,1)=Vcmax*rands(1); % 初始化速度
V(i,2)=Vgmax*rands(1);
% 计算初始适应度
cmd = ['-v ',num2str(v),' -c ',num2str( pop(i,1) ),' -g ',num2str( pop(i,2) )];
fitness(i) = svmtrain(train_label, train, cmd);
fitness(i) = -fitness(i);
end
% 找极值和极值点
[global_fitness bestindex]=min(fitness); % 全局极值
local_fitness=fitness; % 个体极值初始化
global_x=pop(bestindex,:); % 全局极值点
local_x=pop; % 个体极值点初始化
tic
%% 迭代寻优
for i=1:maxgen

for j=1:sizepop

%速度更新
wV = 0.9; % wV best belongs to [0.8,1.2]
V(j,:) = wV*V(j,:) + c1*rand*(local_x(j,:) - pop(j,:)) + c2*rand*(global_x - pop(j,:));
if V(j,1) > Vcmax
V(j,1) = Vcmax;
end
if V(j,1) < Vcmin
V(j,1) = Vcmin;
end
if V(j,2) > Vgmax
V(j,2) = Vgmax;
end
if V(j,2) < Vgmin
V(j,2) = Vgmin;
end

%种群更新
wP = 0.6;
pop(j,:)=pop(j,:)+wP*V(j,:);
if pop(j,1) > popcmax
pop(j,1) = popcmax;
end
if pop(j,1) < popcmin
pop(j,1) = popcmin;
end
if pop(j,2) > popgmax
pop(j,2) = popgmax;
end
if pop(j,2) < popgmin
pop(j,2) = popgmin;
end

% 自适应粒子变异
if rand>0.5
k=ceil(2*rand);
if k == 1
pop(j,k) = (20-1)*rand+1;
end
if k == 2
pop(j,k) = (popgmax-popgmin)*rand+popgmin;
end
end

%适应度值
cmd = ['-v ',num2str(v),' -c ',num2str( pop(j,1) ),' -g ',num2str( pop(j,2) )];
fitness(j) = svmtrain(train_label, train, cmd);
fitness(j) = -fitness(j);
end

%个体最优更新
if fitness(j) < local_fitness(j)
local_x(j,:) = pop(j,:);
local_fitness(j) = fitness(j);
end

%群体最优更新
if fitness(j) < global_fitness
global_x = pop(j,:);
global_fitness = fitness(j);
end

fit_gen(i)=global_fitness;

end
toc
%% 结果分析
plot(-fit_gen,'LineWidth',5);
title(['适应度曲线','(参数c1=',num2str(c1),',c2=',num2str(c2),',终止代数=',num2str(maxgen),')'],'FontSize',13);
xlabel('进化代数');ylabel('适应度');
bestc = global_x(1)
bestg = global_x(2)
bestCVaccuarcy = -fit_gen(maxgen)
cmd = ['-c ',num2str( bestc ),' -g ',num2str( bestg )];
model = svmtrain(train_label,train,cmd);
[trainpre,trainacc] = svmpredict(train_label,train,model);
trainacc
[testpre,testacc] = svmpredict(test_label,test,model);
testacc

人工神经网络(ANN)是模拟大脑分析过程的简单数学模型,误差反向传播算法是最流行的神经网络训练算法。近来也有很多研究开始利用演化计算(evolutionary computation)技术来研究人工神经网络的各个方面。演化计算可以用来研究神经网络的三个方面:网络连接权重,网络结构(网络拓扑结构,传递函数),网络学习算法。不过大多数这方面的工作都集中在网络连接权重,和网络拓扑结构上。在GA中,网络权重和/或拓扑结构一般编码为染色体(Chromosome),适应函数(fitness function)的选择一般根据研究目的确定。例如在分类问题中,错误分类的比率可以用来作为适应值演化计算的优势在于可以处理一些传统方法不能处理的例子例如不可导的节点传递函数或者没有梯度信息存在。但是缺点在于:在某些问题上性能并不是特别好。2. 网络权重的编码而且遗传算子的选择有时比较麻烦最近已经有一些利用PSO来代替反向传播算法来训练神经网络的论文。研究表明PSO 是一种很有潜力的神经网络算法。PSO速度比较快而且可以得到比较好的结果。而且还没有遗传算法碰到的问题 这里用一个简单的例子说明PSO训练神经网络的过程。这个例子使用分类问题的基准函数(Benchmark function)IRIS数据集。(Iris 是一种鸢尾属植物) 在数据记录中,每组数据包含Iris花的四种属性:萼片长度,萼片宽度,花瓣长度,和花瓣宽度,三种不同的花各有50组数据. 这样总共有150组数据或模式。我们用3层的神经网络来做分类。现在有四个输入和三个输出。所以神经网络的输入层有4个节点,输出层有3个节点我们也可以动态调节隐含层节点的数目,不过这里我们假定隐含层有6个节点。我们也可以训练神经网络中其他的参数。不过这里我们只是来确定网络权重。粒子就表示神经网络的一组权重,应该是4*6+6*3=42个参数。权重的范围设定为[-100,100] (这只是一个例子,在实际情况中可能需要试验调整).在完成编码以后,我们需要确定适应函数。对于分类问题,我们把所有的数据送入神经网络,网络的权重有粒子的参数决定。然后记录所有的错误分类的数目作为那个粒子的适应值。现在我们就利用PSO来训练神经网络来获得尽可能低的错误分类数目。PSO本身并没有很多的参数需要调整。所以在实验中只需要调整隐含层的节点数目和权重的范围以取得较好的分类效果。

微粒群算法中比较重要的几个参数为:惯性权重ω(或压缩因子χ)、学习因子c1和c2、速度限制Vmax、位置限制Xmax、种群大小和初始种群。有研究者固定其他参数,研究单个参数对算法的影响;也有研究者同时研究多个参数对算法的影响。Shi对PSO算法中的参数选择进行了最早的讨论。
当前的研究普遍认为惯性权重对微粒群算法性能的影响最大,因此这方面的研究最多。王俊伟对PSO算法中的惯性权重进行了系统的实验,分析了固定权重与时变权重的选择问题,并从问题依赖性、种群大小和拓扑结构等方面详细分析了惯性权重对于算法性能的影响。结果表明,惯性权重的问题依赖性较小,随着种群的增大,其取值应适当减小,局部版本下惯性权重的选择具有更大的自由度。陈贵敏提出了开口向下抛物线、开口向上抛物线和指数曲线等非线性惯性权重递减策略并与线性递减策略进行比较,试验结果表明,凹函数递减策略优于线性策略,而线性策略优于凸函数策略。
一般认为,在微粒群算法中,惯性权重用于平衡全局和局部搜索能力,较大的惯性权重更倾向于全局搜索,而较小的惯性权重适于局部搜索。因此惯性权重的取值应随时间逐渐减小,而Zheng声称递增的惯性权重性能更好,但是在该文中使用了一组不同于标准PSO算法的学习因子,并且在该文中没有说明这对性能的影响。
由于固定的惯性权重往往无法获得好的效果,因此出现了惯性权重在搜索过程中随迭代代数线性下降、模糊自适应变化、按非线性函数下降、按余弦规律下降、按双曲线规律下降、按Sugeno函数规律下降的PSO算法。与此同时,还有很多种惯性权重随某种评价指标自适应变化的方法,如根据搜索的成功历史、微粒平均速度、种群多样性、目标函数平整性的变化、微粒群进化速度和聚集程度、个体搜索能力(ISA)来动态调整惯性权重。Liu根据Metropolis准则来确定是否接受惯性权重的变化。
也有人使用随机惯性权重,如将其设定为[0.5+(Rnd/2.0)]、取为在[0,1]区间均匀分布的随机数。Jiang在惯性权重的选取过程中引入混沌机制,使得惯性权重的取值能够遍历[0, 1]区间。
学习因子c1和c2代表了将每个微粒拉向pBest和gBest(或nBest)位置的随机加速项的权重。从心理学的角度而言,认知项(Cognition term)代表了个体复制已被证明是成功的过去行为的趋势,而社会项(Social term)代表了追从他人成功经验的趋势。c1和c2很多时候被设定为2.0,显而易见的原因是它将使得搜索覆盖以pBest和gBest为中心的区域。另一个常用的值为1.49445,它可以确保PSO算法的收敛。Carlisle通过大量实验,提出一套比较好的参数设置为将c1和c2分别设定为2.8和1.3,且该参数设置的性能在[182]中得到进一步肯定。受时变惯性权重的思想启发,出现了多种学习因子随时间变化的PSO算法变种,如学习因子随时间线性下降、根据微粒的演化状态动态调整、根据适应值持续变差的次数和种群的分散程度来动态调整。高鹰建立了学习因子和微粒群中所有微粒的平均适应度与整体最优位置适应度之差的一种非线性函数关系,通过非线性时变的学习因子自适应地调整“认知”部分和“社会”部分对微粒的影响,从而提高算法的收敛速度和精度。
在大多数情况下,两个学习因子的取值相同,从而使得社会搜索和认知搜索有相同的权重。Kennedy研究了两个极端情况:只有社会项的模型和只有认知项的模型,结论是这两个部分对微粒群搜索的成功而言都很关键,对非对称的学习因子尚无确定的结论报告。Depuy等分析了最大速度、社会学习因子和认知学习因子对微粒群算法在搜索空间中找到最优点的能力的影响,但是分析过于简单。
还有的研究同时确定惯性权重和学习因子。有很多研究者采用各种优化技术来动态确定惯性权重和学习因子,如遗传算法、混沌寻优方法、演化算法、微分演化算法、自适应校正设计(Adaptive CriticDesign)技术。Silva基于共生机制,使用另外一个PSO算法来动态确定原算法的参数。Krohling将惯性权重设置为零,同时用两个服从分布的随机变量来取代c1r1和c2r2,其中为期望为0、方差为1的高斯分布。Arumugam根据一个由pBest和gBest确定的函数来动态地确定惯性权重和学习因子。Breaban将速度更新公式中的各项解释为算子的操作,并引入了一些新的算子,据此来同时自适应地确定惯性权重和学习因子。Ueno对微粒采用多组参数值,并利用微粒速度的平均值来动态确定惯性权重和学习因子。Khosla使用Taguchi方法来确定算法参数。Kuo采用十七个低维函数优化问题,针对单个极小和多个极小的情况研究了惯性权重和学习因子的取值范围。
微粒的速度可以受一个最大速度Vmax的限制,由此作为一种约束来控制微粒群的全局探索能力。在最初的原始PSO算法中,采用的参数为,,微粒的速度经常会快速地增长到非常大的值,这样会影响算法的性能,所以需要对微粒速度进行限制。后来,Clerc指出速度限制并非必须的,引入收缩因子同样可以实现限制微粒速度的目的。不过,即便采用收缩因子,试验表明如果同时加以速度限制能够获得更好的结果,因此速度限制一直被保留下来。一般而言,Vmax被设置为每个变量的动态范围的值,一般为固定值,但也可以随时间线性递减或者根据搜索的成功历史来动态减小。
微粒的位置可以受最大位置Xmax的限制,避免微粒飞出有物理意义的解空间之外。Zhang提出一种周期性模式的边界处理方法。Robinson提出了三种控制技术,分别为吸引墙、反射墙和不可见墙。一旦微粒的某一维碰到解空间的边界,则吸引墙方法将速度设为零,反射墙方法改变速度方向,由此这两种方法最终都可以将微粒拉回到允许的解空间范围内。而不可见墙方法对飞出边界的微粒不计算适应值,以节约计算时间并避免影响其它微粒的运动。但是,这三种边界条件下PSO算法的性能受问题的维度以及全局最优点与搜索空间边界的相对位置影响很大。为解决这一问题,Huang综合吸收墙和反射墙的特点,在其基础上提出一种混合的阻尼边界,以获得鲁棒且一贯的性能。而Mikki将硬位置限制和吸引墙、反射墙技术结合起来,试验表明能够获得更好的效果。
种群大小的选择与问题相关,但是对问题并不十分敏感。20-50是比较常见的选择。在某些情况下,可能会使用较大的种群来适应特殊需要。
种群的初始化也是一个很重要的问题。一般情况下初始种群都是随机产生,但是也有多种智能化的种群初始化方法,如使用非线性单纯形法(NSM),重心Voronoi划分、正交设计、均匀设计等方法来确定PSO算法的初始种群,以使得初始种群的分布尽可能均匀,帮助算法更有效地探索搜索空间并找到更好的解。Robinson指出PSO算法和GA算法可以顺序使用,将PSO算法完成优化之后的种群作为GA算法的初始种群,或者反之,将GA算法完成优化之后的种群作为PSO算法的初始种群,都能得到很好的结果。
此外,还有人通过灵敏度分析、回归树、计算统计学等方法来调节PSO算法的参数,以提高算法性能,求解实际问题。




神马创客贴片机设置参数怎么调
3、选择生产模式,在选择生产程序后,按RETURN,对应的F6键,直到画面主菜单,此时按下AUTO对应的F1键,屏幕显示AUTO子菜单SO,NORETURNSTART,PB按下MODE对应的F5键,直到屏幕左下方MODE对应的PROD。

so8声卡最佳效果调试参数
该声卡的最佳效果调试参数包括麦克风增益设置、采样率设置、缓冲区设置、声卡输入和输出设置、混响设置、录音设置、伴奏音量设置。1、麦克风增益设置:根据麦克风的灵敏度和音量大小调整麦克风增益,以确保录音信号可以恰当地进入声卡,并处理成高质量的音频信号。2、采样率设置:音频信号的采样率表示单位时间内采...

SO8声卡最佳效果调试参数是什么?
so8声卡最佳效果调试参数是中频音量(db分贝)稍大些,低频少点,高频相对要再调大些。SO8是首台的自带48V幻象供电的数字便携声卡,这意味着用户可使用品质更高的电容话筒,配合DSP实时混响,轻松创造出专业的音频效果。它有OTG和To phone两种传输录音模式,以及蓝牙和AUX两种伴奏输入方式,以下分别说明。...

so8声卡怎么调好听?
根据人声的特性,重点调节是参数均衡,中频音量(db分贝)稍大些,低频少点,高频相对要再调大些,让声音更清晰悦耳。

华为nova拍月亮专业模式参数
SO感光度:调至100-200左右。S快门速度:1\/500。WB:调至AWB。变焦:23.5倍变焦(焦距可调更大,确保拍得到月亮)。对焦模式(AF):选择MF档位拉至无限远。曝光补偿(EV):设置为0.3或更小。拍月亮的技巧 拍摄月亮的构图不一定要遵循传统的井字构图法,用长焦拍大特写时将月亮放中间也可以,...

请问我有一个.so文件,如何在Linux下编程使用呢?
-lxx xx是你的.so文件名 其实使用方法和你使用数学库函数是一样的,源代码中添加 include <math.h>,编译的时候,加上-lm参数。注:linux下的.so文件为共享库,相当于windows下的dll文件。

Linux 下 so 的符号链接机制是为什么
so.1这个库文件。此后,libfoo.so的开发者决定升级该库,但是发布文件的时候文件名改成了libfoo.so.2,并且重新生成符号链接文件libfoo.so指向libfoo.so.2这个新版的共享库。这样做的好处是客户程序在重新编译的时候无需更改Makefile文件,仍然使用-lfoo这个连接参数即可。

施耐德somachine中,转矩控制中Index Subindex 这两个参数是什么意思
index:索引 subindex:子索引 通讯中,读取或者写入相应地址的内容

有个.so(unix 动态链接库)文件,有办法可以查看它都提供什么样的函数或...
gdb 调试so所属应用程序的执行,看它的调用函数的传入和传出。反编译可以获得一些信息,不过过程复杂,因为你要观察汇编代码和地址之间的跳转。如果你只是开发程序的话,获得完善的信息,你只能查看手册。但是如果你是想用某个版权软件的某个so的功能的话只能反编译分析代码了。如果你具备反编译技能的话,...

尚方263温控器参数设置
1、首先最后主控温度设置:温控器通电后处正常工作状态,按住SET键持续0.5秒,红色显示屏显示提示符“SO”,绿色显示屏显示主控设置温度。2、其次,温控器进入主控温度设置状态,按移位、递增、递减键即可设置或修改主控温度。3、最后主控温度设置完后,再按住SET键持续0.5秒即可保存设置温度。

门源回族自治县19673016926: pso是什么啊
丰荣腐植: PSO粒子群优化算法 摘自:人工智能论坛 1. 引言 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),有Eberhart博士和kennedy博士发明.源于对鸟群捕食的行为研究PSO同遗传算法类似,是一种基于叠代的优化工具...

门源回族自治县19673016926: 粒子群优化算法的PSO -
丰荣腐植: 演化计算可以用来研究神经网络的三个方面:网络连接权重,网络结构(网络拓扑结构,传递函数),网络学习算法. 不过大多数这方面的工作都集中在网络连接权重,和网络拓扑结构上.在GA中,网络权重和/或拓扑结构一般编码为染色体(...

门源回族自治县19673016926: Photoshop 的颜色配置该怎么设置 -
丰荣腐植: Photoshop 的颜色配置设置方法是: 1、打开ps软件,打开“编辑--颜色设置”;2、在“颜色设置”面板,分为“设置”和“说明”两项,点击打开“设置”,根据需要选择“自定”、“日本”、“北美、欧洲”等颜色模式;3、ps软件颜色设置非常复杂,没有特殊要求,建议用默认设置,不要轻易改变颜色设置.

门源回族自治县19673016926: Undefined function 'uminus' for input arguments of type 'struct'. -
丰荣腐植: % 计算初始顺应度cmd = ['-s 5','-v ',num2str(pso_option.v),' -c ',num2str( pop(i,1) ),' -g ',num2str( pop(i,2) )];fitness(i) = svmtrain(train_label, train, cmd);fitness(i) = -fitness(i);错误为:Undefined function 'uminus' for input arguments of type 'struct'.Error in psoSVMcgForClass (line 56)fitness(i) = -fitness(i);

门源回族自治县19673016926: 4.表面粗糙度参数值的选择应遵循既要满足零件( )也要考虑到( )的原则,一般用( )法确定. -
丰荣腐植: 表面粗糙度参数值的选择应遵循既要满足零件( 零件表面功能要求的前提下)也要考虑到(选用 )的原则,一般用(类比法 )法确定

门源回族自治县19673016926: SVR进行回归预测时为什么误差那个大 -
丰荣腐植: 1、参数设置问题,-c,-g,-p的设置都会影响,一般都是通过GA,PSO,CV等方法进行优化参数,选择最适合的参数.2、样本问题,可能输入样本没有结果归一化预处理.

门源回族自治县19673016926: 离散粒子群优化算法的背景和意义是什么 -
丰荣腐植: 定义 粒子群优化算法(Particle Swarm optimization,PSO)又翻译为粒子群算法、微粒群算法、或微粒群优化算法.是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法.通常认为它是群集智能 (Swarm intelligence, SI) ...

门源回族自治县19673016926: 根据实验的数据怎么利用粒子群算法得到预测模型 -
丰荣腐植: ARIMA模型预测的基本程序 (一)根据时间序列的散点图、自相关函数和偏自相关函数图以ADF单位根检验其方差、趋势及其季节性变化规律,对序列的平稳性进行识别.一般来讲,经济运行的时间序列都不是平稳序列. (二)对非平稳序...

门源回族自治县19673016926: 分析标准粒子群算法的不足及改进的方法 -
丰荣腐植: 一个以上的目标,以优化 相对传统的多目标优化方法在解决多目标问题,PSO具有很大的优势.首先,PSO算法和高效的搜索功能,有利于在这个意义上,多目标的最优解;其次,PSO代表了整个解决方案的人口集固有的并行性,同时搜索多...

门源回族自治县19673016926: 如何用pso算法优化离散数据 -
丰荣腐植: 聚类可以理解为根据你划定的半径取圈样本,圈出几类就是几类,半径大类就少,半径小类就多.中心选择可以随机选取,那就是无监督算法,现在有一种半监督算法,先用少量标记好的样本产生一些类别作为聚类中心,指导聚类的过程.可以使用kmeans和SVM结合

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网