鄧 煜,李 明,周稻祥
(太原理工大學 大數據學院,太原 030024)
當代社會,手機由只能打電話發短信逐漸發展成為移動數字媒體終端,是人們日常生活的重要組成部分。因此,手機需求量急劇上升,僅2018年全國手機銷量已過億部。銷量的激增對手機裝配提出了更高的要求。目前,我國手機裝配依然以人工裝配為主,在手機裝配生產線上,很大一部分操作就是螺絲鎖附,工人依靠掌上型螺絲機進行螺絲鎖附操作。人工操作在面對如此龐大的手機需求量時,問題頻出,主要問題有以下幾點:1) 工人技術水平參差不齊;2) 工作強度高導致的合格率下降;3) 工廠人力成本較大。因此,工業化、機械化生產是企業提高效率、降低成本的最佳選擇,智能螺絲機開始在生產線中替代人工操作。
智能螺絲機在作業過程中,有一個步驟是對螺絲鎖附結果進行判斷,以幫助螺絲機進行后續操作。因此,判斷螺絲鎖附結果就成為智能螺絲機的核心要點。目前,大多數智能螺絲機都是根據生產經驗對電批參數劃分范圍,將參數范圍與螺絲類別進行對應。但由于相似類別的參數范圍重疊部分較多,故容易導致智能螺絲機發生誤判,整體判別準確率較低。本文首先嘗試通過機器學習算法建立分類模型來對螺絲鎖附結果進行判別,但螺絲鎖附數據有著數量大、類別多、維度高且每條數據長度不定等特點,無法直接使用分類算法進行分析。針對這些問題,本文從鎖附數據的物理特性(角度、扭矩、速度)出發,對鎖附數據序列進行特征重構(如最大角度、最大扭矩等);然后使用分類算法,如支持向量機[1-2]、隨機森林[3-5]、K-近鄰算法[6]、邏輯斯特回歸[7]等進行分類。實驗結果雖然比傳統智能螺絲機使用的置信區間法準確率高,但仍未達到工業級別大規模生產所要求的準確率。
引起分類結果不理想的原因主要有以下幾點:1) 經重構得到的特征優劣不一。由于是對原始數據進行特征重構,無法保證重構特征的有效性,有些無用的特征數據甚至會擾亂分類結果。因此需要對重構的特征進行篩選。2) 相似類別之間的誤判問題依然沒有得到有效的解決,僅憑借重構特征還不足以解決誤判問題,需要新的特征和新的方法來提高判別準確率。
針對上述問題,本文提出了基于兩階段隨機森林的螺絲鎖附結果判別模型,在第一階段中通過特征構造和基于隨機森林的特征篩選方法處理數據;第二階段將各物理特性的概率主成分分析方差作為特征進行聚類,以聚類生成的預分類簇區分相似類別與非相似類別數據,對各簇分別使用隨機森林建立分類模型,匯總構成螺絲鎖附結果判別模型。
隨機森林[8]是Bagging的一個擴展變體,隨機森林在以決策樹為基的學習器上構建Bagging集成的基礎上,進一步在決策樹的訓練過程中引入了隨機屬性選擇。對于基決策樹的每個節點,先從該節點的屬性集合中隨機選擇一個包含k個屬性的子集,然后進行劃分,其中參數k控制隨機性的引入程度。正是由于隨機性的引入,使得隨機森林具有良好的性能,解決了決策樹泛化能力弱的特點,且容易實現,計算開銷小,準確率高,被譽為“代表集成學習技術水平的方法”。
基于決策樹的構造原理,決策樹中每個節點都是依據其特征重要度進行生成的,所以也能把決策樹的構建看作為是一個特征選擇的過程[9]。由BREIMAN[3]提出的基于隨機森林的特征選擇算法,通過在隨機森林中加入高斯噪聲,使得隨機森林算法在兼備集成學習優點的同時具有更廣泛的應用。若特征重要度高,則整體分類準確率下降明顯;若特征不重要,則整體分類準確率無明顯變化。
概率主成分分析(簡稱概率PCA)[10-12]是從概率的角度來對PCA進行分析的。
引入隱變量z及其分布P(z),觀察變量x是由z產生的,因此有條件分布P(x|z),假設z服從0均值單位方差的高斯分布,則有:
z~N(0,I) .
(1)
x~N(μ,WWT+ψ) .
(2)

