日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

粒子群算法优化BP和Elman神经网络-matlab源码

發(fā)布時(shí)間:2023/12/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 粒子群算法优化BP和Elman神经网络-matlab源码 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

用于預(yù)測(cè),輸入為3特征值,輸出為1輸出。內(nèi)附數(shù)據(jù)集,拿來(lái)直接用,結(jié)構(gòu)清晰,注釋詳細(xì),全在一個(gè)程序里,方便對(duì)比。

本次用了BP、Elman神經(jīng)網(wǎng)絡(luò)和PSO-BP、PSO-Elman神經(jīng)網(wǎng)絡(luò)對(duì)比。

部分?jǐn)?shù)據(jù)集:

部分代碼:

clear;clc;close all; load data4.mat; [train_x,inputps]=mapminmax(train_x); test_x=mapminmax('apply',test_x,inputps); [train_y,outputps]=mapminmax(train_y); test_y=mapminmax('apply',test_y,outputps); inputnum=3;hiddennum=5;outputnum=1;epoch_bp_elman=5000; dim=26;%=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum; N=50;%種群數(shù)量 epoch_pso=50;%粒子群算法迭代次數(shù) epoch_bp=5000;epoch_elman=5000;%BP、Elman神經(jīng)網(wǎng)絡(luò)迭代次數(shù) w=0.8;c1=1.5;c2=1.5; Xmax=20;Xmin=-20;%粒子群x上下限 Vmax=10;Vmin=-10;%速度v上下限 %初始化種群個(gè)體位置和速度 x_bp=rand(N,dim)*(Xmax-Xmin)+Xmin;%初始BP v_bp=rand(N,dim)*(Xmax-Xmin)+Xmin; x_elman=rand(N,dim)*(Xmax-Xmin)+Xmin;%初始Elman v_elman=rand(N,dim)*(Xmax-Xmin)+Xmin; %初始化個(gè)體、全局最優(yōu)位置和最優(yōu)值(速度) %PSOBP net_bp=newff(train_x,train_y,hiddennum);%創(chuàng)建初始BP神經(jīng)網(wǎng)絡(luò),給目標(biāo)函數(shù)用 p_bp_local=x_bp;%當(dāng)前BP種群矩陣 pbest_bp_local=ones(N,1);%當(dāng)前BP種群適應(yīng)度 g_bp_quanju=ones(1,dim);%全局BP種群矩陣 gbest_bp_quanju=1e5;%全局BP種群適應(yīng)度初始設(shè)置為10W %粒子群算法迭代開(kāi)始 ......figure(1); plot(1:size(yy_bp,2),yy_bp,'b-'); title('PSO收斂曲線','fontsize',12); xlabel('迭代次數(shù)','fontsize',12);ylabel('適應(yīng)度值','fontsize',12); %把粒子群算法迭代結(jié)果最優(yōu)值賦給神經(jīng)網(wǎng)絡(luò)當(dāng)做權(quán)重和偏置 w1_bp=x_bp(1:inputnum*hiddennum); B1_bp=x_bp(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum); w2_bp=x_bp(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum); B2_bp=x_bp(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum); w1_elman=x_elman(1:inputnum*hiddennum); B1_elman=x_elman(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum); w2_elman=x_elman(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum); B2_elman=x_elman(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);figure(2); plot(1:size(error_psobp,2),error_psobp,'r',1:size(error_bp,2),error_bp,'m--',1:size(error_psoelman,2),error_psoelman,'g-',1:size(error_elman,2),error_elman,'c--');% title('預(yù)測(cè)誤差','fontsize',12); xlabel('樣本數(shù)量','fontsize',12);ylabel('誤差值','fontsize',12); legend('PSO-BP誤差','BP誤差','PSO-Elman誤差','Elman誤差'); figure(3); plot(1:size(test_x,2),result_bp,'m-',1:size(test_x,2),result_sim_bp,'r-',1:size(test_x,2),test_y,'b-',1:size(result_sim_elman,2),result_sim_elman,'g-',1:size(result_elman,2),result_elman,'c--') legend('BP預(yù)測(cè)值','PSO-BP預(yù)測(cè)值','真實(shí)值','PSO+Elman預(yù)測(cè)值','Elman預(yù)測(cè)值');

?粒子群算法收斂曲線圖:

預(yù)測(cè)結(jié)果:

源碼下載地址:

https://www.kuaifaka.net/purchasing?link=PklaHRa

-------------------------------------------------------我的其他代碼--------------------------------------------------------

粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)-matlab源碼

頭腦風(fēng)暴算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)-matlab源碼

層次聚類(lèi)、k_means聚類(lèi)-python源碼

Adaboost-python手推源碼不調(diào)用庫(kù)-有手就會(huì)

總結(jié)

以上是生活随笔為你收集整理的粒子群算法优化BP和Elman神经网络-matlab源码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。