李其操, 董自健
(江蘇海洋大學(xué)電子工程學(xué)院, 江蘇 連云港 222005)
中國是排在世界前列的農(nóng)業(yè)生產(chǎn)大國,溫室的面積占據(jù)著世界首位。 溫室內(nèi)的環(huán)境因素對于作物的生長有著至關(guān)重要的影響[1-2]。 目前,溫室的調(diào)控方式大多是憑借工人的生產(chǎn)經(jīng)驗,通過獲得的傳感器數(shù)據(jù),進行預(yù)判性的調(diào)控。 因此,能夠精準(zhǔn)的預(yù)測出溫室內(nèi)的溫度情況,對溫室調(diào)控系統(tǒng)有很大的幫助。
近年來,許多學(xué)者提出了針對溫度預(yù)測的方法。如:左志宇[3]提出采用時序分析法建立溫度預(yù)測模型的方法;徐意[4]構(gòu)建了基于RBF 神經(jīng)網(wǎng)絡(luò)的溫室溫度預(yù)測模型;徐宇[5]構(gòu)建了基于復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)的溫室溫度預(yù)測模型;王紅君[6]利用貝葉斯正則化算法對BP 神經(jīng)網(wǎng)絡(luò)進行改進,降低了影響溫度的因子之間的耦合度等。
但是,上述預(yù)測模型都容易出現(xiàn)陷入局部最優(yōu)的情況。 因此,本文利用遺傳算法,對BP 神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值進行優(yōu)化,使預(yù)測模型避免出現(xiàn)局部最優(yōu)的情況,從而對溫室內(nèi)溫度進行更精準(zhǔn)的預(yù)測。
BP 神經(jīng)網(wǎng)絡(luò)的主要思想是:訓(xùn)練數(shù)據(jù)通過前饋網(wǎng)絡(luò)訓(xùn)練后得到輸出數(shù)據(jù),將輸出數(shù)據(jù)與期望數(shù)據(jù)進行對比得到誤差,反向傳播網(wǎng)絡(luò)將得到的誤差反向輸入輸出層,對網(wǎng)絡(luò)的連接權(quán)值和閾值進行反復(fù)訓(xùn)練,縮小網(wǎng)絡(luò)輸出和期望輸出之間的誤差。
輸入、輸出層為單層結(jié)構(gòu),而隱藏層可以是單層或多層。 輸入層、隱藏層、輸出層之間的神經(jīng)元都是相互連接的,為全連接。 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig. 1 Structure of BP neural network
假設(shè)輸入層節(jié)點數(shù)為n,隱藏層節(jié)點數(shù)為l,輸出層節(jié)點數(shù)為m,輸入層到隱藏層的權(quán)重為ωij,隱藏層到輸出層的權(quán)重為ωjk, 輸入層到隱藏層的閾值為aj,隱藏層到輸出層的閾值為bk, 學(xué)習(xí)速率為η,激勵函數(shù)為g(x)。 其中,激勵函數(shù)為g(x) 取sigmoid 函數(shù)。 形式如式(1)所示:
隱藏層的輸出如式(2)所示:
輸出層的輸出如式(3)所示:
網(wǎng)絡(luò)誤差如式(4)所示:
其中,Yk為期望輸出。
輸入層到隱藏層權(quán)值的更新公式如式(5)所示:
隱藏層到輸出層權(quán)值的更新公式如式(6)所示:
隱藏層節(jié)點閾值的更新公式如式(7)所示:
輸出層節(jié)點閾值的更新公式如式(8)所示:
由于BP 神經(jīng)網(wǎng)絡(luò)的初始連接權(quán)值和閾值是隨機選定,可能會使網(wǎng)絡(luò)陷入局部極值,權(quán)值收斂到局部最小值,從而出現(xiàn)網(wǎng)絡(luò)訓(xùn)練失敗,模型的預(yù)測精度不高的結(jié)果。 因此,本文采用遺傳算法對BP 神經(jīng)網(wǎng)絡(luò)進行優(yōu)化,得到權(quán)值和閾值的最優(yōu)解,使模型能夠更高效的訓(xùn)練和更精準(zhǔn)的預(yù)測。
(1)初始化種群。 種群中的個體由BP 神經(jīng)網(wǎng)絡(luò)中輸入層到隱藏層的權(quán)值、隱藏層的閾值、隱藏層到輸出層的權(quán)值和輸出層的閾值編碼而成。
(2)適應(yīng)度函數(shù)。 適應(yīng)度函數(shù)用于表明BP 神經(jīng)網(wǎng)絡(luò)中權(quán)值和閾值的優(yōu)劣性,個體適應(yīng)度值為訓(xùn)練數(shù)據(jù)預(yù)測誤差絕對值之和。 適應(yīng)度函數(shù)的計算公式如式(9)所示:
式中:k為系數(shù),n為神經(jīng)網(wǎng)絡(luò)輸出節(jié)點數(shù)量,yi為神經(jīng)網(wǎng)絡(luò)第i個節(jié)點的期望輸出,oi為神經(jīng)網(wǎng)絡(luò)第i個節(jié)點的預(yù)測輸出。
(3)選擇操作。 選擇操作從舊群體中以一定概率選擇優(yōu)良個體組成新的種群,以繁殖得到下一代個體,本文采用輪盤賭法,每個個體i被選擇的概率pi如式(10)所示:
式中:N為種群規(guī)模,F(xiàn)i為第i個個體適應(yīng)度值。
(4)交叉操作。 交叉操作是指從種群中隨機選擇兩個個體,通過兩個染色體的交換組合,把父串的優(yōu)秀特征遺傳給子串,從而產(chǎn)生新的優(yōu)秀個體,由于個體采用實數(shù)編碼,所以交叉操作采用實數(shù)交叉法[7]。 第j個個體Sj和k個個體Sk在i位的交叉過程如式(11)所示:
式中b為[0,1]區(qū)間內(nèi)的隨機數(shù)。
(5)變異操作。 為了防止遺傳算法在優(yōu)化過程中陷入局部最優(yōu)解,在搜索過程中,需要對個體進行變異。 經(jīng)過交叉操作后得到新的染色體后,隨機選擇染色體上的若干個基因,將這若干個基因的值進行隨機修改,從而更新了染色體的基因,突破了搜索的限制,更有利于獲取全局最優(yōu)解[8]。 選擇第i個個體的第j個基因aij進行變異,操作過程如式(12)、式(13)所示:
式中:amax、amin分別是個體i的最大值和最小值,s是迭代次數(shù),Gmax是最大進化次數(shù),r為[0,1]區(qū)間內(nèi)的隨機數(shù)。
GA-BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型由遺傳算法(Genetic Algorithms,GA)優(yōu)化部分和BP 神經(jīng)網(wǎng)絡(luò)兩部分組成。 由于種群中的每個個體都包含了BP 神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,遺傳算法部分的作用是優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值。 通過計算BP 神經(jīng)網(wǎng)絡(luò)的誤差,得到個體適應(yīng)度值。 經(jīng)過遺傳算法的選擇、交叉和變異操作找到最優(yōu)適應(yīng)度值的個體。 對最優(yōu)個體進行解碼,得到權(quán)值和閾值,賦值給BP 神經(jīng)網(wǎng)絡(luò),再使用反向傳播進行訓(xùn)練。
GA-BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型的執(zhí)行過程如圖2所示。
圖2 遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)流程圖Fig. 2 Flow chart of genetic algorithm to optimize BP neural network
本文實驗數(shù)據(jù)采集自連云港贛榆葡萄園第6 號溫室,選用溫度、濕度、二氧化碳濃度、土壤氮含量、土壤磷含量和土壤鉀含量作為樣本數(shù)據(jù)。 每15 min采集一次數(shù)據(jù),共采集了2 292 組樣本數(shù)據(jù)。 為了實驗測試更方便,本文選用其中2 000 組數(shù)據(jù),并將前80%的樣本數(shù)據(jù)作為訓(xùn)練樣本,剩余的20%樣本數(shù)據(jù)作為測試樣本。 部分樣本數(shù)據(jù)見表1。
表1 部分樣本數(shù)據(jù)Tab. 1 Partial sample data
2.2.1 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
根據(jù)所獲得的樣本數(shù)據(jù),將輸入層節(jié)點設(shè)定為5,即5 個特征,分別為濕度、二氧化碳濃度、土壤氮含量、土壤磷含量和土壤鉀含量數(shù)據(jù);輸出層節(jié)點為1 個,特征為溫度數(shù)據(jù);通過試湊法確定隱藏層節(jié)點為7 個。 因此,BP 神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)為5-7-1。
2.2.2 遺傳算法參數(shù)設(shè)定
由于過多的迭代次數(shù)會影響模型的訓(xùn)練效率,且適應(yīng)度曲線在迭代50 次后的變化幅度不大,因此本實驗將進化迭代次數(shù)設(shè)定為50 次,種群規(guī)模為30,交叉概率為0.3,變異概率為0.1。 圖3 為遺傳算法的適應(yīng)度曲線。
圖3 遺傳算法適應(yīng)度曲線Fig. 3 Genetic algorithm fitness curve
為了評定預(yù)測模型的性能,本文以平均絕對誤差(MAE)、均方誤差(MSE) 和平均絕對百分比誤差(MAPE) 作為評判預(yù)測模型性能優(yōu)劣的標(biāo)準(zhǔn)。 各評估誤差指標(biāo)的計算公式如式(14)~式(16) 所示:
式中:為模型的預(yù)測值,yi為真實值,n為樣本數(shù)。 所得的值越小,則模型的性能越優(yōu)異。
通過MATLAB 軟件對GA-BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型和傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型進行驗證,得到的預(yù)測對比結(jié)果如圖4 所示。
由圖4 可知,GA-BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型與傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型相比,GA-BP 的預(yù)測效果更優(yōu),預(yù)測結(jié)果更貼近實際值。
評價結(jié)果見表2。 可以看出,GA-BP 預(yù)測模型的各項誤差指標(biāo)均小于傳統(tǒng)BP 預(yù)測模型。 實驗證明,GA-BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型具有更好的預(yù)測效果。
表2 模型的評價指標(biāo)對比Tab. 2 Comparison of evaluation indicators of the models
本文以溫室內(nèi)濕度、二氧化碳濃度和土壤氮磷鉀含量與溫度有關(guān)的影響因子作為輸入量,以溫度作為輸出量,通過遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,構(gòu)建了GA-BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型。 實驗證明,GA-BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型能夠更精準(zhǔn)的進行溫室內(nèi)溫度預(yù)測,對于溫室管理有一定的參考價值。