張保霞
(內蒙古農業大學職業技術學院,內蒙古 呼和浩特 014100)
隨著經濟的發展和生活水平的不斷提高,消費者和豬肉深加工商對豬肉的嫩度、顏色、pH值、堅實度和持水力等品質指標越來越重視,因此對豬肉品質進行分類識別具有重要的理論價值和實際意義[1]。受遺傳因素、環境因素、體外因素和品種差異等的影響,豬肉有2種劣質肉:黑干肉和白肌肉。目前,正常肉、黑干肉和白肌肉的識別主要有屠宰后人工感官識別和化學分析,前者需要專業評價人員,具有很強的主觀性,評價結果重復性差,大批量檢測時存在勞動強度大的缺點。后者操作步驟復雜繁瑣,破壞性大、對操作人員專業技術要求較高,不適合在線檢測。賈淵等[2]提出了一種基于豬肉數字圖像顏色特征和支持向量機的豬肉分級方法,分級準確率達96.5%。Juan等[3]提出了逐步回歸法和典型判別分析法判別豬肉類別,紅肉和白肉的判別正確率為85%,但是正常肉和紅肉的判別精度較低。Qiao等[4]搭建了400~1 000 nm的生鮮豬肉高光譜圖像采集系統,并分別運用聚類分析和前向神經網絡進行分類,聚類分析正確率為75%~80%,前向神經網絡的正確率為85%。Monroy等[5]運用逐步回歸法選取豬肉光譜數據的有效波段,采用5倍交叉驗證法和留一交叉驗證法分別建立豬肉分類模型,2種方法的豬肉分類正確率分別為79%,80%。為了提高豬肉品質識別的精度,試驗擬針對全波段近紅外光譜數據的豬肉品質快速識別存在光譜數據量大、計算復雜度高的缺點,運用主成分分析法(PCA)對豬肉近紅外光譜數據進行特征波長篩選;針對支持向量機(SVM)模型性能受懲罰參數C和核函數參數g的選擇影響,運用樽海鞘算法(SSA)[6]對SVM模型參數進行優化選擇,提出一種基于PCA和SSA-SVM模型的豬肉品質識別模型,以期為豬肉品質分類識別提供依據。
試驗樣品為生鮮豬肉,取樣為排酸24 h后的左胴體眼肌部位,每塊豬肉樣品的厚度為40 mm,去除結締組織和周邊脂肪,制成25 mm厚的樣品用于采集豬肉樣品的近紅外光譜數據。近紅外光譜數據采集系統(圖1)由AvaSpec-USB近紅外光譜儀、計算機、暗箱、光源、光纖及探頭、光源固定架、光譜采集軟件等組成。其中,光譜儀波長為350~1 150 nm,分辨率為0.6 nm,光譜采集軟件版本為AvaSoft7.4。
1. 暗箱 2. 光源固定架 3. 鹵素燈珠 4. 光纖及探頭 5. 試驗樣品 6. 樣品平板 7. 計算機 8. 光譜儀
2.1.1 種群初始化 SSA算法的種群規模為N,優化變量維數為D,樽海鞘位置為X=[Xn1,Xn2,…,XnD]T,n=1,2,…,N,食物位置F=[F1,F2,…,FD]T,優化變量上限為ub=[ub1,ub2,…,ubD]T、下限為lb=[lb1,lb2,…,lbD]T,因此,SSA算法的種群初始化為[7]:
XN×D=Rand(N,D)×(ub-lb)+lb,
(1)
式中:
XN×D——樽海鞘位置向量;
Rand(N,D)——N×D維的隨機向量。
2.1.2 更新領導者位置 算法中的領導者主要作用是引領整個樽海鞘群體的移動,主要目的是搜索食物。為了使得領導者位置更新具有更強的隨機性,領導者按式(2)進行位置更新:
(2)
式中:
ubd,lbd——領導者個體在d維上的優化變量的上限和下限;
c1、c2——[0,1]的隨機數;
c3——搜索平衡因子,可以有效增強領導者的隨機性和多樣性,主要用于平衡SSA算法的全局搜索和局部搜索能力。
收斂因子按式(3)進行計算:
c1=2e-(4t/Tmax)2,
(3)
式中:
c1——收斂因子;
t——當前迭代次數;
Tmax——最大迭代次數。
2.1.3 更新追隨者位置 由文獻[8]可知,在SSA算法中,追隨者的位置與追隨者的初始位置、速度以及加速度密切相關,追隨者的位置按牛頓運動方程進行更新:
(4)
(5)
(6)
式中:
v0——追隨者的初始速度,m/s;
a——追隨者的加速度,m2/s;
ta——追隨者的迭代步長;
R——追隨者的運動距離,m;
對于訓練向量(xi,yi),引入松弛變量的SVM模型為[9]:
(7)
式中:
C——懲罰參數;
w——權值向量;
ε——不敏感損失因子。
引入拉格朗日乘子可以將SVM轉化為對偶問題的求解:
(8)
式中:
K(xi,xj) ——核函數;
文中選擇RBF核函數,其數學公式為:
(9)
式中:
g——核函數參數。
求解式(8)可以得到SVM分類模型為:
(10)
式中:
b——超平面偏差。
主成分分析可以提取數據的主要特征信息,剔除數據中的冗余信息,盡量用最少的信息反映原始數據的主要信息,提高數據挖掘效率[10-11]。文中選擇PCA對豬肉近紅外光譜數據進行特征波段選擇。
對于m×n維數據樣本XF:
(11)
(1) 數據標準化:如式(12)所示。
(12)
式中:
(2) 建立協方差矩陣E,計算特征值L和特征向量A。
(13)
EA=AL。
(14)
(3) 確定主元數,計算主成分貢獻率和累計貢獻率。
主成分貢獻率:
(15)
累計貢獻率:
(16)
為提高SVM模型進行豬肉品質識別的精度,針對SVM模型性能受懲罰參數C和核函數參數g的選擇影響,運用SSA算法對SVM模型參數進行優化選擇,提出一種基于PCA和SSA-SVM模型的豬肉品質識別模型,其識別流程如圖2所示。
圖2 基于SSA-SVM的豬肉品質識別算法流程圖
采集豬肉近紅外光譜數據,進行預處理和光譜校正;運用PCA對近紅外光譜數據進行特征波長選擇;將近紅外光譜數據劃分為訓練數據集和測試數據集,基于PCA篩選的特征波長光譜數據,針對訓練數據集,運用SSA方法對SVM模型的參數組合(C,g)進行優化,建立SSA-SVM豬肉品質識別模型;最后,將SSA尋優獲取的最佳參數組合(C,g)代入SVM模型進行測試?;赟SA-SVM模型的豬肉品質識別算法步驟為:
(1) 讀取豬肉近紅外光譜數據,進行光譜數據預處理和光譜校正并歸一化處理,運用PCA對近紅外光譜數據進行特征波長篩選,劃分訓練數據和測試數據[12-13]:
(17)
式中:
XF、XFnew——原始近紅外光譜數據和歸一化處理后的近紅外光譜數據;
LB、UB——歸一化處理后近紅外光譜數據的最小值和最大值,文中取LB=-1,UB=1;
XFmax、XFmin——原始近紅外光譜數據中的最大值和最小值。
(2) 種群初始化。設定最大迭代次數Tmax、種群規模N,按式(1)初始化樽海鞘種群。
(3) 計算適應度。針對訓練數據,將訓練數據代入SVM模型,按式(18)計算每個樽海鞘個體的適應度。
(18)
式中:
ACC——K折交叉驗證的平均準確度;
acck——第k折計算的準確度。
(4) 選定領導者、追隨者和食物。計算適應度大小,將適應度最優的樽海鞘位置設定為當前食物位置;剩下的N-1個樽海鞘,將排在前一半的樽海鞘作為領導者,剩下的作為追隨者。
(5) 更新領導者位置和追隨者位置。
(6) 計算更新后的樽海鞘個體適應度fs。比較fs與當前食物的適應度ffood,如果fs>ffood,則將fs所對應的樽海鞘位置作為新的食物位置。
(7) 重復步驟(3)~(6),如果t>Tmax,輸出最優食物位置,最優食物位置所對應的結果即為SVM模型的最優參數組合(C*,g*)。將最優參數組合(C*,g*)代入SVM模型進行豬肉品質識別。
豬肉原始光譜曲線如圖3所示,變量標準化和歸一化預處理后的豬肉光譜曲線如圖4所示,共129個樣本,其中白肌肉、正常肉和黑干肉分別為39,39,51個。
圖3 原始光譜曲線
圖4 標準化和歸一化后的光譜曲線
運用PCA篩選豬肉光譜數據的特征波長,不同主成分數進行訓練時,正確率和均方根誤差與主成分數的關系如圖5所示。由圖5可知,當主成分數為13時,豬肉品質識別正確率最高,其特征波長選擇結果如圖6所示。PCA特征波長篩選結果為371,388,425,456,473,562,578,607,696,764,772,813,927 nm。
圖5 主成分數與正確率和均方根誤差之間的關系曲線
圖6 PCA特征波長選擇結果
將SSA-SVM與基于灰狼算法(GWO)優化SVM(GWO-SVM)[14]、基于粒子群算法優化SVM(PSO-SVM)[15-16]、基于網格搜索方法[17-18]優化SVM(Grid-SVM)和SVM進行對比。將129個豬肉樣本數據按2∶1劃分為訓練集和測試集。其中,訓練集中白肌肉、正常肉和黑干肉分別為26,34,26個,測試集中白肌肉、正常肉和黑干肉分別為13,17,13個。訓練集主要用于建立SVM豬肉品質識別模型;測試集主要用于驗證SVM豬肉品質識別模型的效果。算法參數設置:① SSA算法:種群規模N=20、最大迭代次數Tmax=200;② PSO算法[19]:種群規模N=20、最大迭代次數Tmax=200、慣性權重w=0.2、學習因子c1=c2=2;③ GWO算法:種群規模N=20、最大迭代次數Tmax=200;④ SVM模型:懲罰參數C∈(0,100]、核函數參數g∈(0,100]。為了避免SVM模型陷入“過擬合”,采用10折交叉驗證方法,得到SSA-SVM模型的最優懲罰參數C=4.939,核函數參數g=2.171 4,SSA-SVM的適應度曲線如圖7所示。不同算法豬肉品質識別結果如表1所示。
圖7 SSA-SVM的適應度曲線
由表1可知,在訓練集和測試集上,SSA-SVM模型的豬肉品質識別正確率最高。訓練集上,白肌肉、正常肉和黑干肉識別的正確率分別為96.15%,97.06%,96.15%;測試集上,白肌肉、正常肉和黑干肉識別的正確率分別為100.00%,94.11%,92.31%,優于GWO-SVM模型、PSO-SVM模型、Grid-SVM模型以及SVM模型。通過SSA、PSO和Grid優化SVM模型,豬肉品質識別的正確率均大幅度提高,主要是SVM模型的參數得到了優化配置。
表1 不同算法豬肉品質識別結果
為了提高豬肉品質識別精度,提出了一種基于主成分分析和樽海鞘算法優化支持向量機的豬肉品質識別模型。結果表明,與基于灰狼算法優化支持向量機、基于粒子群算法優化支持向量機、基于網格搜索方法優化支持向量機和支持向量機相比,基于樽海鞘算法優化支持向量機可以有效提高豬肉品質識別正確率。由于標準的樽海鞘算法容易陷入“早熟”問題,因此支持向量機模型參數尋優時存在局部最優,影響豬肉品質識別精度。后續將研究改進的樽海鞘算法優化支持向量機的豬肉品質識別模型,提高豬肉品質識別模型的精度和適用性。