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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

【优化预测】基于matlab天牛须算法优化BP神经网络预测【含Matlab源码 1318期】

發(fā)布時間:2023/12/3 综合教程 35 生活家
生活随笔 收集整理的這篇文章主要介紹了 【优化预测】基于matlab天牛须算法优化BP神经网络预测【含Matlab源码 1318期】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、天牛須搜索算法簡介

1 天牛須搜索算法定義
天牛須搜索(Beetle Antennae Search-BAS),也叫甲殼蟲須搜索,是2017年提出的一種高效的智能優(yōu)化算法。類似于遺傳算法、粒子群算法、模擬退火等智能優(yōu)化算法,天牛須搜索不需要知道函數(shù)的具體形式,不要虛梯度信息,就可以實現(xiàn)高效尋優(yōu)。相比于粒子群算法,天牛須搜索只只要一個個體,即一個天牛,運算量大大降低。

2 原理及代碼實現(xiàn)
2.1 仿生原理
天牛須搜索時受到天牛覓食原理啟發(fā)而開發(fā)的算法。
生物原理:當(dāng)天牛覓食時,天牛并不知道食物在哪,而是根據(jù)食物氣味的強弱來覓食。天牛有倆只長觸角,如果左邊觸角收到的氣味強度比右邊大,那下一步天牛就往左飛,否則就往右飛。根據(jù)這一簡單原理天牛就可以有效找到食物。
天牛須搜索得來的啟發(fā):食物的氣味就相當(dāng)于一個函數(shù),這個函數(shù)在三維空間每個點值都不同,天牛兩個須可以采集自身附近兩點的氣味值,天牛的目的是找到全局氣味值最大的點。仿照天牛的行為,我們就可以高效的進(jìn)行函數(shù)尋優(yōu)。

2.2 算法
天牛在三維空間運動,而天牛須搜索需要對任意維函數(shù)都有效才可以。因而,天牛須搜索是對天牛生物行為在任意維空間的推廣。采用如下的簡化模型假設(shè)描述天牛:
天牛左右兩須位于質(zhì)心兩邊。
天牛步長step與兩須之間距離d0的比是個固定常數(shù),即step=c*d0,其中c是常數(shù)。即,大天牛(兩須距離長)走大步,小天牛走小步。
天牛飛到下一步后,頭的朝向是隨機的。

2.3 建模:(n維空間函數(shù)f最小化)
第一步:對一個n維空間的優(yōu)化問題,我們用xl表示左須坐標(biāo),xr表示右須坐標(biāo),x表示質(zhì)心坐標(biāo),用d0表示兩須之間的距離。根據(jù)假設(shè)3,天牛頭朝向任意,因而從天牛右須指向左須的向量的朝向也是任意的,所以可以產(chǎn)生一個隨機向量dir=rands(n,1)來表示它。對此歸一化:dir=dir/norm(dir);我們這樣可以得到xl-xr=d0dir;顯然,xl,xr還可以表示成質(zhì)心的表達(dá)式;xl=x+d0dir/2;xr=x-d0dir/2。
第二步:對于待優(yōu)化函數(shù)f,求取左右兩須的值:felft=f(xl);fright=f(xr);判斷兩個值大小,如果fleft<fright,為了探尋f的最小值,則天牛向著左須方向行進(jìn)距離step,即x=x+step
normal(xl-xr);如果fleft>fright,為了探尋f的最小值,則天牛向著右須方向行進(jìn)距離step,即x=x-stepnormal(xl-xr);如以上兩種情況可以采用符號函數(shù)sign統(tǒng)一寫成:x=x-stepnormal(xl-xr)sign(fleft-fright)=x-stepdir*sign(fleft-fright)。
(注:其中normal是歸一化函數(shù))

循環(huán)迭代:
dir=rands(n,1);dir=dir/norm(dir);%須的方向
xl=x+d0dir/2;xr=x-d0dir/2;%須的坐標(biāo)
felft=f(xl);fright=f(xr);%須的氣味強度
x=x-stepdirsign(fleft-fright)。%下一步位置
關(guān)于步長:
兩種推薦:
每步迭代中采用step=etastep,其中eta在0,1之間靠近1,通常可取eta=0.95;
引入新變量temp和最終分辨率step0,temp=eta
temp,step=temp+step0.
關(guān)于初始步長:初始步長可以盡可能大,最好與自變量最大長度相當(dāng)。

二、BP神經(jīng)網(wǎng)絡(luò)簡介

1 BP神經(jīng)網(wǎng)絡(luò)概述
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland為首的科研小組提出,參見他們發(fā)表在Nature上的論文 Learning representations by back-propagating errors 。
BP神經(jīng)網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的 輸入-輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷 調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。

