趙佳銘,周曉君,高媛,劉天宇,陽春華
(中南大學(xué)自動(dòng)化學(xué)院,湖南長(zhǎng)沙,410083)
礦產(chǎn)資源是國(guó)家戰(zhàn)略安全資源的重要組成部分,其中有色金屬資源尤為重要。我國(guó)有色金屬資源雖然種類豐富但品位較低,我國(guó)經(jīng)濟(jì)的快速發(fā)展正面臨著有色金屬緊缺的挑戰(zhàn)。合理的選礦過程是避免有色金屬資源浪費(fèi)、提升礦物資源回收率的保證。我國(guó)90%以上的有色金屬選礦采用泡沫浮選的方法。對(duì)于泡沫浮選生產(chǎn)過程,當(dāng)給礦性質(zhì)、工藝參數(shù)等因素改變時(shí),工況易受影響并產(chǎn)生波動(dòng),若不能及時(shí)有效地進(jìn)行處理,則浮選過程工況會(huì)出現(xiàn)異常,最終導(dǎo)致礦物資源回收率降低。傳統(tǒng)工業(yè)一直以來依靠工人肉眼觀察泡沫來監(jiān)控浮選生產(chǎn)狀況,這種方式勞動(dòng)強(qiáng)度大且缺乏客觀標(biāo)準(zhǔn),因此,如何準(zhǔn)確、快速地判斷異常工況、預(yù)測(cè)礦物品位已經(jīng)成為浮選生產(chǎn)過程中至關(guān)重要的問題。在泡沫浮選領(lǐng)域,國(guó)內(nèi)外學(xué)者目前主要針對(duì)工業(yè)攝像機(jī)拍攝的泡沫層圖像進(jìn)行分析處理,旨在利用傳統(tǒng)機(jī)器學(xué)習(xí)的方法替代人工觀泡來識(shí)別當(dāng)前的工況[1-3]。MOOLMAN 等[4]最先利用圖像處理算法提取泡沫圖像的能譜、顏色特征,預(yù)測(cè)粗選槽泡沫中銅的含量。BONIFAZI等[5]利用圖像的顏色特征與泡沫的形態(tài)特征來辨識(shí)礦物泡沫品位。BARTOLACCI 等[6]結(jié)合多元圖像分析方法與偏最小二乘回歸法建立了礦物品位的預(yù)測(cè)模型。ALDRICH 等[7]實(shí)現(xiàn)了基于機(jī)器學(xué)習(xí)的在線泡沫浮選監(jiān)控系統(tǒng)在工業(yè)上的實(shí)際應(yīng)用。ZHAO等[8]通過多尺度紋理特征和先驗(yàn)知識(shí)對(duì)銻浮選過程中的異常工況進(jìn)行了分類識(shí)別。從上述研究可以看出,采用基于機(jī)器視覺的傳統(tǒng)方法對(duì)于異常工況識(shí)別和礦物品位預(yù)測(cè)這2個(gè)方面均取得了一定進(jìn)展,但沒有充分考慮并利用這2個(gè)任務(wù)之間的聯(lián)系,忽略了這2個(gè)任務(wù)都與泡沫層表面的視覺特征有直接關(guān)聯(lián)的事實(shí)。在多目標(biāo)學(xué)習(xí)領(lǐng)域,CARUANA[9]提出了多任務(wù)學(xué)習(xí)的概念。近年來,隨著多任務(wù)學(xué)習(xí)受到越來越多學(xué)者的關(guān)注和研究,多任務(wù)學(xué)習(xí)的方法越來越成熟并被應(yīng)用到如人臉表情識(shí)別[10]、無人駕駛[11]等諸多領(lǐng)域,但在泡沫浮選工業(yè)領(lǐng)域的應(yīng)用仍較少。本文提出基于多目標(biāo)學(xué)習(xí)的泡沫浮選過程工況識(shí)別方法,主要是結(jié)合識(shí)別異常工況和礦物品位2 個(gè)子任務(wù)的共有特點(diǎn),合理假設(shè)這2 個(gè)子任務(wù)在視覺特征上有相似性[12],將一個(gè)子任務(wù)學(xué)習(xí)到的知識(shí)關(guān)聯(lián)到另一個(gè)任務(wù)的學(xué)習(xí)訓(xùn)練上,充分挖掘蘊(yùn)含的共性,提高所有任務(wù)學(xué)習(xí)效果。
多任務(wù)學(xué)習(xí)的方法主要分為以下3類:基于特征分享的多任務(wù)學(xué)習(xí)方法、基于模型參數(shù)分享的多任務(wù)學(xué)習(xí)方法、基于深度學(xué)習(xí)的多任務(wù)學(xué)習(xí)方法[13]。相比于單任務(wù)學(xué)習(xí)的方法,這些多任務(wù)學(xué)習(xí)方法在很多經(jīng)典數(shù)據(jù)集上的訓(xùn)練效果均很好,尤其是在訓(xùn)練樣本不足時(shí),單任務(wù)學(xué)習(xí)很難通過訓(xùn)練得到足夠的信息,訓(xùn)練效果比多任務(wù)學(xué)習(xí)差,但目前的多任務(wù)學(xué)習(xí)方法也存在任務(wù)權(quán)重難以確定和任務(wù)之間存在沖突與競(jìng)爭(zhēng)等問題。為此,本文作者根據(jù)這2個(gè)任務(wù)的共性,提出基于多目標(biāo)學(xué)習(xí)的泡沫浮選過程工況識(shí)別方法來同時(shí)判斷異常工況和預(yù)測(cè)礦物品位。
泡沫浮選是利用一定的化學(xué)藥劑增大礦物顆粒和雜質(zhì)顆粒表面疏水性的差異,使有用的礦物顆粒附著在氣泡上上浮從而與雜質(zhì)分離的方法,其基本原理如圖1所示。
圖1 泡沫浮選原理示意圖Fig.1 Schematic diagram of froth flotation principle
選礦過程步驟如下。
1)磨礦,將礦石塊解離成礦物顆粒。粒度過大或過小都會(huì)影響最終的礦物品位,因此,要控制礦物顆粒粒度,為后續(xù)的工藝過程提供良好的入礦條件。
2)將礦石顆粒與水混合形成礦漿送入浮選槽。
3)將礦漿與浮選藥劑調(diào)和,浮選藥劑能夠增強(qiáng)礦物顆粒的疏水性,使其表面更加疏水。
4)通過鼓風(fēng)機(jī)向浮選槽底部充入適量空氣并用轉(zhuǎn)子攪拌,在礦漿中產(chǎn)生大量氣泡,使目標(biāo)礦物顆粒附著在氣泡表面形成礦化氣泡上浮,用刮板刮取礦漿表面泡沫以收集到精選后的礦物。而雜質(zhì)顆粒滯留在礦漿中并隨底流排入尾礦,最終實(shí)現(xiàn)目標(biāo)礦物和雜質(zhì)有效分離。
在實(shí)際工業(yè)中,金銻礦的選礦過程主要包含1個(gè)金粗選槽、2個(gè)金精選槽、1個(gè)銻粗選槽、2個(gè)銻精選槽以及2個(gè)銻掃選槽,浮選流程如圖2所示。
圖2 金銻礦泡沫浮選流程圖Fig.2 Flow chart of gold antimony froth flotation
在浮選流程中,礦物條件、工藝參數(shù)的變化可能會(huì)引起工況異常,主要包括翻礦漿、沉槽和冒槽3 種異常工況?!胺V漿”是指礦漿上涌至泡沫層;“沉槽”是指礦漿液面下落,刮板難以刮出泡沫;“冒槽”是指大量泡沫外溢。異常工況示意圖如圖3所示。
圖3 異常工況示意圖Fig.3 Schematic diagrams of abnormal working conditions
礦物品位是一個(gè)十分重要的浮選指標(biāo),用來衡量泡沫浮選后礦物的品質(zhì),可以分為低品位、中品位和高品位共3類。由于礦化泡沫所含礦物的種類及礦物顆粒的富集程度可以通過泡沫的顏色、尺寸和分布狀態(tài)直接反映,所以,若泡沫顏色偏黑、亮度偏暗,則表明礦物品位低。隨著礦物品位提升,泡沫顏色由灰黑逐變?yōu)殂y白,泡沫直徑由小變大,泡沫分布由松散變密集。礦物品位示意圖如圖4所示。
圖4 礦物品位示意圖Fig.4 Schematic diagrams of mineral grade
泡沫圖像分辨率為600 像素×800 像素,將圖像直接作為分類器的輸入不僅會(huì)因特征維度過高導(dǎo)致訓(xùn)練時(shí)間長(zhǎng),而且可能會(huì)使模型陷入局部最優(yōu)點(diǎn)。因此,本文從泡沫圖像中提取了泡沫平均面積、承載率等38 種不同的特征值。下面介紹幾種重要的特征值及其計(jì)算方式。
通過分水嶺算法[14-15]分割出圖像中的泡沫區(qū)域,將各個(gè)區(qū)域中泡沫的數(shù)量相加得到Nb,將泡沫所占像素點(diǎn)面積相加得到Sp,泡沫平均面積Smean計(jì)算式如下:
當(dāng)泡沫到光源距離不同時(shí),難以在同一光強(qiáng)標(biāo)準(zhǔn)下描述泡沫表面的顏色,因此,將圖像從RGB(red,green,blue) 空 間 轉(zhuǎn) 化 到 HSV(hue,saturation,value)空間,提取不受光強(qiáng)影響的色調(diào)特征。
式中:Hi為第i像素點(diǎn)的色調(diào)值;Ri,Gi和Bi分別為第i像素點(diǎn)的紅色分量、綠色分量和藍(lán)色分量。
紅色均值Rmean是指1張彩色圖像中所有像素點(diǎn)紅色分量的平均值,計(jì)算式為
式中:Np為泡沫所占像素點(diǎn)數(shù)量。綠色均值Gmean和藍(lán)色均值Bmean計(jì)算原理與式(4)一致。
圖像的灰度均值Ymean即為所有像素點(diǎn)灰度的平均值,反映了圖像的明亮程度,計(jì)算式為
相對(duì)紅色分量Rr能反映泡沫顏色中的紅色程度,計(jì)算式為
粗度Co通過將原圖像的灰度圖轉(zhuǎn)換為鄰域灰度相關(guān)矩陣(NGLDM)后計(jì)算而得,計(jì)算式為
其中:Nrn和Ncn分別為轉(zhuǎn)化后NGLDM的行數(shù)和列數(shù);Mi,j為NGLDM中第i行第j列的元素值。
用NGLDM 提取泡沫圖像高頻子圖的高頻能量,計(jì)算式為
其中:Nr*n和Nc*n分別為高頻子圖的NGLDM行數(shù)和列數(shù);代表高頻子圖的NGLDM中第i行第j列的元素值。
由于沉槽和冒槽這2種異常工況與正常工況在視覺上差異不顯著,數(shù)據(jù)集中很可能存在錯(cuò)誤標(biāo)記的數(shù)據(jù),這些存在錯(cuò)誤標(biāo)記的數(shù)據(jù)在同類數(shù)據(jù)中通常表現(xiàn)為離群點(diǎn)。錯(cuò)誤標(biāo)記的數(shù)據(jù)會(huì)誤導(dǎo)分類器的訓(xùn)練,因此,對(duì)數(shù)據(jù)進(jìn)行去噪處理十分必要。本文采用基于模糊C均值聚類的去噪算法,有效剔除了數(shù)據(jù)集中的噪聲點(diǎn)。
模糊C均值聚類方法[16-17]結(jié)合了模糊數(shù)學(xué)中的理論,目標(biāo)是將n個(gè)樣本數(shù)據(jù)分為c組,在計(jì)算第j個(gè)樣本與第i個(gè)聚類中心點(diǎn)vi的距離dij時(shí),還加入了隸屬度函數(shù)uij來表示第j個(gè)樣本屬于第i類的程度,其目標(biāo)函數(shù)Jm(u,v)的計(jì)算公式如下所示:
其中:m表征模糊程度,一般設(shè)為2;
可以通過最小化目標(biāo)函數(shù),反復(fù)迭代,尋找最優(yōu)隸屬度函數(shù)uij和聚類中心vi。
采用基于模糊C均值聚類的去噪算法可以準(zhǔn)確找到錯(cuò)誤標(biāo)記的數(shù)據(jù),方便對(duì)數(shù)據(jù)集進(jìn)行清洗。
本文共收集38 個(gè)泡沫浮選相關(guān)的特征,如此多的特征會(huì)導(dǎo)致特征包含的信息冗余甚至相互干擾,不僅會(huì)增加分類器的訓(xùn)練時(shí)間和訓(xùn)練難度,而且會(huì)降低最終識(shí)別效果。為此,本文提出一種基于二值狀態(tài)轉(zhuǎn)移算法的特征優(yōu)化方法來篩選出最有效特征。特征優(yōu)化問題是一個(gè)搜索空間大、維度高、非線性的最優(yōu)化問題,其目標(biāo)是特征子集盡量小并且識(shí)別準(zhǔn)確率盡量高,可用下式表示:
式中:s=[s1,s2,…,s38],為1個(gè)特征候選解,si=1 表示對(duì)應(yīng)特征被選中,si=0 表示對(duì)應(yīng)特征被剔除;Acc(s)表示以s中被選取的特征為輸入變量得到的模型分類準(zhǔn)確率;‖s‖0表示對(duì)應(yīng)特征子集中選中的特征數(shù)。
通過二值狀態(tài)轉(zhuǎn)移算法[18-19]可以快速找到最優(yōu)特征子集,狀態(tài)轉(zhuǎn)移過程通過4種算子完成。交換變換算子si和sj的值,移動(dòng)變換算子將si移動(dòng)到sj前,對(duì)稱變換算子對(duì)si到sj的序列進(jìn)行中心旋轉(zhuǎn)變換,替代變換算子對(duì)si進(jìn)行取反運(yùn)算。4種算子變換示例如圖5所示。
基于二值狀態(tài)轉(zhuǎn)移算法的特征優(yōu)化方法步驟如下。
步驟1:隨機(jī)確定1個(gè)初始特征子集s0。
步驟2:分別用4 種算子對(duì)sk進(jìn)行變換,輸入分類器,將求得結(jié)果準(zhǔn)確率最高的特征子集作為sk+1。
步驟3:將當(dāng)前的最優(yōu)狀態(tài)與sk+1進(jìn)行比較,更新最優(yōu)特征子集sbest。
步驟4:若達(dá)到最大迭代次數(shù)則終止迭代,得到最終的特征子集sbest,否則返回到步驟1。
通過基于二值狀態(tài)轉(zhuǎn)移算法的特征優(yōu)化方法得到最優(yōu)特征子集,包括色調(diào)、藍(lán)色均值、紅色相對(duì)分量、粗度和高頻能量共5個(gè)特征參數(shù)。
本文提出的基于多目標(biāo)學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型采用硬參數(shù)共享機(jī)制,將神經(jīng)網(wǎng)絡(luò)分為共享層和特定任務(wù)層2部分,共享層結(jié)構(gòu)如表1所示,特定任務(wù)層結(jié)構(gòu)如表2所示。這種共享機(jī)制既保證了各個(gè)任務(wù)互相充分挖掘有用信息,又相比于多個(gè)單任務(wù)神經(jīng)網(wǎng)絡(luò)減少了很多重復(fù)參數(shù)。對(duì)每個(gè)任務(wù)設(shè)置特定任務(wù)層能保證不同識(shí)別任務(wù)的獨(dú)特性。通過共享層統(tǒng)一提取特征,再將提取的特征輸入到特定任務(wù)層,對(duì)最終的分類進(jìn)行判斷,其整體架構(gòu)如圖6所示。
表2 特定任務(wù)層結(jié)構(gòu)Table 2 Task-specific layers structure
圖6 神經(jīng)網(wǎng)絡(luò)模型架構(gòu)Fig.6 Architecture of neural network model
本文所提出的泡沫浮選識(shí)別神經(jīng)網(wǎng)絡(luò)模型中,輸入為通過特征提取和特征優(yōu)化算法篩選后的5維特征向量,輸出為以概率形式表達(dá)的解,取每組解中概率最大的類別當(dāng)作當(dāng)前識(shí)別子任務(wù)的分類類別。
考慮1 個(gè)從輸入空間X到輸出空間Γ的多任務(wù)學(xué)習(xí)問題,通過神經(jīng)網(wǎng)絡(luò)架構(gòu)得到每個(gè)任務(wù)輸出的函數(shù)表達(dá)式為
式中:x為代表圖像特征的輸入向量;θsh為共享層的權(quán)重;θt為特定任務(wù)層的權(quán)重。損失函數(shù)的定義如下:
其中:y為圖像所屬類別;loss為交叉熵?fù)p失函數(shù)。多目標(biāo)優(yōu)化問題可以用下式表達(dá):
針對(duì)多目標(biāo)優(yōu)化問題,最終解應(yīng)該為Pareto最優(yōu)解。為了明確最終解的形式,本文給出以下幾個(gè)定理。
定理1對(duì)于任意2 個(gè)在解空間Θ中的解θ1和θ2,當(dāng)且僅當(dāng)?t∈{1,2,…,T} 且?t∈{1,2,…,T}時(shí),稱θ1支配θ2,記作θ1?θ2。
定理2對(duì)于Θ中的1個(gè)解θ*,若Θ中不存在解θ使得θ?θ*成立,則θ*稱為Pareto 最優(yōu)解。所有Pareto最優(yōu)解構(gòu)成的集合稱為Pareto最優(yōu)解集。
根據(jù)以上定理,當(dāng)取得Pareto最優(yōu)解時(shí),由卡羅需-庫(kù)恩-塔克(Karush-Kuhn-Tucker,KKT)條件推導(dǎo)出:
優(yōu)化問題用下式表示:
對(duì)式(17)直接求導(dǎo)計(jì)算過于復(fù)雜,因此,本文采用JAGGI[20]提出的Frank-Wolfe 約束優(yōu)化方法來快速、有效地求解式(17),具體求解步驟如下。
步驟1:初始化權(quán)重向量α=(α1,…,αT)=
步驟2:計(jì)算參數(shù)矩陣Μ,Μ=
步驟6:若γ在誤差允許的范圍內(nèi)或算法達(dá)到最大迭代次數(shù)則終止迭代,否則返回到步驟3。
DéSIDéRI 等[21]證明了以求解式(17)得到的α為多任務(wù)目標(biāo)函數(shù)的最優(yōu)梯度下降方向。求得權(quán)重向量后,可以進(jìn)一步給出基于多梯度下降的多目標(biāo)學(xué)習(xí)算法的流程。
步驟1:計(jì)算所有任務(wù)的損失函數(shù)Lt(θsh,θt)并將其分別對(duì)θsh和θt求導(dǎo),得到?θshLt(θsh,θt)和?θtLt(θsh,θt)。
步驟2:通過θt=θt-η?θtLt(θsh,θt)更新每個(gè)特定任務(wù)層的參數(shù),其中,η為預(yù)先設(shè)定好的學(xué)習(xí)率。
步驟3:利用Frank-Wolfe 算法得到α,通過更新共享層參數(shù)。
步驟4:若達(dá)到最大迭代次數(shù)則終止迭代,否則返回到步驟1。
步驟5:保存更新參數(shù)θsh和θt后的泡沫浮選工況識(shí)別模型。
本文設(shè)計(jì)了本文算法和單任務(wù)學(xué)習(xí)算法的驗(yàn)證實(shí)驗(yàn)、本文算法和幾種流行的多任務(wù)學(xué)習(xí)算法的對(duì)比實(shí)驗(yàn),以驗(yàn)證本文所提出方法的有效性與準(zhǔn)確性。同時(shí),還設(shè)計(jì)了有、無特征優(yōu)化算法的對(duì)比實(shí)驗(yàn)來驗(yàn)證特征優(yōu)化的有效性。為了保證實(shí)驗(yàn)的可靠性,實(shí)驗(yàn)中采用同樣的訓(xùn)練集和測(cè)試集,并經(jīng)過多次調(diào)試確定最優(yōu)的參數(shù)以使每種算法都能發(fā)揮出最優(yōu)性能。在上述條件下,所有實(shí)驗(yàn)都獨(dú)立運(yùn)行10 次,每次都保證模型訓(xùn)練到最大迭代次數(shù)且損失函數(shù)已收斂,取10 次實(shí)驗(yàn)中的最好結(jié)果作為最終結(jié)果。實(shí)驗(yàn)在Pytorch1.3.1 的深度學(xué)習(xí)框架下實(shí)現(xiàn),使用Python3.6 編寫,處理器型號(hào)為Intel(R)Xeon(R)CPU E5-2630 v4 @2.20GHz,操作系統(tǒng)為L(zhǎng)inux(Ubuntu16.04)。
本文通過銻粗選槽上方的攝像頭以7.5 幀/s 的速率收集泡沫視頻。從初始數(shù)據(jù)中截取視頻幀形成具有全面性、豐富性和真實(shí)性的數(shù)據(jù)集。經(jīng)去噪算法篩選后數(shù)據(jù)集共包含1 181 張圖片,其中,961張圖片作為訓(xùn)練集,220張圖片作為測(cè)試集。
將訓(xùn)練好的模型用于銻礦泡沫浮選工況識(shí)別,模型預(yù)測(cè)的具體效果如圖7所示。
圖7 泡沫浮選工況識(shí)別效果Fig.7 Identification effects of froth flotation condition
為了進(jìn)一步探究算法的性能差異,分別在異常工況識(shí)別任務(wù)和礦物品位識(shí)別任務(wù)上比較算法的準(zhǔn)確率和識(shí)別時(shí)間,結(jié)果如表3所示。記錄訓(xùn)練過程中異常工況識(shí)別任務(wù)的損失函數(shù)值和工況品位識(shí)別任務(wù)的損失函數(shù)值,繪制loss 曲線對(duì)比圖,如圖8所示。需要注意的是,為了合理比較,單任務(wù)學(xué)習(xí)算法的識(shí)別時(shí)間是完成2個(gè)單任務(wù)所用的時(shí)間之和。
從表3可以看出:本文提出的特征優(yōu)化算法所得異常工況識(shí)別準(zhǔn)確率和工況品位識(shí)別準(zhǔn)確率最高,識(shí)別時(shí)間最少。從圖8可以直觀看出本文算法有效提升了收斂速度和最終收斂效果。實(shí)驗(yàn)結(jié)果證明本文提出的算法能充分挖掘多個(gè)任務(wù)的共性,將學(xué)習(xí)成果在多任務(wù)間遷移利用,起到了提高準(zhǔn)確率、訓(xùn)練速度和識(shí)別速度的作用。
表3 不同算法性能對(duì)比Table 3 Performance comparison of different algorithms
圖8 loss曲線對(duì)比圖Fig.8 Comparison diagram of loss curves
通過對(duì)比本文算法、均勻縮放算法和投影梯度算法[22]可以看出:本文所提算法的識(shí)別準(zhǔn)確率更高,識(shí)別速度更快。從loss曲線上可以進(jìn)一步看出本文所提算法的損失函數(shù)收斂速度更快,收斂效果更好。實(shí)驗(yàn)結(jié)果證明本文提出的算法與目前流行的幾種多任務(wù)學(xué)習(xí)算法相比能更好地解決多任務(wù)之間的沖突與競(jìng)爭(zhēng)問題,能更快地訓(xùn)練出魯棒性好、準(zhǔn)確率高的模型。
1)提取泡沫圖像特征并提出一種基于二值狀態(tài)轉(zhuǎn)移算法的特征優(yōu)化方法,以解決特征冗余問題。特征優(yōu)化方法在保證結(jié)果準(zhǔn)確的同時(shí),大幅度加快了網(wǎng)絡(luò)訓(xùn)練速度。
2)建立了基于多目標(biāo)學(xué)習(xí)的工況識(shí)別模型,進(jìn)一步針對(duì)多任務(wù)學(xué)習(xí)中普遍存在的權(quán)重難以確定和任務(wù)相互沖突與競(jìng)爭(zhēng)的問題,提出了基于多梯度下降的多目標(biāo)學(xué)習(xí)算法,由此算法可以快速得到Pareto最優(yōu)解,并且使工況品位識(shí)別任務(wù)和異常工況識(shí)別任務(wù)的準(zhǔn)確率同時(shí)提高。
3)通過實(shí)驗(yàn)驗(yàn)證了本文提出的基于多目標(biāo)學(xué)習(xí)的工況識(shí)別模型的性能較優(yōu)。
4)本文提出的模型能有效識(shí)別泡沫浮選流程中異常工況與工況品位,有利于提高工況穩(wěn)定性,提升礦物資源回收率,同時(shí)也為解決多類型識(shí)別問題提供了新思路。