朱讓東,張?zhí)t,郭 斌
(新疆農(nóng)業(yè)大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,新疆 烏魯木齊 830001)
體重指標(biāo)能夠很好地反映動物健康狀況,并且在動物的繁育管理、運(yùn)動性能、肉質(zhì)評價(jià)等方面都具有重要的參考價(jià)值。伊犁馬作為國內(nèi)優(yōu)良的培育品種之一,是通過多品種長期雜交改良和選育而逐漸形成的中國特有馬品種[1]。傳統(tǒng)的伊犁馬體重主要是通過地磅等工具進(jìn)行直接稱重,該方式易造成馬匹產(chǎn)生應(yīng)激性行為,不利于動物的健康養(yǎng)殖。已有研究表明[2-5],動物的體重信息可以通過數(shù)學(xué)模型進(jìn)行有效估測。中國農(nóng)業(yè)科學(xué)院北京畜牧獸醫(yī)研究所的侯浩賓對馬、驢主要經(jīng)濟(jì)性狀相關(guān)功能基因的研究進(jìn)展進(jìn)行了綜述,通過論文可知馬、驢等草食家畜體尺、體重由相關(guān)體型基因決定[6]。這為體重估測提供了理論依據(jù)。He等針對314匹伊犁馬的體重、體高、胸圍和管圍進(jìn)行關(guān)聯(lián)分析,驗(yàn)證了LCORL基因表達(dá)水平與BIEC2-808543位點(diǎn)基因型顯著相關(guān)[7]。新疆農(nóng)業(yè)大學(xué)動物科學(xué)學(xué)院的楊文科,建立了三個(gè)估測成年母馬體重的回歸模型[8]。涼山州畜牧獸醫(yī)科研所的楊世忠通過對成年建昌母馬體尺體重的實(shí)測研究,得出多元線性回歸比單回歸估測的體重準(zhǔn)確[9]。
目前,大部分的馬體重公式還是以一元或多元線性回歸模型為主,但是各體尺信息之間存在自相關(guān)性,勢必會引發(fā)特征值之間的共線性問題,而運(yùn)用神經(jīng)網(wǎng)絡(luò)模型估測體質(zhì)量方面已有研究,其研究結(jié)果表明,通過RBF神經(jīng)網(wǎng)絡(luò)方法建模,消除了線性回歸分析中自變量的共線性問題,預(yù)測結(jié)果優(yōu)于回歸模型[10]。從神經(jīng)網(wǎng)絡(luò)模型的角度來說,RBF神經(jīng)網(wǎng)絡(luò)模型是BP神經(jīng)網(wǎng)絡(luò)的一個(gè)分支,RBF神經(jīng)網(wǎng)絡(luò)模型具備計(jì)算量小、學(xué)習(xí)速度快、不易陷入局部極小等諸多特點(diǎn)[11-15]。該研究根據(jù)RBF神經(jīng)網(wǎng)絡(luò)方法,建立了伊犁馬體重估測神經(jīng)網(wǎng)絡(luò)模型,為伊犁馬利用體尺信息估測體重提供了新方法。
RBF神經(jīng)網(wǎng)絡(luò)是根據(jù)徑向基函數(shù)特性構(gòu)建成的神經(jīng)網(wǎng)絡(luò),前人曾提出了多變量插值的徑向基函數(shù)方法。徑向基函數(shù)是實(shí)值函數(shù),取值僅僅依賴于距離值。該類函數(shù)自變量離原點(diǎn)的距離(Φ(x)=Φ(‖x‖)),或者是離任意一點(diǎn)c的距離(Φ(x,c)=Φ(‖x-c‖)),在徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)中任意一點(diǎn)c也被稱為中心點(diǎn),因此任意滿足Φ(x)=Φ(‖x‖)特性的函數(shù)Φ都可稱之為徑向基函數(shù)。徑向基函數(shù)的距離計(jì)算可以采用任意距離函數(shù),但一般使用歐氏距離(又稱歐氏徑向基函數(shù))。RBF神經(jīng)網(wǎng)絡(luò)是一種高效的前饋式神經(jīng)網(wǎng)絡(luò),其與BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)類似,主要的不同之處在于隱含層中神經(jīng)元處理數(shù)值的變換方式不同,BP神經(jīng)網(wǎng)絡(luò)是一個(gè)典型的全局逼近網(wǎng)絡(luò),而RBF神經(jīng)網(wǎng)絡(luò)是一個(gè)常見的局部逼近網(wǎng)絡(luò)。RBF神經(jīng)網(wǎng)絡(luò)包含輸入層、隱含層(徑向基層)、輸出層,特征值到隱含層的變換是非線性的,而輸出結(jié)果是對隱含層各神經(jīng)元的線性組合。RBF神經(jīng)網(wǎng)絡(luò)擁有對非線性函數(shù)極佳的逼近效果,以及全局最優(yōu)的特性。該模型設(shè)計(jì)的RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,其中X1表示胸圍、X2表示體高、X3表示體長。