2 BP算法的基本思想
上一次我們說到,多層感知器在如何獲取隱層的權(quán)值的問題上遇到了瓶頸。既然我們無法直接得到隱層的權(quán)值,能否先通過輸出層得到輸出結(jié)果和期望輸出的誤差來間接調(diào)整隱層的權(quán)值呢?BP算法就是采用這樣的思想設(shè)計出來的算法,它的基本思想是,學(xué)習(xí)過程由信號的正向傳播與誤差的反向傳播兩個過程組成。
正向傳播時,輸入樣本從輸入層傳入,經(jīng)各隱層逐層處理后,傳向輸出層。若輸出層的實際輸出與期望的輸出(教師信號)不符,則轉(zhuǎn)入誤差的反向傳播階段。
反向傳播時,將輸出以某種形式通過隱層向輸入層逐層反傳,并將誤差分?jǐn)偨o各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號即作為修正各單元權(quán)值的依據(jù)。這兩個過程的具體流程會在后文介紹。

BP算法的信號流向圖如下圖所示

3 BP網(wǎng)絡(luò)特性分析——BP三要素
我們分析一個ANN時,通常都是從它的三要素入手,即
1)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);
2)傳遞函數(shù);
3)學(xué)習(xí)算法。

每一個要素的特性加起來就決定了這個ANN的功能特性。所以,我們也從這三要素入手對BP網(wǎng)絡(luò)的研究。

3.1 BP網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)
上一次已經(jīng)說了,BP網(wǎng)絡(luò)實際上就是多層感知器,因此它的拓?fù)浣Y(jié)構(gòu)和多層感知器的拓?fù)浣Y(jié)構(gòu)相同。由于單隱層(三層)感知器已經(jīng)能夠解決簡單的非線性問題,因此應(yīng)用最為普遍。三層感知器的拓?fù)浣Y(jié)構(gòu)如下圖所示。
一個最簡單的三層BP:

3.2 BP網(wǎng)絡(luò)的傳遞函數(shù)
BP網(wǎng)絡(luò)采用的傳遞函數(shù)是非線性變換函數(shù)——Sigmoid函數(shù)(又稱S函數(shù))。其特點是函數(shù)本身及其導(dǎo)數(shù)都是連續(xù)的,因而在處理上十分方便。為什么要選擇這個函數(shù),等下在介紹BP網(wǎng)絡(luò)的學(xué)習(xí)算法的時候會進(jìn)行進(jìn)一步的介紹。
單極性S型函數(shù)曲線如下圖所示。

雙極性S型函數(shù)曲線如下圖所示。

3.3 BP網(wǎng)絡(luò)的學(xué)習(xí)算法
BP網(wǎng)絡(luò)的學(xué)習(xí)算法就是BP算法,又叫 δ 算法(在ANN的學(xué)習(xí)過程中我們會發(fā)現(xiàn)不少具有多個名稱的術(shù)語), 以三層感知器為例,當(dāng)網(wǎng)絡(luò)輸出與期望輸出不等時,存在輸出誤差 E ,定義如下




