方 濤,劉 濤,李 龍
(東北石油大學(xué) 計算機(jī)與信息技術(shù)學(xué)院,黑龍江 大慶 163318)
當(dāng)機(jī)采井出現(xiàn)卡泵異常,根據(jù)示功圖快速準(zhǔn)確地判斷出所屬的卡泵故障類型對于保障油田的穩(wěn)定生產(chǎn)至關(guān)重要[1-2]。隨著智能示功儀的廣泛使用,高質(zhì)量的示功圖能夠通過無線傳輸技術(shù)直接傳給上位機(jī)并保存在數(shù)據(jù)庫中,為示功圖的智能診斷打下堅實(shí)的基礎(chǔ)。該文提出一種應(yīng)用AS_FOA-SVM算法模型作為卡泵故障診斷的分類器。
果蠅優(yōu)化算法的提出較晚,是一種新型的群智能算法[3]。該算法相較于遺傳算法、粒子群算法等具有方法簡單、參數(shù)較少、易于實(shí)現(xiàn)的優(yōu)勢,同時,由于該算法具有計算速度快、尋優(yōu)能力強(qiáng)等特點(diǎn),因此被廣泛用于科學(xué)和工程領(lǐng)域[4]。但是果蠅優(yōu)化算法同其他群智能算法類似,在尋優(yōu)過程中存在容易陷入局部最優(yōu)、后期收斂速度慢、收斂精度低等問題。為解決上述問題,該文引入自適應(yīng)步長算法對FOA進(jìn)行改進(jìn),從而實(shí)現(xiàn)FOA的全局與局部尋優(yōu)能力的平衡,提高果蠅算法的收斂速度和精度,并用改進(jìn)后的自適應(yīng)步長果蠅優(yōu)化算法(AS_FOA)優(yōu)化支持向量機(jī)的參數(shù),通過真實(shí)的示功圖樣本數(shù)據(jù)進(jìn)行實(shí)驗,并將AS_FOA-SVM與果蠅優(yōu)化支持向量機(jī)[5](FOA-SVM)和遺傳算法優(yōu)化支持向量機(jī)[6](GA-SVM)進(jìn)行性能對比。
果蠅優(yōu)化算法是模擬果蠅群體根據(jù)氣味尋找食物過程的仿生尋優(yōu)算法[3]。該算法模仿果蠅尋食過程,包含三個步驟。第一步,分散在各處的果蠅利用自身嗅覺發(fā)現(xiàn)自己所處位置的食物氣味濃度,并告知其他果蠅;第二步,通過比較果蠅群體中各處的氣味濃度,所有果蠅飛向濃度最高處,以此為起點(diǎn)繼續(xù)四散尋找食物;第三步,經(jīng)過以上兩步的迭代找到食物,通過模擬以上三步的過程,形成果蠅優(yōu)化算法尋優(yōu)思路[7]。具體的步驟如圖1所示。
圖1 果蠅優(yōu)化算法計算步驟
(1)設(shè)置最大迭代次數(shù)、果蠅規(guī)模、果蠅個體的位置范圍,果蠅的位置X,Y作為將要優(yōu)化的參數(shù),初始化果蠅的位置Xaxis,Yaxis。
(2)給每個果蠅一個隨機(jī)的初始飛行方向和距離。
(1)
(3)計算種群中果蠅所在位置的適應(yīng)度,記錄本次迭代最大適應(yīng)度及其位置。
Smelli=fitness(Xi,Yi)
(2)
Bestsmell[i]=[bestSmell,Xi,Yi]
(3)
(4)保存目前迭代結(jié)果中的最佳濃度值和該點(diǎn)果蠅的位置信息,其他果蠅飛向此處,作為新的起始點(diǎn)。
Smellbest=maxBestsmell[i]
(4)
(5)
(5)判斷是否達(dá)到最大迭代次數(shù)或者是否達(dá)到濃度值要求,若滿足以上兩個其中一條,則退出,返回最大值及其對應(yīng)位置,否則跳回第二步繼續(xù)執(zhí)行。
本課題引入迭代次數(shù)比值和適應(yīng)度比值來生成果蠅步長的最大幅值,以限制隨機(jī)步長的最大長度,同時加入一個能夠權(quán)衡迭代次數(shù)比值和適應(yīng)度比值的動態(tài)平衡因子β,用來平衡改進(jìn)后果蠅優(yōu)化算法的收斂速度和收斂精度。具體公式如下:
(6)
(7)
通過調(diào)節(jié)β的取值來調(diào)節(jié)i/m和fi/f在迭代過程中的比重,在果蠅尋優(yōu)迭代的過程中迭代次數(shù)不斷增加,步長會逐漸減小,并且在尋優(yōu)過程中適應(yīng)度值會逐漸變大。i/m引入會使步長逐漸縮小,加快算法的收斂速度,引入f/fi的目的是避免算法早熟、精度不高。通過平衡因子β,避免迭代過程中算法盲目過快的收斂和陷入局部最優(yōu)的問題,同時提高了尋優(yōu)過程的收斂精度。
SVM的懲罰參數(shù)C和核函數(shù)參數(shù)g[8-9]對分類性能影響較大,利用上述改進(jìn)的自適應(yīng)步長FOA算法對參數(shù)C和g進(jìn)行尋優(yōu),能夠改善SVM的分類能力,卡泵診斷分類結(jié)果也會更加精確[10]。
FOA對SVM的改進(jìn)模型設(shè)計分成內(nèi)外兩部分,分別是SVM作為適應(yīng)度函數(shù)作為內(nèi)部性能評估,F(xiàn)OA迭代尋優(yōu)過程作為外部參數(shù)選擇[11]。模型的流程如圖2所示。
圖2 FOA-SVM流程
整個過程的說明如下:
(1)初始化果蠅的迭代次數(shù)M,種群規(guī)模,初始位置(C,g)和初始化每個果蠅的搜索距離X,Y,隨機(jī)設(shè)置果蠅個體位置。
(2)訓(xùn)練SVM,核函數(shù)選擇為高斯核函數(shù),利用果蠅位置作為SVM參數(shù),得出果蠅個體適應(yīng)度值。
(3)對果蠅群體適應(yīng)度值做出評價,保留此次迭代適應(yīng)度值。
(4)利用自適應(yīng)步長方法,對每個果蠅的搜索步長進(jìn)行改變,并且再次生成果蠅初始位置。
(5)判斷是否到達(dá)迭代次數(shù)M,若是,則輸出目前最大的適應(yīng)度值所對應(yīng)的參數(shù)C和g,若不是,則返回第二步繼續(xù)進(jìn)行迭代尋優(yōu)。
FOA改進(jìn)SVM的算法執(zhí)行效果如圖3所示。可以看出,隨著迭代次數(shù)的增加,SVM的準(zhǔn)確率不斷上升。
圖3 FOA_SVM迭代訓(xùn)練
為驗證AS_FOA-SVM的分類效果,利用卡泵真實(shí)數(shù)據(jù)進(jìn)行實(shí)驗,仿真實(shí)驗的數(shù)據(jù)來自大慶某采油廠,其中正常示功圖數(shù)據(jù)100組,結(jié)蠟示功圖100組、進(jìn)砂示功圖100組、結(jié)垢示功圖100組,經(jīng)過Hu矩特征提取[12],變?yōu)榫S度為7的特征值,利用python中的某些第三方函數(shù)庫進(jìn)行實(shí)驗。
選用固定步長為4和20的FOA-SVM與文中的AS_FOA-SVM進(jìn)行實(shí)驗對比,實(shí)驗對比參數(shù)設(shè)置詳見表1。
表1 尋優(yōu)效果評測仿真實(shí)驗數(shù)據(jù)
經(jīng)過實(shí)驗對比,表中三種模擬實(shí)驗的迭代尋優(yōu)準(zhǔn)確率曲線和果蠅的運(yùn)動軌跡如圖4~圖6所示。圖中“圓點(diǎn)”為果蠅運(yùn)動位置,“三角點(diǎn)”為尋優(yōu)過程的最優(yōu)位置。
圖4 步長為4的FOA-SVM實(shí)驗結(jié)果
圖5 步長為15的FOA-SVM實(shí)驗結(jié)果
圖6 自適應(yīng)步長AS_FOA-SVM實(shí)驗結(jié)果
AS_FOA-SVM算法隨著迭代尋優(yōu)次數(shù)的增加,分類的準(zhǔn)確率逐步提高,最終在第32次迭代中達(dá)到最高值??梢酝ㄟ^果蠅運(yùn)動軌跡圖觀察到,隨著局部搜索能力的增強(qiáng),果蠅運(yùn)動范圍逐漸圍繞最優(yōu)參數(shù),果蠅運(yùn)動在最優(yōu)值附近由稀疏變?yōu)槌砻?,最終卡泵故障分類準(zhǔn)確率為76.45%。在步長為4的FOA-SVM中,通過果蠅運(yùn)動軌跡圖可以看出,果蠅個體在局部搜索中表現(xiàn)出了很強(qiáng)的搜索能力,全局搜索能力較弱,算法在尋優(yōu)過程中在第5次迭代后就陷入局部最優(yōu)值,最終卡泵故障分類準(zhǔn)確率為71.25%。在步長為15的FOA-SVM實(shí)驗中,通過果蠅運(yùn)動軌跡可以看出,在解空間內(nèi),果蠅分布較為均勻,全局搜索能力較好,但其在第17代之后,算法的準(zhǔn)確率就不再變化,可見其后期搜索能力不強(qiáng),局部搜索能力不足,最終卡泵故障分類準(zhǔn)確率為72.29%。
綜上實(shí)驗對比得出,AS_FOA-SVM算法通過自適應(yīng)改變果蠅尋優(yōu)的范圍,通過迭代次數(shù)與每次迭代的準(zhǔn)確率,動態(tài)地平衡了果蠅的全局與局部尋優(yōu)的能力,相比于固定步長FOA-SVM在卡泵故障診斷取得了較好的效果。
基于3.1中所用的真實(shí)樣本數(shù)據(jù),分別使用遺傳優(yōu)化算法[13-14]、固定步長果蠅優(yōu)化算法和文中改進(jìn)的自適應(yīng)步長優(yōu)化算法對支持向量機(jī)的懲罰系數(shù)C和核函數(shù)參數(shù)g進(jìn)行優(yōu)化[15]。主要參數(shù)設(shè)置如表2所示。
在相同的算法編程環(huán)境下,對表2中算法進(jìn)行編程測試,為減小編程帶來的差異,SVM部分的數(shù)據(jù)處理與數(shù)據(jù)操作調(diào)用統(tǒng)一的代碼包。三種算法在卡泵故障分類中的準(zhǔn)確率如表3所示,從表中可以看出,相比于固定步長的FOA,AS_FOA在SVM優(yōu)化中準(zhǔn)確率更高,所用時間相差很??;相比于GA在SVM中的優(yōu)化,準(zhǔn)確率也有所提高。
表2 卡泵故障分類對比實(shí)驗參數(shù)
表3 實(shí)驗結(jié)果
如圖7所示,從三種函數(shù)的尋優(yōu)進(jìn)化曲線中可以看出,AS_FOA-SVM與FOA-SVM在搜索時間上相同,但全局與局部尋優(yōu)平衡能力較好,搜索精度略高。AS_FOA-SVM相比于GA-SVM避免了過早收斂,陷入局部最優(yōu)。綜上,AS_FOA-SVM進(jìn)一步提高了算法的尋優(yōu)精度和搜索效率。
圖7 尋優(yōu)對比
針對卡泵故障診斷這一實(shí)際工程問題,提出AS_FOA-SVM混合分類算法模型,并對果蠅優(yōu)化算法的尋優(yōu)步長進(jìn)行改進(jìn),引入自適應(yīng)函數(shù),通過計算上次尋優(yōu)準(zhǔn)確率和本次迭代次數(shù)完成步長的限制。通過采油廠實(shí)際數(shù)據(jù)的仿真測試,結(jié)果表明,AS_FOA-SVM算法相比于固定步長的FOA-SVM的收斂速度和尋優(yōu)精度更好。