張健,崔英杰
(黃淮學院,河南駐馬店,463000)
蛋雞的產蛋率是養殖戶最關心的問題,從動態角度研究和認識產蛋規律,不僅可以準確預測蛋雞的產蛋量,還為評估產蛋量性狀的育種值提供參考[1],因此蛋雞產蛋率預測是蛋雞研究中一項非常重要的內容。
蛋雞產蛋率預測屬于非線性系統方面的問題,如果通過單一性的參數進行預測,沒有全面分析多方面參數對蛋雞產蛋率的影響,預測精度偏低。產蛋率預測擬合模型研究始于1981年,McMillan最早提出McMillan分室模型建立產蛋率與時間的非線性擬合曲線[2]。Yang等在McMillan模型的基礎上進行了改進,提出一種楊寧模型用于產蛋率與時間的擬合[3]。McNally發現產蛋曲線與奶牛的泌乳曲線有一定的相似性,提出可以用Wood模型來描述家禽的產蛋曲線[4]。基于支持向量機(Support Vector Machine, SVM)回歸的產蛋率多參數預測模型[5],對產蛋數據的分類和擬合能夠獲得較優的結果,但是SVM核函數選擇直接關系到模型的泛化能力,同時SVM過度依賴參數調節。基于極限學習機(Extreme Learning Machine, ELM)方法用于蛋雞產蛋率預測[6],避免神經網絡多次迭代更新網絡參數缺陷,該預測模型具有良好的可信度和泛化能力。神經網絡通過自我學習極易處理非線性問題[7],建立的非線性蛋雞產蛋模型可以滿足模擬雞舍的復雜環境對蛋雞產蛋率預測,但是神經網絡存在收斂速度慢、容易陷入局部極值的缺陷。通過其他智能算法如粒子群優化神經網絡算法(Particle Swarm Optimization Neural Network, PSONN)、蟻群優化神經網絡算法(Ant Colony Neural Network, ACNN)對神經網絡參數優化[8-9],改善了網絡的性能,提高了預測效果。
本文提出改進神經網絡算法(Improved Neural Network, INN),動態調節神經網絡模型參數,使神經網絡算法具有較高的預測精度;激活函數采用修正線性激活函數ReLu,計算速度比較快,保證了預測的時效性。
常見的神經網絡結構包括輸入層、隱藏層、輸出層,影響蛋雞產蛋率的參數從輸入層經過隱藏層處理,再經過非線性變換,傳至輸出層,其中輸入層與輸出層的節點數由實際所解決問題影響因素決定[10],本文在蛋雞產蛋率預測中涉及到參數共計10個:雞齡、溫度、濕度、光照、飲水量、空氣質量、日糧營養、疾病、用藥不當、應激反應,產蛋性狀是一個受微效多參數控制的數量性狀,但蛋雞在常規飼養管理條件下,產蛋曲線具有一定的規律性,這樣設置輸入層節點總數M為10,即可代表影響蛋雞產蛋率預測的參數,蛋雞產蛋模型輸出層節點總數為J,隱藏層節點總數
(1)
其中:Q∈(0,10)為常數。
神經網絡可以同時處理多個輸入變量,即使在輸入各個變量的數據較小情況下也能得到較好的結果,但是由于神經網絡每層中每個神經元的初始權重以及閾值通常是在[0,1]區間隨機產生,初始值對神經網絡訓練的影響很大,如果不能準確獲得,則使得隨機性和不確定性增加,導致小波神經網絡收斂慢、學習過程穩定性差,很容易陷入局部最優解,因此需要對神經網絡改進。
神經網絡訓練有兩個環節,第一個環節主要是進行正向傳播輸入數據信息,第二個環節主要是進行對訓練結果和預期結果誤差反向傳播從而修正訓練和預期結果[11],神經網絡輸出節點的誤差函數
(2)
式中:dl(n)——神經網絡輸出節點第l個神經元的期望輸出值;
Wl(n)——神經網絡輸出節點第l個神經元的實際輸出值。
依據神經網絡誤差與動態因子來優化神經網絡權值ω,計算過程
(3)
式中:α——動態因子,相當于阻尼項;
β——學習速率;
n——訓練次數;

依據誤差函數的梯度來調節動態因子
(4)
式中:p——最大允許誤差變化率;
λ——隨機數,λ∈(0,1)。
為了使在神經網絡開始訓練階段學習速率較大從而加快學習,β(t)接近βmax這樣可以快速達到收斂目標,當迭代次數超過tmax后,β(t)迅速減小,最終βmin在獲得收斂,減小了誤差,提高網絡訓練精度,因此神經網絡訓練自適應學習速率
(5)
式中:βmax、βmin——最大、最小學習速率;
t——當前迭代次數;
tmax——迭代最大次數。
神經網絡權值更新
(6)
式中:j、i、k——輸出層、隱含層、輸入層節點數;
ωi j——輸入層與隱含層連接權值;
ωki——隱含層與輸出層連接權值;
Hi——隱含層輸出結果。
神經網絡閾值更新
(7)
式中:τj——隱含層閾值;
ζj——輸出層閾值。
輸入層到隱含層的激活函數、隱含層到輸出層的激活函數采用修正線性激活函數ReLu
g(c)=min(φmax,max(φmin,c))
(8)
式中:c、g(c)——輸入值、輸出值;
φmin、φmax——激活函數ReLu邊緣常量值。
相比較傳統的Sigmoid型激活函數,修正線性激活函數Relu沒有除法和指數運算,計算速度比較快。
改進神經網絡訓練算法流程如圖1所示。

