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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

基于粒子群算法优化的ELMAN动态递归神经网络预测-附代码

發布時間:2024/3/26 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于粒子群算法优化的ELMAN动态递归神经网络预测-附代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于粒子群算法優化的ELMAN動態遞歸神經網絡預測及其MATAB實現

文章目錄

  • 基于粒子群算法優化的ELMAN動態遞歸神經網絡預測及其MATAB實現
  • 1. 模型與算法描述
    • 1.1 ELMAN神經網絡預測模型介紹
    • 1.2 粒子群算法PSO介紹
  • 2. 粒子群算法PSO優化ELMAN回歸預測模型的構建過程
    • 2.1 模型的建立
    • 2.2 算法流程
  • 3. PSO-ELMAN回歸預測模型的參數設置
  • 4. 運行結果
  • 5. MATLAB代碼

1. 模型與算法描述

1.1 ELMAN神經網絡預測模型介紹

ELMAN神經網絡具有較強的非線性和泛化能力,與傳統的前向神經網絡相比,增加了承接層,即ELMAN具有四層網絡結構:輸入層、隱含層、承接層和輸出層。承接層使得ELMAN神經網絡有動態運算的特點與具有記憶功能,其結構與各網絡層作用的詳細說明,請參考博客:ELMAN神經網絡及其matlab代碼實現。


ELMAN神經網絡的計算過程為:

