基于適應(yīng)度相關(guān)算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)(預(yù)測(cè)應(yīng)用) - 附代碼
摘要:本文主要介紹如何用適應(yīng)度相關(guān)算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)并應(yīng)用于預(yù)測(cè)。
1.數(shù)據(jù)介紹
本案例數(shù)據(jù)一共2000組,其中1900組用于訓(xùn)練,100組用于測(cè)試。數(shù)據(jù)的輸入為2維數(shù)據(jù),預(yù)測(cè)的輸出為1維數(shù)據(jù)
2.適應(yīng)度相關(guān)優(yōu)化BP神經(jīng)網(wǎng)絡(luò)
2.1 BP神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置
神經(jīng)網(wǎng)絡(luò)參數(shù)如下:
%% 構(gòu)造網(wǎng)絡(luò)結(jié)構(gòu)
%創(chuàng)建神經(jīng)網(wǎng)絡(luò)
inputnum = 2; %inputnum 輸入層節(jié)點(diǎn)數(shù) 2維特征
hiddennum = 10; %hiddennum 隱含層節(jié)點(diǎn)數(shù)
outputnum = 1; %outputnum 隱含層節(jié)點(diǎn)數(shù)
2.2 適應(yīng)度相關(guān)算法應(yīng)用
適應(yīng)度相關(guān)算法原理請(qǐng)參考:https://blog.csdn.net/u011835903/article/details/119946003
適應(yīng)度相關(guān)算法的參數(shù)設(shè)置為:
popsize = 20;%種群數(shù)量
Max_iteration = 20;%最大迭代次數(shù)
lb = -5;%權(quán)值閾值下邊界
ub = 5;%權(quán)值閾值上邊界
% inputnum * hiddennum + hiddennum*outputnum 為閾值的個(gè)數(shù)
% hiddennum + outputnum 為權(quán)值的個(gè)數(shù)
dim = inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum ;% inputnum * hiddennum + hiddennum*outputnum維度
這里需要注意的是,神經(jīng)網(wǎng)絡(luò)的閾值數(shù)量計(jì)算方式如下:
本網(wǎng)絡(luò)有2層:
第一層的閾值數(shù)量為:2*10 = 20; 即inputnum * hiddennum;
第一層的權(quán)值數(shù)量為:10;即hiddennum;
第二層的閾值數(shù)量為:10*1 = 10;即hiddenum * outputnum;
第二層權(quán)值數(shù)量為:1;即outputnum;
于是可知我們優(yōu)化的維度為:inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum = 41;
適應(yīng)度函數(shù)值設(shè)定:
本文設(shè)置適應(yīng)度函數(shù)如下:
f
i
t
n
e
s
s
=
a
r
g
m
i
n
(
m
s
e
(
T
r
a
i
n
D
a
t
a
E
r
r
o
r
)
+
m
e
s
(
T
e
s
t
D
a
t
a
E
r
r
o
r
)
)
fitness = argmin(mse(TrainDataError) + mes(TestDataError))
fitness=argmin(mse(TrainDataError)+mes(TestDataError))
其中TrainDataError,TestDataError分別為訓(xùn)練集和測(cè)試集的預(yù)測(cè)誤差。mse為求取均方誤差函數(shù),適應(yīng)度函數(shù)表明我們最終想得到的網(wǎng)絡(luò)是在測(cè)試集和訓(xùn)練集上均可以得到較好結(jié)果的網(wǎng)絡(luò)。
4.測(cè)試結(jié)果:
從適應(yīng)度相關(guān)算法的收斂曲線可以看到,整體誤差是不斷下降的,說明適應(yīng)度相關(guān)算法起到了優(yōu)化的作用:文章來源:http://www.zghlxwxcb.cn/news/detail-675443.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-675443.html
5.Matlab代碼
到了這里,關(guān)于基于適應(yīng)度相關(guān)算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)(預(yù)測(cè)應(yīng)用) - 附代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!