棉花是一種重要農(nóng)作物,既可以用于紡織產(chǎn)品也可以用作工業(yè)原料。棉花產(chǎn)量的增減關(guān)系著人民的生產(chǎn)、生活、收入及國(guó)防工業(yè)的發(fā)展和社會(huì)的穩(wěn)定,因此,有必要對(duì)棉花產(chǎn)量進(jìn)行動(dòng)態(tài)監(jiān)測(cè)和預(yù)測(cè),對(duì)種植量進(jìn)行適時(shí)調(diào)整,以免出現(xiàn)供過于求或供不應(yīng)求的情況。只有適時(shí)、精確地掌握棉花生產(chǎn)、銷售、加工等環(huán)節(jié)的信息,引導(dǎo)產(chǎn)業(yè)鏈上各利益群體采取積極有效的措施,減小產(chǎn)業(yè)震蕩,降低行業(yè)風(fēng)險(xiǎn),才能讓棉花產(chǎn)業(yè)健康持續(xù)地發(fā)展,因而有必要建立一種有效的棉花產(chǎn)量動(dòng)態(tài)監(jiān)測(cè)模型。
在農(nóng)業(yè)產(chǎn)品產(chǎn)量預(yù)測(cè)方面,尹邦華等[1]以湖南省2001年至2017年間的糧食產(chǎn)量為基礎(chǔ),采用復(fù)合馬爾可夫算法與灰色模型預(yù)估湖南省未來幾年糧食產(chǎn)量,結(jié)果顯示此種復(fù)合模型的預(yù)測(cè)精度優(yōu)于單一的灰色模型。吳葉等[2]以2015年至2017年棉花月度平均價(jià)格為樣本數(shù)據(jù),使用MIVGA-BP模型進(jìn)行預(yù)測(cè),試驗(yàn)結(jié)果顯示MIV-GA-BP模型的預(yù)測(cè)準(zhǔn)確性比普通BP模型有明顯提高。余焰文[3]結(jié)合江西省1990—2015年油菜年產(chǎn)量和氣象條件預(yù)測(cè)油菜產(chǎn)量,并分析3種模型的準(zhǔn)確率,結(jié)果表明輻熱積模型預(yù)測(cè)精度最高。
棉花產(chǎn)業(yè)包括生產(chǎn)、銷售、儲(chǔ)藏及加工等諸多環(huán)節(jié),要對(duì)其進(jìn)行精確預(yù)測(cè),存在很大難度。而BP[4](Back Propagation,簡(jiǎn)寫為BP)神經(jīng)網(wǎng)絡(luò)[5]由于擁有很強(qiáng)的非線性擬合特性,已在很多領(lǐng)域被用于解決擬合、分類及預(yù)測(cè)等問題。因而本文使用1980—2019年全國(guó)棉花產(chǎn)量先訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),再使用訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)2020年的棉花產(chǎn)量,為棉花的種植、交易及加工等環(huán)節(jié)提供數(shù)據(jù)支持。
本文以1980—2019年國(guó)家棉花年產(chǎn)量為先驗(yàn)數(shù)據(jù),先對(duì)歷年產(chǎn)量進(jìn)行滑動(dòng)切片生成神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù),再用訓(xùn)練過的網(wǎng)絡(luò)預(yù)測(cè)2020年的年產(chǎn)量。各年棉花產(chǎn)量如圖1所示,可見各年產(chǎn)量波動(dòng)較大,但總體而言產(chǎn)量是增加的,1980年時(shí)年產(chǎn)量?jī)H200多萬(wàn)噸,而到了2019年就增加到了600萬(wàn)噸,30年間增加了兩倍。為使用神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)2020年的棉花產(chǎn)量,首先要使用已有的1980—2019年全國(guó)棉花產(chǎn)量數(shù)據(jù)對(duì)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)進(jìn)行訓(xùn)練,這就要求我們先對(duì)歷史數(shù)據(jù)進(jìn)行滑動(dòng)切片,把前面q年的數(shù)據(jù)和當(dāng)前年份的產(chǎn)量組成多個(gè)“q輸入-1輸出”的數(shù)據(jù)對(duì),作為神經(jīng)網(wǎng)絡(luò)的輸入和輸出,用于訓(xùn)練神經(jīng)網(wǎng)絡(luò),使其根據(jù)誤差調(diào)節(jié)各神經(jīng)節(jié)點(diǎn)的權(quán)重和偏置值,使總的誤差最小。為使預(yù)測(cè)結(jié)果精度較高,q的值分別取3、6、9、12、15,表示滑動(dòng)切片前面3年、6年、9年、12年、15年的數(shù)據(jù),作為神經(jīng)網(wǎng)絡(luò)的輸入,而當(dāng)年的產(chǎn)量作為神經(jīng)網(wǎng)絡(luò)的輸出。由于過大的數(shù)據(jù)會(huì)導(dǎo)致神經(jīng)節(jié)點(diǎn)飽和使其擬合能力急劇降低,一般要將神經(jīng)網(wǎng)絡(luò)的輸入輸出數(shù)據(jù)歸一化到區(qū)間(0,1)之間。由圖1可見,歷年棉花產(chǎn)量均小于1000萬(wàn)噸,因而本文先將數(shù)據(jù)除以1000進(jìn)行歸一化,將這些歸一化后的數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù);同理,神經(jīng)網(wǎng)絡(luò)的輸出需要乘以1000才能得到正確的預(yù)測(cè)值。
圖1 1980—2019年歷年全國(guó)棉花產(chǎn)量(單位:萬(wàn)噸)
圖2是本文所用神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),包含兩個(gè)線性層、兩個(gè)非線性層及輸入輸出層,一共6層。圖中標(biāo)記為S的神經(jīng)節(jié)所在的層就是非線性層,S表示該節(jié)點(diǎn)所用激活函數(shù)是Sigmoid函數(shù)。Sigmoid函數(shù)呈S型,在正無窮大處趨于1,在負(fù)無窮大處趨于0,具有非線性特征,神經(jīng)網(wǎng)絡(luò)的非線性擬合或分類的能力即來源于這種非線性特征。
Sigmoid函數(shù)的公式和一階倒數(shù)分別為
神經(jīng)網(wǎng)絡(luò)的初始輸入可表示為:
表示第0層,即神經(jīng)網(wǎng)絡(luò)的輸入層。它是由第i年的產(chǎn)量及之前(q-1)年的產(chǎn)量組成的數(shù)據(jù)切片,共q個(gè)數(shù)。本文中,切片長(zhǎng)度q擬采用3、6、9、12及15,并根據(jù)試驗(yàn)結(jié)果,選擇最優(yōu)的3個(gè)切片長(zhǎng)度。中間各級(jí)輸出
其中,M表示神經(jīng)網(wǎng)絡(luò)的總層數(shù),因而第M層的輸出就是神經(jīng)網(wǎng)絡(luò)的輸出,式中的m表示第m層。
最后一層的輸出用a表示,及第i+1年的產(chǎn)量。
正向計(jì)算完成后會(huì)得到一個(gè)結(jié)果(神經(jīng)網(wǎng)絡(luò)的輸出),此結(jié)果一般與目標(biāo)結(jié)果存在誤差,需要將誤差反向傳播以調(diào)節(jié)神經(jīng)節(jié)點(diǎn)的權(quán)重和偏置:
式(6)中t表示期望的輸出,神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出理論上應(yīng)該與期望的輸出t相同,但實(shí)際上二者之間總存在一定誤差,這就要反復(fù)按負(fù)梯度法調(diào)節(jié)神經(jīng)節(jié)點(diǎn)的權(quán)重和偏置值,使它們的值越來越接近。除最后一層外,前面各層敏感性反向傳播公式如式(7)所示:
其中,W(m+1)表示第(m+1)層的權(quán)重。
最后,根據(jù)梯度下降法或共軛梯度法等算法更新各神經(jīng)元的權(quán)重和偏置值:
經(jīng)試驗(yàn),每層設(shè)置15個(gè)神經(jīng)元比較合適,既能解決問題,節(jié)點(diǎn)數(shù)也不太冗余,如圖2所示。
圖2 本文所用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
本文中設(shè)計(jì)了兩組試驗(yàn),第一組是通過試驗(yàn)選出合適的神經(jīng)網(wǎng)絡(luò)輸入個(gè)數(shù),即訓(xùn)練用歷史數(shù)據(jù)的年份數(shù)目q;第二組試驗(yàn)是先用1980—2019年產(chǎn)量的切片數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),再用此網(wǎng)絡(luò)預(yù)測(cè)2020年的棉花產(chǎn)量。
第一部分:本組試驗(yàn)由一步預(yù)測(cè)方案和兩步預(yù)測(cè)方案組成。一步預(yù)測(cè)方案指用1980—2017年的年產(chǎn)量切片數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)并預(yù)測(cè)2018年的棉花年產(chǎn)量;兩步預(yù)測(cè)方案指用1980—2017年的棉花年產(chǎn)量切片數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)并預(yù)測(cè)2019年的棉花年產(chǎn)量,以檢驗(yàn)遠(yuǎn)期預(yù)測(cè)的可行性。為方便描述,當(dāng)滑動(dòng)切片數(shù)分別為3、6、9、12、15(即q=3、6、9、12、15)時(shí),對(duì)應(yīng)的預(yù)測(cè)方案稱為3預(yù)測(cè)1,…,15預(yù)測(cè)1等。如表1所示,當(dāng)切片數(shù)q由3變化到15時(shí),相對(duì)誤差先減小后增大,切片數(shù)q=3、15時(shí)預(yù)測(cè)效果較差,當(dāng)切片數(shù)q=6、9、12時(shí)預(yù)測(cè)值的相對(duì)誤差較小,因此優(yōu)先選用切片數(shù)q=6、9、12這3種方案。
從表1中可以看出對(duì)最近年份的預(yù)測(cè)值,其相對(duì)誤差較小,使用1980—2017年的棉花產(chǎn)量預(yù)測(cè)得到的2018年的年產(chǎn)量為588.93萬(wàn)噸,與真實(shí)值(609.6萬(wàn)噸)的相對(duì)誤差僅為0.39%;而2019年產(chǎn)量的預(yù)測(cè)值為537.41萬(wàn)噸,與真實(shí)值(588.9萬(wàn)噸)相對(duì)誤差達(dá)到8.74%,效果較差。對(duì)2018年5種不同方案的預(yù)測(cè)結(jié)果而言,6預(yù)測(cè)1方案的預(yù)測(cè)值為606.73萬(wàn)噸,與真實(shí)值(609.6萬(wàn)噸)的相對(duì)誤差只有0.47%,預(yù)測(cè)精度最好。1980—2017年歷年實(shí)際產(chǎn)量與對(duì)應(yīng)6預(yù)測(cè)1方案預(yù)測(cè)值的對(duì)比如圖3所示,可見二者基本吻合。
圖3 6預(yù)測(cè)1(1980—2016年)
表1 由1980—2017年產(chǎn)量預(yù)測(cè)2018和2019年產(chǎn)量
第二部分:測(cè)試由1980—2018年的年產(chǎn)量訓(xùn)練神經(jīng)網(wǎng)絡(luò),然后預(yù)測(cè)2019年的產(chǎn)量并與2019年的實(shí)際產(chǎn)量(588.9萬(wàn)噸)進(jìn)行對(duì)比。由表2可以看出,當(dāng)切片長(zhǎng)度q=3、15時(shí)對(duì)應(yīng)預(yù)測(cè)值與真實(shí)值的相對(duì)誤差較大。對(duì)q=6、9、12時(shí)方案的預(yù)測(cè)結(jié)果求平均值,結(jié)果為574.5萬(wàn)噸,與真實(shí)值(588.9萬(wàn)噸)的相對(duì)誤差為2.45%,在容許誤差5%范圍內(nèi),是可以接受的。
表2 由1980—2018年產(chǎn)量預(yù)測(cè)2019年產(chǎn)量
由上節(jié)中的試驗(yàn)可以看出,當(dāng)歷史數(shù)據(jù)的滑動(dòng)切片長(zhǎng)度q=6、9、12時(shí),三種方案預(yù)測(cè)結(jié)果的平均值精度很高(相對(duì)誤差小于5%),因而采用此平均值作為正式預(yù)測(cè)結(jié)果。使用1980—2019年的數(shù)據(jù)切片對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,再用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)對(duì)2020年產(chǎn)量進(jìn)行預(yù)測(cè)的結(jié)果見表3,切片長(zhǎng)度q=6、9、12三種方案的平均預(yù)測(cè)值為578.8萬(wàn)噸,比2019年略少10萬(wàn)噸。
表3 由1980—2019年產(chǎn)量預(yù)測(cè)2020年產(chǎn)量
本文以1980—2019年中國(guó)棉花產(chǎn)量數(shù)據(jù)為基礎(chǔ),通過對(duì)原數(shù)據(jù)滑動(dòng)切片生成神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù),并用此數(shù)據(jù)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),再用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)2020年的國(guó)家棉花產(chǎn)量。試驗(yàn)表明,滑動(dòng)切片的數(shù)據(jù)量過多或過少都會(huì)造成預(yù)測(cè)值的相對(duì)誤差偏大,對(duì)2018、2019年產(chǎn)量的實(shí)踐檢驗(yàn)表明,當(dāng)切片長(zhǎng)度為6、9、12時(shí)取三者預(yù)測(cè)值的平均值效果較好,對(duì)這兩年的預(yù)測(cè)結(jié)果與真實(shí)值的相對(duì)誤差分別為0.39%及2.45%,對(duì)2020年產(chǎn)量的預(yù)測(cè)結(jié)果為578.8萬(wàn)噸,比2019年約少10萬(wàn)噸。