史 楊 王儒敬 汪玉冰
1(中國科學院合肥智能機械研究所 安徽 合肥 230031)2(中國科學技術大學自動化系 安徽 合肥 230027)
土壤成分信息對研究農(nóng)田資源管理、精準施肥、土壤肥力分布都具有重要的意義,目前常采用實驗室分析的方法獲取。實驗室分析方法分析結果雖然很精確,但是由于需要進行復雜的操作,所需時間和經(jīng)濟成本較高,并且很難實現(xiàn)田間原位的快速測量,難以得到大規(guī)模的應用[1]。近紅外光譜分析技術通過測量樣品的光譜信息,建立樣品光譜和樣品成分的校正模型,可以預測未知樣品的成分信息[2]。近紅外光譜分析是一種間接獲取樣品成分信息的技術,具有非接觸式檢測、低成本等優(yōu)點,很多研究人員嘗試將其用于土壤信息的快速獲取,并取得一些成效。目前,近紅外光譜分析技術已應用在土壤的質地分類[3]、含水量預測[4-5]、氮素含量預測[6-8]、有機質含量預測[9]等方面。
由于近紅外光譜分析方法是一種間接獲取信息的手段,建立有效的土壤樣本光譜與成分信息之間的校正模型至關重要。校正模型一般使用化學計量學方法建立,其效果直接影響預測的可行性與準確性[10]。過去,在基于近紅外光譜的土壤成分預測分析建模中,常采用多元線性回歸MLR(Multiple Linear Regression)、主成分回歸PCR(Principle Component Regression)、偏最小二乘回歸PLSR(Partial Least Squares Regression)等線性回歸方法。光譜數(shù)據(jù)通常維度高,不同波長的吸收率或反射率之間存在多重相關性,所以建模時需要采用波長選擇或特征表示的方法降低維數(shù)。波長選擇方法依賴對目標成分敏感波段的先驗知識或基于統(tǒng)計方法對各波長的重要程度評估結果,從原始全譜中挑選出部分有用波段的數(shù)據(jù)進行回歸計算[11]。特征表示的方法一般對全譜數(shù)據(jù)進行空間的轉換,尋找在其他空間的、更易于回歸計算的數(shù)據(jù)表示。例如,基于PCR或PLSR的模型使用線性變換提取出全譜數(shù)據(jù)的主成分進行特征表示和數(shù)據(jù)降維,Vohland等[12]利用連續(xù)小波變換對光譜數(shù)據(jù)進行特征表示。獲得光譜數(shù)據(jù)的特征表示后,再使用回歸方法對土壤中的目標成分進行預測,其中最簡單的形式是線性回歸預測。近年來,支持向量回歸SVR(Support Vector Regression)、隨機森林、神經(jīng)網(wǎng)絡等機器學習中的一些技術也被應用到光譜分析中來提升模型預測能力[13-15]。在土壤差異性較大的大面積土壤成分預測應用中一般采用局部建模方法[16],即從大規(guī)模光譜數(shù)據(jù)庫中選出與目標樣本相似的樣本,再利用選出的樣本建模。在目前的研究中,特征表示與回歸預測通常是分離的,并且較多采用了線性方法,非線性模型在光譜分析中應用的研究較少。深度卷積神經(jīng)網(wǎng)絡是一種非線性模型,是近些年機器學習研究的熱點,已被成功應用在圖像目標識別、自然語言處理等多個領域。深度卷積神經(jīng)網(wǎng)絡模型包含多層級非線性變換,將特征表示和回歸預測統(tǒng)一起來,善于從大量原始數(shù)據(jù)中自動抽取有用的特征表示,在特征提取和建模上與淺層模型、線性方法相比具有明顯的優(yōu)勢[17]。然而目前深度卷積神經(jīng)網(wǎng)絡在光譜分析預測建模方面應用的研究目前較少。
本文提出將卷積深度神經(jīng)網(wǎng)絡用于建立土壤近紅外光譜和土壤成分的模型中,即構建一個多層前饋卷積神經(jīng)網(wǎng)絡模型,以土壤近紅外光譜作為輸入,以需要預測的土壤成分含量作為輸出,實現(xiàn)通過測量土壤樣品近紅外光譜,準確預測土壤成分的目標。實驗證明,利用近紅外光譜預測土壤中有機碳含量具有可行性;使用包含6~7個卷積層的深度卷積神經(jīng)網(wǎng)絡模型預測有機碳含量的均方根誤差可以達到9.69 g/kg,比其他線性建模方法預測大尺度土壤有機碳更準確。
神經(jīng)網(wǎng)絡的基本組成單元是神經(jīng)元,一般為多輸入單輸出的結構,模型如圖1所示。神經(jīng)元分為兩部分,第一部分為輸入信號的加權和函數(shù),第二部分為非線性激活單元,稱為神經(jīng)元的激活函數(shù),輸入與輸出之間的關系可用下式表示:
(1)
(2)
式中,X=[x1,x2,…]表示神經(jīng)元接受的多維輸入信號,W=[w1,w2,…]表示輸入信號對應的權重,b為神經(jīng)元的偏置項,z為神經(jīng)元輸入的加權和,a為神經(jīng)元輸出。f(·)為神經(jīng)元的激活函數(shù),通常采用非線性函數(shù)實現(xiàn),如S型函數(shù)(sigmoid)、雙曲正切函數(shù)(tanh)、修正線性單元ReLU(Rectified Linear Unit)函數(shù)等。
圖1 神經(jīng)元模型
多層感知器是一種典型的前饋神經(jīng)網(wǎng)絡,由一個輸入層、一個或多個隱含層以及一個輸出層級聯(lián)組合而成。圖2為包含兩個隱含層的多層感知器模型的結構,多層感知器的隱含層、輸出層均為全連接層,每個全連接層包含多個神經(jīng)元,同一層級中的各個神經(jīng)元都接受前一層所有神經(jīng)元的輸出作為輸入,同一層級的神經(jīng)元之間沒有連接。與多層感知器類似,每個神經(jīng)元只與前一層的神經(jīng)元相連,接受其作為輸入并輸出到下一層,各層間沒有反饋的神經(jīng)網(wǎng)絡稱為前饋神經(jīng)網(wǎng)絡。多層感知器模型在實際應用時一般采用不超過三層的淺層網(wǎng)絡。
圖2 多層感知器結構
卷積神經(jīng)網(wǎng)絡是指在前饋神經(jīng)網(wǎng)絡結構中使用了一個或多個卷積層。卷積層中,各個神經(jīng)元通過卷積核與前一層輸出的局部區(qū)域相連,生成多個特征映射面。圖3為尺寸為3,步長為1的一維卷積核以類似滑動窗口的方式與輸入信號進行一維卷積運算,將7維輸入信號卷積生成一個5維的特征映射面。一個特征映射面盡管包含多維輸出,但是各個神經(jīng)元使用的為同一個卷積核,因此需要訓練的參數(shù)與神經(jīng)元個數(shù)無關,僅與卷積核的大小有關。如圖3中的特征映射面生成所示,雖然有5個神經(jīng)元輸出,但是需要訓練的參數(shù)只有3+1=4個,其中3是卷積核大小,1為偏置項。如果特征映射面中的5個神經(jīng)元都以全連接的方式與前一層相連,需要訓練的參數(shù)個數(shù)則為5×(7+1)=40個。卷積層的策略被稱為權值共享,與全連接層相比,能大大減少訓練參數(shù)個數(shù)[17]。利用卷積層的堆疊,可以在不顯著增加模型訓練參數(shù)的前提下,實現(xiàn)更深的網(wǎng)絡結構。
圖3 一維卷積核與特征圖
利用土壤光譜預測成分含量模型的輸入為光譜信號,輸出為成分含量。在使用卷積神經(jīng)網(wǎng)絡模型時,將數(shù)據(jù)集中光譜各波長的數(shù)值進行了歸一化處理后再作為模型的輸入。由于預測成分含量是回歸問題,采用了均方誤差作為神經(jīng)網(wǎng)絡模型的代價函數(shù),如下式所示:
(3)
式中:yi,predict和yi,real分別為第i個樣本的預測輸出值與實驗室分析測得數(shù)值,樣本集一共包含N個樣本。代價函數(shù)計算得到的數(shù)值越小,表示在這個集合上,神經(jīng)網(wǎng)絡擬合效果越好。對神經(jīng)網(wǎng)絡的訓練也是為了降低代價函數(shù)計算的數(shù)值。
求解神經(jīng)網(wǎng)絡代價函數(shù)的最小值常采用反向傳播算法。反向傳播算法建立在梯度下降法的基礎上,可以用來對多層前饋神經(jīng)網(wǎng)絡進行訓練。反向傳播算法由正向傳播過程和反向傳播過程兩部分組成。在卷積神經(jīng)網(wǎng)絡模型訓練的正向傳播過程中,輸入樣本正向依次經(jīng)過網(wǎng)絡各層計算后得到成分含量的預測輸出。將輸出與實驗室測量的數(shù)值(監(jiān)督信息)進行比對后,進行代價函數(shù)的計算,計算的代價將作為反向傳播過程修改神經(jīng)網(wǎng)絡各層參數(shù)的依據(jù)。傳統(tǒng)的梯度下降法中,更新參數(shù)依據(jù)下式:
θt=θt-1-η·gt
(4)
gt=▽θt-1f(θt-1)
(5)
式中:θ為神經(jīng)網(wǎng)絡模型中各神經(jīng)元的參數(shù),包含神經(jīng)元的權值與偏置,由于權值與偏置更新規(guī)則相似,因此統(tǒng)一以參數(shù)θ表示;η為學習率,每次迭代時,各參數(shù)都在梯度方向gt以固定的學習率進行更新。反向傳播過程中,由輸出層向輸入層方向逐層計算梯度,逐層更新各層神經(jīng)元參數(shù)。
在訓練模型時,如果采用固定的學習率,較小的學習率會造成訓練速度很慢,而較大的學習率會造成訓練后期在最小值附近來回震蕩。Adagrad方法[18]對學習率進行了改進,改進后的參數(shù)更新規(guī)則如下:
(6)
(7)
式中:nt為訓練過程中的梯度累積項,更新規(guī)則中加入后相當于采用了逐漸減小的學習率,避免了固定學習率設置不當?shù)膯栴}。
2008年-2012年間,歐盟開展了歐洲土地利用及覆蓋統(tǒng)計調(diào)查LUCAS(European Land Use/Cover Area frame Statistical Survey),在此期間收集測試了大量土壤樣本,樣本采樣點遍及歐洲23個國家,包含耕地、草地、林地等用地類型,土壤樣本差異性較大[19-20]。調(diào)查前,調(diào)查部門對土壤樣本取樣點進行了總體規(guī)劃,并對取樣方式進行了一致性規(guī)范;取樣后對其理化特性進行測試和可見近紅外光譜的測量。土壤樣本的理化特性分析均由ISO認證的實驗室完成。
LUCAS數(shù)據(jù)集中包含礦質土樣共17 272個。土壤樣本的有機碳含量依據(jù)ISO 10694-1995干燒方法進行測量,數(shù)據(jù)集中基本信息統(tǒng)計見表1。測量近紅外光譜前,將土壤樣本進行風干、過篩預處理,再使用FOSS XDS近紅外光譜分析儀進行測量。
表1 LUCAS土壤數(shù)據(jù)集基本信息
由于LUCAS土壤數(shù)據(jù)庫包含的樣本量較多,我們將數(shù)據(jù)庫中包含的17 272個土壤樣本劃分為建模集、驗證集、測試集,三個集合中的土壤樣本獨立不交叉。數(shù)據(jù)庫中隨機選出15 000個樣本作為建模集,用來對模型進行訓練;再從剩余的樣本里隨機選出1 000個樣本作為驗證集,用來輔助確定模型的參數(shù),不直接參與訓練模型;最后剩余的1 272個樣本作為測試集,用來評價最終建模效果。
光譜儀測量波長范圍為400~2 500 nm,波長間隔為0.5 nm,因此原始光譜中包含4 200維數(shù)據(jù)。由于光譜曲線一般比較平滑,光譜相鄰波長的數(shù)值共線性較強,高分辨率會造成模型中需要訓練的參數(shù)過多,因此在建模前,對近紅外原始光譜進行等距降采樣處理,降采樣后的光譜包含420維數(shù)據(jù),波長間隔為5 nm。
深度卷積神經(jīng)網(wǎng)絡的模型容量和表示能力可以通過設置模型的層數(shù)和各層的超參數(shù)進行調(diào)節(jié)。層數(shù)越多、各層的神經(jīng)元數(shù)目越多,模型表示能力越強,同時,需要訓練的參數(shù)更多,一般來說對訓練集的樣本量需求更大,否則在訓練時容易出現(xiàn)過擬合現(xiàn)象。
本文設計了五種深度卷積神經(jīng)網(wǎng)絡的結構,分別以其包含的卷積層的層數(shù)命名為CNN-3~CNN-7,五種卷積神經(jīng)網(wǎng)絡模型的詳細參數(shù)見表2。如表2第二列所示,CNN-3模型中土壤光譜信號自上而下依次經(jīng)過三個卷積層和兩個全連接層,輸出土壤成分的預測數(shù)值。CNN-3模型的輸入為420維的光譜,第一個卷積層采用512個尺寸為7的卷積核,生成512層特征映射面;第二、三個卷積層均采用64個尺寸為3的卷積核,生成64層特征映射面;兩個全連接層均包含64個神經(jīng)元;輸出層只有一個神經(jīng)元,這個神經(jīng)元的輸出就是模型輸出的有機碳含量的預測數(shù)值。
表2 五種卷積神經(jīng)網(wǎng)絡的結構
續(xù)表2
在CNN-3模型的基礎上,CNN-4~CNN-7在全連接層前添加了若干個尺寸為3或1的卷積層,形成更深的卷積模型。為了避免深度網(wǎng)絡學習過程的神經(jīng)元飽和、梯度擴散現(xiàn)象,神經(jīng)網(wǎng)絡中各個神經(jīng)元的激活函數(shù)均采用ReLU函數(shù)[21-22]。
文中深度卷積神經(jīng)網(wǎng)絡均使用Python語言調(diào)用Keras[23]工具包實現(xiàn)。Keras是一個深度學習計算框架,可以方便地調(diào)用顯卡的并行計算能力,大大加速神經(jīng)網(wǎng)絡的訓練。
圖4是將LUCAS土壤數(shù)據(jù)庫中的17 272個礦質土壤樣本按照有機碳含量的25分位、50分位、75分位為分界線,分為四類不同含量等級的子集,再計算每個子集中土壤樣本的平均光譜曲線。如圖4所示,不同有機碳含量等級的近紅外光譜均在1 400、1 900和2 200 nm左右有明顯的峰值,整體光譜曲線趨勢一致;有機碳含量級別越高的土壤樣本的平均光譜在整個可見光近紅外波段吸光度都高于有機碳含量級別較低的類別。
圖4 不同有機碳含量的土壤樣本的平均光譜
實驗中,首先將LUCAS土壤數(shù)據(jù)庫劃分為建模集、驗證集、測試集三個部分。然后使用表2所示的五種卷積神經(jīng)網(wǎng)絡模型分別建立土壤有機碳含量及近紅外光譜的校正模型,模型參數(shù)調(diào)節(jié)時只使用建模集。最后利用建好的模型,根據(jù)測試集中土壤樣本的近紅外光譜,預測樣本的有機碳含量。為了更好地了解卷積神經(jīng)網(wǎng)絡模型的效果,實現(xiàn)了PCR和PCA+SVR兩個線性模型作對比。其中,PCR模型采用了40個主成分參與線性回歸計算;PCA+SVR中先使用PCA方法提取40個主成分后,使用SVR線性回歸模型進行土壤有機碳含量的預測。圖5-圖9分別為CNN-3~CNN-7五個模型預測值與實驗室方法測量數(shù)值的散點圖,圖10為PCR模型的預測結果。如圖5~10所示,六個模型建模效果良好,散點比較均勻地分布在回歸直線兩側,呈正相關關系;CNN-6、CNN-7兩個模型在有機碳含量較低區(qū)域比其他模型更集中在回歸直線兩側。因此,利用土壤的近紅外光譜間接預測土壤有機碳含量是可行的。
圖5 CNN-3模型在測試集上的預測結果
圖6 CNN-4模型在測試集上的預測結果
圖7 CNN-5模型在測試集上的預測結果
圖8 CNN-6模型在測試集上的預測結果
圖9 CNN-7模型在測試集上的預測結果
圖10 PCR模型在測試集上的預測結果
回歸問題對模型性能進行量化評價常采用均方根誤差RMSE(Root Mean Square Error)指標,即預測值與真實值的誤差平方均值的平方根。均方根誤差的數(shù)值越小,表示回歸模型的預測性能越好。表3為五種不同深度的卷積神經(jīng)網(wǎng)絡模型在同一劃分下的建模集、驗證集、測試集上的均方根誤差。
表3 模型預測效果的對比
如表3所示,CNN-3~CNN-7模型在建模集、驗證集、測試集上的預測效果全面優(yōu)于PCR和PCA+SVR這兩個線性模型;與線性模型不同,CNN模型的模型容量很大,訓練時一般在建模集上會存在輕微的過擬合現(xiàn)象,因此預測性能要優(yōu)于其在驗證集和測試集上的表現(xiàn),驗證集和測試集的結果更能反映模型的泛化能力;隨著神經(jīng)網(wǎng)絡層數(shù)的加深,在測試集上預測效果逐步提升,RMSE值從11.20 g/kg逐漸減少到9.69 g/kg;采用6個卷積層的CNN-6與采用7個卷積層的CNN-7模型效果非常接近。回歸問題另外一個常用的評價指標是決定系數(shù)(R2),決定系數(shù)越接近1,表示模型擬合效果越好。PCR模型的決定系數(shù)0.65,CNN-7模型的決定系數(shù)達到0.76,較PCR模型提升了17%。實驗結果表明,使用包含6~7個卷積層的深度卷積神經(jīng)網(wǎng)絡模型成功地抽取出了比主成分更好的非線性特征,利用這些非線性特征預測有機碳含量的均方根誤差可以達到9.69 g/kg,比其他線性建模方法預測大尺度土壤有機碳更準確。
過去利用近紅外光譜預測土壤成分含量的研究多是基于單一土壤類型的、小樣本的校正模型,模型結構簡單,表示能力有限,難以實現(xiàn)大尺度、土壤種類復雜環(huán)境下的應用。本文提出的基于深度卷積神經(jīng)網(wǎng)絡的校正模型,能夠應用在土壤種類繁多的歐洲大陸尺度的土壤有機碳含量的預測中。實驗證明了使用包含6~7個卷積層的深度神經(jīng)網(wǎng)絡在大尺度土壤有機碳預測問題中的可行性和準確性。由于卷積神經(jīng)網(wǎng)絡容量較大,而目前可以用來訓練模型的土壤樣本數(shù)有限,因此對深度神經(jīng)網(wǎng)絡在土壤成分預測的研究仍不充分,有希望繼續(xù)發(fā)掘深度神經(jīng)網(wǎng)絡的潛力。下一步工作的方向是研究如何獲取更多的土壤樣本,優(yōu)化神經(jīng)網(wǎng)絡的結構與訓練過程,嘗試預測更多的土壤成分,提高預測精度。