原理:
PSO(粒子群群算法):可以在全局范围内进行大致搜索,得到一个初始解,以便BP接力
BP(神经网络):梯度搜素,细化能力强,可以进行更仔细的搜索。
数据:对该函数((2.1*(1-x+2*x.^2).*exp(-x.^2/2))+sin(x)+x','x')[-5,5]进行采样,得到30组训练数据,拟合该网络。
神经网络结构设置: 该网络结构为,1-7-1结构,即输入1个神经元,中间神经元7个,输出1个神经元
程序步骤:
第一步:先采用抽取30组数据,包括输入和输出
第一步:运行粒子群算法,进行随机搜索,选择一个最优的解,该解的维数为22维。
第二步:在;粒子群的解基础上进行细化搜索
程序代码:
clc clear tic SamNum=30; HiddenNum=7; InDim=1; OutDim=1; load train_x load train_f a=train_x'; d=train_f'; p=[a]; t=[d]; [SamIn,minp,maxp,tn,mint,maxt]=premnmx(p,t); NoiseVar=0.01; Noise=NoiseVar*randn(1,SamNum); SamOut=tn + Noise; SamIn=SamIn'; SamOut=SamOut'; MaxEpochs=60000; lr=0.025; E0=0.65*10^(-6); %% %the begin of PSO E0=0.001; Max_num=500; particlesize=200; c1=1; c2=1; w=