徐文文 王裴巖 張桂平 蔡東風
(沈陽航空航天大學人機智能研究中心 遼寧 沈陽 100136)
工藝過程是指在生產過程中改變生產對象的形狀、尺寸、相對位置和物理、力學性能等,使其成為成品或半成品的過程[1]。工藝過程自動生成是指利用現有的經驗知識,通過人工智能的方法實現工藝過程高效的自動編寫[2]。工藝過程的自動生成對減少工藝過程過于依賴經驗知識、提高生產效率具有重要意義,同時對工業制造領域的發展具有推動作用。
工藝過程生成是CAPP(Computer Aided Process Planning)系統的研究重點。工藝過程生成方法主要分為派生式和生成式兩大類[3]。派生式通過檢索及重用相似零件的工藝,實現工藝過程的生成,如文獻[4]利用多個核函數學習工藝相似性實現工藝過程重用,文獻[5]通過工藝參數相似性匹配的方法實現工藝過程生成。派生式方法的問題是,對于找不到相似零件的設計任務,無法生成其工藝過程。生成式直接分析零件加工特征,采用產生式規則、本體、人工神經網絡等方法推理生成工藝過程。文獻[6]首先對零件的加工特征進行詳細設計,然后通過規則約束進行工藝過程生成,該方法雖然對特殊零件的識別能力有所提高,但仍需要人工設計特征和規則耗時費力。文獻[7]引入本體概念賦予生成過程語義信息,通過圖搜索和規則推理進行工藝過程生成,該方法對于生成序列的合理性有一定的改善,但是需要大量人力構建本體的結構特征和本體對應的工藝方法屬性。為降低規則或本體等工藝生成知識獲取的難度,人工神經網絡(Artifi-cial Neural Network,ANN)[8-11]被應用于工藝過程生成,用來提取工藝特征和對工藝樣本的分類,然后再利用分類結果檢索工藝知識庫生成工藝過程。但現有研究僅應用了前饋神經網絡,對于工序間的序列關系,工藝特征的自動提取與多種特征的提取融合等方面未被考慮。
近年來,深度學習方法在內容生成方面得到了廣泛的研究與應用,如機器翻譯[12-16]、古詩詞生成[17-20]、文本摘要生成[21-22]和圖片標題生成[23-24]等。上述問題皆是基于分析輸入特征的序列生成任務。機器翻譯[12]通過分析源語言,生成目標語言詞序列。圖片標題生成[23]在提取圖片關鍵信息后,生成圖片內容的詞序列。工藝過程生成與上述任務具有同質性,以材料、零件結構、工藝技術要求等作為輸入,提取制造特征后,生成工序序列。區別于上述任務,工藝過程生成需要分析材料、零件結構、工藝技術要求等多方面輸入信息,而機器翻譯等任務輸入相對單一。另外,工序間除序列關系外,相對于機器翻譯等任務,工序的生成對輸入信息的依賴更強,如“涂漆”“熱處理”等工序更依賴于工藝技術要求,而不僅是前序序列信息。因此,在工藝生成領域,基于深度學習的方法尚研究不足。
面向上述問題,本文提出一種CNN-LSTM網絡的工藝過程生成方法。該方法通過CNN和LSTM兩種編碼器分別對工藝屬性和前序工序序列編碼,生成特征向量,將特征向量組合后作為解碼器的輸入,生成后續工序。該方法利用多路CNN能夠解決多方面輸入信息特征分析的問題,同時結合LSTM網絡解決在工序序列生成中前序工序序列信息與輸入信息同時作用的問題。CNN-LSTM網絡在某型飛機機身鈑金零件制造大綱文件數據上進行了驗證,生成工藝過程與參考工藝過程的相似性達到0.451 5,Blue- 4達到0.237 6,好于對比方法。
對于有工藝屬性P描述的工藝設計任務,生成其工序序列(s1,s2,…,sn)。本文提出的CNN-LSTM網絡依據工藝屬性P及前序工序序列(si-5,si-4,si-3,si-2,si-1)生成后續工序si。該過程為遞歸生成過程(如圖1所示),把生成過程分為n個時刻,在每時刻ti生成一個工序。在時刻t1生成第一個工序s1,時刻t2依據P及工序s1生成工序s2,時刻t3依據P及(s1,s2)生成s3,以此遞推直到時刻tn生成sn。CNN-LSTM網絡采用CNN提取工藝屬性P的特征,采用LSTM提取前序工序序列(si-5,si-4,si-3,si-2,si-1)的特征,并再次采用LSTM網絡結合Softmax函數生成后續工序。

