徐文文 王裴巖 張桂平 蔡?hào)|風(fēng)
(沈陽航空航天大學(xué)人機(jī)智能研究中心 遼寧 沈陽 100136)
工藝過程是指在生產(chǎn)過程中改變生產(chǎn)對(duì)象的形狀、尺寸、相對(duì)位置和物理、力學(xué)性能等,使其成為成品或半成品的過程[1]。工藝過程自動(dòng)生成是指利用現(xiàn)有的經(jīng)驗(yàn)知識(shí),通過人工智能的方法實(shí)現(xiàn)工藝過程高效的自動(dòng)編寫[2]。工藝過程的自動(dòng)生成對(duì)減少工藝過程過于依賴經(jīng)驗(yàn)知識(shí)、提高生產(chǎn)效率具有重要意義,同時(shí)對(duì)工業(yè)制造領(lǐng)域的發(fā)展具有推動(dòng)作用。
工藝過程生成是CAPP(Computer Aided Process Planning)系統(tǒng)的研究重點(diǎn)。工藝過程生成方法主要分為派生式和生成式兩大類[3]。派生式通過檢索及重用相似零件的工藝,實(shí)現(xiàn)工藝過程的生成,如文獻(xiàn)[4]利用多個(gè)核函數(shù)學(xué)習(xí)工藝相似性實(shí)現(xiàn)工藝過程重用,文獻(xiàn)[5]通過工藝參數(shù)相似性匹配的方法實(shí)現(xiàn)工藝過程生成。派生式方法的問題是,對(duì)于找不到相似零件的設(shè)計(jì)任務(wù),無法生成其工藝過程。生成式直接分析零件加工特征,采用產(chǎn)生式規(guī)則、本體、人工神經(jīng)網(wǎng)絡(luò)等方法推理生成工藝過程。文獻(xiàn)[6]首先對(duì)零件的加工特征進(jìn)行詳細(xì)設(shè)計(jì),然后通過規(guī)則約束進(jìn)行工藝過程生成,該方法雖然對(duì)特殊零件的識(shí)別能力有所提高,但仍需要人工設(shè)計(jì)特征和規(guī)則耗時(shí)費(fèi)力。文獻(xiàn)[7]引入本體概念賦予生成過程語義信息,通過圖搜索和規(guī)則推理進(jìn)行工藝過程生成,該方法對(duì)于生成序列的合理性有一定的改善,但是需要大量人力構(gòu)建本體的結(jié)構(gòu)特征和本體對(duì)應(yīng)的工藝方法屬性。為降低規(guī)則或本體等工藝生成知識(shí)獲取的難度,人工神經(jīng)網(wǎng)絡(luò)(Artifi-cial Neural Network,ANN)[8-11]被應(yīng)用于工藝過程生成,用來提取工藝特征和對(duì)工藝樣本的分類,然后再利用分類結(jié)果檢索工藝知識(shí)庫生成工藝過程。但現(xiàn)有研究?jī)H應(yīng)用了前饋神經(jīng)網(wǎng)絡(luò),對(duì)于工序間的序列關(guān)系,工藝特征的自動(dòng)提取與多種特征的提取融合等方面未被考慮。
近年來,深度學(xué)習(xí)方法在內(nèi)容生成方面得到了廣泛的研究與應(yīng)用,如機(jī)器翻譯[12-16]、古詩詞生成[17-20]、文本摘要生成[21-22]和圖片標(biāo)題生成[23-24]等。上述問題皆是基于分析輸入特征的序列生成任務(wù)。機(jī)器翻譯[12]通過分析源語言,生成目標(biāo)語言詞序列。圖片標(biāo)題生成[23]在提取圖片關(guān)鍵信息后,生成圖片內(nèi)容的詞序列。工藝過程生成與上述任務(wù)具有同質(zhì)性,以材料、零件結(jié)構(gòu)、工藝技術(shù)要求等作為輸入,提取制造特征后,生成工序序列。區(qū)別于上述任務(wù),工藝過程生成需要分析材料、零件結(jié)構(gòu)、工藝技術(shù)要求等多方面輸入信息,而機(jī)器翻譯等任務(wù)輸入相對(duì)單一。另外,工序間除序列關(guān)系外,相對(duì)于機(jī)器翻譯等任務(wù),工序的生成對(duì)輸入信息的依賴更強(qiáng),如“涂漆”“熱處理”等工序更依賴于工藝技術(shù)要求,而不僅是前序序列信息。因此,在工藝生成領(lǐng)域,基于深度學(xué)習(xí)的方法尚研究不足。
面向上述問題,本文提出一種CNN-LSTM網(wǎng)絡(luò)的工藝過程生成方法。該方法通過CNN和LSTM兩種編碼器分別對(duì)工藝屬性和前序工序序列編碼,生成特征向量,將特征向量組合后作為解碼器的輸入,生成后續(xù)工序。該方法利用多路CNN能夠解決多方面輸入信息特征分析的問題,同時(shí)結(jié)合LSTM網(wǎng)絡(luò)解決在工序序列生成中前序工序序列信息與輸入信息同時(shí)作用的問題。CNN-LSTM網(wǎng)絡(luò)在某型飛機(jī)機(jī)身鈑金零件制造大綱文件數(shù)據(jù)上進(jìn)行了驗(yàn)證,生成工藝過程與參考工藝過程的相似性達(dá)到0.451 5,Blue- 4達(dá)到0.237 6,好于對(duì)比方法。
對(duì)于有工藝屬性P描述的工藝設(shè)計(jì)任務(wù),生成其工序序列(s1,s2,…,sn)。本文提出的CNN-LSTM網(wǎng)絡(luò)依據(jù)工藝屬性P及前序工序序列(si-5,si-4,si-3,si-2,si-1)生成后續(xù)工序si。該過程為遞歸生成過程(如圖1所示),把生成過程分為n個(gè)時(shí)刻,在每時(shí)刻ti生成一個(gè)工序。在時(shí)刻t1生成第一個(gè)工序s1,時(shí)刻t2依據(jù)P及工序s1生成工序s2,時(shí)刻t3依據(jù)P及(s1,s2)生成s3,以此遞推直到時(shí)刻tn生成sn。CNN-LSTM網(wǎng)絡(luò)采用CNN提取工藝屬性P的特征,采用LSTM提取前序工序序列(si-5,si-4,si-3,si-2,si-1)的特征,并再次采用LSTM網(wǎng)絡(luò)結(jié)合Softmax函數(shù)生成后續(xù)工序。
圖1 多個(gè)時(shí)刻的CNN-LSTM網(wǎng)絡(luò)
單時(shí)刻CNN-LSTM網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,由輸入層、編碼層、解碼層組成。輸入層用于對(duì)工藝屬性和工序序列的輸入;編碼層用于對(duì)工藝屬性和工序序列的特征提取,其中使用LSTM對(duì)工序序列進(jìn)行特征提取,使用CNN對(duì)工藝屬性進(jìn)行特征提取,并將兩者融合形成編碼向量;解碼層利用LSTM最后一層隱狀態(tài)作為解碼向量,將解碼向量通過分類器Softmax函數(shù)預(yù)測(cè)出下一步工序,最后根據(jù)這種網(wǎng)絡(luò)結(jié)構(gòu)遞歸生成工藝過程。
圖2 單時(shí)刻的CNN-LSTM網(wǎng)絡(luò)
工藝屬性可以包括零件類型、材料名稱、材料規(guī)格、材料牌號(hào)、材料狀態(tài)、技術(shù)要求和零件圖等方面信息。本文將所有工藝屬性采用字符One-hot向量表示。以技術(shù)要求為例,如“按11010- 000鉻酸陽極化”,每個(gè)字符用603維的One-hot向量表示,形成15(技術(shù)要求的字符數(shù))×603維的矩陣。為了使得CNN網(wǎng)絡(luò)輸入的維度一致,采用了實(shí)驗(yàn)數(shù)據(jù)中技術(shù)要求最多字符數(shù)208,CNN技術(shù)要求屬性輸入矩陣為208×603。綜合零件類型與材料等其他工藝屬性,形成了多路工藝屬性輸入。
1.2.1多路CNN的工藝屬性特征編碼
本文利用不同參數(shù)設(shè)置的CNN分別提取零件類型與材料等四種工藝屬性的字符級(jí)特征信息。將每種工藝屬性按字切分后,轉(zhuǎn)換成對(duì)應(yīng)的One-hot向量分別通過卷積層、池化層提取局部特征,然后利用全連接層將其局部特征映射為全局特征,最后將每種工藝屬性對(duì)應(yīng)的全局特征串聯(lián)拼接,得到包含每種工藝屬性信息的編碼向量。多路CNN對(duì)工藝屬性特征編碼過程如圖3所示。
圖3 工藝屬性特征編碼
1.2.2基于LSTM的工序序列特征編碼
本文采用LSTM網(wǎng)絡(luò)將前序工序序列信息融入模型中,對(duì)后續(xù)工序與前序工序序列的關(guān)系建模。將前序工序序列對(duì)應(yīng)的向量矩陣輸入到LSTM網(wǎng)絡(luò)中進(jìn)行編碼,并取每個(gè)時(shí)間步輸出的隱向量作為編碼向量。LSTM單元結(jié)構(gòu)如圖4所示。
圖4 LSTM單元結(jié)構(gòu)
LSTM單元包含輸入門i、遺忘門f和輸出門o。其中“門”結(jié)構(gòu)賦予了LSTM單元?jiǎng)h除或添加信息到細(xì)胞狀態(tài)的能力,對(duì)歷史信息進(jìn)行選擇性的保留。門的定義單元更新和輸出如下:
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矩陣為訓(xùn)練權(quán)重參數(shù);b表示偏置量;σ和h分別表示神經(jīng)元中Sigmoid和tanh激活函數(shù);c表示每個(gè)記憶單元的狀態(tài);ht表示t時(shí)刻LSTM輸出的隱層向量。
1.2.3特征融合
發(fā)燒是人體的自我保護(hù)機(jī)制之一,是人體在調(diào)動(dòng)免疫系統(tǒng)對(duì)抗疾病的過程中表現(xiàn)出來的一種癥狀,因此發(fā)燒不完全是壞事兒。很多種疾病都可能引起發(fā)燒,體溫的高低與疾病的嚴(yán)重程度也不一定成正比。個(gè)人的體質(zhì)不同,體溫調(diào)節(jié)的敏感度也會(huì)不同,有的人輕微感冒就能燒很高,有的人即使嚴(yán)重感染了也不見得有很高的體溫。這里說的“感染”可能是病毒感染,也可能是細(xì)菌等其他病原體感染。
本文將工藝屬性信息融入到每個(gè)工序信息上,利用工藝屬性信息以更好地指導(dǎo)下一步工序的生成,使生成的工序更加符合工藝屬性信息描述下的工藝過程中的工序。目前兩種經(jīng)典的特征融合方法,第一種方法是直接將不同的特征向量進(jìn)行串聯(lián)拼接;第二種方法是將不同的特征向量疊加成復(fù)向量。本文采取第二種特征融合方法,將前序工序序列經(jīng)過LSTM層編碼后,取每個(gè)時(shí)間步的工序特征與當(dāng)前輸入的工藝屬性特征進(jìn)行向量疊加,使融合后的復(fù)向量包含更加豐富的信息。
本文利用LSTM保持工藝屬性下工序間的序列關(guān)系,將工藝屬性與工序序列融合得到的向量通過解碼輸出生成后續(xù)工序。該過程首先將工藝屬性和工序序列融合后的向量通過LSTM層,然后取LSTM最后一層隱狀態(tài)輸出的向量作為解碼生成的向量,最后將解碼生成的向量通過全連接層的Softmax函數(shù)對(duì)其歸一化得到當(dāng)前生成工序的概率分布,采用貪心搜索算法選擇當(dāng)前生成工序的概率分布上概率最大的工序作為生成工序并將其輸出。
本文實(shí)驗(yàn)數(shù)據(jù)來自某型飛機(jī)鈑金零件制造大綱文件,共2 360份。每份文件包括四種工藝屬性和該零件的工藝過程,平均每條工藝過程約有27.13步工序。數(shù)據(jù)集按照8 ∶1 ∶1的比例進(jìn)行劃分,即訓(xùn)練集1 888份,驗(yàn)證集236份,測(cè)試集236份,并采用了十折交叉驗(yàn)證,取十次結(jié)果的平均值作為對(duì)算法精度的估計(jì),以保證實(shí)驗(yàn)結(jié)果的可靠性。
本文采用了基于編輯距離的相似性評(píng)價(jià)整體的一致性,采用了BLEU評(píng)價(jià)生成的單步工序和局部工序序列的正確性。另外,通過實(shí)例分析了能夠?qū)W習(xí)出特征與工藝方法的關(guān)聯(lián)、工藝方法間的序列關(guān)系。宏觀角度上,通過編輯距離(Levenshtein Distance)計(jì)算定義的序列相似度,計(jì)算生成工序過程與參考工序的整體相似性,評(píng)價(jià)生成序列的整體質(zhì)量。編輯距離越小,兩序列相似性越大。微觀角度上,通過BLEU(Bilingual Evaluation Understudy)計(jì)算生成序列和參考序列之間相同n元工序組的占比,評(píng)價(jià)生成的局部工序序列的正確性。BLEU值越大,局部工序序列的正確性越高。
編輯距離用來計(jì)算將生成工藝過程改成參考工藝過程所需要?jiǎng)h除、修改與增加工序的最小數(shù)量。編輯距離計(jì)算公式如下,可通過動(dòng)態(tài)規(guī)劃算法求出:
(7)
(8)
2.2.2BLEU
(9)
(10)
(11)
本文面向?qū)嶒?yàn)數(shù)據(jù)中的零件類型、材料名稱、工藝編碼和技術(shù)要求四種工藝屬性,利用四路CNN分別對(duì)其進(jìn)行特征提取。參數(shù)設(shè)置如下:每路CNN的卷積步長(zhǎng)均設(shè)置為1,卷積核高度均設(shè)置為2,寬度默認(rèn)為向量維度(即每種工藝屬性對(duì)應(yīng)的字典大小),池化層均采用平均池化,根據(jù)不同工藝屬性的信息復(fù)雜程度,每種工藝屬性卷積核個(gè)數(shù)分別設(shè)置為100、200、200、300,激活函數(shù)為Sigmoid,損失函數(shù)采用交叉熵,優(yōu)化算法為Adam。詳細(xì)參數(shù)設(shè)置如表1所示。
表1 神經(jīng)網(wǎng)絡(luò)中超參數(shù)設(shè)置
表值結(jié)果對(duì)比
表3 BLEU值結(jié)果對(duì)比
由表3可知,CNN-LSTM相較于上述三個(gè)對(duì)比模型中的BLEU值均有提升,說明本文模型生成的工序序列中具有更多的正確n元工序組。BLEU- 1值較于NIC、MRNN、BiLSTM三個(gè)對(duì)比模型分別提升約0.19、0.04、0.15,BLEU- 2值較于上述三個(gè)對(duì)比模型分別提升約0.16、0.04、0.06,BLEU- 3值較于上述三個(gè)對(duì)比模型分別提升約0.15、0.06、0.10,BLEU- 4值較于上述三個(gè)對(duì)比模型分別提升約0.13、0.05、0.09。表4與表5展示了MRNN與CNN-LSTM生成工藝過程的一個(gè)示例。
表4 四種工藝屬性
通過對(duì)該示例分析可以看出:CNN-LSTM與MRNN皆學(xué)習(xí)出了工序間的序列關(guān)系,每個(gè)操作類工序后皆有檢驗(yàn)類工序,并且準(zhǔn)備工序“供料 檢驗(yàn)”及收尾工序“總檢 保護(hù) 核實(shí)印章并入庫”皆生成正確;CNN-LSTM正確地生成出了“鉻酸陽極化”與“涂底漆”工序,這兩種工序在技術(shù)要求中明確要求。再者,CNN-LSTM生成了“去毛刺 銳邊倒圓”工序,雖然與參考工序“去毛刺并銳邊倒圓”有差別,但操作的過程是一致的,能夠?qū)W習(xí)出“墊片”類零件與修整類工序的關(guān)系。因此,CNN-LSTM能夠更好地利用工藝屬性指導(dǎo)工藝過程生成。CNN-LSTM缺失了“銑切外形”工序,是由于本文數(shù)據(jù)輸入工藝屬性缺少零件結(jié)構(gòu)特征造成的。CNN-LSTM的多路CNN網(wǎng)絡(luò)便于擴(kuò)展更多的工藝屬性,如何加入三維零件模型或是二維圖紙數(shù)據(jù),可在未來工作中予以研究。
表5 四種工藝屬性對(duì)應(yīng)工藝過程
本文提出基于CNN-LSTM網(wǎng)絡(luò)的工藝過程生成方法,通過四路CNN對(duì)零件類型、材料、工藝編碼、技術(shù)要求四種工藝屬性特征指導(dǎo)工藝過程的生成,利用LSTM對(duì)工序間的序列關(guān)系進(jìn)行建模,通過編輯距離的工序序列相似性及BLEU-4分別達(dá)到0.451 5及0.237 6,好于對(duì)比方法,證明了利用深度學(xué)習(xí)模型指導(dǎo)工藝過程自動(dòng)生成方法的有效性,為工藝過程自動(dòng)生成提供了新的研究思路。在未來的工作中,可以融合更多種工藝屬性特征,提高生成質(zhì)量。另一方面,本文模型是利用特征提取的方法來提取工藝屬性和工序特征,今后的工作中可以在預(yù)訓(xùn)練部分做進(jìn)一步的嘗試,利用預(yù)訓(xùn)練模型提取語義層面的信息,以更好地指導(dǎo)工藝過程生成。