朱讓東,張?zhí)t,郭 斌
(新疆農(nóng)業(yè)大學 計算機與信息工程學院,新疆 烏魯木齊 830001)
體重指標能夠很好地反映動物健康狀況,并且在動物的繁育管理、運動性能、肉質(zhì)評價等方面都具有重要的參考價值。伊犁馬作為國內(nèi)優(yōu)良的培育品種之一,是通過多品種長期雜交改良和選育而逐漸形成的中國特有馬品種[1]。傳統(tǒng)的伊犁馬體重主要是通過地磅等工具進行直接稱重,該方式易造成馬匹產(chǎn)生應(yīng)激性行為,不利于動物的健康養(yǎng)殖。已有研究表明[2-5],動物的體重信息可以通過數(shù)學模型進行有效估測。中國農(nóng)業(yè)科學院北京畜牧獸醫(yī)研究所的侯浩賓對馬、驢主要經(jīng)濟性狀相關(guān)功能基因的研究進展進行了綜述,通過論文可知馬、驢等草食家畜體尺、體重由相關(guān)體型基因決定[6]。這為體重估測提供了理論依據(jù)。He等針對314匹伊犁馬的體重、體高、胸圍和管圍進行關(guān)聯(lián)分析,驗證了LCORL基因表達水平與BIEC2-808543位點基因型顯著相關(guān)[7]。新疆農(nóng)業(yè)大學動物科學學院的楊文科,建立了三個估測成年母馬體重的回歸模型[8]。涼山州畜牧獸醫(yī)科研所的楊世忠通過對成年建昌母馬體尺體重的實測研究,得出多元線性回歸比單回歸估測的體重準確[9]。
目前,大部分的馬體重公式還是以一元或多元線性回歸模型為主,但是各體尺信息之間存在自相關(guān)性,勢必會引發(fā)特征值之間的共線性問題,而運用神經(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ò)的一個分支,RBF神經(jīng)網(wǎng)絡(luò)模型具備計算量小、學習速度快、不易陷入局部極小等諸多特點[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ù)自變量離原點的距離(Φ(x)=Φ(‖x‖)),或者是離任意一點c的距離(Φ(x,c)=Φ(‖x-c‖)),在徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)中任意一點c也被稱為中心點,因此任意滿足Φ(x)=Φ(‖x‖)特性的函數(shù)Φ都可稱之為徑向基函數(shù)。徑向基函數(shù)的距離計算可以采用任意距離函數(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ò)是一個典型的全局逼近網(wǎng)絡(luò),而RBF神經(jīng)網(wǎng)絡(luò)是一個常見的局部逼近網(wǎng)絡(luò)。RBF神經(jīng)網(wǎng)絡(luò)包含輸入層、隱含層(徑向基層)、輸出層,特征值到隱含層的變換是非線性的,而輸出結(jié)果是對隱含層各神經(jīng)元的線性組合。RBF神經(jīng)網(wǎng)絡(luò)擁有對非線性函數(shù)極佳的逼近效果,以及全局最優(yōu)的特性。該模型設(shè)計的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é)點、樣本數(shù)量的比較,RBF神經(jīng)網(wǎng)絡(luò)可分正則化RBF神經(jīng)網(wǎng)絡(luò)(輸入樣本與神經(jīng)元個數(shù)相等),以及廣義RBF神經(jīng)網(wǎng)絡(luò)(輸入層節(jié)點小于隱含層神經(jīng)元個數(shù))。該模型采用廣義RBF神經(jīng)網(wǎng)絡(luò),隱含層中神經(jīng)元的個數(shù)大于輸入層節(jié)點數(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)值就可由線性方程組直接解出,從而極大提高學習速度并避免局部極小問題。該模型將高斯核函數(shù)作為隱含層神經(jīng)元,具體函數(shù)式如下:
(1)
其中,xi為輸入值,lj為神經(jīng)元中心點,‖xi-lj‖2為歐氏范數(shù),σ為徑向基函數(shù)的局部作用范圍。
對中心點的選擇,實驗采用了K均值聚類算法,其核心思想是將相似點聚類起來。假設(shè)在訓(xùn)練集中存在相似的兩個值x1≈x2,可預(yù)計其RBF神經(jīng)網(wǎng)絡(luò)預(yù)測值也相似,RBF(x,x1)≈RBF(x,x2),將兩點聚類得μ≈x1≈x2。聚類問題是將數(shù)據(jù)集合{xn}分成M個不相交的集合S1,S2,…,SM,每個集合Sm選擇一個中心點μm表示該集合,使得任意xn∈Sm?μm≈xn。通過誤差函數(shù)查看數(shù)據(jù)點到自己所屬集合的距離平方和,可寫成如下公式:
Ein(S1,…,SM;μ1,…,μM)=
(2)
聚類算法就是要最小化該目標函數(shù),即解決如下最優(yōu)問題
min{S1,…,SM;μ1,…,μM}=
(3)
由于S和μ屬于不同的兩種類型值,S1,S2,…,SM屬于類型變量,μ1,μ2,…,μM屬于數(shù)值變量。需先固定μ1,μ2,…,μM,為每個Xn找到最優(yōu)Sm。接下來,固定S1,S2,…,SM選出每個類的代表值。此時,原始最優(yōu)問題退化成了一個與μm有關(guān)的無限值最優(yōu)化問題,因此,只需目標函數(shù)的梯度為0即可,即:
(4)
令上式為0,則μm是屬于Sm的Xn的均值。總結(jié)其流程為:
(1)初始化μ1,μ2,…,μK,即在Xn中隨機選取K個點,該模型選取點個數(shù)為17。
(2)交替最優(yōu)化Ein,即重復(fù)以下過程直至收斂(S1,S2,…,SK,不再變化判定為收斂)。重復(fù)過程一:最優(yōu)化S1,S2,…,SK,即把Xn分給離它最近的那個μi所屬類簇。重復(fù)過程二:最優(yōu)化μ1,μ2,…,μK,即對每個SK,求屬于該類簇所有點的均值,因為這個過程中Ein一直在變小,因此該算法必然收斂。
采集數(shù)據(jù)需進行清洗,補足缺省值,去除離群點,糾正因人工造成的誤差。原始數(shù)據(jù)各特征之間散點圖見圖2。
圖2 原始數(shù)據(jù)各特征之間散點圖
根據(jù)中心極限定律,確保預(yù)測值(體重)符合正態(tài)分布(見圖3),否則需通過數(shù)據(jù)變換將待估測值進行正態(tài)化。隨即將數(shù)據(jù)集進行劃分,該實驗將數(shù)據(jù)集劃分為訓(xùn)練集及驗證集兩個部分,對訓(xùn)練集數(shù)據(jù)進行標準化、歸一化處理。
圖3 預(yù)測值(體重)呈現(xiàn)正態(tài)分布
根據(jù)皮爾遜積矩相關(guān)系數(shù)方法可以計算出各個特征之間聯(lián)系的緊密程度,并將相關(guān)系數(shù)矩陣用熱力圖進行表示(見圖4)。通過比較體尺與體重之間的相關(guān)系數(shù),可知伊犁馬的胸圍與體重之間的聯(lián)系最緊密,管圍與體重之間的關(guān)系相對最小,因此,選擇前三個相關(guān)性最密切的特征構(gòu)成該模型的輸入層,選擇的特征分別為胸圍、體高、體長。
圖4 特征值選擇
該模型先計算輸入值到中心點的距離,然后使用高斯核函數(shù)進行變換,最后將神經(jīng)元輸出作線性累加求和,得到輸出值??偨Y(jié)起來,RBF網(wǎng)絡(luò)的假設(shè)函數(shù)如下:
(5)
其中,RBF為高斯核函數(shù),μk為中心點,βk為權(quán)重。
根據(jù)式(5),可得RBF神經(jīng)網(wǎng)絡(luò)的訓(xùn)練核心主要是兩個部分,第一確定神經(jīng)網(wǎng)絡(luò)隱含層中心點,第二是確定神經(jīng)網(wǎng)絡(luò)隱含層神經(jīng)元的權(quán)重。中心點的確定采用K均值聚類算法。神經(jīng)元的權(quán)重是對經(jīng)過RBF變換過的數(shù)據(jù)進行求解線性回歸,即用平方誤差作為誤差函數(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ò)模型具有過擬合的危險,但是該實驗使用高斯核得到的核矩陣,并且通過減少中心點數(shù)量,使得網(wǎng)絡(luò)模型正則化,避免了過擬合的情況。整體訓(xùn)練過程為:
(1)使用K均值聚類算法得到中心點{μk};
(2)使用高斯函數(shù)圍繞中心點μk構(gòu)建變換∮(x);
(3)變換后的數(shù)據(jù)運行線性模型,得權(quán)重β;
(4)結(jié)合權(quán)重返回最終的預(yù)測值。
實驗數(shù)據(jù)源取自新疆伊犁種馬場,實驗對象為85匹一至三歲伊犁馬,包括訓(xùn)練集70組數(shù)據(jù),驗證集15組數(shù)據(jù)。通過皮尺、測杖、磅秤等測量工具,采集馬匹的體高、體長、管圍、胸圍,以及體重信息。采集日期為2018年3月,體重信息是在早晨馬匹未出欄,無進食狀態(tài)下進行采集。
首先進行數(shù)據(jù)采集,其次對采集數(shù)據(jù)進行清洗及預(yù)處理,并分析模型所需主成分,然后運用python語言結(jié)合第三方模塊Scilkit-learn(sklearn)構(gòu)建RBF神經(jīng)網(wǎng)絡(luò),根據(jù)評價指標對模型進行參數(shù)優(yōu)化,最后確定模型并與現(xiàn)有經(jīng)驗公式進行對比分析。
實驗采用平均絕對離差(mean absolute error,MAE)來評價模型的估測精度。該評價方法是累加每個估測值與對應(yīng)實際值之差的絕對值,再進行求平均。假若驗證集實際值為X={X1,X2,…,X15},對應(yīng)模型的預(yù)測值為Y={Y1,Y2,…,Y15},則平均絕對離差可以表示為:
(7)
同時,實驗還通過線性擬合優(yōu)度R2對模型線性估測進行評價,R2的取值范圍為0至1,越接近1,說明擬合效果越好。假若驗證集實際值為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)過多次實驗(見表1),確定當神經(jīng)網(wǎng)絡(luò)模型隱含層神經(jīng)元個數(shù)為17,學習步長為0.001時效果最優(yōu)。
表1 隱含層及輸出層各神經(jīng)元的權(quán)值計算結(jié)果
此時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ù)測值與實際值的線性擬合效果如圖5所示。
查閱相關(guān)資料,可得通用性馬體重估測模型如下:
模型Ⅰ:Y1=X1×5.3-505[16];
模型Ⅱ:Y2=X1×X2×0.016[17];
圖5 RBF神經(jīng)網(wǎng)絡(luò)模型預(yù)測值與實測值回歸分析
利用15組測試集數(shù)據(jù),分別對線性回歸模型、RBF神經(jīng)網(wǎng)絡(luò)模型、通用模型Ⅰ、模型Ⅱ、模型Ⅲ進行估測效果對比(見表2)。
表2 多模型預(yù)測結(jié)果 kg
根據(jù)測試數(shù)據(jù)可知,當前測量伊犁馬平均實際體重數(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ò)模型,相較于其他體重估測模型最接近實際馬匹平均體重。在伊犁馬體重平均絕對離差方面,模型依次平均絕對離差值為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ò)模型。在兩種評價指標中,表現(xiàn)最優(yōu)的為RBF神經(jīng)網(wǎng)絡(luò)模型。因此,在五類馬匹體重估測模型中RBF神經(jīng)網(wǎng)絡(luò)模型估測的體重值總體水平優(yōu)于其他模型且最接近實際體重值。根據(jù)比較分析平均數(shù)以及平均絕對離差可知,模型Ⅱ估測伊犁馬體重效果欠佳,認為不具備客觀反映伊犁馬體重的能力,參考價值不高。
文中用70匹伊犁馬體尺、體重數(shù)據(jù)作為訓(xùn)練集,以高斯函數(shù)作為神經(jīng)元,用K均值聚類方法找尋中心點,建立了關(guān)于伊犁馬體重估測的RBF神經(jīng)網(wǎng)絡(luò)模型。結(jié)合通用性馬匹體重估測公式、線性回歸模型及RBF神經(jīng)網(wǎng)絡(luò)模型,在驗證集上進行對比分析發(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)用到伊犁馬的體重估測中。