下面我們會介紹BP網(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練的具體過程。

4 BP網(wǎng)絡(luò)的訓(xùn)練分解
訓(xùn)練一個BP神經(jīng)網(wǎng)絡(luò),實際上就是調(diào)整網(wǎng)絡(luò)的權(quán)重和偏置這兩個參數(shù),BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程分兩部分:

前向傳輸,逐層波浪式的傳遞輸出值;
逆向反饋,反向逐層調(diào)整權(quán)重和偏置;
我們先來看前向傳輸。
前向傳輸(Feed-Forward前向反饋)
在訓(xùn)練網(wǎng)絡(luò)之前,我們需要隨機初始化權(quán)重和偏置,對每一個權(quán)重取[ ? 1 , 1 ] [-1,1][?1,1]的一個隨機實數(shù),每一個偏置取[ 0 , 1 ] [0,1][0,1]的一個隨機實數(shù),之后就開始進(jìn)行前向傳輸。

神經(jīng)網(wǎng)絡(luò)的訓(xùn)練是由多趟迭代完成的,每一趟迭代都使用訓(xùn)練集的所有記錄,而每一次訓(xùn)練網(wǎng)絡(luò)只使用一條記錄,抽象的描述如下:

while 終止條件未滿足:for record:dataset:trainModel(record)



4.1 逆向反饋(Backpropagation)


4.2 訓(xùn)練終止條件
每一輪訓(xùn)練都使用數(shù)據(jù)集的所有記錄,但什么時候停止,停止條件有下面兩種:
設(shè)置最大迭代次數(shù),比如使用數(shù)據(jù)集迭代100次后停止訓(xùn)練
計算訓(xùn)練集在網(wǎng)絡(luò)上的預(yù)測準(zhǔn)確率,達(dá)到一定門限值后停止訓(xùn)練

5 BP網(wǎng)絡(luò)運行的具體流程
5.1 網(wǎng)絡(luò)結(jié)構(gòu)
輸入層有n nn個神經(jīng)元,隱含層有p pp個神經(jīng)元,輸出層有q qq個神經(jīng)元。

5.2 變量定義








第九步:判斷模型合理性
判斷網(wǎng)絡(luò)誤差是否滿足要求。
當(dāng)誤差達(dá)到預(yù)設(shè)精度或者學(xué)習(xí)次數(shù)大于設(shè)計的最大次數(shù),則結(jié)束算法。
否則,選取下一個學(xué)習(xí)樣本以及對應(yīng)的輸出期望,返回第三部,進(jìn)入下一輪學(xué)習(xí)。

6 BP網(wǎng)絡(luò)的設(shè)計
在進(jìn)行BP網(wǎng)絡(luò)的設(shè)計是,一般應(yīng)從網(wǎng)絡(luò)的層數(shù)、每層中的神經(jīng)元個數(shù)和激活函數(shù)、初始值以及學(xué)習(xí)速率等幾個方面來進(jìn)行考慮,下面是一些選取的原則。

6.1 網(wǎng)絡(luò)的層數(shù)
理論已經(jīng)證明,具有偏差和至少一個S型隱層加上一個線性輸出層的網(wǎng)絡(luò),能夠逼近任何有理函數(shù),增加層數(shù)可以進(jìn)一步降低誤差,提高精度,但同時也是網(wǎng)絡(luò) 復(fù)雜化。另外不能用僅具有非線性激活函數(shù)的單層網(wǎng)絡(luò)來解決問題,因為能用單層網(wǎng)絡(luò)解決的問題,用自適應(yīng)線性網(wǎng)絡(luò)也一定能解決,而且自適應(yīng)線性網(wǎng)絡(luò)的 運算速度更快,而對于只能用非線性函數(shù)解決的問題,單層精度又不夠高,也只有增加層數(shù)才能達(dá)到期望的結(jié)果。

6.2 隱層神經(jīng)元的個數(shù)
網(wǎng)絡(luò)訓(xùn)練精度的提高,可以通過采用一個隱含層,而增加其神經(jīng)元個數(shù)的方法來獲得,這在結(jié)構(gòu)實現(xiàn)上要比增加網(wǎng)絡(luò)層數(shù)簡單得多。一般而言,我們用精度和 訓(xùn)練網(wǎng)絡(luò)的時間來恒量一個神經(jīng)網(wǎng)絡(luò)設(shè)計的好壞:
(1)神經(jīng)元數(shù)太少時,網(wǎng)絡(luò)不能很好的學(xué)習(xí),訓(xùn)練迭代的次數(shù)也比較多,訓(xùn)練精度也不高。
(2)神經(jīng)元數(shù)太多時,網(wǎng)絡(luò)的功能越強大,精確度也更高,訓(xùn)練迭代的次數(shù)也大,可能會出現(xiàn)過擬合(over fitting)現(xiàn)象。
由此,我們得到神經(jīng)網(wǎng)絡(luò)隱層神經(jīng)元個數(shù)的選取原則是:在能夠解決問題的前提下,再加上一兩個神經(jīng)元,以加快誤差下降速度即可。

6.3 初始權(quán)值的選取
一般初始權(quán)值是取值在(?1,1)之間的隨機數(shù)。另外威得羅等人在分析了兩層網(wǎng)絡(luò)是如何對一個函數(shù)進(jìn)行訓(xùn)練后,提出選擇初始權(quán)值量級為s√r的策略, 其中r為輸入個數(shù),s為第一層神經(jīng)元個數(shù)。

6.4 學(xué)習(xí)速率
學(xué)習(xí)速率一般選取為0.01?0.8,大的學(xué)習(xí)速率可能導(dǎo)致系統(tǒng)的不穩(wěn)定,但小的學(xué)習(xí)速率導(dǎo)致收斂太慢,需要較長的訓(xùn)練時間。對于較復(fù)雜的網(wǎng)絡(luò), 在誤差曲面的不同位置可能需要不同的學(xué)習(xí)速率,為了減少尋找學(xué)習(xí)速率的訓(xùn)練次數(shù)及時間,比較合適的方法是采用變化的自適應(yīng)學(xué)習(xí)速率,使網(wǎng)絡(luò)在 不同的階段設(shè)置不同大小的學(xué)習(xí)速率。

6.5 期望誤差的選取
在設(shè)計網(wǎng)絡(luò)的過程中,期望誤差值也應(yīng)當(dāng)通過對比訓(xùn)練后確定一個合適的值,這個合適的值是相對于所需要的隱層節(jié)點數(shù)來確定的。一般情況下,可以同時對兩個不同 的期望誤差值的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,最后通過綜合因素來確定其中一個網(wǎng)絡(luò)。

7 BP網(wǎng)絡(luò)的局限性
BP網(wǎng)絡(luò)具有以下的幾個問題:
(1)需要較長的訓(xùn)練時間:這主要是由于學(xué)習(xí)速率太小所造成的,可采用變化的或自適應(yīng)的學(xué)習(xí)速率來加以改進(jìn)。
(2)完全不能訓(xùn)練:這主要表現(xiàn)在網(wǎng)絡(luò)的麻痹上,通常為了避免這種情況的產(chǎn)生,一是選取較小的初始權(quán)值,而是采用較小的學(xué)習(xí)速率。
(3)局部最小值:這里采用的梯度下降法可能收斂到局部最小值,采用多層網(wǎng)絡(luò)或較多的神經(jīng)元,有可能得到更好的結(jié)果。

8 BP網(wǎng)絡(luò)的改進(jìn)
P算法改進(jìn)的主要目標(biāo)是加快訓(xùn)練速度,避免陷入局部極小值等,常見的改進(jìn)方法有帶動量因子算法、自適應(yīng)學(xué)習(xí)速率、變化的學(xué)習(xí)速率以及作用函數(shù)后縮法等。 動量因子法的基本思想是在反向傳播的基礎(chǔ)上,在每一個權(quán)值的變化上加上一項正比于前次權(quán)值變化的值,并根據(jù)反向傳播法來產(chǎn)生新的權(quán)值變化。而自適應(yīng)學(xué)習(xí) 速率的方法則是針對一些特定的問題的。改變學(xué)習(xí)速率的方法的原則是,若連續(xù)幾次迭代中,若目標(biāo)函數(shù)對某個權(quán)倒數(shù)的符號相同,則這個權(quán)的學(xué)習(xí)速率增加, 反之若符號相反則減小它的學(xué)習(xí)速率。而作用函數(shù)后縮法則是將作用函數(shù)進(jìn)行平移,即加上一個常數(shù)。

三、部分源代碼

%% 用天牛須算法來優(yōu)化BP的權(quán)值和閾值,數(shù)據(jù)樣本為測試數(shù)據(jù),非論文實際數(shù)據(jù),樣本60個,其中每個樣本具有401個特征值;NIR為樣本的光譜數(shù)據(jù),octane為60*1的辛烷值數(shù)據(jù)
% 1.0版本
%% 清空環(huán)境變量
clear all
close all
clc
tic
%% 加載數(shù)據(jù)
load spectra_data.mat
% 隨機產(chǎn)生訓(xùn)練集和測試集
temp=randperm(size(NIR,1));
%訓(xùn)練集——50個樣本
P=NIR(temp(1:50),:)';
T=octane(temp(1:50),:)';
%測試集——10個樣本
P_test=NIR(temp(51:end),:)';
T_test=octane(temp(51:end),:)';
N=size(P_test,2);
M=size(P,2);%% 歸一化
[P, ps_input] = mapminmax(P,0,1);%p_train歸一化處理,范圍為[0,1],默認(rèn)情況下為[-1,1]
P_test = mapminmax('apply',P_test,ps_input);%對P_test采用相同的映射
[T, ps_output] = mapminmax(T,0,1);
%% 
inputnum=size(P,1);
outputnum=size(T,1);
hiddennum=9;%初始隱含層神經(jīng)元個數(shù)
%% 創(chuàng)建網(wǎng)絡(luò)
net=newff(P,T,hiddennum);
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
net.trainParam.lr = 0.01;
%% 天牛須算法初始化
eta=0.8;
c=5;%步長與初始距離之間的關(guān)系
step=30;%初始步長
n=100;%迭代次數(shù)
k=inputnum*hiddennum+outputnum*hiddennum+hiddennum+outputnum;
x=rands(k,1);
bestX=x;
bestY=fitness(bestX,inputnum,hiddennum,outputnum,net,P,T);
fbest_store=bestY;
x_store=[0;x;bestY];
display(['0:','xbest=[',num2str(bestX'),'],fbest=',num2str(bestY)])
%% 迭代部分
for i=1:n
d0=step/c;dir=rands(k,1);dir=dir/(eps+norm(dir));xleft=x+dir*d0/2;fleft=fitness(xleft,inputnum,hiddennum,outputnum,net,P,T);xright=x-dir*d0/2;fright=fitness(xright,inputnum,hiddennum,outputnum,net,P,T);x=x-step*dir*sign(fleft-fright);y=fitness(x,inputnum,hiddennum,outputnum,net,P,T);if y<bestYbestX=x;bestY=y;endif y<0.001bestX=x;bestY=y;endx_store=cat(2,x_store,[i;x;y]);fbest_store=[fbest_store;bestY];step=step*eta;display([num2str(i),':xbest=[',num2str(bestX'),'],fbest=',num2str(bestY)])
end
M=size(P,2);
w1= bestX(1:inputnum*hiddennum);
B1= bestX(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum);
w2= bestX(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);
B2= bestX(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);
%% 網(wǎng)絡(luò)權(quán)值賦值
%% 使用優(yōu)化后的權(quán)值和閾值測試結(jié)果
%% 使用優(yōu)化后的權(quán)值和閾值
inputnum=size(P,1);%輸入層神經(jīng)元個數(shù)
outputnum=size(T,1);%輸出層神經(jīng)元個數(shù)
N=size(P_test,2);
M=size(P,2);
%% 新建BP
net=newff(P,T,9);
%% 設(shè)置網(wǎng)絡(luò)參數(shù):訓(xùn)練次數(shù)1000,訓(xùn)練目標(biāo)0.001,學(xué)習(xí)速率00.1
net.trainParam.epochs =3000;
net.trainParam.goal = 1e-6;
net.trainParam.lr = 0.01;
%% BP初始權(quán)值和閾值
w1num=inputnum*hiddennum;%輸入層到隱含層的權(quán)值個數(shù)
w2num=outputnum*hiddennum;%隱含層到輸入層的權(quán)值個數(shù)
w1=bestX(1:w1num);%初始輸入層到隱含層的權(quán)值
B1=bestX(w1num+1:w1num+hiddennum);
w2=bestX(w1num+hiddennum+1:w1num+hiddennum+w2num);%初始隱含層到輸出層的權(quán)值
B2=bestX(w1num+hiddennum+w2num+1:w1num+hiddennum+w2num+outputnum);%輸出層閾值
net.iw{1,1}=reshape(w1,hiddennum,inputnum);
net.lw{2,1}=reshape(w2,outputnum,hiddennum);
net.b{1}=reshape(B1,hiddennum,1);
net.b{2}=reshape(B2,outputnum,1);
%% 訓(xùn)練網(wǎng)絡(luò)
net=train(net,P,T);
%% 測試網(wǎng)絡(luò)
t_sim_P= sim(net,P);
t_sim_P_test= sim(net,P_test);
%% 反歸一化
T=mapminmax('reverse',T,ps_output);
function  error = fitness(x,inputnum,hiddennum,outputnum,net,P,T)
%該函數(shù)用來計算適應(yīng)度值
%% 輸入
%x                     個體
%inputnum        輸入層節(jié)點數(shù)
%hiddennum     隱含層節(jié)點數(shù)
%outputnum     輸出層節(jié)點數(shù)
%net                 網(wǎng)絡(luò)
%P                    訓(xùn)練輸入數(shù)據(jù)
%T                     訓(xùn)練輸出數(shù)據(jù)
%% 輸出
%error       個體適應(yīng)度值
%% 提取
M=size(P,2);
w1=x(1:inputnum*hiddennum);
B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum);
w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);
B2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);
%% 網(wǎng)絡(luò)權(quán)值賦值
net.iw{1,1}=reshape(w1,hiddennum,inputnum);
net.lw{2,1}=reshape(w2,outputnum,hiddennum);
net.b{1}=reshape(B1,hiddennum,1);
net.b{2}=reshape(B2,outputnum,1);
%% 訓(xùn)練網(wǎng)絡(luò)
net=train(net,P,T);
%% 測試
Y=sim(net,P);
error=sum(abs(Y-T).^2)./M;
end

四、運行結(jié)果


五、matlab版本及參考文獻(xiàn)

1 matlab版本
2014a

2 參考文獻(xiàn)
[1] 包子陽,余繼周,楊杉.智能優(yōu)化算法及其MATLAB實例(第2版)[M].電子工業(yè)出版社,2016.
[2]張巖,吳水根.MATLAB優(yōu)化算法源代碼[M].清華大學(xué)出版社,2017.

總結(jié)

以上是生活随笔為你收集整理的【优化预测】基于matlab天牛须算法优化BP神经网络预测【含Matlab源码 1318期】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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