圖1 改進神經網絡訓練算法流程圖Fig. 1 Chart of improved Neural Network training algorithm

(9)
式中:ζi——第i個隱含層與輸出節點的輸出權值;
ψi——輸入節點與第i個隱含層的輸入權值;
gi——激活函數;
y′i——預測值;
bi——微調因子,bi∈(0,1)。
通過xi、yi建立神經網絡的訓練樣本,利用神經網絡的逼近功能,從而建立產蛋率預測模型。
產蛋率記錄蛋雞在20~50周時每天的產蛋數和產蛋雞數,產蛋率
(10)
式中:N——每天產蛋數;
M——母雞數。
預測性能的評價指標采用均方誤差MSE以及相關系數r,如式(11)所示。
(11)
式中:f′i、fi——第i個樣本的預測值和實際值;

MSE值越大,說明模型預測效果較差,r值越接近1,說明預測結果和實際值的相關程度越高。
預測流程如圖2所示。

圖2 預測流程圖Fig. 2 Chart of forecast
設置神經網絡參數為:最大訓練次數500次,學習速率最小值、最大值為0.05、0.92,目標誤差度10-3,最小梯度10-7,隱藏層節點為12,利用Matlab2016編程實現仿真。
蛋雞從產蛋開始至蛋雞出售期,記錄蛋雞每天產蛋率以及各項影響產蛋因子的數據,第一批蛋雞800只作為訓練樣本,第二批蛋雞1 000只作為測試樣本,涉及到的影響參數數據有雞齡、溫度、濕度、光照、飲水量、空氣質量、日糧營養、疾病、用藥不當、應激反應。表1為10組蛋雞產蛋率與影響參數數據。

表1 產蛋率與影響參數數據Tab. 1 Egg production rate and influence parameter data
根據表1數據,通過不同算法對蛋雞產蛋率進行預測,算法有SVM、ELM、PSONN、ACNN、NN、INN算法,結果如圖3所示。

圖3 蛋雞產蛋率預測結果Fig. 3 Egg production rate prediction results of laying hens
從圖3可以看出,INN算法在蛋雞初期產蛋率預測與實際值都比較接近,但是在蛋雞初期產蛋率高峰過后INN算法的曲線走勢符合實際產蛋率的變化趨勢,INN算法對產蛋率數據預測相比其他算法更接近實際產蛋率數據,預測效果比較好,并且數據波動小,INN算法在預測產蛋率上有很強的穩定性,因此改進神經網絡模型能夠對蛋雞產蛋率較好的預測。
考慮到試驗過程中存在的偶然性,某一次的運行結果缺乏嚴謹性,通過多次反復驗證,即每種算法設置試驗次數為30次,SVM、ELM、PSONN、ACNN、NN、INN算法對產蛋率預測的相關系數r以及均方誤差MSE仿真結果如圖4所示。


(a) r(b) MSE
從圖4可以看出,本文INN算法相關系數r均值為0.997 4,相比SVM、ELM、NN、PSONN、ACNN分別提高了0.58%、0.48%、0.40%、0.28%、0.23%,INN算法均方誤差MSE值為0.001 1,相比SVM、ELM、NN、PSONN、ACNN分別減少了5.89%、4.92%、3.93%、2.67%、1.81%,因此說明預測模型的精確度較高。
在每種算法設置試驗次數為30次條件下,對SVM、ELM、NN、PSONN、ACNN算法的執行時間如圖5所示。


(a) 訓練時間(b) 預測時間
從圖5可以看出,本文INN算法的訓練時間、預測時間均少于其他算法,改進神經網絡算法的訓練時間均值為6.54 s,相比SVM、ELM、NN、PSONN、ACNN分別提高了54.11%、49.69%、44.86%、29.83%、20.73%;預測時間均值為2.75 s,相比SVM、ELM、NN、PSONN、ACNN分別提高了67.11%、61.05%、52.59%、44.56%、14.86%;因此改進神經網絡算法對蛋雞產蛋率速度較快,這說明本文INN算法具有較強的處理數據功能。
本文對神經網絡進行改進,神經網絡自適應進行學習,提高神經網的預測精度,激活函數采用修正線性激活函數ReLu,計算速度比較快,試驗仿真顯示本文算法對蛋雞產蛋率預測與實際值比較接近,評價指標較好,得出如下結論。
1) 改進的神經網絡算法相較于傳統的神經網絡算法,產蛋率預測的相關系數以及均方誤差提升較明顯,產蛋率預測的相關系數均值為0.997 4,相比SVM、ELM、NN、PSONN、ACNN分別提高了0.58%、0.48%、0.40%、0.28%、0.23%;均方誤差值為0.001 1,相比SVM、ELM、NN、PSONN、ACNN分別減少了5.89%、4.92%、3.93%、2.67%、1.81%。綜上所述,改進神經網絡算法的產蛋率預測模型精確度較高。
2) 改進神經網絡算法的訓練時間均值為6.54 s,相比SVM、ELM、NN、PSONN、ACNN分別提高了54.11%、49.69%、44.86%、29.83%、20.73%;預測時間均值為2.75 s,相比SVM、ELM、NN、PSONN、ACNN分別提高了67.11%、61.05%、52.59%、44.56%、14.86%;因此改進神經網絡算法對蛋雞產蛋率速度較快。
3) 在改進神經網絡的訓練和測試中,樣本集具有局限性,最優模型的選擇需要結合更多影響蛋雞產蛋率的參數;同時為提升模型的準確率,未來需要更新擴充訓練集樣本。