圖1 RBF神經(jīng)網(wǎng)絡(luò)
RBF神經(jīng)網(wǎng)絡(luò)屬于單隱含層的神經(jīng)網(wǎng)絡(luò),其隱含層中的激活函數(shù)為徑向基函數(shù)。根據(jù)隱含層中神經(jīng)元的數(shù)量與輸入層節(jié)點(diǎn)、樣本數(shù)量的比較,RBF神經(jīng)網(wǎng)絡(luò)可分正則化RBF神經(jīng)網(wǎng)絡(luò)(輸入樣本與神經(jīng)元個(gè)數(shù)相等),以及廣義RBF神經(jīng)網(wǎng)絡(luò)(輸入層節(jié)點(diǎn)小于隱含層神經(jīng)元個(gè)數(shù))。該模型采用廣義RBF神經(jīng)網(wǎng)絡(luò),隱含層中神經(jīng)元的個(gè)數(shù)大于輸入層節(jié)點(diǎn)數(shù)。RBF神經(jīng)網(wǎng)絡(luò)將徑向基函數(shù)作為神經(jīng)元從而構(gòu)成了隱含層空間,其中徑向基函數(shù)隱含層可以將輸入量直接映射到隱含層,而無需通過權(quán)值連接映射,將神經(jīng)元固定后,輸入層到隱含層之間的映射關(guān)系也將固定。該神經(jīng)網(wǎng)絡(luò)的輸出值是神經(jīng)元輸出值的線性加權(quán)和,此處的權(quán)值即為神經(jīng)網(wǎng)絡(luò)可調(diào)參數(shù),從而可知隱含層到輸出層的映射關(guān)系是線性的。隱含層的作用是把向量從低維度的p映射到高維度的h,這樣低維度線性不可分的情況到高維度就可以變得線性可分了,其也是核函數(shù)的主要思想。目前該模型的輸入至輸出的映射是非線性的,而該模型的輸出對可調(diào)參數(shù)而言卻又是線性的,因此權(quán)值就可由線性方程組直接解出,從而極大提高學(xué)習(xí)速度并避免局部極小問題。該模型將高斯核函數(shù)作為隱含層神經(jīng)元,具體函數(shù)式如下:
(1)
其中,xi為輸入值,lj為神經(jīng)元中心點(diǎn),‖xi-lj‖2為歐氏范數(shù),σ為徑向基函數(shù)的局部作用范圍。
對中心點(diǎn)的選擇,實(shí)驗(yàn)采用了K均值聚類算法,其核心思想是將相似點(diǎn)聚類起來。假設(shè)在訓(xùn)練集中存在相似的兩個(gè)值x1≈x2,可預(yù)計(jì)其RBF神經(jīng)網(wǎng)絡(luò)預(yù)測值也相似,RBF(x,x1)≈RBF(x,x2),將兩點(diǎn)聚類得μ≈x1≈x2。聚類問題是將數(shù)據(jù)集合{xn}分成M個(gè)不相交的集合S1,S2,…,SM,每個(gè)集合Sm選擇一個(gè)中心點(diǎn)μm表示該集合,使得任意xn∈Sm?μm≈xn。通過誤差函數(shù)查看數(shù)據(jù)點(diǎn)到自己所屬集合的距離平方和,可寫成如下公式:
Ein(S1,…,SM;μ1,…,μM)=
(2)
聚類算法就是要最小化該目標(biāo)函數(shù),即解決如下最優(yōu)問題
min{S1,…,SM;μ1,…,μM}=
(3)
由于S和μ屬于不同的兩種類型值,S1,S2,…,SM屬于類型變量,μ1,μ2,…,μM屬于數(shù)值變量。需先固定μ1,μ2,…,μM,為每個(gè)Xn找到最優(yōu)Sm。接下來,固定S1,S2,…,SM選出每個(gè)類的代表值。此時(shí),原始最優(yōu)問題退化成了一個(gè)與μm有關(guān)的無限值最優(yōu)化問題,因此,只需目標(biāo)函數(shù)的梯度為0即可,即:
(4)
令上式為0,則μm是屬于Sm的Xn的均值。總結(jié)其流程為:
(1)初始化μ1,μ2,…,μK,即在Xn中隨機(jī)選取K個(gè)點(diǎn),該模型選取點(diǎn)個(gè)數(shù)為17。
(2)交替最優(yōu)化Ein,即重復(fù)以下過程直至收斂(S1,S2,…,SK,不再變化判定為收斂)。重復(fù)過程一:最優(yōu)化S1,S2,…,SK,即把Xn分給離它最近的那個(gè)μi所屬類簇。重復(fù)過程二:最優(yōu)化μ1,μ2,…,μK,即對每個(gè)SK,求屬于該類簇所有點(diǎn)的均值,因?yàn)檫@個(gè)過程中Ein一直在變小,因此該算法必然收斂。
采集數(shù)據(jù)需進(jìn)行清洗,補(bǔ)足缺省值,去除離群點(diǎn),糾正因人工造成的誤差。原始數(shù)據(jù)各特征之間散點(diǎn)圖見圖2。