x~N(μ,WWT+σ2I) .
(3)
x=Wz+μ+σm.
(4)

(5)

目前,智能螺絲機使用的置信區間法,是通過對角度、速度、扭矩3個物理特性劃分置信區間來判斷鎖附類別。置信區間法在處理相似類別數據時經常發生誤判,針對該問題,本文提出了基于兩階段隨機森林的智能螺絲機鎖附結果判別模型。
假設原始訓練數據集為D,重構特征個數為n,最優特征個數為m,平衡數據集個數為p,生成的預分類簇個數為q.算法流程如圖1所示。

圖1 基于兩階段隨機森林的螺絲鎖附結果判別模型Fig.1 Discrimination model of screw locking results based on two-stage random forest
算法基本分為以下幾個步驟:
1) 第一階段。
a.對螺絲原始數據進行特征重構;
b.對數據集D進行欠采樣,生成平衡數據集;
ReSamplingD={ReSamplingD1,ReSamplingD2,…,ReSamplingDp}
c.結合ReSamplingD使用隨機森林進行特征篩選,得到一個最優特征子序列R=[r1,r2,…,rm].
2) 第二階段。
a.對R中的特征按照所屬物理特性重新進行排列,得到3個特征序列RA,RS,RT;

c.在各簇上分別建立分類模型,將分類模型匯總,得到螺絲鎖附結果判別模型。
測試數據通過模型進行判別時,先計算與各預分類簇質心的歐式距離,確定所屬簇,再通過簇內分類器確定鎖附類別。
圖2列出了螺絲鎖附時常見類別的扭矩序列圖,包括鎖附OK,鎖歪,浮高,滑牙,未鎖入,空轉等6種類別。針對螺絲鎖附過程中產生的數據特性,本文對其物理特性進行如下的特征構造:1) 數據中的最大值,50%分位數;2) 均值,一階差分絕對值的和以及方差;3) 不同鎖附階段中的特征構造1),2).這些特征能夠有效地刻畫螺絲鎖附過程中物理特性的波動變化,所以使用這些特征來代替原始數據。
本文對螺絲鎖附數據采取隨機森林變量選擇方法進行特征篩選[13],并使用后向搜索方法,將每次特征重要度最小的特征剔除,同時計算每次剔除后的模型分類準確率,將準確率最高的特征序列作為最優特征子序列。
由于實際生產中產生的各類鎖附數據的數據量不同,導致數據不平衡[14-15]。傳統機器學習算法在不平衡數據上具有偏向性,更傾向于數據量大的類別。因此本文基于Bagging算法的采樣思想,嘗試一種欠采樣式[16-18]的平衡采樣法,其基本思路如下:

圖2 常見鎖附類別扭矩序列圖Fig.2 Common attached torque sequence diagram
1) 將多數類獨立隨機抽取若干子集,且子集數量和其他少數類數目基本相同。
2) 將少數類進行Bootstrap取樣,得到和步驟1)中相同個數的子集。
3) 將各類子集重組最終得到平衡數據集
ReSamplingD={ReSamplingD1,ReSamplingD2,…,ReSamplingDp}.
通過平衡采樣法多次構造得到不同的欠采樣數據集可以反映不同的欠采樣結果,這比單一欠采樣得到的數據集包含更多的信息,本文嘗試對訓練數據進行多次欠采樣,通過特征在ReSamplingD中各欠采樣數據集中的綜合表現來確定其特征重要度。
在得到平衡數據集后,開始計算特征的特征重要度。本文對特征添加高斯噪聲,將添加前與添加后分類準確率變化值作為該特征的重要度(若某特征重要,添加噪聲后,模型分類準確率將大幅下降,反之,模型分類準確率無明顯變化)。記添加噪聲前模型的分類準確率為Apre,添加噪聲后的分類準確率為Ac,其中c代表第c個特征。在傳統隨機森林中,經常使用Out-of-Bag數據集(即OOB數據集)來測試隨機森林的效果,但由于OOB數據集是隨機產生的,會導致測試數據內部類別不平衡,無法有效度量模型效果,所以本文采用最常見的3-折交叉驗證法對每一個生成的平衡數據集都進行交叉驗證,則第c個特征的特征重要度(Feature Important,FIM)為:
(6)
式中:i代表第i個平衡數據集;k代表每個數據集第k次交叉驗證;p代表ReSamplingD中數據集的個數。
在每次進行特征重要度排序后,剔除特征重要度最小的特征,并計算該次迭代的模型分類準確率,最終完成迭代后,將分類準確率最高時的特征子集作為最優特征子集。
傳統判別方法中的誤判現象,主要是由于相似類別之間分類效果較差造成的。因此,需要對相似類別單獨建立分類模型,提高分類準確率。本文首先對各物理特性使用概率PCA方差進行描述,根據方差值使用K-Means算法進行聚類,得到若干預分類簇。每一個簇內都是類別相似性較高的數據,而簇與簇之間類別相似性較低。對各簇分別使用隨機森林算法建立分類模型,增強分類器的分類性能。
實驗初期進行聚類時,嘗試過多種描述屬性關系的方法(如距離相關系數,皮爾森相關系數等),但聚類效果普遍較差,無法有效地將相似類別與非相似類別進行區分。經反復嘗試,對螺絲數據提出了一種基于概率PCA方差的聚類方式。概率PCA是傳統PCA概率化的方式,相對于傳統PCA優點在于引入了方差σ2[19-20]。概率PCA曾被應用在圖像處理的缺陷檢測[21]中,通過對比樣本圖像與標準圖像的σ2大小來判斷是否為缺陷點。本文受此啟發,將概率PCA中的σ2作為一種描述狀態的特征,對螺絲鎖附數據中的每個物理特性根據對應的重構特征(如角度中的最大角度,角度50%分位數等)都求得一個σ2作為特征值,然后使用K-Means算法對這些特征值進行聚類。
在使用K-Means算法進行聚類時,聚類效果通常是根據輪廓系數來決定的,但由輪廓系數確定的聚類結果在各簇之間存在類別混淆問題,本文希望簇與簇之間的類別盡量不重疊,故提出了一個類別錯分率作為聚類效果的標準。記某類別共有s個樣本,某簇含有該類別的樣本最多,樣本個數為t,那么認為其他簇中的該類別數據都是錯誤聚類的結果,則該類別數據的錯誤聚類樣本數為s-t.將所有錯誤聚類樣本數求和除以整體樣本數得到類別錯分率(Category Error,CE),即:
(7)
式中:j為第j個類別;d為類別個數;l為總體樣本個數。類別錯分率越小,說明各簇中數據類別更集中,簇與簇之間的數據類別界限更清晰,當類別錯分率為0時,說明簇與簇之間的數據沒有發生類別混淆的情況。
本節首先對兩階段分別進行實驗,驗證其有效性,然后對本文的鎖附結果判別模型進行實驗分析,并與傳統置信區間法及多種機器學習分類算法進行對比、評估。
本文根據如表1所示的混淆矩陣,得到各類別的評價指標,即精確度、準確率、召回率和F值。精確度表示預測模型將所有樣本正確預測的概率。召回率反應了預測模型對某一類的預測性能,值越大,代表這一類中越多的樣本被預測正確。準確率是指預測為某類樣本的正確數量占所有預測為該類樣本數量的比例。F值是召回率和準確率的調和值,兩者相互作用,一個量增加會引起另一個量減少。
在螺絲鎖附數據中,各類別樣本數相差過大,實際生產中對樣本量小的類別,如鎖歪、未鎖入的情況更加重視。多分類問題中宏平均的計算方式對樣本量少的類別更加敏感,本文利用宏平均的思想,在各類混淆矩陣上分別計算出準確率、召回率和F值,再求平均值,得到總體模型的準確率、召回率、F值。

表1 混淆矩陣Table 1 Confusion matrix




3.2.1數據處理
本文數據采集自實驗室智能螺絲機,選用同一電批在相同參數下2018年3月到2018年7月采集的數據作為訓練數據。用到的螺絲數據共4 612顆,其中鎖附結果為OK的螺絲數為3 068顆,鎖歪527顆,浮高286顆,滑牙208顆,未鎖入336顆,空轉187顆。每顆螺絲產生的數據是一個L×5的矩陣,L表示序列的長度,矩陣的第1列為序號,第2列為時間長度,每0.001 s記錄一組數據,第3列為不同時間點的轉角值,第4列為鎖附螺絲過程中所用的扭矩值,第5列為螺絲旋轉速度。電批在對螺絲進行鎖附時,基本能分為兩個階段:第一階段是電批吸附螺絲在螺孔上方認帽,此時螺絲會空轉一段時間;第二階段是電批下壓,螺絲鎖入螺孔。
如表2所示,本文針對螺絲鎖附過程的3個物理特性:角度、速度、扭矩,提出了一些對分類有用的特征。
經過數據重構后,樣本數據可用一個4 612×(15+1)的矩陣表示,其中,4 612為樣本總數,15是特征個數,最后一列為分類標簽,即螺絲鎖附結果。
測試數據選用2018年7月-9月采集的數據進行驗證。