圖1 多個時刻的CNN-LSTM網絡
單時刻CNN-LSTM網絡結構如圖2所示,由輸入層、編碼層、解碼層組成。輸入層用于對工藝屬性和工序序列的輸入;編碼層用于對工藝屬性和工序序列的特征提取,其中使用LSTM對工序序列進行特征提取,使用CNN對工藝屬性進行特征提取,并將兩者融合形成編碼向量;解碼層利用LSTM最后一層隱狀態作為解碼向量,將解碼向量通過分類器Softmax函數預測出下一步工序,最后根據這種網絡結構遞歸生成工藝過程。

圖2 單時刻的CNN-LSTM網絡
工藝屬性可以包括零件類型、材料名稱、材料規格、材料牌號、材料狀態、技術要求和零件圖等方面信息。本文將所有工藝屬性采用字符One-hot向量表示。以技術要求為例,如“按11010- 000鉻酸陽極化”,每個字符用603維的One-hot向量表示,形成15(技術要求的字符數)×603維的矩陣。為了使得CNN網絡輸入的維度一致,采用了實驗數據中技術要求最多字符數208,CNN技術要求屬性輸入矩陣為208×603。綜合零件類型與材料等其他工藝屬性,形成了多路工藝屬性輸入。
1.2.1多路CNN的工藝屬性特征編碼
本文利用不同參數設置的CNN分別提取零件類型與材料等四種工藝屬性的字符級特征信息。將每種工藝屬性按字切分后,轉換成對應的One-hot向量分別通過卷積層、池化層提取局部特征,然后利用全連接層將其局部特征映射為全局特征,最后將每種工藝屬性對應的全局特征串聯拼接,得到包含每種工藝屬性信息的編碼向量。多路CNN對工藝屬性特征編碼過程如圖3所示。

圖3 工藝屬性特征編碼
1.2.2基于LSTM的工序序列特征編碼
本文采用LSTM網絡將前序工序序列信息融入模型中,對后續工序與前序工序序列的關系建模。將前序工序序列對應的向量矩陣輸入到LSTM網絡中進行編碼,并取每個時間步輸出的隱向量作為編碼向量。LSTM單元結構如圖4所示。

圖4 LSTM單元結構
LSTM單元包含輸入門i、遺忘門f和輸出門o。其中“門”結構賦予了LSTM單元刪除或添加信息到細胞狀態的能力,對歷史信息進行選擇性的保留。門的定義單元更新和輸出如下:
it=σ(Wi[ht-1,xt]+bi)
(1)
ft=σ(Wf[ht-1,xt]+bf)
(2)
ot=σ(Wo[ht-1,xt]+bo)
(3)
(4)
(5)
ht=ot⊙tanh(ct)
(6)
式中:⊙表示帶有門值的乘積;W矩陣為訓練權重參數;b表示偏置量;σ和h分別表示神經元中Sigmoid和tanh激活函數;c表示每個記憶單元的狀態;ht表示t時刻LSTM輸出的隱層向量。
1.2.3特征融合
發燒是人體的自我保護機制之一,是人體在調動免疫系統對抗疾病的過程中表現出來的一種癥狀,因此發燒不完全是壞事兒。很多種疾病都可能引起發燒,體溫的高低與疾病的嚴重程度也不一定成正比。個人的體質不同,體溫調節的敏感度也會不同,有的人輕微感冒就能燒很高,有的人即使嚴重感染了也不見得有很高的體溫。這里說的“感染”可能是病毒感染,也可能是細菌等其他病原體感染。
本文將工藝屬性信息融入到每個工序信息上,利用工藝屬性信息以更好地指導下一步工序的生成,使生成的工序更加符合工藝屬性信息描述下的工藝過程中的工序。目前兩種經典的特征融合方法,第一種方法是直接將不同的特征向量進行串聯拼接;第二種方法是將不同的特征向量疊加成復向量。本文采取第二種特征融合方法,將前序工序序列經過LSTM層編碼后,取每個時間步的工序特征與當前輸入的工藝屬性特征進行向量疊加,使融合后的復向量包含更加豐富的信息。
本文利用LSTM保持工藝屬性下工序間的序列關系,將工藝屬性與工序序列融合得到的向量通過解碼輸出生成后續工序。該過程首先將工藝屬性和工序序列融合后的向量通過LSTM層,然后取LSTM最后一層隱狀態輸出的向量作為解碼生成的向量,最后將解碼生成的向量通過全連接層的Softmax函數對其歸一化得到當前生成工序的概率分布,采用貪心搜索算法選擇當前生成工序的概率分布上概率最大的工序作為生成工序并將其輸出。
本文實驗數據來自某型飛機鈑金零件制造大綱文件,共2 360份。每份文件包括四種工藝屬性和該零件的工藝過程,平均每條工藝過程約有27.13步工序。數據集按照8 ∶1 ∶1的比例進行劃分,即訓練集1 888份,驗證集236份,測試集236份,并采用了十折交叉驗證,取十次結果的平均值作為對算法精度的估計,以保證實驗結果的可靠性。
本文采用了基于編輯距離的相似性評價整體的一致性,采用了BLEU評價生成的單步工序和局部工序序列的正確性。另外,通過實例分析了能夠學習出特征與工藝方法的關聯、工藝方法間的序列關系。宏觀角度上,通過編輯距離(Levenshtein Distance)計算定義的序列相似度,計算生成工序過程與參考工序的整體相似性,評價生成序列的整體質量。編輯距離越小,兩序列相似性越大。微觀角度上,通過BLEU(Bilingual Evaluation Understudy)計算生成序列和參考序列之間相同n元工序組的占比,評價生成的局部工序序列的正確性。BLEU值越大,局部工序序列的正確性越高。

