葉 煜 李 敏 文 燕
(成都農(nóng)業(yè)科技職業(yè)學(xué)院信息技術(shù)分院 成都 611130)
我國是一個(gè)傳統(tǒng)農(nóng)業(yè)大國。隨著科技的發(fā)展,我國農(nóng)業(yè)進(jìn)入了一個(gè)新時(shí)期。一系列的農(nóng)業(yè)生產(chǎn)、管理和經(jīng)營,產(chǎn)生大量的農(nóng)業(yè)數(shù)據(jù)。農(nóng)業(yè)從業(yè)者與農(nóng)業(yè)相關(guān)部門需要各種有意義的農(nóng)業(yè)信息指導(dǎo)農(nóng)業(yè)決策。如何很好地利用這些數(shù)據(jù),引導(dǎo)農(nóng)業(yè)生產(chǎn)、管理和經(jīng)營,需要對數(shù)據(jù)進(jìn)行深度分析。數(shù)據(jù)分類是大數(shù)據(jù)分析的關(guān)鍵內(nèi)容。這些農(nóng)業(yè)數(shù)據(jù)往往帶有大量不確定性的、不完整的、有噪聲的以及冗雜的信息[1],從這些冗雜的數(shù)據(jù)信息中發(fā)現(xiàn)有價(jià)值的信息,找到它們的內(nèi)在規(guī)律,建立能盡可能反映事物實(shí)際特征的模型,使數(shù)據(jù)分類更易與先驗(yàn)知識(shí)融合以適應(yīng)大數(shù)據(jù)處理要求,是近年來數(shù)據(jù)分類預(yù)測算法研究的熱點(diǎn)。目前,基于神經(jīng)網(wǎng)絡(luò)的分類算法應(yīng)用于對農(nóng)業(yè)數(shù)據(jù)進(jìn)行自動(dòng)分類是一個(gè)行之有效的方法。例如,BP 神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)、廣義神經(jīng)網(wǎng)絡(luò)等[2~10]。但神經(jīng)網(wǎng)絡(luò)往往存在收斂速度慢、訓(xùn)練時(shí)間長、對冗雜的農(nóng)業(yè)數(shù)據(jù)分類精度低等問題[11~12]。因此,找到一種訓(xùn)練時(shí)間短、快速且準(zhǔn)確獲得最優(yōu)解的分類算法是研究的重點(diǎn)。本文在分析了極限學(xué)習(xí)機(jī)及遺傳算法基礎(chǔ)之上提出了基于遺傳算法的極限學(xué)習(xí)機(jī),能較好地提高數(shù)據(jù)分類精度且具有良好的泛化性能。
極限學(xué)習(xí)機(jī)(Extreme Learning Machine,ELM)是一類基于前饋神經(jīng)網(wǎng)絡(luò)構(gòu)建的機(jī)器學(xué)習(xí)系統(tǒng)或方法[13]。在訓(xùn)練階段,與單隱層前饋神經(jīng)網(wǎng)絡(luò)基于梯度算法不同的是,極限學(xué)習(xí)機(jī)采用隨機(jī)或人為設(shè)定輸入層權(quán)重和偏差,之后不需要更新,學(xué)習(xí)過程僅計(jì)算輸出權(quán)重。當(dāng)所有節(jié)點(diǎn)都得到相應(yīng)的權(quán)重和偏差,就完成極限學(xué)習(xí)機(jī)的訓(xùn)練。單隱層前饋神經(jīng)網(wǎng)絡(luò)由輸入層、隱含層和輸出層組成,如圖1 所示:
圖1 單隱層前饋神經(jīng)網(wǎng)絡(luò)
對于單隱層神經(jīng)網(wǎng)絡(luò),ELM可以隨機(jī)初始化輸入權(quán)重和偏差并得到相應(yīng)的輸出權(quán)重。假設(shè)單隱層神經(jīng)網(wǎng)絡(luò)有N 個(gè)任意的樣本{Xi,ti|Xi=[xi1,xi2,…,xin]T∈Rn,ti=[ti1,ti2,…,tim]T∈Rm}。若隱含層有n 個(gè)節(jié)點(diǎn),激活函數(shù)為g(x),輸入權(quán)重Wi=[wi,1,wi,2,…,wi,n]T,輸出權(quán)重βi,設(shè)bi為第i 個(gè)隱層單元的偏置。那么有l(wèi)個(gè)隱層節(jié)點(diǎn)的單隱層神經(jīng)網(wǎng)絡(luò)可以表示為
單隱層神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的目標(biāo)是使得輸出的誤差最小,則存在βi,Wi和bi,使得
隱層節(jié)點(diǎn)的輸出為H:
隱層1個(gè)節(jié)點(diǎn)與輸出層之的輸出權(quán)重為β:
訓(xùn)練集的目標(biāo)矩陣T:
上述可以矩陣表示為Hβ=T。ELM 算法的輸入權(quán)重Wi和隱層偏差bi確定了,隱層的輸出矩陣H也就唯一確定。訓(xùn)練單隱層神經(jīng)網(wǎng)絡(luò)可以轉(zhuǎn)化為求解一個(gè)線性系統(tǒng)Hβ=T。于是輸出權(quán)重β可以被確定:β?=H+T(H+是矩陣H 的Moore-Penrose 廣義逆)。
遺傳算法是模擬達(dá)爾文生物進(jìn)化論的自然選擇和遺傳學(xué)機(jī)理的生物進(jìn)化過程的計(jì)算模型,是一種基于“適者生存”的高度并行、隨機(jī)和自適應(yīng)的優(yōu)化算法,通過復(fù)制、交叉、變異將問題解編碼表示的“染色體”群一代一代不斷進(jìn)化,最終收斂到最適應(yīng)的群體,從而求得問題最優(yōu)解的方法[14~15]。遺傳算法的工作過程如下:
1)初始化。首先隨機(jī)生成一組可行解,即第一代染色體。
2)適應(yīng)度函數(shù)。然后適應(yīng)度函數(shù)計(jì)算每一條染色體的適應(yīng)程度,根據(jù)適應(yīng)程度進(jìn)一步計(jì)算每一條染色體在下一次進(jìn)化中選中的概率。
3)遺傳算子。遺傳算法有三類遺傳算子:選擇、交叉、變異。選擇算子負(fù)責(zé)選擇出交叉時(shí)所要使用的父母染色體,將它們傳到下一代群體中。常用選擇算子有輪盤選擇、錦標(biāo)賽選擇和排名選擇。交叉算子對兩個(gè)相互配對的染色體依據(jù)交叉概率按某種方式相互交換其部分基因,從而形成兩個(gè)新的個(gè)體。基本的遺傳算法采用單點(diǎn)交叉。變異算子模仿自然界變異現(xiàn)象,依據(jù)變異概率改變個(gè)體編碼串中的某些基因值,從而形成一個(gè)新的個(gè)體,以保持個(gè)體多樣性。
遺傳算法工作流程圖如圖2。
圖2 遺傳算法工作流程
極限學(xué)習(xí)機(jī)(ELM)隨機(jī)生成輸入層權(quán)值和隱含層閾值,致使網(wǎng)絡(luò)不穩(wěn)定。為提高極限學(xué)習(xí)機(jī)在農(nóng)業(yè)數(shù)據(jù)上的分類精度,利用遺傳算法(GA)對極限學(xué)習(xí)機(jī)進(jìn)行優(yōu)化,將遺傳算法的全局最優(yōu)搜索能力和極限學(xué)習(xí)機(jī)的強(qiáng)學(xué)習(xí)能力結(jié)合起來。算法將極限學(xué)習(xí)機(jī)輸入層權(quán)值和隱含層閾值映射為遺傳算法種群中每個(gè)染色體上的基因,染色體適應(yīng)度對應(yīng)于極限學(xué)習(xí)機(jī)的分類精度。在遺傳算法每次迭代過程中,從通過了選擇、交叉、變異的子代種群里,選擇最優(yōu)染色體從而獲得優(yōu)化的極限學(xué)習(xí)機(jī)輸入權(quán)值和閾值。提高網(wǎng)絡(luò)穩(wěn)定性,降低分類的誤差。
基于遺傳算法的極限學(xué)習(xí)機(jī)(GA-ELM)工作過程如下:
1)種群初始化。設(shè)輸入層的神經(jīng)元m,隱含層的神經(jīng)元n,初始化種群為X,染色體數(shù)量為N,每個(gè)染色體xi,都包括m.n 個(gè)輸入權(quán)值和n 個(gè)閾值。初代種群可以表示為
其中,aij為輸入層權(quán)值;bhk為隱含層閾值。
2)適應(yīng)度函數(shù)。利用極限學(xué)習(xí)機(jī)對學(xué)習(xí)樣本的分類預(yù)測輸出誤差作為適應(yīng)度函數(shù),計(jì)算初代種群中個(gè)體的適應(yīng)度參數(shù)。
3)選擇染色體。在對初代種群進(jìn)行選擇、交叉、變異等操作之后,選擇適應(yīng)度大的個(gè)體形成新和種群。循環(huán)往復(fù)、依次迭代,每進(jìn)化一次,計(jì)算適應(yīng)度,保留適應(yīng)度最好的染色體,當(dāng)達(dá)到預(yù)先設(shè)定的遺傳代數(shù),選擇出適應(yīng)度最高的染色體,并以此作為極限機(jī)最優(yōu)輸入權(quán)值和隱層閾值,從而獲得最佳網(wǎng)絡(luò)結(jié)構(gòu)。
算法采用UCI 中的Iris 和Wine 數(shù)據(jù)集進(jìn)行測試,選擇的Iris 數(shù)據(jù)集包含4 個(gè)特征,3 個(gè)類別,150個(gè)樣本,Wine 數(shù)據(jù)集包含13 個(gè)特征,3 個(gè)類別,178個(gè)樣本。遺傳算法進(jìn)化迭代次數(shù)設(shè)為50,交叉概率0.4,變異概率0.1,種群規(guī)模為40。經(jīng)過10 次測試取平均值,ELM 在Iris 數(shù)據(jù)集上的分類精度為93.43%;GA-ELM 在Iris 數(shù)據(jù)集上的分類精度為95.62%;ELM 在Wine 數(shù)據(jù)集上的分類精度為60.15%;GA-ELM 在Wine 數(shù)據(jù)集上的分類精度為81.38%。可以看到,基于遺傳算法的極限學(xué)習(xí)機(jī)在樣本特征較少時(shí)分類精度提升較小,但在樣本特征較多時(shí),分類精度提高幅度很大,非常適合于特征點(diǎn)較多的農(nóng)業(yè)類數(shù)據(jù)的分類預(yù)測?;谶z傳算法的極限學(xué)習(xí)機(jī)可以很好地提高農(nóng)業(yè)數(shù)據(jù)分類性能,有利于促進(jìn)農(nóng)業(yè)信息化的發(fā)展。