江天浩*,王 旭,胡石招
(1.南京航空航天大學(xué) 自動(dòng)化學(xué)院,江蘇 南京 211106;2.南京航空航天大學(xué) 理學(xué)院,江蘇 南京 211106;3.南京航空航天大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211106)
化學(xué)工藝產(chǎn)業(yè)作為一種基本產(chǎn)業(yè),對(duì)我國的市場(chǎng)經(jīng)濟(jì)建設(shè)及國民生活質(zhì)量具有重要意義。C4 烯烴作為一類化工品,現(xiàn)已廣泛應(yīng)用于化工產(chǎn)品(如:甲乙酮、MTBE 和仲乙醇等)及藥物的生產(chǎn)中。以乙醇作為原料,C4 烯烴可以在催化劑的催化作用下由乙醇脫水得到。在制備過程中,不同催化劑組合(即:Co 負(fù)載量、Co/SiO2和HAP 裝料比、裝料方式和乙醇濃度的組合)和溫度對(duì)C4 烯烴的選擇性與C4 烯烴的收率有著不同的影響[1-2]。探究乙醇催化偶合制備C4 烯烴的更優(yōu)工藝條件,有利于降低工藝成本損耗,提高我國的工藝生產(chǎn)技術(shù),具有著重要的意義與價(jià)值[3-4]。
在此研究方向上,國內(nèi)外大多學(xué)者的研究方式為直接進(jìn)行化學(xué)實(shí)驗(yàn)并測(cè)定結(jié)果。采用化學(xué)實(shí)驗(yàn)的方式,操作繁瑣且需要花費(fèi)大量的時(shí)間,而且實(shí)驗(yàn)具有危險(xiǎn)性[1]。而數(shù)學(xué)建模相較與化學(xué)實(shí)驗(yàn)具有更高的安全性和更低的成本,本文嘗試搭建合理的數(shù)學(xué)模型來描述這一問題,并且研究該問題的最優(yōu)生產(chǎn)條件。
人工神經(jīng)網(wǎng)絡(luò)是一種模擬人類神經(jīng)元工作方式和形成的算法,其由若干個(gè)人工神經(jīng)元相互連接組成一個(gè)廣泛并行互聯(lián)的網(wǎng)絡(luò)。因連接方式的不同,可以分為前饋神經(jīng)網(wǎng)絡(luò)、反饋神經(jīng)網(wǎng)絡(luò)等不同類型。人工神經(jīng)網(wǎng)絡(luò)從信息處理角度對(duì)人腦神經(jīng)元網(wǎng)絡(luò)進(jìn)行抽象,建立某種非線性映射模型,在回歸、預(yù)測(cè)、分類等領(lǐng)域成功地解決了許多問題,表現(xiàn)出了良好的特性[5]。
遺傳算法(genetic algorithm,簡稱GA)是一種模擬自然進(jìn)化過程來搜索最優(yōu)解的方法,其最早是由美國Michigen 大學(xué)的John Holland 于1975 年提出來的。遺傳算法在解決如旅行商問題、背包問題等復(fù)雜優(yōu)化問題方面,不斷取得成功,受到人們關(guān)注。遺傳算法的流程,見圖1。
圖1 遺傳算法流程圖
本文選取Co 負(fù)載量、Co/SiO2、裝料方式HAP 裝料比、乙醇濃度(mg/min)和溫度共五個(gè)變量進(jìn)行分析。根據(jù)問題特點(diǎn),采用雙層前饋神經(jīng)網(wǎng)絡(luò)模型進(jìn)行回歸分析,激活函數(shù)選擇為sigmoid 函數(shù),訓(xùn)練得到回歸神經(jīng)網(wǎng)絡(luò)。具體建模如下:
(1) 輸入輸出層及隱含層的設(shè)計(jì):輸入層設(shè)置5個(gè)節(jié)點(diǎn),輸出層設(shè)置一個(gè)節(jié)點(diǎn),隱含層設(shè)置8 個(gè)神經(jīng)元。
(2) 輸入輸入層五個(gè)變量的數(shù)據(jù),傳遞到隱含層。
(3) 正向傳播,數(shù)據(jù)經(jīng)過w 變換后,再添加額外的偏執(zhí)量b,求和。
(4) 激活函數(shù)sigmoid 函數(shù)表達(dá)式如下:
該函數(shù)又稱為logistic 函數(shù),用于隱形神經(jīng)元輸出,取值范圍為(0,1)且為單調(diào)增,它可以將一個(gè)實(shí)數(shù)映射到(0,1)區(qū)間內(nèi),且作為一個(gè)最大熵模型,受到噪聲數(shù)據(jù)的影響偏小。
(5) 通過多次反復(fù)迭代,不斷修正參數(shù)w,b 的值,降低損耗和誤差。在雙層前饋神經(jīng)網(wǎng)絡(luò)中,需要最小化的是KL 散度,直到其在容許范圍內(nèi),小于某個(gè)閾值為止。本文使用貝葉斯訓(xùn)練算法進(jìn)行訓(xùn)練。該訓(xùn)練算法基于貝葉斯公式,可以訓(xùn)練出更好的神經(jīng)網(wǎng)絡(luò)。貝葉斯公式的計(jì)算公式如下所示:
與其他神經(jīng)網(wǎng)絡(luò)模型相比,雙層前饋神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)是可以根據(jù)很好地對(duì)多元回歸問題進(jìn)行求解,準(zhǔn)確性好;同時(shí),該模型不僅可以有效解決回歸過程中遇到的問題,還能對(duì)結(jié)果的誤差進(jìn)行有效預(yù)測(cè)[6]。
經(jīng)過訓(xùn)練過后,得到的神經(jīng)網(wǎng)絡(luò)能夠較好地預(yù)測(cè)C4 收率的變化,均方差MSE 為35.1 459,可見回歸效果較好。
在訓(xùn)練出符合要求的神經(jīng)網(wǎng)絡(luò)后,筆者嘗試分析C4 烯烴收率同各變量之間的變化關(guān)系。本文使用遍歷法探究C4 烯烴收率的變化規(guī)律,即分別對(duì)Co 負(fù)載量、Co/SiO2、裝料方式HAP 裝料比、乙醇濃度(mg/min)和溫度進(jìn)行研究。最終結(jié)果,見圖2。
圖2 C4 烯烴收率大小隨各變量的變化情況
從圖中我們看出C4 收率隨變量變化的規(guī)律:當(dāng)Co負(fù)載量、Co/SiO2和HAP 裝料比、乙醇濃度(mg/min)增大時(shí),C4 烯烴收率先增加后減小;當(dāng)溫度增大時(shí),C4 烯烴收率單調(diào)遞增。由此可見,存在使得C4 烯烴收率最大的生產(chǎn)條件。本文接下來嘗試求取最優(yōu)生產(chǎn)條件。
對(duì)于神經(jīng)網(wǎng)絡(luò),由于其不同于一般的多項(xiàng)式函數(shù),無法使用拉格朗日法等傳統(tǒng)方法求取極值。對(duì)此,本文決定采用遺傳算法求解。
3.1.1 參數(shù)設(shè)置 參考成功案例,對(duì)以下參數(shù)設(shè)置如下:設(shè)置種群內(nèi)染色體數(shù)為40,交叉概率為0.8,變異概率為0.2,迭代次數(shù)為500 次。
3.1.2 染色體編碼 因?yàn)槭且粋€(gè)典型的求取函數(shù)極值的問題,而遺傳算法在解決函數(shù)極值問題時(shí)常使用二進(jìn)制進(jìn)行編碼,因此采用二進(jìn)制對(duì)染色體進(jìn)行編碼。采用二進(jìn)制編碼會(huì)涉及到編碼長度的問題。設(shè)二進(jìn)制編碼長度為L,問題的定義域?yàn)閇a,b],則精度ε 與長度L 有如下表達(dá)式:
設(shè)計(jì)的精度為0.0001,因此有
由于變量的定義域有所不同。對(duì)不同的定義域代入公式,計(jì)算出L 至少為22。因此本文采用24 位的二進(jìn)制數(shù)對(duì)染色體進(jìn)行編碼,以確保滿足精度要求。
3.1.3 適應(yīng)度函數(shù) 根據(jù)問題描述可知,C4 烯烴收率在定義域內(nèi)均大于0。因此,可以直接將C4 烯烴收率的計(jì)算公式作為適應(yīng)度函數(shù)。
3.1.4 選擇操作 選擇染色體的方式,常見的有輪盤賭選擇、歸一化幾何選擇和錦標(biāo)賽選擇等。對(duì)于本問題,小組選擇輪盤賭選擇操作。輪盤賭選擇過程如下:以旋轉(zhuǎn)輪盤n 次為基礎(chǔ),輪盤上的刻度是按每個(gè)染色體的適應(yīng)度來劃分的,適應(yīng)度越大,在輪盤上的刻度也越大,因此該染色體在輪盤上被選中的概率就越大。每次旋轉(zhuǎn)都為新的種群選擇一個(gè)染色體。輪盤賭的過程可以寫成如下形式:
對(duì)每個(gè)染色體Vi,其累計(jì)概率為qi。
步驟一:計(jì)算累計(jì)概率,公式如下:
步驟二:從區(qū)間(0,q1)。中產(chǎn)生一個(gè)隨機(jī)數(shù)r。
步驟三:若qi-1≤r≤qi,則選擇第i 個(gè)染色體Vi。
步驟四:重復(fù)步驟二步驟三共n 次,這樣可以得到n個(gè)染色體。
為了保證優(yōu)秀染色體能夠進(jìn)入下一代并提高迭代效率,小組在算法里會(huì)優(yōu)先選出5 個(gè)優(yōu)秀個(gè)體,再利用輪盤賭選擇35 個(gè)染色體,共同組成下一代種群。
3.1.5 交叉操作 在使用二進(jìn)制對(duì)染色體進(jìn)行編碼時(shí),交叉操作過程如下:隨機(jī)選取染色體編碼上兩個(gè)的位置,將位于選中位置所對(duì)應(yīng)的兩個(gè)編碼進(jìn)行交換位置。于是得到新的染色體編碼,完成交換操作。如染色體10011,選擇位置1 和3 交叉,得到的新染色體為00111。
3.1.6 變異操作 在使用二進(jìn)制對(duì)染色體進(jìn)行編碼時(shí),交叉操作過程如下:隨機(jī)選取染色體編碼上的一個(gè)位置,將選中位置所對(duì)應(yīng)的編碼取反,即:1→0,0→1。如染色體10011,選擇位置3 變異,得到的新染色體為10111。
經(jīng)過迭代計(jì)算,最終得到的最佳催化劑組合和溫度及此時(shí)的收率,見表1。
表1 使用遺傳算法得到的最優(yōu)解
對(duì)于所得到的最優(yōu)生產(chǎn)條件,還需要進(jìn)一步驗(yàn)證結(jié)果的有效性,確定該結(jié)果為全局最優(yōu)解,以防結(jié)果陷入局部最優(yōu)。筆者根據(jù)每一次迭代得到的最優(yōu)解,繪制出最優(yōu)個(gè)體變化過程,這就是算法迭代過程記錄。如果迭代過程是穩(wěn)健的,則曲線應(yīng)該是階梯型。對(duì)于我們的迭代過程,曲線如圖3 所示。
圖3 算法迭代過程情況
從圖3 可以看出,算法是平穩(wěn)迭代的,即計(jì)算過程是逐步逼近最優(yōu)解的,這證明我們計(jì)算出來的結(jié)果是有效的。
本論文采用了神經(jīng)網(wǎng)絡(luò)成功對(duì)C4 烯烴合成問題進(jìn)行回歸,并利用遺傳算法求解出了最優(yōu)的生產(chǎn)條件,總體而言是成功的。但不足的地方是所得結(jié)果與實(shí)際試驗(yàn)結(jié)果仍然存在偏差,基于目前的研究進(jìn)展,下一步的工作目標(biāo)為提高回歸精度,以此提升預(yù)測(cè)精度,得到更精確且貼合實(shí)際的解決辦法。