王真心 蘇世杰
(江蘇科技大學(xué)機械工程學(xué)院 江蘇 鎮(zhèn)江 212003)
錨鏈由許多個鏈環(huán)連接而成,是一種用來抵消與緩沖船舶和海洋工程平臺所受外力的專用產(chǎn)品,其質(zhì)量的優(yōu)劣直接關(guān)系到相關(guān)人員的生命與財產(chǎn)安全。在錨鏈的生產(chǎn)過程中,閃光焊接是最重要的環(huán)節(jié),直接決定了錨鏈的力學(xué)性能。對于錨鏈而言,即使只有一個鏈環(huán)因質(zhì)量問題而產(chǎn)生斷裂,整條錨鏈便會失效,其帶來的損失將是巨大的[1]。
目前,主要通過出廠前的破斷試驗和拉力試驗來檢測錨鏈的質(zhì)量。破斷試驗是指從錨鏈中抽取一定數(shù)量的試樣,對其施加相應(yīng)的破斷載荷,若試樣出現(xiàn)斷裂的現(xiàn)象,則判定該錨鏈的質(zhì)量不合格。拉力試驗是指對錨鏈施加相應(yīng)的拉力載荷,并測量其試驗前后的長度,若永久伸長的長度超過原始長度的5%,則判定該錨鏈的質(zhì)量不合格[2]。這種質(zhì)量檢測方法雖然直接、可靠,但使得替換不合格鏈環(huán)的成本異常高昂,且新替換鏈環(huán)的力學(xué)性能很難與其他鏈環(huán)保持一致。
由于錨鏈閃光焊接的焊口被封閉在鏈環(huán)內(nèi)部,很難在焊接過程中對氣孔、裂紋、夾渣等缺陷進行檢測。另外,錨鏈閃光焊接時會發(fā)生變形、燒化、氧化等一系列復(fù)雜的物理化學(xué)反應(yīng),具有高度非線性,很難建立一個精確的模型對其焊接質(zhì)量進行檢測。對此,盧偉[3]基于模糊分類的理論,依靠經(jīng)驗設(shè)置了焊接數(shù)據(jù)的波動范圍,當焊接數(shù)據(jù)超過合理范圍時則判定為不合格,該方法只能粗略地對焊接質(zhì)量進行檢測,且具有很強的主觀性和不確定性。
近年來,深度學(xué)習(xí)的優(yōu)勢逐漸體現(xiàn),不僅突破了傳統(tǒng)機器學(xué)習(xí)的瓶頸,還進一步推動了人工智能的發(fā)展[4]。如今,深度學(xué)習(xí)在圖像識別、數(shù)據(jù)挖掘、計算機視覺、自然語言處理等領(lǐng)域都有著非常出色的表現(xiàn),在質(zhì)量檢測領(lǐng)域,深度學(xué)習(xí)同樣也得到了很好的應(yīng)用。Moustapha等[5]利用循環(huán)神經(jīng)網(wǎng)絡(luò)建立了一種動態(tài)模型,實現(xiàn)了對無線傳感器質(zhì)量的檢測。劉輝海等[6]為了對風(fēng)機齒輪箱的質(zhì)量進行檢測,提出了一個基于深度自編碼網(wǎng)絡(luò)的模型,并利用玻爾茲曼機對參數(shù)進行預(yù)訓(xùn)練。Shao等[7]通過深度置信網(wǎng)絡(luò),準確地從復(fù)雜多樣的振動信號中識別出滾動軸承的缺陷。對于錨鏈閃光焊接的質(zhì)量檢測,李俏[8]采用卷積神經(jīng)網(wǎng)絡(luò)的方法進行判斷,雖在實驗中取得了較高的準確率,但忽略了實際生產(chǎn)中不合格樣本與合格樣本在數(shù)量上的不平衡問題,且不能持續(xù)地對新樣本進行學(xué)習(xí)。
數(shù)據(jù)不平衡的現(xiàn)象存在于人類生活的方方面面,而有用的往往是少數(shù)類。例如,在醫(yī)學(xué)疾病的診斷中,患病的數(shù)量遠小于正常的數(shù)量[9];在電信通信中,只有少數(shù)存在詐騙行為[10];在信用卡交易中,非法交易只占少部分[11]。在一些極端情況下,即使將所有的少數(shù)類都錯分,模型總體的準確率也會非常高,但這樣的分類結(jié)果是毫無意義的[12]。目前,針對數(shù)據(jù)不平衡問題,最簡單的方法有兩種:隨機欠采樣和隨機過采樣。隨機欠采樣通過減少多數(shù)類的樣本來消除不平衡,但容易忽略樣本中有用的信息。隨機過采樣通過復(fù)制少數(shù)類來增加樣本數(shù)量,模型容易產(chǎn)生過擬合。SMOTE(Synthetic Minority Over-sampling Technique)是一種使用較廣的采樣方法,通過合成樣本的方式使數(shù)據(jù)平衡[13]。
對于錨鏈閃光焊接來說,每天都有大量的新樣本產(chǎn)生,若使用傳統(tǒng)的批量學(xué)習(xí)來訓(xùn)練模型,對時間和空間的需求也會逐漸增長。但是當樣本的數(shù)量非常龐大時,批量學(xué)習(xí)將無法完成模型的訓(xùn)練,而增量學(xué)習(xí)的出現(xiàn)為此提供了一種新的解決思路。增量學(xué)習(xí)和人類自身的學(xué)習(xí)模式非常類似,在已有模型的基礎(chǔ)上,能夠不斷地學(xué)習(xí)新知識,并保留大部分已經(jīng)學(xué)習(xí)到的舊知識[14]。
針對傳統(tǒng)的破斷試驗和拉力試驗不能及時準確地檢測錨鏈閃光焊接質(zhì)量的問題,本文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的檢測方法。將反映錨鏈閃光焊接過程變化的電極位置曲線和電流曲線作為研究對象,結(jié)合錨鏈閃光焊接的特點,提出一種新的采樣方法:最近鄰拼接采樣,使不合格樣本與合格樣本的數(shù)量相同。另外,對于新樣本采用增量學(xué)習(xí)的方式進行學(xué)習(xí)。為了驗證本文方法的有效性,對數(shù)據(jù)不平衡程度不同的樣本進行對比實驗,并比較批量學(xué)習(xí)和增量學(xué)習(xí)的分類效果。
閃光焊接是錨鏈生產(chǎn)中最為核心的工序,焊接過程中電極位置和電流的變化曲線如圖1所示。在預(yù)熱階段,電極位置和電流都是呈周期性變化。在連續(xù)閃光階段,電極位置的變化較為平穩(wěn),而電流上下波動。在頂鍛階段,電極位置先減小,并在一段時間內(nèi)基本不變,最后變大,而電流在突然增大后驟減為零。錨鏈閃光焊接的流程如圖2所示,包含預(yù)熱、連續(xù)閃光和頂鍛3個階段[15]。
圖2 錨鏈閃光焊接的流程
(1) 預(yù)熱階段由前進S1、加熱S2、后退S3和均衡S4組成。當兩個電極夾緊焊件的兩端后,可動電極時進時退,前進時施加一定的力,使焊件的兩個端面接觸,形成短路并進行加熱,后退時使焊件的兩個端面遠離。在均衡階段,電極溫度向縱深方向進行擴散,形成一定深度的塑性變形溫度。重復(fù)這四個子階段,當達到設(shè)定的次數(shù)后,便進入連續(xù)閃光階段。
(2) 在連續(xù)閃光階段S5,焊件的兩個端面在可動電極的作用下靠近,形成許多細小的接觸點,接觸點在熔化的瞬間會激發(fā)電弧。隨著可動電極的持續(xù)前進,焊件的溫度升高,兩個端面之間不斷地有液態(tài)金屬顆粒噴射出來,從而形成閃光現(xiàn)象。為了得到連續(xù)穩(wěn)定的閃光,需要控制好可動電極的速度。
(3) 頂鍛階段由有電頂鍛S6、無電頂鍛S7和復(fù)位S8組成。頂鍛剛開始時,可動電極會加速前進,并產(chǎn)生一個足夠大的頂鍛力,使兩個端面間的距離迅速縮小,閃光現(xiàn)象也會突然停止。在閃光過程中產(chǎn)生的氧化物雜質(zhì)和液態(tài)金屬會被擠出,從而得到牢固的焊接接頭。最后,將可動電極復(fù)位,一個完整的錨鏈閃光焊接流程便完成了。
有經(jīng)驗的焊接工程師往往能夠根據(jù)曲線中出現(xiàn)的各種異常特征主觀地判斷錨鏈閃光焊接的質(zhì)量是否合格,其中可能發(fā)生故障的信號特征主要有:預(yù)熱階段的曲線變化不均勻;連續(xù)閃光時發(fā)生多次中斷;連續(xù)閃光的時間過長或過短;電極位置曲線不光滑等。
如果將一般的分類方法直接應(yīng)用在錨鏈閃光焊接質(zhì)量的檢測上,模型會更傾向于合格樣本,而使不合格樣本得不到很好的分類效果。因此,為了提高模型的整體性能,對不平衡數(shù)據(jù)進行一些適當?shù)念A(yù)處理就顯得十分重要。本文通過最近鄰拼接采樣的方法來增加不合格樣本的數(shù)量,同時為了使不同樣本的數(shù)據(jù)長度一致,對樣本進行分段線性插值。
最近鄰拼接采樣主要分為以下幾個步驟:首先對不合格樣本進行歸一化處理,其次采用動態(tài)時間規(guī)整的方法計算不合格樣本之間的距離,最后將距離較近的不合格樣本拼接成新樣本。
2.1.1歸一化
歸一化是一種無量綱的處理方法,消除了電極位置和電流之間的量綱影響,同時是簡化計算的有效途徑。本文采用min-max標準化的方法對樣本進行歸一化處理,公式如下:
(1)
式中:min表示樣本中的最小值;max表示樣本中的最大值;x′表示樣本中x歸一化后的值。
2.1.2動態(tài)時間規(guī)整
為了衡量不合格樣本之間的相似性,采用動態(tài)時間規(guī)整(Dynamic Time Warping,DTW)的方法計算它們之間的距離[16]。對于序列p=(p(1),p(2),…,p(m))和q=(q(1),q(2),…,q(n))來說,需要構(gòu)造一個m×n的距離矩陣D,其中的元素d(i,j)表示序列p中第i個點和序列q中第j個點之間的距離,計算公式如下:
d(i,j)=(p(i)-q(j))2
(2)
在距離矩陣D中,可以搜索到一條規(guī)整路徑W={w1,w2,…,wK},其中wk=(wp(k),wq(k)),wp(k)和wq(k)分別表示序列p和q中元素的位置。規(guī)整路徑W需要滿足以下約束條件:
(1) 起始點為w1=(1,1),結(jié)束點為wK=(m,n)。
(2) 規(guī)整路徑中任意相鄰的兩個元素wk=(a,b)和wk-1=(a′,b′),必須滿足a-a′≤1和b-b′≤1,保證規(guī)整路徑的連續(xù)性。
(3) 規(guī)整路徑中任意相鄰的兩個元素wk=(a,b)和wk-1=(a′,b′),必須滿足a-a′≥0和b-b′≥0,保證規(guī)整路徑的單調(diào)性。
滿足上述三個條件的規(guī)整路徑有很多,但其中累加距離最小的才能代表序列p和q之間的距離,用DTW(p,q)來表示,最優(yōu)路徑的求解需滿足以下公式:
(3)
式中:r(i,j)表示在距離矩陣D中從起始點到點(i,j)的累加距離。規(guī)整路徑的求解過程如圖3所示。
圖3 規(guī)整路徑的求解過程
例如兩個序列分別有4個和6個數(shù)據(jù)點,小方格左下角的數(shù)表示兩個點之間的距離,右上角的數(shù)表示累加距離,虛線箭頭表示最小值的累加方向。在計算時從最底下的一行開始,從左往右逐行往上,最終得到這兩個序列之間的距離為12。通過對虛線箭頭的方向反推,可以找到最短距離的規(guī)整路徑,如圖3中實線箭頭所示。
2.1.3合成新樣本
最近鄰拼接采樣合成的電極位置和電流如圖4、圖5所示,從不合格樣本中隨機選取樣本X1,并找出與其距離最近的兩個樣本X2和X3。根據(jù)錨鏈閃光焊接的特點,將樣本X1、X2和X3分別按照預(yù)熱、連續(xù)閃光和頂鍛3個階段分成3段曲線,從中隨機抽取3個不同階段的曲線拼接成新樣本Xnew,重復(fù)以上步驟,使不合格樣本的數(shù)量得到擴充。
圖4 最近鄰拼接采樣合成的電極位置
圖5 最近鄰拼接采樣合成的電流
由于多種因素的影響,錨鏈閃光焊接的時間有長有短,而卷積神經(jīng)網(wǎng)絡(luò)又要求輸入樣本的數(shù)據(jù)長度一致,為了解決這一問題,對電極位置曲線和電流曲線進行分段線性插值。
分段線性插值的基本思想是:設(shè)有一個數(shù)據(jù)集合{(x0,y0),(x1,y1),…,(xn,yn)},其中插值節(jié)點x0,x1,…,xn是n+1個連續(xù)遞增的整數(shù),y0,y1,…,yn是x0,x1,…,xn對應(yīng)的函數(shù)值,將這n+1個數(shù)據(jù)點依次相連,可以得到一條由n個線段組成的曲線[17],用分段線性插值函數(shù)P(x)表示為:
(4)
式中:li(x)表示分段線性插值的基函數(shù)。li(x)如圖6所示,具體公式如下:
(5)
(6)
(7)
圖6 分段線性插值的基函數(shù)
當x∈[xi,xi+1]時,分段線性插值函數(shù)P(x)可以表示為:
(8)
傳統(tǒng)的分類模型在訓(xùn)練時,需要依賴人的經(jīng)驗進行特征的提取,而本文采用卷積神經(jīng)網(wǎng)絡(luò)的方法,能自動地從訓(xùn)練樣本中提取有用的特征進行模型的訓(xùn)練。將測試樣本代入訓(xùn)練好的模型中,可以得到每個樣本分別屬于不合格與合格的概率,其中概率較大的作為預(yù)測的結(jié)果,從而判斷樣本的質(zhì)量是否合格。此外,結(jié)合增量學(xué)習(xí)的方法,使模型具有持續(xù)學(xué)習(xí)的能力,其流程如圖7所示。
圖7 增量學(xué)習(xí)的流程
卷積神經(jīng)網(wǎng)絡(luò)是一種深度學(xué)習(xí)算法,由輸入層、卷積層、池化層、全連接層和輸出層組成[18]。由于錨鏈閃光焊接的電極位置和電流是典型的一維信號,為了適應(yīng)這一特性,本文搭建了一個一維的卷積神經(jīng)網(wǎng)絡(luò),除了輸入層和輸出層,包含2個卷積層、2個池化層和1個全連接層,這些層又可以稱為隱藏層,具體參數(shù)如表1所示。
表1 卷積神經(jīng)網(wǎng)絡(luò)隱藏層的參數(shù)
卷積層具有權(quán)值共享和局部連接的特點,是卷積神經(jīng)網(wǎng)絡(luò)的核心,而卷積運算是卷積層的重要步驟,不同的卷積核提取出來的特征是不一樣的,卷積層的公式如下:
(9)
池化層也可以稱為下采樣層,其主要作用是對卷積層輸出的特征進行壓縮,減少特征的數(shù)據(jù)量。常用的池化方法有平均池化和最大池化,平均池化輸出子區(qū)域中的平均值,最大池化輸出子區(qū)域中的最大值。池化層的公式如下:
(10)
全連接層中的每一個神經(jīng)元都與前一層的所有神經(jīng)元相連,提取的是更深層次的特征。為了減少過擬合情況出現(xiàn)的可能,采用丟棄(Dropout)思想,在訓(xùn)練模型的過程中,隨機選取一些神經(jīng)元使其當前的輸出為0。Dropout思想可以避免模型對某種局部特征的過擬合,使卷積神經(jīng)網(wǎng)絡(luò)具有更好的泛化能力[19],全連接層的公式如下:
xl=f(Wlxl-1)+bl
(11)
式中:xl表示第l層的特征;xl-1表示第l-1層的特征;Wl表示第l層的權(quán)重;bl表示第l層的偏置。
增量學(xué)習(xí)是一種機器學(xué)習(xí)方法,當訓(xùn)練樣本的數(shù)量逐漸變多,超出一定范圍時,通過增量學(xué)習(xí)的方法可對持續(xù)增加的樣本進行知識的更新,直到學(xué)習(xí)完所有樣本。增量學(xué)習(xí)基于已有的模型,將獲得的新樣本用于模型參數(shù)的修正和優(yōu)化,不僅保留了模型的基本信息,還提高了模型的識別能力,同時避免了對大量舊樣本的重復(fù)訓(xùn)練[20]。增量學(xué)習(xí)按學(xué)習(xí)的對象主要可以分為三種類型:類別的增量學(xué)習(xí),樣本的增量學(xué)習(xí)和屬性的增量學(xué)習(xí)。本文基于卷積神經(jīng)網(wǎng)絡(luò),對錨鏈閃光焊接的樣本進行增量學(xué)習(xí)。
本文一共采集了1 100個錨鏈閃光焊接的樣本,每個樣本都記錄了閃光焊接時電極位置和電流的變化過程。其中,不合格樣本有100個,通過最近鄰拼接采樣擴充為1 000個,合格樣本有1 000個,本文的實驗主要分為兩個部分,具體的實驗設(shè)計如下。
(1) 為了驗證最近鄰拼接采樣在解決數(shù)據(jù)不平衡問題上的優(yōu)越性,對不合格樣本與合格樣本比例為1 ∶10、1 ∶5、1 ∶2和1 ∶1的4組樣本,分別采用同樣的卷積神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練和測試。其中,不合格樣本的數(shù)量分別為100個、200個、500個和1 000個,合格樣本的數(shù)量都為1 000個,并選取80%的樣本作為訓(xùn)練集,20%的樣本作為測試集。
(2) 為了驗證增量學(xué)習(xí)對于新樣本持續(xù)學(xué)習(xí)的能力,將傳統(tǒng)的批量學(xué)習(xí)與增量學(xué)習(xí)進行對比實驗。把樣本分為5組,每組都包含200個不合格樣本和200個合格樣本,其中4組作為訓(xùn)練集,1組作為測試集。批量學(xué)習(xí)在模型訓(xùn)練時,把新樣本和所有的舊樣本都作為學(xué)習(xí)對象,而增量學(xué)習(xí)只對新樣本進行學(xué)習(xí),并在模型更新后,檢測模型在舊樣本上的準確率。
對于平衡數(shù)據(jù)而言,準確率(Accuracy)常用來反映分類模型的整體性能,而在不平衡數(shù)據(jù)的分類問題中,僅用準確率來衡量是不可靠的,往往忽略了對少數(shù)類的識別效果。為了更好地對錨鏈閃光焊接的樣本進行分類,引入了另外的兩個評價指標:靈敏度(Sensitivity)和特異度(Precision)[21]。靈敏度反映的是合格樣本被正確預(yù)測的百分比,特異度反映的是不合格樣本被正確預(yù)測的百分比,計算公式如下:
(12)
(13)
(14)
式中:TP表示實際合格,被預(yù)測為合格的樣本數(shù)量;FN表示實際合格,被預(yù)測為不合格的樣本數(shù)量;TN表示實際不合格,被預(yù)測為不合格的樣本數(shù)量;FP表示實際不合格,被預(yù)測為合格的樣本數(shù)量。
對于4組不同樣本比例的樣本集,其訓(xùn)練集的損失值和準確率的變化曲線如圖8、圖9所示。隨著迭代次數(shù)的增加,訓(xùn)練集的損失值一開始變化幅度較大,在迭代20次后慢慢變小,最后趨于穩(wěn)定。
圖8 訓(xùn)練集的損失值變化曲線
圖9 訓(xùn)練集的準確率變化曲線
對于樣本比例為1 ∶10、1 ∶5和1 ∶2的樣本集來說,其訓(xùn)練集在一開始的準確率分別為9.1%、16.7%和33.3%,這是由于模型將所有的樣本都識別為不合格樣本。在迭代10次后,模型將大部分的合格樣本都識別正確,準確率得到了大幅提升。在迭代30次后,訓(xùn)練集的準確率一直都保持在95%以上,最終的準確率分別為98.9%、97.6%和96.1%。對于樣本比例為1 ∶1的樣本集來說,其訓(xùn)練集的準確率增長緩慢,在迭代45次后才逐漸穩(wěn)定,最終的準確率為97.3%。
4組不同樣本在測試集上的分類結(jié)果如表2所示,當樣本比例為1 ∶10時,雖然測試集的靈敏度為100.0%,但是特異度只有25.0%,這是因為不合格樣本與合格樣本的數(shù)量差別過大,模型在訓(xùn)練時為了得到更高的準確率,容易將不合格樣本識別為合格樣本。當樣本比例為1 ∶5和1 ∶2時,測試集的靈敏度有所下降,為99.5%和98.5%,特異度卻大幅上升,為87.5%和92.0%,這是因為不合格樣本的數(shù)量越接近合格樣本,模型能學(xué)習(xí)到越多不合格樣本的特征。當樣本比例為1 ∶1時,不合格樣本與合格樣本的數(shù)量達到平衡,測試集的靈敏度、特異度和準確率分別為97.0%、96.5%和96.8%。
表2 不同樣本在測試集上的分類結(jié)果(%)
在批量學(xué)習(xí)和增量學(xué)習(xí)的對比實驗中,模型在測試集和舊樣本上的準確率如表3所示。一開始,由于批量學(xué)習(xí)和增量學(xué)習(xí)的訓(xùn)練樣本一樣,因此測試集的準確率都為76.8%。隨著訓(xùn)練的進行,批量學(xué)習(xí)可以從越來越多的樣本中學(xué)習(xí)知識,模型的泛化能力逐漸提高,而增量學(xué)習(xí)在之前的基礎(chǔ)上,每次都能學(xué)習(xí)到新樣本的知識,模型的識別能力也進一步加強。在4次訓(xùn)練后,批量學(xué)習(xí)和增量學(xué)習(xí)在測試集上的準確率分別為97.3%和97.5%,都取得了不錯的分類效果。增量學(xué)習(xí)在舊樣本上的準確率分別為97.5%、97.1%和97.2%,這說明模型在學(xué)習(xí)新知識時,不會忘記已經(jīng)學(xué)習(xí)到的舊知識,即模型同時具備識別新舊樣本的能力,體現(xiàn)了增量學(xué)習(xí)的優(yōu)勢。
表3 批量學(xué)習(xí)和增量學(xué)習(xí)的準確率(%)
本文基于卷積神經(jīng)網(wǎng)絡(luò),建立一個用于檢測錨鏈閃光焊接質(zhì)量的模型,結(jié)合錨鏈閃光焊接的特點,提出一種新的解決數(shù)據(jù)不平衡問題的方法:最近鄰拼接采樣。該方法不僅提高了模型的分類性能,也降低了過擬合現(xiàn)象的發(fā)生,并使用分段線性插值的方法使樣本滿足卷積神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)長度一致性的要求。模型在不同樣本比例下的實驗表明,當不合格樣本與合格樣本在數(shù)量上的差距越小時,模型的整體性能越好。尤其是對不合格樣本來說,當樣本比例為1 ∶10和1 ∶1時,特異度分別為25.0%和96.5%,模型對不合格樣本的識別能力有了質(zhì)的提升。
針對錨鏈閃光焊接樣本數(shù)量與日俱增的問題,本文通過增量學(xué)習(xí)的方式,使模型在充分利用已有知識的前提下,每次只需要訓(xùn)練新樣本,而不用像批量學(xué)習(xí)那樣重復(fù)訓(xùn)練舊樣本。實驗表明,增量學(xué)習(xí)在測試集上的準確率和批量學(xué)習(xí)相近,隨著樣本數(shù)量的增加,都能使模型的分類效果得到提升。同時增量學(xué)習(xí)對舊樣本具有良好的識別能力,準確率保持在97.1%以上,有效地避免了災(zāi)難性遺忘的問題。