(PSO-BP)结合粒子群的神经网络算法以及matlab实现

本文介绍了结合粒子群优化算法(PSO)和反向传播(BP)神经网络的方法,用于全局搜索和局部细化。在matlab环境中,作者使用30组数据对一个特定函数进行训练,设置了1-7-1的神经网络结构。通过PSO获得初始解,然后用BP进行精细化搜索。实验在i5, 8G, win7, 64位系统上运行约30秒,建议多次运行以观察最佳结果。" 128165386,16742929,SQL优化技巧:提升服务器性能,"['数据库', '服务器运维', 'SQL性能']
摘要由CSDN通过智能技术生成

原理:
           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=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值