池 濤,曹廣溥*,李丙春,孜克爾·阿不都熱合曼,王文龍
1.上海海洋大學(xué) 信息學(xué)院,上海 201306
2.喀什大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,新疆 喀什 844006
土壤鹽漬化是一種常見但危害巨大的土壤退化現(xiàn)象,會降低農(nóng)作物的產(chǎn)量,嚴(yán)重時農(nóng)作物無法生長而且會破壞當(dāng)?shù)厣鷳B(tài)環(huán)境。中國領(lǐng)土廣泛,不同區(qū)域的地質(zhì)、氣候、領(lǐng)海情況不同,造成了中國鹽漬土種類豐富,很難定量分析。國內(nèi)外對鹽漬化土壤光譜機理[1-4]和模型反演[5-8]已進(jìn)行了深入研究,形成了很多研究成果,但這些成果大多體現(xiàn)在定性分析和論文描述中,至今無應(yīng)用于實際儀器儀表記錄。
本研究是基于不同鹽度土壤反射光譜數(shù)據(jù)分析,采用多元線性回歸、BP神經(jīng)網(wǎng)絡(luò)和支持向量機三種在數(shù)據(jù)回歸領(lǐng)域中使用較廣的兩種算法,對土壤含鹽量進(jìn)行非線性定量擬合,代碼通過MATLAB編程實現(xiàn)。創(chuàng)新點是在PC機中驗證機器學(xué)習(xí)算法在土壤含鹽量預(yù)測領(lǐng)域的適用性,以便于后期移植到實際的儀器儀表制作中。
實驗以不同區(qū)域的土壤為研究對象,一類供試土樣采自上海市濱海地區(qū),二類供試土壤采自新疆省喀什區(qū)域,隨機土樣共270個(上海鹽土150個,喀什鹽土120個)并將每個土樣分為兩份,一份土樣用于含鹽量檢測,一份用于土壤光譜測定。
本研究使用重量法檢測土壤含鹽量,土壤進(jìn)過篩孔、溶解、去有機質(zhì)、風(fēng)干和稱重等過程,測得土壤樣本含鹽量情況如下表:
表1 土壤含鹽量樣地統(tǒng)計表Table 1 Statistics tables of soil salinity sample plots
土壤光譜測定使用了Field Spec Pro FR(美國Analytical Spectral Devices公司)光譜儀,波長范圍為350~2500 nm。在暗室中測定樣本光譜,350~1000 nm波段光譜分辨率為3 nm,1000~2500 nm波段光譜分辨率為10 nm,采樣間隔都是1 nm。光源使用了1000 W的鹵素?zé)?,光譜儀傳感器探頭放置在土壤樣本的正上方,探頭接收的樣本區(qū)域應(yīng)遠(yuǎn)小于土壤樣本的整體面積,確保探頭接受的所有反射光譜都是來自土壤樣本的[9]。重復(fù)采樣土壤樣本光譜曲線并取均值作為處理好實驗數(shù)據(jù)供后面實驗使用。
在MATLAB中對采集到的光譜曲線進(jìn)行去噪處理,處理后的光譜曲線如圖1。
圖1 不同鹽漬土光譜反射率Fig.1 Spectral reflectance of different saline soils
兩種供試土壤的土壤類型不同,第一類土壤采集自上海臨海區(qū)域的鹽土,土壤中的鹽類大多是氯化鹽,如NaCl和MgCl2,因為氯化物吸收水分的能力強導(dǎo)致氯化鹽土中水分較高,所以該類土壤的光譜反射率會隨著鹽漬化程度的增加而降低。而第二類供試土壤采集自新疆的喀什戈壁地區(qū),由于天氣干燥,土壤含水量極低而出現(xiàn)了鹽結(jié)晶溢出的現(xiàn)象,這也導(dǎo)致了二類土壤的光譜反射率會隨著鹽漬度程度增加而增加。
由于光譜波段數(shù)量較多,直接對原始數(shù)據(jù)進(jìn)行擬合實驗會造成實驗?zāi)P蛷?fù)雜且運行效率低,所以需要采集一些特征值來表征某個土壤樣本的整條光譜曲線。本研究選取鹽漬土在350 nm、700 nm、1350 nm、1400 nm、1500 nm、1850 nm、2050 nm、2200 nm和2500 nm的光譜反射率曲線值以及土壤表征參數(shù)(特征波段斜率):
Xa(350~700 nm),Xb(700~1350 nm),Xc(1350~1400 nm),Xd(1400~1500 nm),Xe(1500~1850 nm),Xf(1850~2050 nm),Xg(2050~2200 nm),Xh(2200~2500 nm)。
通過這種方法簡化后的17個參數(shù),不但涵蓋了土壤光譜曲線的所有信息,而且可以避免樣本少輸入數(shù)據(jù)多而導(dǎo)致的擬合模型不穩(wěn)定的問題。
多元線性回歸是一種常用的線性擬合方法,適用于自變量數(shù)量多的數(shù)據(jù)回歸中,因變量與多個自變量都存在相關(guān)性,然后通過回歸分析得出因變量與自變量的映射關(guān)系。多元線性回歸方法是農(nóng)學(xué)數(shù)學(xué)分析最常用的方法,本研究對土壤光譜數(shù)據(jù)進(jìn)行多元線性回歸,除去大于0.05大于顯著水平的輸入變量,得到土壤光譜數(shù)據(jù)與含鹽量的映射方程,擬合公式如下:
BP神經(jīng)網(wǎng)絡(luò)(BPNN)是一種采用了誤差逆向傳播算法來訓(xùn)練的前饋式神經(jīng)網(wǎng)絡(luò),如果已有神經(jīng)元之間的權(quán)值和閾值正向傳播無法達(dá)到期望值,則反向傳播計算誤差大小來修改各節(jié)點的權(quán)值和閾值,逐步減小代價函數(shù),使預(yù)測誤差降到預(yù)先設(shè)定的數(shù)值[10]。當(dāng)誤差達(dá)到期望或者多次迭代后無法降低誤差,則BP網(wǎng)絡(luò)訓(xùn)練完成,此時的BP網(wǎng)絡(luò)就是輸入與輸出之間的映射關(guān)系。
本研究中的BP神經(jīng)網(wǎng)絡(luò)在MATLAB中實現(xiàn),分為模型構(gòu)建、自動訓(xùn)練和結(jié)果預(yù)測三個過程,通過MATLAB自帶神經(jīng)網(wǎng)絡(luò)實驗箱中的newff、train、sim三個函數(shù)來實現(xiàn)。將表征光譜曲線的17個參數(shù)作為BP神經(jīng)網(wǎng)絡(luò)的17個節(jié)點,隱含層的數(shù)量在不斷實驗中確定,輸入層為土壤含鹽量一個節(jié)點。代碼實現(xiàn)過程如下:
其中:input是輸入的土壤光譜數(shù)據(jù);output是土壤含鹽量;input_test是測試數(shù)據(jù);BPoutput是預(yù)測結(jié)果。
通過mapminmax函數(shù)對輸入數(shù)據(jù)、輸出數(shù)據(jù)和訓(xùn)練樣本數(shù)據(jù)進(jìn)行歸一化,輸入層到隱含層使用S型對數(shù)函數(shù)logsig,隱含層到輸出層使用純線性函數(shù)purelin,通過多次實驗,選擇了收斂效果最好、誤差最小的trainlm作為訓(xùn)練函數(shù)。訓(xùn)練步數(shù)設(shè)置為100步,學(xué)習(xí)速率為0.1,理想誤差為0.00004。將土壤光譜數(shù)據(jù)作為輸入數(shù)據(jù),土壤含鹽量作為輸出數(shù)據(jù),訓(xùn)練模型,在誤差達(dá)到理想誤差時或是多次迭代后誤差不在下降時,模型訓(xùn)練結(jié)束,得到的權(quán)值閾值矩陣就是BP神經(jīng)網(wǎng)絡(luò)模型。訓(xùn)練完成之后,將訓(xùn)練樣本導(dǎo)入輸出層,計算出預(yù)測結(jié)果并與實際結(jié)果相比較,得出BP神經(jīng)網(wǎng)絡(luò)的誤差率。
由于BP神經(jīng)網(wǎng)絡(luò)模型受訓(xùn)練樣本數(shù)目影響較大,在小樣本實驗中,BP神經(jīng)網(wǎng)絡(luò)易出現(xiàn)局部誤差大、模型不穩(wěn)定等情況,所以本文對實驗進(jìn)行了2個調(diào)整:
(1)從輸入的17個節(jié)點中挑選出6個權(quán)值貢獻(xiàn)率最大的節(jié)點作為輸入節(jié)點,減少了輸入節(jié)點的數(shù)量,簡化了BP神經(jīng)網(wǎng)絡(luò)模型。
(2)加一個BP神經(jīng)網(wǎng)絡(luò)模型用于土壤種類的分類,減少了土壤種類對模型精確度的影響。
修改后的模型如圖2。
圖2 復(fù)合BP神經(jīng)網(wǎng)絡(luò)模型Fig.2 Compound BPneural network model
支持向量機(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的用來解決函數(shù)擬合的問題。支持向量機一般用于分類和回歸兩種情況,本研究中土壤鹽漬化反演模型就是使用支持向量機進(jìn)行回歸。在使用支持向量機進(jìn)行回歸時,需要調(diào)整的參數(shù)是懲罰參數(shù)c、不靈敏損失參數(shù)ε、核函數(shù)類型和核函數(shù)參數(shù)[11,12]。
控制支持向量機回歸的參數(shù)主要有懲罰參數(shù)c、不靈敏損失參數(shù)ε、核函數(shù)類型和核函數(shù)參數(shù)。c越大,表示經(jīng)驗風(fēng)險越小,即模型越復(fù)雜,泛化能力越差;c越小,模型越簡單,泛化能力越強,但可能犧牲了模型的擬合能力。ε用于修改支持向量的數(shù)量,ε越小,支持向量機數(shù)量越大,模型相對來說約復(fù)雜。已有學(xué)者研究表明,徑向基核函數(shù)在土壤鹽漬化反演模型中效果更好。因此,本研究的選擇徑向基(RBF)作為核函數(shù),其表達(dá)式為:
式中:σ為核函數(shù)參數(shù)。
代碼實現(xiàn)流程如下:
支持向量機輸入輸出數(shù)據(jù)初始化、測試樣本和訓(xùn)練樣本的設(shè)置與BP神經(jīng)網(wǎng)絡(luò)模型的設(shè)置相同,然后通過libsvm-mat的網(wǎng)格參數(shù)尋優(yōu)函數(shù)的調(diào)用,對懲罰參數(shù)c和核函數(shù)參數(shù)g進(jìn)行最優(yōu)值尋找。先進(jìn)行參數(shù)粗略選擇,c的搜索范圍設(shè)置為10-5~1010,g的搜索范圍設(shè)置為10-5~105,迭代步長設(shè)置為1,然后進(jìn)行參數(shù)精細(xì)選擇,c的搜索范圍設(shè)置為100~1010,g的搜索范圍設(shè)置為10-5~100,迭代步長設(shè)為0.3。參數(shù)選擇完成后,再利用回歸預(yù)測分析的最佳參數(shù)進(jìn)行SVM模型訓(xùn)練。
本實驗采集鹽漬土光譜數(shù)據(jù),處理后作為輸入數(shù)據(jù),并檢測土壤含鹽量作為輸出數(shù)據(jù),將這些數(shù)據(jù)分為訓(xùn)練集和預(yù)測集來進(jìn)行建模。
在多元線性回歸實驗中,除去大于0.05大于顯著水平的輸入變量后建立的模型擬合精度為76.8%,效果并不理想,這是因為多元線性回歸方法適用于線性數(shù)據(jù)的擬合,而土壤光譜數(shù)據(jù)是機理尚不明確的非線性數(shù)據(jù),使用線性回歸方法處理難免會出現(xiàn)誤差較大的情況。圖二是BP神經(jīng)網(wǎng)絡(luò)收斂過程,經(jīng)過17步訓(xùn)練,測試集誤差達(dá)到目標(biāo)誤差以下,為4.036×10-5,但測試集誤差下降到5×10-4左右時就會出現(xiàn)反復(fù)迭代無法下降的情況,這是因為BP神經(jīng)網(wǎng)絡(luò)模型對樣本數(shù)量要求較高,在小樣本實驗中,訓(xùn)練集和測試集都會出現(xiàn)數(shù)量不夠,從而導(dǎo)致模型不穩(wěn)定、測試集不具有普遍性、部分測試數(shù)據(jù)誤差較大的情況。圖三、圖四是支持向量機參數(shù)模糊、精確選擇結(jié)果,經(jīng)過網(wǎng)格尋優(yōu)得到的最優(yōu)參數(shù)為c=9.849、g=0.0583,模型的擬合精度為99.4119%。從以上實驗可以看出,線性回歸方法、BP神經(jīng)網(wǎng)絡(luò)和支持向量機都可以完成收斂任務(wù),BP神經(jīng)網(wǎng)絡(luò)和SVM的誤差收斂穩(wěn)定,訓(xùn)練、預(yù)測效果好。
圖3 BP神經(jīng)網(wǎng)絡(luò)均方差變化曲線Fig.3 Variation curve of BP neural network mean square error
圖4 SVM參數(shù)模糊選擇結(jié)果Fig.4 SVM parameter fuzzy selection results
圖5 SVM參數(shù)精細(xì)選擇結(jié)果Fig.5 SVM parameters precision selection results
對實驗使用的三種模型進(jìn)行誤差分析對比,對比結(jié)果如圖6。
圖6 多模型誤差對比Fig.6 Multi-model error comparison
線性回歸方法最大相對誤差為912.32%,最小相對誤差為10.03%,由于個別測試值誤差巨大,所以導(dǎo)致平均相對誤差達(dá)到128.25%,這也說明線性回歸方法并不適用于土壤光譜數(shù)據(jù)這種復(fù)雜非線數(shù)據(jù)的擬合;BP神經(jīng)網(wǎng)絡(luò)模型的最大相對誤差為444.68%,最小相對誤差為2.79%,平均相對誤差為67.45%,增加土壤分類功能的復(fù)合神經(jīng)網(wǎng)絡(luò)模型的最大誤差為158.35%,最小誤差為0.55%,平均相對誤差為32.213%,比較而言,傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)還是有部分預(yù)測數(shù)據(jù)誤差較大的情況,百分35.84%的擬合精度也不理想,而改進(jìn)后的復(fù)合BP神經(jīng)網(wǎng)絡(luò)模型的擬合精度達(dá)到了67.78%,預(yù)測精度遠(yuǎn)遠(yuǎn)高于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)模型,說土壤種類對土壤光譜數(shù)據(jù)的影響較大,通過修改模型減少這種影響可以提高預(yù)測模型精度;SVM模型的最大相對誤差為37.341%,最小相對誤差為0.431%,平均相對誤差為9.253%,擬合精度明顯高于BP神經(jīng)網(wǎng)絡(luò)模型,也達(dá)到了一個理想的精確度。之所以出現(xiàn)這樣的實驗現(xiàn)象,是因為BP神經(jīng)網(wǎng)絡(luò)模型對訓(xùn)練樣本數(shù)量要求高,需要對數(shù)據(jù)進(jìn)行大量的預(yù)先處理,而且在調(diào)試過程中需要大量的調(diào)整技巧,并不適用與土壤含鹽量反演這樣的小規(guī)模數(shù)據(jù)實驗。支持向量機在這樣的小規(guī)模數(shù)據(jù)實驗中表現(xiàn)較好,因為支持向量機有著嚴(yán)格的數(shù)學(xué)理論作基礎(chǔ),會先經(jīng)過大量計算來求出全局參數(shù)最優(yōu)解,省去了數(shù)據(jù)預(yù)處理的階段,并且可以有效避免神經(jīng)網(wǎng)絡(luò)易出現(xiàn)的局部極值問題,因此支持向量機模型的預(yù)測精度會高于多元線性回歸模型和BP神經(jīng)網(wǎng)絡(luò)模型。
本文以新疆喀什地區(qū)和上海沿海地區(qū)為研究區(qū),采集了270個土壤樣品進(jìn)行土壤鹽漬化預(yù)測研究。實驗選取了多元線性回歸模型、BP神經(jīng)網(wǎng)絡(luò)模型和支持向量機模型來預(yù)測土壤含鹽量,探究這三種模型在土壤含鹽量預(yù)測中的適用性,結(jié)論如下:
(1)多元線性回歸方法在預(yù)測土壤含鹽量時,會出現(xiàn)個別預(yù)測結(jié)果誤差極大,整體預(yù)測精度也不高,不適用于復(fù)雜非線性數(shù)據(jù)的擬合實驗中;
(2)BP神經(jīng)網(wǎng)絡(luò)模型受樣本數(shù)量影響較大,樣本數(shù)量不足會導(dǎo)致模型不穩(wěn)定,所以會出現(xiàn)土壤類型對精度影響大的現(xiàn)象,經(jīng)過改進(jìn)后的BP神經(jīng)網(wǎng)絡(luò)模型,實際實驗中均方誤差為32.213%,基本可以完成預(yù)測任務(wù);
(3)SVM模型有著嚴(yán)格的數(shù)學(xué)理論基礎(chǔ),在小樣本實驗中表現(xiàn)也更好,擬合精度達(dá)到99.4119%,在實際實驗中均方誤差為9.253%,預(yù)測結(jié)果非常理想。