圖2 原始數(shù)據(jù)各特征之間散點(diǎn)圖
根據(jù)中心極限定律,確保預(yù)測值(體重)符合正態(tài)分布(見圖3),否則需通過數(shù)據(jù)變換將待估測值進(jìn)行正態(tài)化。隨即將數(shù)據(jù)集進(jìn)行劃分,該實(shí)驗(yàn)將數(shù)據(jù)集劃分為訓(xùn)練集及驗(yàn)證集兩個(gè)部分,對訓(xùn)練集數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化、歸一化處理。

圖3 預(yù)測值(體重)呈現(xiàn)正態(tài)分布
根據(jù)皮爾遜積矩相關(guān)系數(shù)方法可以計(jì)算出各個(gè)特征之間聯(lián)系的緊密程度,并將相關(guān)系數(shù)矩陣用熱力圖進(jìn)行表示(見圖4)。通過比較體尺與體重之間的相關(guān)系數(shù),可知伊犁馬的胸圍與體重之間的聯(lián)系最緊密,管圍與體重之間的關(guān)系相對最小,因此,選擇前三個(gè)相關(guān)性最密切的特征構(gòu)成該模型的輸入層,選擇的特征分別為胸圍、體高、體長。

圖4 特征值選擇
該模型先計(jì)算輸入值到中心點(diǎn)的距離,然后使用高斯核函數(shù)進(jìn)行變換,最后將神經(jīng)元輸出作線性累加求和,得到輸出值。總結(jié)起來,RBF網(wǎng)絡(luò)的假設(shè)函數(shù)如下:
(5)
其中,RBF為高斯核函數(shù),μk為中心點(diǎn),βk為權(quán)重。
根據(jù)式(5),可得RBF神經(jīng)網(wǎng)絡(luò)的訓(xùn)練核心主要是兩個(gè)部分,第一確定神經(jīng)網(wǎng)絡(luò)隱含層中心點(diǎn),第二是確定神經(jīng)網(wǎng)絡(luò)隱含層神經(jīng)元的權(quán)重。中心點(diǎn)的確定采用K均值聚類算法。神經(jīng)元的權(quán)重是對經(jīng)過RBF變換過的數(shù)據(jù)進(jìn)行求解線性回歸,即用平方誤差作為誤差函數(shù),讓算法優(yōu)化系數(shù)βk。變換后的數(shù)據(jù)為:
zn=[RBF(xn,μ1),RBF(xn,μ2),…,RBF(xn,
μk)]∈N
(6)
可知最優(yōu)的系數(shù)β=(ZTZ)-1ZTy,其中Z是對稱方陣,因?qū)⒏咚购瘮?shù)作為神經(jīng)元函數(shù),則Z還是可逆的,系數(shù)β可以繼續(xù)簡化成β=Z-1y。雖然神經(jīng)網(wǎng)絡(luò)模型具有過擬合的危險(xiǎn),但是該實(shí)驗(yàn)使用高斯核得到的核矩陣,并且通過減少中心點(diǎn)數(shù)量,使得網(wǎng)絡(luò)模型正則化,避免了過擬合的情況。整體訓(xùn)練過程為:
(1)使用K均值聚類算法得到中心點(diǎn){μk};
(2)使用高斯函數(shù)圍繞中心點(diǎn)μk構(gòu)建變換∮(x);
(3)變換后的數(shù)據(jù)運(yùn)行線性模型,得權(quán)重β;
(4)結(jié)合權(quán)重返回最終的預(yù)測值。
實(shí)驗(yàn)數(shù)據(jù)源取自新疆伊犁種馬場,實(shí)驗(yàn)對象為85匹一至三歲伊犁馬,包括訓(xùn)練集70組數(shù)據(jù),驗(yàn)證集15組數(shù)據(jù)。通過皮尺、測杖、磅秤等測量工具,采集馬匹的體高、體長、管圍、胸圍,以及體重信息。采集日期為2018年3月,體重信息是在早晨馬匹未出欄,無進(jìn)食狀態(tài)下進(jìn)行采集。
首先進(jìn)行數(shù)據(jù)采集,其次對采集數(shù)據(jù)進(jìn)行清洗及預(yù)處理,并分析模型所需主成分,然后運(yùn)用python語言結(jié)合第三方模塊Scilkit-learn(sklearn)構(gòu)建RBF神經(jīng)網(wǎng)絡(luò),根據(jù)評價(jià)指標(biāo)對模型進(jìn)行參數(shù)優(yōu)化,最后確定模型并與現(xiàn)有經(jīng)驗(yàn)公式進(jìn)行對比分析。
實(shí)驗(yàn)采用平均絕對離差(mean absolute error,MAE)來評價(jià)模型的估測精度。該評價(jià)方法是累加每個(gè)估測值與對應(yīng)實(shí)際值之差的絕對值,再進(jìn)行求平均。假若驗(yàn)證集實(shí)際值為X={X1,X2,…,X15},對應(yīng)模型的預(yù)測值為Y={Y1,Y2,…,Y15},則平均絕對離差可以表示為:

(7)
同時(shí),實(shí)驗(yàn)還通過線性擬合優(yōu)度R2對模型線性估測進(jìn)行評價(jià),R2的取值范圍為0至1,越接近1,說明擬合效果越好。假若驗(yàn)證集實(shí)際值為X={X1,X2,…,X15},對應(yīng)模型的預(yù)測值為Y={Y1,Y2,…,Y15},則可知擬合優(yōu)度公式為:
(8)
殘差平方和(error sum of squares,SSE)為:
(9)
總偏差平方和(total sum of squares,SST)為:
(10)
預(yù)測值平均公式為:
(11)
經(jīng)過多次實(shí)驗(yàn)(見表1),確定當(dāng)神經(jīng)網(wǎng)絡(luò)模型隱含層神經(jīng)元個(gè)數(shù)為17,學(xué)習(xí)步長為0.001時(shí)效果最優(yōu)。

表1 隱含層及輸出層各神經(jīng)元的權(quán)值計(jì)算結(jié)果
此時(shí)RBF神經(jīng)網(wǎng)絡(luò)估測模型的平均絕對離差為7.75 kg,擬合優(yōu)度R2為0.917,伊犁馬體重線性回歸估測模型的平均絕對離差為15.45 kg,擬合優(yōu)度R2為0.688。將RBF神經(jīng)網(wǎng)絡(luò)模型與線性回歸模型相比,在平均絕對離差方面RBF神經(jīng)網(wǎng)絡(luò)模型降低了7.7 kg,在擬合優(yōu)度R2方面提升了0.229。RBF神經(jīng)網(wǎng)絡(luò)模型預(yù)測值與實(shí)際值的線性擬合效果如圖5所示。
查閱相關(guān)資料,可得通用性馬體重估測模型如下:
模型Ⅰ:Y1=X1×5.3-505[16];
模型Ⅱ:Y2=X1×X2×0.016[17];


