本發(fā)明涉及機器視覺檢測中的模式識別領域,具體是指一種通過最小二乘支持向量機技術實現(xiàn)對工業(yè)產(chǎn)品的偏向性分類及最小二乘支持向量機的參數(shù)尋優(yōu)方法。
背景技術:
機器視覺技術是計算機學科的一個重要分支,經(jīng)過三十多年突發(fā)猛進的發(fā)展,憑借其速度快、精度高、永不疲勞的優(yōu)點,在工業(yè)生產(chǎn)流水線上,逐步代替人工視覺檢測,在降低人力成本的同時又可實現(xiàn)對產(chǎn)品質量的嚴格控制。模式識別作為機器視覺的一個重要領域,一種分類準確率高,實時性能好的分類器對于產(chǎn)品合格率的控制起著至關重要的作用。實際生產(chǎn)中,應盡最大的可能性使得瑕疵產(chǎn)品不被分為合格產(chǎn)品,而在保證整體分類準確率的前提下允許小部分合格產(chǎn)品被分為瑕疵產(chǎn)品。貝葉斯分類器可以綜合先驗信息和樣本信息,但是先驗信息來源于經(jīng)驗或者以前的實驗結論,沒有確定的理論依據(jù)作支持;此外該方法處理數(shù)據(jù)復雜性高,時間和空間消耗較大,無法滿足對實時性要求較高的場合。神經(jīng)網(wǎng)絡分類器存在一些不足之處,一方面它需要較長的訓練時間,不適用于復雜的問題;另一方面可能陷入局部極小值解。而最小二乘支持向量機是基于統(tǒng)計學習理論的結構風險最小化原則和VC維理論,在得到全局最優(yōu)解的同時具有非常好的推廣能力。在工業(yè)生產(chǎn)過程中,合格產(chǎn)品出現(xiàn)的概率遠遠大于瑕疵產(chǎn)品出現(xiàn)的概率,比較難以獲得較多的瑕疵產(chǎn)品樣本用于訓練,或者合格產(chǎn)品與瑕疵產(chǎn)品的類分布差異較大,這兩種情況可能導致在線分類時數(shù)量較少的瑕疵產(chǎn)品被錯分為合格產(chǎn)品,致使合格產(chǎn)品混入瑕疵產(chǎn)品,影響了產(chǎn)品的整體質量。對多數(shù)類樣本的欠采樣學習和對少數(shù)類樣本的過采樣學習是從數(shù)據(jù)層面處理訓練樣本不均衡導致的分類偏斜問題的兩種重要途徑。虛擬少數(shù)類過采樣算法避免了隨機過抽樣算法中由于盲目復制樣本帶來的過學習問題,但沒有很好的考慮到孤立點樣本、邊界樣本分布稀少對不平衡數(shù)據(jù)中少數(shù)類分類性能的影響。最小二乘支持向量機的分類性能受到多種因素影響,其中懲罰參數(shù)和核函數(shù)類型及參數(shù)的選擇對其性能影響較大。網(wǎng)格搜索法雖然能夠找到在交叉驗證意義下的最高分類正確率對應的最佳參數(shù)組合[gam,sig],但是計算時間復雜度大,算法效率相對較低。遺傳算法和粒子群算法易陷入局部最優(yōu),或全局最優(yōu)的計算量偏大。模擬退火算法理論上是具有概率的全局優(yōu)化性能。耦合模擬退火算法在模擬退火算法的基礎之上考慮到了通過能量耦合在一起的若干當前狀態(tài),具有并行性,在改進了最優(yōu)參數(shù)的同時使得收斂速度不會下降,但往往需要經(jīng)過很多次退火才能尋找到最優(yōu)解,時間消耗較大。
技術實現(xiàn)要素:
本發(fā)明的目的在于基于最小二乘支持向量機技術,設計一種帶有偏向性、分類準確度高、適用于實時性要求較高場合的分類器。為達此目的,本發(fā)明基于最小二乘支持向量機技術的偏向性分類和參數(shù)尋優(yōu)的技術方案如下:該分類器基于最小二乘支持向量機技術;采用改進的虛擬少數(shù)類過采用算法,先使用K近鄰算法(K取5)去除孤立樣本點,再對邊界樣本點進行過采樣,人工增加了瑕疵樣本的數(shù)量,且使樣本分布范圍一定程度上向合格樣本擴散,產(chǎn)生更適合于偏向性分類的訓練樣本數(shù)據(jù);使用耦合模擬退火算法,進行兩次退火,對最小二乘支持向量機核函數(shù)參數(shù)sig和懲罰參數(shù)gam進行初步尋優(yōu),在初步尋優(yōu)所得參數(shù)組合的鄰域,采用網(wǎng)格算法進行精細搜索;對比兩次搜索得到的參數(shù),確定最終的最優(yōu)參數(shù)組合;整個流程包括去除孤立樣本模塊、虛擬少數(shù)類樣本過采樣模塊、模擬退火算法模塊、網(wǎng)格算法模塊、參數(shù)對比模塊。優(yōu)選實施例,去除孤立樣本模塊的輸入為包含有合格樣本和瑕疵樣本的原訓練數(shù)據(jù),采用K近鄰算法(K取5)計算每個樣本xi的5個最近鄰,如果5個最近鄰的類別均與xi的類別不同,則刪去xi,經(jīng)過此模塊處理,去除了原始訓練樣本數(shù)據(jù)中的孤立樣本,并將結果輸送到虛擬少數(shù)類樣本過采樣模塊。優(yōu)選實施例,虛擬少數(shù)類樣本過采樣模塊對每個瑕疵樣本計算其5個最近鄰,倘若其中有三個近鄰屬于合格樣本,則判定該瑕疵樣本為邊界樣本;對邊界樣本進行過采樣,即在邊界樣本與其近鄰的三個合格樣本之間人工合成新的瑕疵樣本,并加入到訓練樣本數(shù)據(jù)中,作為最小二乘支持向量機訓練時的輸入數(shù)據(jù)。優(yōu)選實施例,模擬退火算法模塊,對最小二乘支持向量機核函數(shù)sig和懲罰參數(shù)gam組合進行初步尋優(yōu),采用K(K取10)折交叉驗證每一組參數(shù)解對應的誤分率,即將訓練數(shù)據(jù)分成數(shù)量大致相等的10個子集,每個子集數(shù)據(jù)集分別做一次訓練集,其余9個子集作為驗證集,使用訓練集進行學習得到的最小二乘支持向量機模型對驗證集進行預測,以10次驗證所得的誤分率的均值做為該組解的誤分率,取誤分率最低對應的那組參數(shù)組合做為最優(yōu)參數(shù),進行兩次退火獲得初步最優(yōu)參數(shù)組合[sig,gam]。優(yōu)選實施例,網(wǎng)格算法模塊在sig和gam的鄰域以步長0.2進行精細搜索,其中兩個參數(shù)的尋優(yōu)范圍分別為:sig∈(exp{log(sig)-1.5},exp{log(sig)+1.5})gam∈(exp{log(gam)-2},exp{log(gam)+2})采用K(K取10)折交叉驗證每一組參數(shù)解對應的誤分率,取誤分率最低對應的那組參數(shù)組合作為最優(yōu)參數(shù)。優(yōu)選實施例,參數(shù)對比模塊中將耦合模擬退火算法所得的參數(shù)組合與網(wǎng)格算法所得結果進行比較,取較低誤分率對應的那組參數(shù)作為最終的最優(yōu)參數(shù)組合;如果相同的最低誤分率對應多組參數(shù),則取gam最低的那組參數(shù)做為最優(yōu)參數(shù),避免模型過學習。本發(fā)明的有益效果:本發(fā)明提供了一種基于最小二乘支持向量機技術的偏向性分類器和參數(shù)尋優(yōu)方法,采用最小二乘支持向量機作為分類器推廣能力好且適用于實時性要求較高的場合;改進了虛擬少數(shù)類過采樣算法,去除了孤立樣本的影響,突出邊界樣本的重要性,使得分類具有一定的偏向性,即瑕疵產(chǎn)品被誤分為合格產(chǎn)品的概率降低;在最小二乘支持向量機參數(shù)尋優(yōu)方面,先采用耦合模擬退火算法進行參數(shù)初步尋優(yōu),在此基礎上使用網(wǎng)格算法進行精細搜索,不僅使得在訓練最小二乘支持向量機模型時參數(shù)尋優(yōu)時間縮短,而且分類準確度更高,提高了分類性能。附圖說明圖1本發(fā)明整體示意圖。具體實施方式為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,下面結合具體實施例,并參照附圖,對本發(fā)明作進一步詳細說明。本發(fā)明的基本思路是:一款離線訓練、在線檢測且分類準確率高,實時性能好的分類器對于產(chǎn)品合格率的控制起著至關重要的作用。在實際生產(chǎn)中,總是希望瑕疵產(chǎn)品盡量不被分為合格產(chǎn)品,而在保證整體分類準確率的前提下允許小部分合格產(chǎn)品被分為瑕疵產(chǎn)品。本發(fā)明采用基于統(tǒng)計學習理論的結構風險最小化原則和VC維理論的最小二乘支持向量機作為分類器。在解決小樣本、非線性和高維模式識別有許多優(yōu)勢,具有非常好的推廣能力,滿足實時性要求較高的場合。在實際生產(chǎn)中比較難以獲得較多的瑕疵產(chǎn)品樣本用于分類器的訓練,或者合格產(chǎn)品與瑕疵產(chǎn)品的類分布差異較大,這兩種情況可能導致在線分類時數(shù)量較少的瑕疵產(chǎn)品被錯分為合格產(chǎn)品,致使合格產(chǎn)品混入瑕疵產(chǎn)品,影響了產(chǎn)品的整體質量。本發(fā)明先刪除孤立樣本、在此基礎上找出5個近鄰中有三個是合格產(chǎn)品的瑕疵產(chǎn)品做為邊界樣本,人工產(chǎn)生新瑕疵樣本。傳統(tǒng)的最小二乘支持向量機參數(shù)尋優(yōu)方法,存在一定的局限性。本發(fā)明先采用耦合模擬退火算法兩次退火,獲得初步最優(yōu)參數(shù),在初步最優(yōu)參數(shù)的基礎上用網(wǎng)格算法進行精細搜索,獲得最優(yōu)參數(shù)。本發(fā)明采用的方法尋優(yōu)時間短,且對瑕疵產(chǎn)品的檢測精確度更高。附圖1為本發(fā)明的整體程序流程圖。去除孤立樣本模塊1通過計算每個瑕疵樣本的5個最近鄰,找出5個最近鄰均為合格樣本的瑕疵樣本,認定該瑕疵樣本為孤立樣本,并將其刪除,再經(jīng)過虛擬少數(shù)類樣本過采樣模塊2,對5個最近鄰中有三個合格樣本的瑕疵樣本進行過采樣,獲得LSSVM的訓練樣本數(shù)據(jù),通過只進行兩次退火的耦合模擬退火算法模塊3獲得LSSVM核函數(shù)參數(shù)和懲罰參數(shù)組合值,通過網(wǎng)格算法模塊4進行精細搜索獲得參數(shù)組合值,通過參數(shù)對比模塊5最終確定最小二乘支持向量機的最優(yōu)參數(shù)組合值。進一步的,所述去除孤立樣本模塊1具體為:假設給定訓練樣本為其中train_data包含有n個訓練樣本,每個樣本含有m個特征。每個樣本相對應的分類標記為train_label=(y1,y2,…,yn)T,train_label由+1和-1組成的列向量,其中多數(shù)類標記label_maj=-1,少數(shù)類標記label_min=+1。(1.1)去除噪聲點對于樣本xi,計算它到每一個樣本的歐幾里得距離D=(di1,di2,…din),其中樣本xj到樣本xn的歐幾里得距離按照下面公式得到:其中xim表示第i個樣本的第m個特征值。(1.2)找出D中5個最小值,統(tǒng)計與樣本xi類別相同的樣本個數(shù)先將樣本xi到自身的距離置為無窮大,即dii=inf。如果訓練樣本總數(shù)n>exp(5),先找出D中的最小值min_d并記錄其對應的樣本下標id。判斷其對應的類別標記train_label(i)是否與train_label(id)一致。如果一致,則記錄最近鄰同類個數(shù)的值(check_num初始值為0)check_num+1,并令d(id)=inf。重復上面步驟5次,找到樣本xi的5個最近鄰,并記錄這個五個最近鄰與樣本xi分類標記相同的樣本個數(shù)check_num。如果訓練樣本總數(shù)n<exp(5),則直接將D升序排列。升序排列后,D前5個值對應的位置下標即為5個最近鄰樣本的下標id(1)…id(5),對于每一個最近鄰,如果其樣本分類標記與樣本xi相同,即train_label(i)=train_label(id(k)),(其中k=1,2…,5)則check_num+1。(1.3)產(chǎn)生新樣本檢查check_num值的大小,如果check_num=0即樣本xi的5個最近鄰均和xi不同類,則將樣本xi從訓練樣本中移除。由此可得到去除噪聲之后的樣本集合train_set:train_set=train_data-{x∈train_data:x對應的check_num=0}所述虛擬少數(shù)類過采樣模塊2具體為:(2.1)在數(shù)據(jù)集合train_set={Smin∪Smaj}中Smaj為去噪后的多數(shù)類數(shù)據(jù)集,Smin為去噪后的少數(shù)類數(shù)據(jù)集。對于少數(shù)類樣本xi∈Smin,計算它到每一個樣本的歐幾里得距離D=(di1,di2,…dij),其中樣本xi到樣本xn的歐幾里得距離按照下面公式得到:(2.2)找出D中5個最小值。先將樣本xi到自身的距離置為無窮大,即dii=inf。如果訓練樣本總數(shù)n>exp(5),先找出D中的最小值min_d并記錄其對應的樣本下標id。判斷其對應的類別標記train_label(i)是否與train_label(id)一致。如果一致,則記錄最近鄰同類個數(shù)的值(check_nn初始值為0)check_nn+1,并令d(id)=inf。重復上面步驟5次,找到樣本xi的5個最近鄰,并記錄這個五個最近鄰與樣本xi分類標記相同的樣本個數(shù)check_nn。如果訓練樣本總數(shù)n<exp(5),則直接將D升序排列。升序排列后,D前5個值對應的位置下標即為5個最近鄰樣本的下標id(1)…id(5),對于每一個最近鄰,如果其樣本分類標記與樣本xi相同,即train_label(i)=train_label(id(k))(其中k=1,2…,5)則check_nn+1。(2.3)如果check_nn=2,即樣本xi的5個最近鄰中,有3個與它不是同屬于一類,2個與它同屬于一個類別,則認定樣本xi屬于邊界樣本。對于邊界樣本點,選出與它不同類的三個最近的樣本其中t=1,2,3,依照下面的公式構造出新的少數(shù)類樣本:其中weight是(0,1)之間的隨機數(shù)。(2.4)把人工合成的新樣本集與原始訓練樣本集組成一個新的訓練樣本集合,利用分類器對其進行學習。所述耦合模擬退火算法兩次退火參數(shù)尋優(yōu)模塊3具體為:(3.1)初始化,設定耦合模擬退火算法的初始溫度T0=1,退火搜索步長step=20。(3.2)隨機產(chǎn)生一個范圍在(0,1)之間的5組初始參數(shù)組合解p0,它是一個由2*5的矩陣構成,每一列代表一組解。采用10折交叉驗證每一組解,即將訓練數(shù)據(jù)分成數(shù)量大致相等的10個子集,每個子集數(shù)據(jù)分別做一次訓練集,其余9個子集作為驗證集,使用訓練集進行學習得到的最小二乘支持向量機模型對驗證集進行預測,得到誤分率e0(l),其中l(wèi)=1,2…,10,取這十次驗證所得的誤分率的均值做為該組解的誤分率,即e0=[e0(1)+e0(2)+…+e0(10)]/10。選出這5組隨機解中誤分率最小best_e0所對應的那組解作為最優(yōu)參數(shù)組合:best_paras=[sig,gam]=p0(i)其中i=1,2…,5(3.3)在p0的每組組合解的鄰域產(chǎn)生新解pn,與(2)相同的方法求取5組新解所對應的誤分率en。(3.4)將新解對應的誤分率與初始解進行對比,取兩者中誤分率較低的參數(shù)組合解。分兩種情況處理:對于i=1∶5,一方面,如果en(i)<e0(i),則令e0(i)=en(i),且以pn(i)取代p0(i)成為新解,即p0(i)=pn(i)。如果e0(i)<best_e0,則令best_e0=e0(i),best_paras=p0(i)。另一方面,如果en(i)≥e0(i),則計算耦合項:再以此計算接受概率函數(shù)值:(3.5)根據(jù)步長step,循環(huán)步驟(3.3)和(3.4)20次。(3.6)降低T0和的值,重復步驟(3.3)、(3.4)和(3.5)。得到初步最優(yōu)解best_paras=[sig,gam]。所述網(wǎng)格算法參數(shù)尋優(yōu)模塊4具體為:(4.1)首先在模塊3的基礎上,設置組合參數(shù)[sig,gam]的尋找范圍,其中核參數(shù)sig的范圍為sig∈(exp{log(sig)-1.5},exp{log(sig)+1.5}),懲罰參數(shù)gam的范圍為gam∈(exp{log(gam)-2},exp{log(gam)+2}),以搜索步長0.2進行精細搜索。(4.2)對每一個網(wǎng)格節(jié)點進行10折交叉驗證。取誤分率最低的那組參數(shù)作為最優(yōu)參數(shù)。如果相同的最低誤分率對應多組參數(shù),則取gam最低的那組參數(shù)最為最有參數(shù),避免模型過學習。所述參數(shù)對比模塊4具體為:(5.1)比較耦合模擬退火算法與網(wǎng)格搜索算法得到的兩組參數(shù)所對應的誤分率,取較低誤分率對應的那組參數(shù)作為最終的最優(yōu)參數(shù)組合。(5.2)若兩組參數(shù)所對應的誤分率相等,則取懲罰參數(shù)gam值較小者對應的那組參數(shù)組合作為最優(yōu)參數(shù)組合。本發(fā)明采用最小二乘支持向量機作為分類器,具有非常好的推廣能力,且滿足實時性要求較高的場合;采用改進的虛擬少數(shù)類過采樣算法,使得分類具有一定的偏向性,即瑕疵產(chǎn)品被誤分為合格產(chǎn)品的概率降低;同時采用耦合模擬退火算法與網(wǎng)格算法相結合對最小二乘支持向量機參數(shù)進行尋優(yōu),在提高預測精度和泛化能力的前提下,訓練時間也有所降低。本發(fā)明提供的分類器能較好的滿足對工業(yè)產(chǎn)品的檢測需求。