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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

用于預測,輸入為3特征值,輸出為1輸出。內附數據集,拿來直接用,結構清晰,注釋詳細,全在一個程序里,方便對比。

本次用了BP、Elman神經網絡和PSO-BP、PSO-Elman神經網絡對比。

部分數據集:

部分代碼:

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;%種群數量 epoch_pso=50;%粒子群算法迭代次數 epoch_bp=5000;epoch_elman=5000;%BP、Elman神經網絡迭代次數 w=0.8;c1=1.5;c2=1.5; Xmax=20;Xmin=-20;%粒子群x上下限 Vmax=10;Vmin=-10;%速度v上下限 %初始化種群個體位置和速度 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; %初始化個體、全局最優位置和最優值(速度) %PSOBP net_bp=newff(train_x,train_y,hiddennum);%創建初始BP神經網絡,給目標函數用 p_bp_local=x_bp;%當前BP種群矩陣 pbest_bp_local=ones(N,1);%當前BP種群適應度 g_bp_quanju=ones(1,dim);%全局BP種群矩陣 gbest_bp_quanju=1e5;%全局BP種群適應度初始設置為10W %粒子群算法迭代開始 ......figure(1); plot(1:size(yy_bp,2),yy_bp,'b-'); title('PSO收斂曲線','fontsize',12); xlabel('迭代次數','fontsize',12);ylabel('適應度值','fontsize',12); %把粒子群算法迭代結果最優值賦給神經網絡當做權重和偏置 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('預測誤差','fontsize',12); xlabel('樣本數量','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預測值','PSO-BP預測值','真實值','PSO+Elman預測值','Elman預測值');

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

預測結果:

源碼下載地址:

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

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

粒子群算法優化BP神經網絡-matlab源碼

頭腦風暴算法優化BP神經網絡-matlab源碼

層次聚類、k_means聚類-python源碼

Adaboost-python手推源碼不調用庫-有手就會

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。