表2 特征重構后的特征列表Table 2 Feature list after feature reconstruction
3.2.2特征篩選
使用節2.1中的欠采樣法對訓練集進行采樣,共得到10個數據集。通過式(6)計算特征重要度并進行特征篩選,得到最優特征子序列如下:
{1,2,4,5,8,9,10,12,13}.
圖3給出了每次迭代時模型的精確度,可以看出特征數為9時模型精確度最高,達到81.9%,高于未篩選時的72.6%.因此證明了特征篩選的有效性。

圖3 特征個數與模型預測精確度Fig.3 Number of features and model prediction accuracy

對于預分類簇的確定,本文曾嘗試使用多種描述變量關系的特征進行聚類,如皮爾遜相關系數,距離相關系數,最大信息系數,但效果不佳,在不同簇上經常有類別混淆,對3.2.1中的數據進行實驗,結果如表3所示。

表3 不同算法下的聚類效果Table 3 Clustering effects under different algorithms
由表3可知,類別錯分率越小,各簇中數據類別越清晰,整體模型的判別精度也越高。在基于概率PCA方差進行聚類時,類別錯分率最小,僅3.6%,此時判別模型精確度最高為93.8%,高于未進行預分類的81.9%,證明概率PCA方差對螺絲數據描述效果更好,能夠幫助完成相似類別的聚類任務,從而提高整體模型判別精確度。
利用3.2.1中的訓練集與驗證集進行實驗,判別結果如表4所示。由表可以看出,數據在預分類簇的基礎上由各簇內部分類器進一步分類的螺絲鎖附結果判別模型,在各類別上區分度較高,召回率和準確率均能保證在85%以上。整體精確度為93.8%,對螺絲數據有較好的判別效果。

表4 螺絲鎖附結果判別混淆矩陣Table 4 Confusion matrix of screw locking discrimination results
為檢驗本文算法各模塊的有效性,對①特征重構;②未加入平衡數據集的特征篩選;③基于平衡數據集的特征篩選;④預分類簇進行驗證,驗證結果如表5所示。由表可得,各模塊在對螺絲鎖附結果判別上有明顯的提升效果。

表5 不同模塊下模型評估參數Table 5 Model evaluation parameters under different modules
為驗證算法對螺絲鎖附數據的普遍適用性,取同一電批不同月份采集的數據進行分析,結果如圖4.由圖4可得分類精確度均高于0.85,相較傳統置信區間法精確度有很大提升,且普遍適用。
本文使用多組數據進行驗證,將傳統置信區間法,多種機器學習分類算法(數據僅進行特征重構)和本文模型的結果進行對比,取各組數據的平均結果,如表6.
由表6可得,本文提出的模型在準確率、召回率和F值上均高于其他方法,對螺絲數據有更好的判別效果。

圖4 不同批次數據驗證結果Fig.4 Different batch data verification results

表6 不同算法效果對比Table 6 Comparison of different algorithm effects
本文針對螺絲鎖附結果判別中遇到的問題,提出了一種基于兩階段隨機森林的螺絲鎖附結果判別模型,第一階段對原始數據進行特征重構,特征篩選,第二階段對鎖附數據使用基于概率PCA方差的K-Means算法進行相似類別聚類,并分別使用隨機森林建立分類模型,加強分類器對相似類別的分類效果,最終匯總構成螺絲鎖附結果判別模型。該模型在精確度、召回率等方面都優于目前智能螺絲機的置信區間法及多種機器學習分類方法,可以提高智能螺絲機的識別精度,降低生產成本。
在該模型的基礎上,今后還可在鎖附過程中進行動態預測,根據鎖附曲線擬合程度對鎖附結果進行預警,更高效地配合智能螺絲機完成螺絲鎖附結果判斷。