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