{X(k)=f(W1U(k?1)+W2Xc(k)+b1)Xc(k)=X(k?1)Y(k)=g(W3X(k)+b2)\left\{\begin{array}{l} X(k)=f\left(W_{1} U(k-1)+W_{2} X_{c}(k)+b_{1}\right) \\ X_{c}(k)=X(k-1) \\ Y(k)=g\left(W_{3} X(k)+b_{2}\right) \end{array}\right. ????X(k)=f(W1?U(k?1)+W2?Xc?(k)+b1?)Xc?(k)=X(k?1)Y(k)=g(W3?X(k)+b2?)?

式中,U(k-1)、X(k)、Y(k)和Xc(k)分別為ELMAN的輸入向量、隱含層的輸出向量、輸出層和承接層的輸出向量。W1、W2、W3以及b1、b2分別為輸入層到隱含層、承接層到隱含層、隱含層到輸出層的連接權值矩陣,以及隱含層、輸出層的閾值向量。

1.2 粒子群算法PSO介紹

粒子群優化算法(Particle Swarm optimization,PSO)是一種經典的啟發式算法,由Kennedy等于1995年提出?;舅枷胧抢萌后w中的個體對信息的共享,從而使得群體位置在解空間中產生從無序到有序的演化過程,從而獲得問題的最優解。粒子群算法的核心為速度更新與位置更新公式:
v(d)=w?v(d?1)+c1?r1?(pbest?(d)?x(d))+c2?r2?(gbest?(d)?x(d)),(1)v(d)=w^{*} v(d-1)+c 1^{*} r 1^{*}(\text { pbest }(d)-x(d))+c 2^{*} r 2 *(\operatorname{gbest}(d)-x(d)),(1) v(d)=w?v(d?1)+c1?r1?(?pbest?(d)?x(d))+c2?r2?(gbest(d)?x(d)),(1)

x(d)=x(d?1)+v(d?1)?t,(2)x(d)=x(d-1)+v(d-1)^{*} t,(2) x(d)=x(d?1)+v(d?1)?t,(2)
式中,d為當前的迭代次數,pbest為當前的最優粒子位置,gbest為歷史的最優粒子位置,w為慣性權重,用于保持粒子的速度影響,c1,c2分別為個體學習因子和社會學習因子,v(d-1)為第d-1次迭代的粒子速度,x(d)為第d次迭代的粒子位置,r1和r2是(0,1)內的隨機數。

粒子群算法的實現步驟為:

Step1:初始化最大迭代次數N,種群大小n,學習因子c1、c2,慣性權重w等參數。
Step2:初始化種群位置,計算初始的粒子適應度,并且獲得初始最優個體。
Step3:Start Loop(K=1):使用公式(1)、(2)更新粒子的速度和位置。
Step4:計算種群的適應度值,更新當前種群最優粒子位置。
Step5:更新全局(迄今)最優的粒子位置和適應度。
Step6:執行步驟3-5,直至K>N,End Loop(跳出循環)。輸出最優的個體位置與最優適應度值。

粒子群算法PSO優化實例理解:

經過有限次迭代后,粒子群算法的種群中每個個體位置都會朝著最優解靠近,如下圖所示:


PSO優化程序:

%% PSO主程序 %________________________% 初始化 clear close all clc% 繪制搜索空間 x1 = -15:0.1:15; x2 = -15:0.1:15; [x1,x2] = meshgrid(x1,x2); y = x1.^2 + x2.^2; figure(1),surfc(x1,x2,y,'LineStyle','none'),view(30,60) xlabel('x_1');ylabel('x_2');zlabel(['F( x_1 , x_2 )']);title('搜索空間示意圖') hold on % 維持在圖像上作圖,用于后續散點圖效果% 初始化PSO參數 N = 100; %最大迭代次數 n = 50; % 粒子數量(種群大小) dim = 2; % 變量個數 c1 = 2; c2 = 2; %個體學習因子 社會學習因子 w = 0.9; % 慣性權重 vmax = [6 6]; % 最大速度 lowerbound = [-15 -15]; upperbound = [15 15]; %范圍% 初始化位置和速度 x = zeros(n,dim); %位置 for i = 1: dimx(:,i) = lowerbound(i) + (upperbound(i)-lowerbound(i))*rand(n,1); end v = -vmax + 2*vmax .* rand(n,dim); % 速度% 計算每個個體的適應度 fitness = zeros(n,1); for i = 1:n fitness(i) = Object_function(x(i,:)); end pbest = x; %當前最優 index = find(fitness == min(fitness), 1); %初始的最佳適應度個體索引 gbest = x(index,:); %迄今最優% h:圖窗句柄,繪制粒子的散點圖 h = scatter3(x(:,1),x(:,2),fitness,'*r'); %% 開始進化 fitnessbest = zeros(N,1); for d = 1:N for i = 1:n %速度更新v(i,:) = w*v(i,:) + c1*rand(1)*(pbest(i,:) - x(i,:)) + c2*rand(1)*(gbest - x(i,:)); % 速度越界調整v(i,:) =limitbound(v(i,:) ,-vmax,vmax);%位置更新x(i,:) = x(i,:) + v(i,:); % 更新第i個粒子的位置%位置越界調整x(i,:) =limitbound(x(i,:),lowerbound,upperbound);%更新個體適應度fitness(i) = Object_function(x(i,:)); %更新當前種群的適應度if fitness(i) < Object_function(pbest(i,:)) pbest(i,:) = x(i,:); %當前種群最優位置end%更新迄今最佳適應度if Object_function(pbest(i,:)) < Object_function(gbest) gbest = pbest(i,:); %歷史最優位置endendfitnessbest(d) = Object_function(gbest); %存儲進化信息pause(0.1) % 暫停0.1s%繪制粒子運動散點圖h.XData = x(:,1);h.YData = x(:,2);h.ZData = fitness; % X Y Z 坐標 endfigure(2) plot(fitnessbest,'r-','linewidth',2) % 繪制出每次迭代最佳適應度的變化圖 xlabel('進化代數');ylabel('最佳適應度');title('PSO的進化曲線') disp('最優解:'); disp(gbest) disp('最優值:'); disp(Object_function(gbest))%________________________________________ %子函數:用于范圍約束 function x=limitbound(x,lb,ub)for i=1:length(x)if x(i)>ub(i),x(i)=ub(i);elseif x(i)<lb(i),x(i)=lb(i);else,x(i)=x(i);endend end%子函數:目標函數(適應度函數) function y= Object_function(x) y=sum(x.^2); end

2. 粒子群算法PSO優化ELMAN回歸預測模型的構建過程

2.1 模型的建立

使用神經網絡進行預測建模時,初始的權值和閾值一般由偽隨機數初始化,使得訓練數據訓練好的模型性能不穩定。針對ELMAN神經網絡的預測精度受權值和閾值的影響較大,使用粒子群優化算法PSO對參數進行優化,提高ELMAN神經網絡的預測精度。
PSO-ELMAN預測模型的適應度函數取為訓練集與測試集整體的均方誤差,計算公式如下:

min?f(W1,W2,W3,b1,b2)=1n1∑i=1n1(ytrainingSet?(i)?y^trainingSet?(i))2+1n2∑i=1n2(ytestingSet?(i)?y^testingSet?(i))22\min f\left(W_{1}, W_{2}, W_{3}, b_{1}, b_{2}\right)=\frac{\sqrt{\frac{1}{n_{1}} \sum_{i=1}^{n_{1}}\left(y_{\text {trainingSet }}(i)-\hat{y}_{\text {trainingSet }}(i)\right)^{2}}+\sqrt{\frac{1}{n_{2}} \sum_{i=1}^{n_{2}}\left(y_{\text {testingSet }}(i)-\hat{y}_{\text {testingSet }}(i)\right)^{2}}}{2} minf(W1?,W2?,W3?,b1?,b2?)=2n1?1?i=1n1??(ytrainingSet??(i)?y^?trainingSet??(i))2?+n2?1?i=1n2??(ytestingSet??(i)?y^?testingSet??(i))2??

式中,n1和n2分別為訓練集的樣本數與測試集的樣本數。粒子群算法在進化過程中,適應度越小,說明訓練的模型準確,且對預測樣本的精度有所提升。

2.2 算法流程

2.2.1 數據說明:

采用深度學習常用的建筑物能源數據集進行預測實驗,數據是EXCEL格式,形式為:

樣本序號輸入指標1輸入指標2…輸出指標
1-
2-
-
n-

2.2.2 算法步驟

步驟1:輸入影響因素數據與目標輸出數據,ELMAN神經網絡劃分訓練集與測試集,對數據歸一化處理,公式為:

x′=a+x?xmin?xmax??xmin?×(b?a)x^{\prime}=a+\frac{x-x_{\min }}{x_{\max }-x_{\min }} \times(b-a) x=a+xmax??xmin?x?xmin??×(b?a)

式中,?x′是歸一化后的數據,x,xmin?,xmax?,分別為原始數據,及其最大值,最小值,a,b分別為歸一化后的最大值和最小值,如歸一化至[0,1]范圍內。{\text {式中, }}x^{\prime}\text {是歸一化后的數據,}x,x_{\min },x_{\max },\text{分別為原始數據,及其最大值,最小值,}a,b\text{分別為歸一化后的最大值和最小值,如歸一化至[0,1]范圍內。}式中,?x是歸一化后的數據,xxmin?xmax?分別為原始數據,及其最大值,最小值,ab分別為歸一化后的最大值和最小值,如歸一化至[0,1]范圍內。

步驟2:構建ELMAN神經網絡,初始化網絡結構。

步驟3:粒子群算法參數初始化。初始化最大迭代次數N,種群大小n,以及c1,c2,w參數。

步驟4:初始化粒子群算法PSO的種群位置。根據步驟2的網絡結構,計算需要優化的變量元素個數。

步驟5:使用粒子群算法優化。將適應度函數設為ELMAN預測的均方誤差。執行PSO的循環體過程,即速度更新和位置更新,直至達到最大迭代次數,終止粒子群優化算法。

步驟6:將PSO優化后的權值和閾值參數,賦給ELMAN神經網絡。(或者在循環體當中,將網絡結構理解為優化變量,輸出最優的網絡結構)。

步驟7:PSO優化后的ELMAN神經網絡訓練和預測,并與優化前的ELMAN神經網絡進行預測誤差分析和對比。

2.2.3 算法流程

3. PSO-ELMAN回歸預測模型的參數設置

3.1 ELMAN神經網絡參數設置

%網絡參數配置 net.trainParam.epochs=1000; % 訓練次數,這里設置為1000次 net.trainParam.lr=0.01; % 學習速率,這里設置為0.01 net.trainParam.goal=0.00001; % 訓練目標最小誤差,這里設置為0.0001 net.trainParam.show=25; % 顯示頻率,這里設置為每訓練25次顯示一次 net.trainParam.mc=0.01; % 動量因子 net.trainParam.min_grad=1e-6; % 最小性能梯度 net.trainParam.max_fail=6; % 最高失敗次數

3.2 粒子群算法參數設置

popsize=30; %初始種群規模 maxgen=50; %最大進化代數 dim=inputnum*hiddennum_best+hiddennum_best*hiddennum_best+hiddennum_best+hiddennum_best*outputnum+outputnum; %自變量個數 lb=repmat(-3,1,dim); %自變量下限 ub=repmat(3,1,dim); %自變量上限 c1 = 2; % 每個粒子的個體學習因子,也稱為個體加速常數 c2 = 2; % 每個粒子的社會學習因子,也稱為社會加速常數 w = 0.9; % 慣性權重

3.3 權值和閾值元素的編碼
啟發式算法在求解問題最優解時,常用的有三種編碼方式:二進制,向量,以及矩陣。由于權值為矩陣形式,閾值為向量,為了統一,將權值矩陣和閾值向量的元素取出,存放于向量中,決策變量為1×n的向量形式。使用粒子群算法優化后,再將相應的元素從最優解向量中取出,按提取時的順序放回到權值和閾值中。

w1=x(1:inputnum*hiddennum); %輸入層到隱含層的權值元素 w2=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum*hiddennum); %承接層到隱含層的權值 B1=x(inputnum*hiddennum+hiddennum*hiddennum+1:inputnum*hiddennum+hiddennum*hiddennum+hiddennum); %隱含層到輸出層的權值元素 w3=x(inputnum*hiddennum+hiddennum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum*hiddennum+hiddennum+hiddennum*outputnum); %隱含層的各神經元閾值元素 B2=x(inputnum*hiddennum+hiddennum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum*hiddennum+hiddennum+hiddennum*outputnum+outputnum); %輸出層的各神經元閾值元素

4. 運行結果

4.1 粒子群算法的進化曲線


4.2 PSO-ELMAN預測與優化前ELMAN預測的誤差對比分析


5. MATLAB代碼

見博客主頁

總結

以上是生活随笔為你收集整理的基于粒子群算法优化的ELMAN动态递归神经网络预测-附代码的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本一级大片 | 中文资源在线观看 | 欧美国产日韩一区二区 | 麻豆毛片 | 久久精品国产大片免费观看 | 午夜美女网站 | 日韩中文在线字幕 | 精品国产一区二区在线观看 | 欧美性bbw| 国产午夜久久久 | 视频在线看 | 夜夜伊人 | 中国一级片在线观看 | 麻豆视频在线播放 | 久久伊人成人网 | 亚洲精品性视频 | 超碰美女在线 | 亚洲三级电影 | 香港三级日本三级韩国三级 | 婷婷伊人| 美女精品一区二区 | 亚洲视频大全 | 日日日人人人 | 夜av| 岛国中文字幕 | 又黄又爽的网站 | 97超碰资源站 | 18视频在线观看娇喘 | 无码粉嫩虎白一线天在线观看 | 婷婷综合六月 | 日韩无码精品一区二区三区 | 国产精品一色哟哟哟 | 中文字幕av专区 | 午夜激情视频在线播放 | 精品一二三四区 | 日本一区二区三区免费观看 | 国产av一区精品 | 色桃av | 国产自产在线 | 91高清视频在线观看 | 爱爱激情网 | 五月婷婷六月综合 | 中国国语农村大片 | 天堂av片 | 欧美一区二区黄色 | 欧美日韩一区二区三区四区五区六区 | 中文字幕国产在线 | 殴美一级视频 | 成人毛片视频免费看 | 亚洲va韩国va欧美va | www超碰| 超碰人人在线观看 | 免费一级片网站 | 亚洲免费自拍 | 九九福利视频 | 天堂中文资源在线观看 | 又粗又猛又爽又黄的视频 | 91蜜桃视频 | 欧美日韩午夜爽爽 | 黄色av网站免费在线观看 | 美女视频免费在线观看 | av在线免费观看网站 | 影音先锋中文字幕一区二区 | 日韩午夜在线播放 | 久久久影院 | 在线看www | 99爱精品 | 一个人在线免费观看www | 日本一区二区久久 | 吃奶摸下的激烈视频 | 国产精品久久久久久亚洲av | 女人叫床很黄很污句子 | 特级西西444www高清大胆免费看 | 黄色录像a级片 | 老司机深夜福利在线观看 | 国模大胆一区二区三区 | 成人精品亚洲人成在线 | 一区二区av电影 | 国产绿帽刺激高潮对白 | 日本一区二区三区在线看 | 久色电影| 亚洲黄色第一页 | 久久亚洲精品中文字幕 | 久久国产精品99久久人人澡 | 捆绑无遮挡打光屁股调教女仆 | 明里柚番号 | 国产精欧美一区二区三区蓝颜男同 | 亚洲黄色录像 | 欧美插插视频 | 亚洲色图日韩精品 | 在线视频一区二区三区四区 | 国产精品27p| 免费在线看污片 | 福利色播 | 伊人欧美| 国产精品99久久久久 | 成人免费在线小视频 | 天堂伊人 | 日韩伊人网 |