圖5 RBF神經(jīng)網(wǎng)絡(luò)模型預(yù)測值與實(shí)測值回歸分析
利用15組測試集數(shù)據(jù),分別對線性回歸模型、RBF神經(jīng)網(wǎng)絡(luò)模型、通用模型Ⅰ、模型Ⅱ、模型Ⅲ進(jìn)行估測效果對比(見表2)。

表2 多模型預(yù)測結(jié)果 kg
根據(jù)測試數(shù)據(jù)可知,當(dāng)前測量伊犁馬平均實(shí)際體重?cái)?shù)據(jù)值為232.4 kg,而線性回歸模型估測體重平均值為240.563 kg,徑向基函數(shù)RBF神經(jīng)網(wǎng)絡(luò)模型估測體重平均值為234.461 kg,通用模型Ⅰ、模型Ⅱ、模型Ⅲ分別估測體重的平均值為247.247 kg、296.151 kg及271.484 kg。在伊犁馬體重平均值方面,徑向基函數(shù)RBF神經(jīng)網(wǎng)絡(luò)模型,相較于其他體重估測模型最接近實(shí)際馬匹平均體重。在伊犁馬體重平均絕對離差方面,模型依次平均絕對離差值為15.446 kg、7.754 93 kg、21.5 kg、63.751 5 kg及39.084 kg,估測效果最優(yōu)的是RBF神經(jīng)網(wǎng)絡(luò)模型。在兩種評價(jià)指標(biāo)中,表現(xiàn)最優(yōu)的為RBF神經(jīng)網(wǎng)絡(luò)模型。因此,在五類馬匹體重估測模型中RBF神經(jīng)網(wǎng)絡(luò)模型估測的體重值總體水平優(yōu)于其他模型且最接近實(shí)際體重值。根據(jù)比較分析平均數(shù)以及平均絕對離差可知,模型Ⅱ估測伊犁馬體重效果欠佳,認(rèn)為不具備客觀反映伊犁馬體重的能力,參考價(jià)值不高。
文中用70匹伊犁馬體尺、體重?cái)?shù)據(jù)作為訓(xùn)練集,以高斯函數(shù)作為神經(jīng)元,用K均值聚類方法找尋中心點(diǎn),建立了關(guān)于伊犁馬體重估測的RBF神經(jīng)網(wǎng)絡(luò)模型。結(jié)合通用性馬匹體重估測公式、線性回歸模型及RBF神經(jīng)網(wǎng)絡(luò)模型,在驗(yàn)證集上進(jìn)行對比分析發(fā)現(xiàn),RBF神經(jīng)網(wǎng)絡(luò)模型估測效果最優(yōu),平均絕對離差為7.75,線性回歸擬合優(yōu)度為0.917,估測效果優(yōu)于馬體重估測線性回歸模型,明顯優(yōu)于其他通用性馬體重估測模型。通過構(gòu)建RBF神經(jīng)網(wǎng)絡(luò)伊犁馬體重估測模型,分析發(fā)現(xiàn)RBF神經(jīng)網(wǎng)絡(luò)方法能夠在一定程度上消除特征值之間的共線性問題,可以應(yīng)用到伊犁馬的體重估測中。