編輯距離用來計算將生成工藝過程改成參考工藝過程所需要刪除、修改與增加工序的最小數量。編輯距離計算公式如下,可通過動態規劃算法求出:

(7)
(8)

2.2.2BLEU

(9)
(10)
(11)

本文面向實驗數據中的零件類型、材料名稱、工藝編碼和技術要求四種工藝屬性,利用四路CNN分別對其進行特征提取。參數設置如下:每路CNN的卷積步長均設置為1,卷積核高度均設置為2,寬度默認為向量維度(即每種工藝屬性對應的字典大小),池化層均采用平均池化,根據不同工藝屬性的信息復雜程度,每種工藝屬性卷積核個數分別設置為100、200、200、300,激活函數為Sigmoid,損失函數采用交叉熵,優化算法為Adam。詳細參數設置如表1所示。

表1 神經網絡中超參數設置


表值結果對比

表3 BLEU值結果對比
由表3可知,CNN-LSTM相較于上述三個對比模型中的BLEU值均有提升,說明本文模型生成的工序序列中具有更多的正確n元工序組。BLEU- 1值較于NIC、MRNN、BiLSTM三個對比模型分別提升約0.19、0.04、0.15,BLEU- 2值較于上述三個對比模型分別提升約0.16、0.04、0.06,BLEU- 3值較于上述三個對比模型分別提升約0.15、0.06、0.10,BLEU- 4值較于上述三個對比模型分別提升約0.13、0.05、0.09。表4與表5展示了MRNN與CNN-LSTM生成工藝過程的一個示例。

表4 四種工藝屬性
通過對該示例分析可以看出:CNN-LSTM與MRNN皆學習出了工序間的序列關系,每個操作類工序后皆有檢驗類工序,并且準備工序“供料 檢驗”及收尾工序“總檢 保護 核實印章并入庫”皆生成正確;CNN-LSTM正確地生成出了“鉻酸陽極化”與“涂底漆”工序,這兩種工序在技術要求中明確要求。再者,CNN-LSTM生成了“去毛刺 銳邊倒圓”工序,雖然與參考工序“去毛刺并銳邊倒圓”有差別,但操作的過程是一致的,能夠學習出“墊片”類零件與修整類工序的關系。因此,CNN-LSTM能夠更好地利用工藝屬性指導工藝過程生成。CNN-LSTM缺失了“銑切外形”工序,是由于本文數據輸入工藝屬性缺少零件結構特征造成的。CNN-LSTM的多路CNN網絡便于擴展更多的工藝屬性,如何加入三維零件模型或是二維圖紙數據,可在未來工作中予以研究。

表5 四種工藝屬性對應工藝過程
本文提出基于CNN-LSTM網絡的工藝過程生成方法,通過四路CNN對零件類型、材料、工藝編碼、技術要求四種工藝屬性特征指導工藝過程的生成,利用LSTM對工序間的序列關系進行建模,通過編輯距離的工序序列相似性及BLEU-4分別達到0.451 5及0.237 6,好于對比方法,證明了利用深度學習模型指導工藝過程自動生成方法的有效性,為工藝過程自動生成提供了新的研究思路。在未來的工作中,可以融合更多種工藝屬性特征,提高生成質量。另一方面,本文模型是利用特征提取的方法來提取工藝屬性和工序特征,今后的工作中可以在預訓練部分做進一步的嘗試,利用預訓練模型提取語義層面的信息,以更好地指導工藝過程生成。