董玉民,侯 棟,耿馨雨,胡萬斌
(重慶師范大學(xué)計(jì)算機(jī)與信息科學(xué)學(xué)院 重慶 沙坪壩區(qū) 401331)
近年來,利用厭氧消化生產(chǎn)生物能源成為一種趨勢,越來越多的廢物管理廠利用厭氧消化分解有機(jī)廢物來生產(chǎn)甲烷[1]。由于甲烷的可燃性可以用來產(chǎn)生熱能和電能,因此利用厭氧消化生產(chǎn)生物能源具有巨大的潛力[2]。但厭氧消化是一個(gè)復(fù)雜的過程,多樣的有機(jī)物被厭氧微生物分解成甲烷和硫化氫等產(chǎn)物,所以需要對該問題進(jìn)行數(shù)學(xué)建模。機(jī)器學(xué)習(xí)算法的興起[3]和量子計(jì)算領(lǐng)域的發(fā)展[4-5]為創(chuàng)建一個(gè)精確的沼氣預(yù)測模型提供了可能。機(jī)器學(xué)習(xí)方法有助于在大規(guī)模維度空間的數(shù)據(jù)中提取信息,新興的量子算法具有計(jì)算效率高的優(yōu)勢,因此機(jī)器學(xué)習(xí)與量子計(jì)算的結(jié)合是一種趨勢。
為了穩(wěn)定甲烷的產(chǎn)量,必須對厭氧消化過程進(jìn)行建模,預(yù)警調(diào)控對系統(tǒng)的運(yùn)行非常重要。目前對于厭氧消化的建模主要分為線性回歸模型和神經(jīng)網(wǎng)絡(luò)模型,但線性回歸模型僅對具有線性關(guān)系的體系有好的預(yù)測效果。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型如卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)具有訓(xùn)練時(shí)間慢、準(zhǔn)確率低等問題,因此本文開發(fā)了一種多量子濾波器量子卷積神經(jīng)網(wǎng)絡(luò)(quantum convolutional neural network, QCNN)。在計(jì)算效率上由于量子態(tài)的疊加與并行計(jì)算能力的存在,使得量子計(jì)算比經(jīng)典計(jì)算具有更高的優(yōu)勢,同時(shí)又結(jié)合了量子計(jì)算和CNN 的優(yōu)點(diǎn),表現(xiàn)出更優(yōu)異的性能。量子機(jī)器學(xué)習(xí)領(lǐng)域最早可追溯到1995 年,文獻(xiàn)[6]最先提出量子神經(jīng)計(jì)算的概念。隨后幾年又涌現(xiàn)了其他的量子神經(jīng)網(wǎng)絡(luò),如文獻(xiàn)[7]提出的基于點(diǎn)神經(jīng)網(wǎng)絡(luò)模型,文獻(xiàn)[8]提出量子細(xì)胞神經(jīng)網(wǎng)絡(luò),文獻(xiàn)[9]提出的使用量子疊加態(tài)表示網(wǎng)絡(luò)。其中,卷積神經(jīng)網(wǎng)絡(luò)(CNN)是人工神經(jīng)網(wǎng)絡(luò)的一個(gè)子集,由一系列卷積層和池化層組成,用于收集權(quán)重和偏差進(jìn)行預(yù)測,對給定的數(shù)據(jù)集進(jìn)行預(yù)測[10]。卷積神經(jīng)網(wǎng)絡(luò)的輸入是2D 矩陣,修改它們接受一維輸入可以用來回歸[11];文獻(xiàn)[12]使用機(jī)器學(xué)習(xí)算法模型,通過微生物群落組成預(yù)測類型;目前主流的經(jīng)典算法有人工神經(jīng)網(wǎng)絡(luò)[13]、支持向量機(jī)[14]、隨機(jī)森林[15]和KNN[16]等,可以在回歸或分類模型中實(shí)現(xiàn)預(yù)測。遺傳算法自20 世紀(jì)以來已經(jīng)應(yīng)用于各種領(lǐng)域[17-19],文獻(xiàn)[20]使用GA(genetic algorithm)不僅優(yōu)化了甲烷生產(chǎn)效率,還確定了厭氧消化的最佳操作時(shí)間[20];文獻(xiàn)[21]利用GA 對乳制品廢水進(jìn)行預(yù)測,利用GA 減少影響參數(shù)。蟻群算法利用化學(xué)信息素軌跡解決優(yōu)化問題[22-24],文獻(xiàn)[25]通過ACO(ant colony optimization)連續(xù)優(yōu)化實(shí)現(xiàn)了污水污泥和食品廢物共消化的最佳基質(zhì)組成,模擬結(jié)果使沼氣產(chǎn)量最大化;文獻(xiàn)[26]將ACO 用于牛糞共消化的參數(shù)選擇,應(yīng)用于流程建模和流量預(yù)測。此外,輸入特征的選擇對厭氧消化過程也能產(chǎn)生很大影響。本文提出的模型消除了時(shí)間序列數(shù)據(jù)存在的趨勢和季節(jié)性偏差的影響,使數(shù)據(jù)保持平穩(wěn),驗(yàn)證了量子體系回歸模型預(yù)測沼氣產(chǎn)量的可行性。
本文實(shí)現(xiàn)了一種多量子濾波器的混合量子經(jīng)典卷積神經(jīng)網(wǎng)絡(luò),旨在完成以下目標(biāo):1) 對時(shí)間序列數(shù)據(jù)進(jìn)行嚴(yán)格的預(yù)處理并進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,滿足QCNN 模型輸入;2) 提出一種改進(jìn)的QCNN 模型,模擬輸入特征的短期記憶,接受類似的數(shù)據(jù)時(shí)間窗模擬短期記憶,提升預(yù)測時(shí)間序列數(shù)據(jù)的性能;3) 對量子體系模型評估,實(shí)驗(yàn)證明模型的預(yù)測效果。
和經(jīng)典的比特相似,量子計(jì)算的基本單位叫做量子比特,量子比特的狀態(tài)描述了其具有的屬性[27]。傳統(tǒng)的經(jīng)典比特用0、1 表示,在量子計(jì)算理論中,用狄拉克符號表示:
量子邏輯門是實(shí)現(xiàn)量子變換的關(guān)鍵,可以通過對量子態(tài)應(yīng)用一系列量子邏輯門實(shí)現(xiàn)變換,也可以描述為希爾伯特空間上的幺正算符,下面介紹幾種常用的量子門。
XX(或Ising)類的門有坐標(biāo)CAN(t,0,0),這構(gòu)成了威爾室的前緣。這包括身份和CNOT 門,如式(4)所示:
CNN 是把一個(gè)個(gè)的神經(jīng)元以一定的拓?fù)浣Y(jié)構(gòu)連接起來的網(wǎng)絡(luò),組合成更高效的網(wǎng)絡(luò)架構(gòu)。經(jīng)典的CNN(如圖1 所示)由三部分組成:卷積層、池化層和全連接層,各層神經(jīng)元以寬、高、深度三維排列。在該架構(gòu)中,將CNN 應(yīng)用于多變量時(shí)間序列回歸。CNN 的輸出權(quán)重傳遞到MLP(multi-layer perception)中,并用于沼氣產(chǎn)量估計(jì)。沼氣的特征作為卷積層的輸入,并且在最后的卷積之后,將特征圖連接成一個(gè)平坦向量,作為沼氣產(chǎn)量估計(jì)的MLP 輸入。訓(xùn)練模型使用Adam 優(yōu)化器反向傳播,采用LeakyRelu 激活函數(shù)進(jìn)行評估,再從卷積算子、偏差項(xiàng)和連續(xù)層的特征映射來獲得輸出。
圖1 經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)模型
轉(zhuǎn)換后的量子態(tài)輸入向量進(jìn)入量子卷積,進(jìn)行一系列的幺正變換。兩個(gè)相鄰量子位之間應(yīng)用量子卷積Uc提取特征,通過卷積電路尋找信息的隱藏狀態(tài),卷積層由不同的單量子門和雙量子門組合形成,Up為 量子池化。如圖3 所示,Uc和Up分別是一組最優(yōu)的參數(shù)化量子電路。在單量子旋轉(zhuǎn)門{Ri=R(αi,βi,γi)}中,分別沿X、Y和Z軸旋轉(zhuǎn)角度(αi,βi,γi),其中,更新旋轉(zhuǎn)門的參數(shù)是隨機(jī)的,并會(huì)在基于共軛梯度法的迭代優(yōu)化中更新參數(shù)。池化層Up對量子位應(yīng)用量子門,但只追蹤一個(gè)量子位,降低特征映射的維數(shù),從而減少量子系統(tǒng)的尺寸,最后測量期望值。
圖2 時(shí)間窗QCNN 模型的密集角編碼量子電路
圖3 時(shí)間窗QCNN 模型的卷積池化層量子電路
通過研究輸入特征的自相關(guān)周期,分析得輸入特征n的時(shí)間窗口為3,將3 天的“時(shí)間窗”數(shù)據(jù)提供給模型,作為輸入特征的短期記憶。每個(gè)電路代表t=t?2、t=t?1、t=t處的離散數(shù)據(jù)點(diǎn),這些電路被堆疊并作為QCNN 的輸入。為了給模型提供歷史數(shù)據(jù),通過串聯(lián)t=t?2、t=t?1、t輸入的電路構(gòu)建更大的量子電路。
考慮到電路深度和整體電路表達(dá)性,不必使用量子卷積使量子位數(shù)降低到一個(gè),可以選擇一到兩輪量子卷積并將結(jié)果輸入到經(jīng)典網(wǎng)絡(luò)。如表1 所示,單量子濾波器QCNN 整體電路包含63 個(gè)參數(shù),比較高的電路深度和較多的可變參數(shù)數(shù)量可能會(huì)導(dǎo)致更大的噪聲。本文設(shè)計(jì)了多量子濾波器QCNN,結(jié)合量子的并行計(jì)算能力和神經(jīng)網(wǎng)絡(luò)的處理信息能力,能達(dá)到更好的效果。卷積運(yùn)算涉及在相鄰量子位之間應(yīng)用量子邏輯門,池運(yùn)算通過測量量子位或應(yīng)用多個(gè)量子位門來降低量子模型維數(shù)。卷積層和池化層依次應(yīng)用,減少量子系統(tǒng)的維度空間。模型舍棄過多的電路迭代,只采取一輪迭代,應(yīng)用21 個(gè)可變參數(shù)數(shù)量,并將3 個(gè)量子濾波器的輸入分別傳遞到全連接神經(jīng)網(wǎng)絡(luò)以獲得MSE(mean square error),從而優(yōu)化參數(shù)。也就是在所有位上應(yīng)用讀出量子比特Z,然后銜接全神經(jīng)網(wǎng)絡(luò),Z軸變換用于測量量子比特的量子態(tài),并獲得模型對產(chǎn)生的沼氣的估計(jì)期望值。模型用微分器作為量子梯度下降函數(shù),并使用Adam 優(yōu)化器估計(jì)QCNN 參數(shù)進(jìn)行模型訓(xùn)練。在適度的經(jīng)典輔助下,能實(shí)現(xiàn)更好的效果。多濾波器QCNN 模型如圖4 所示。
表1 單量子濾波器和多量子濾波器QCNN 模型對比
圖4 多量子濾波器QCNN 模型:編碼層、變分層和經(jīng)典層
如圖4 所示,在量子門的作用下,輔助比特與其他量子比特相連,用輔助量子比特寄存變換結(jié)果。其測量為非線性變換,相當(dāng)于激活函數(shù)作用。在P個(gè)量子比特展開的o=2P維希爾伯特空間中,量子態(tài)| ψX?向 | ψW?上 投影,其中,| ψX?是攜帶權(quán)重向量Wi的量子態(tài),就得到了變換結(jié)果z=?ψX|ψW?,然后通過U(θ)將Z編碼到基底 |t?上,如式(15)所示:
酉矩陣 U (θ)不是唯一的,可以選擇不同的量子電路獲取更好的效果,因此如何選取電路也是一個(gè)重點(diǎn)研究方向。
參數(shù)化量子電路是一種神經(jīng)網(wǎng)絡(luò)的新范式,和權(quán)重矩陣不同,以量子門的相位 θ作為訓(xùn)練參數(shù),經(jīng)過PQC(parameterized quantum circuits)的酉變換U(θ), 讀出量子比特獲得一個(gè)期望值f(θ)。對于數(shù)據(jù)集 {xi,yi} , 經(jīng)過量子編碼后得到量子態(tài) | ψX?,再經(jīng)過參數(shù)化量子電路得到期望值f(θ), 對f(θ)進(jìn)行觀測,測量結(jié)果與yi的均方誤差(MSE)作為損失函數(shù)L(θ)。 在 θ 的更新公式中,要選取適當(dāng)?shù)摩?,否則無法進(jìn)行快速的收斂,如果 η過大會(huì)使迭代后的參數(shù)θk′進(jìn)入下一個(gè)周期,對于不同深度的電路,也就是電路參數(shù)規(guī)模,要求不同的參數(shù)η:
式(20)完全展開為8 項(xiàng),其中4 項(xiàng)能相互抵消,經(jīng)過變換上式又可變?yōu)椋?/p>
根據(jù)收集到的厭氧消化過程數(shù)據(jù)參數(shù)與其特性,并結(jié)合式(17)的模型更新規(guī)則,模型處理數(shù)據(jù)流程如下(如圖5):
圖5 算法流程圖
1) 將時(shí)間序列數(shù)據(jù)進(jìn)行嚴(yán)格的預(yù)處理,包括隨機(jī)森林插補(bǔ)缺失值和指數(shù)平滑,解決數(shù)據(jù)不可控的無規(guī)則變動(dòng)影響;
2) 將經(jīng)典數(shù)據(jù)轉(zhuǎn)換為量子態(tài)的數(shù)據(jù)編碼到QCNN模型,數(shù)據(jù)經(jīng)過酉運(yùn)算量子操作后測量期望值;
3) 在基于Adam 優(yōu)化器的迭代優(yōu)化過程中更新參數(shù)。通過使用量子旋轉(zhuǎn)角更新策略,調(diào)整量子概率幅;
4) 如果迭代次數(shù)達(dá)到最大迭代次數(shù),則退出循環(huán),輸出最優(yōu)解。否則轉(zhuǎn)到步驟2),繼續(xù)循環(huán);
5) 輸出最終的評價(jià)指標(biāo)和預(yù)測值;
6) 結(jié)束訓(xùn)練。
實(shí)驗(yàn)所用數(shù)據(jù)取自倫敦帝國理工學(xué)院項(xiàng)目公開的數(shù)據(jù)集[28],提供了廢物管理設(shè)施的化學(xué)成分和產(chǎn)生沼氣的數(shù)據(jù)。數(shù)據(jù)跨度為28 個(gè)月(851 天),如表2 所示。數(shù)據(jù)集由27 個(gè)特征組成,其記錄了廢物管理設(shè)施內(nèi)儲(chǔ)罐的日常化學(xué)成分。為確保在預(yù)處理期間將最小的噪聲引入到特征,需要去除稀疏度大和相關(guān)性低的特征,稀疏度表示了數(shù)據(jù)的稀疏程度。在分析了數(shù)據(jù)的稀疏程度后,本文從27 個(gè)輸入特征中提取了5 個(gè)關(guān)鍵輸入特征。實(shí)驗(yàn)基于Python3.8 環(huán)境開發(fā),其中Tensorflow 庫用于開發(fā)經(jīng)典模型,Tensorflow Quantum 和Cirq 庫開發(fā)量子模型。其中20 個(gè)月的數(shù)據(jù)用作訓(xùn)練數(shù)據(jù),驗(yàn)證數(shù)據(jù)和測試數(shù)據(jù)分別為4 個(gè)月。
這些特征是濃縮初級污泥(TPS)、濃縮廢活性污泥(TWAS)的Qin、DS%和VS%,以及消化污泥(DS)的Qout、DS%和VS%。在無氧條件下,厭氧細(xì)菌將有機(jī)物分解為 CH4、 H2S等能源,實(shí)驗(yàn)數(shù)據(jù)如表2 所示。數(shù)據(jù)經(jīng)過平滑處理和插補(bǔ)缺失值處理后得到的數(shù)據(jù)集特征圖如圖6 所示。
表2 厭氧消化過程數(shù)據(jù)參數(shù)
圖6 處理后的數(shù)據(jù)集特征圖(包括濃縮初級污泥(TPS)、濃縮廢活性污泥(TWAS)等特征)
本文設(shè)計(jì)了4 個(gè)主要的模型來預(yù)測沼氣排放量。1) BP 網(wǎng)絡(luò)模型(ANN)[29],BP 網(wǎng)絡(luò)作為一種多層前饋神經(jīng)網(wǎng)絡(luò),通過反向傳播不斷調(diào)整各層的權(quán)重和偏置,達(dá)到預(yù)測產(chǎn)氣量的目的。2) 帶時(shí)間窗的卷積神經(jīng)網(wǎng)絡(luò)(CNN),接受長度為n的輸入特征,n是觀測的自相關(guān)周期,向模型提供短期記憶。3) K-近鄰算法模型(KNN)[12],是一種機(jī)器學(xué)習(xí)方法,可以應(yīng)用于消化性能的回歸和分類模型中。4)多量子濾波器QCNN 模型(QCNN),在量子卷積神經(jīng)網(wǎng)絡(luò)模型基礎(chǔ)上加了量子濾波器,并在卷積池化層設(shè)計(jì)了最優(yōu)的電路。其中引入CNN 模型能體現(xiàn)出量子算法的優(yōu)勢,為了能更好體現(xiàn)出這種優(yōu)勢,還引入了ANN、KNN 模型。實(shí)驗(yàn)分析部分采用CNN、ANN、KNN、QCNN 來分別表示這4 種模型,下面將詳細(xì)討論這些模型的性能差異。
通過觀察圖7~圖10,將驗(yàn)證集的預(yù)測值和真實(shí)值進(jìn)行比較。其中QCNN 模型預(yù)測精度最好,預(yù)測值和實(shí)際值大部分吻合,模型KNN 和CNN次之,模型ANN 表現(xiàn)最差,預(yù)測值均高于實(shí)際值,模型QCNN 可以對甲烷產(chǎn)量進(jìn)行相當(dāng)準(zhǔn)確的預(yù)測。由于ANN 模型輸入過多的輸入變量,導(dǎo)致訓(xùn)練時(shí)間過大,帶來了較大的全局誤差,最后導(dǎo)致精度不足。其中CNN 模型也取得了不錯(cuò)的效果,但相對于KNN 模型來說準(zhǔn)確度較低,這是由于較大的偏差和異常值導(dǎo)致了精度不足。模型能夠取得良好的精度在于本文對數(shù)據(jù)集進(jìn)行了預(yù)處理,通過指數(shù)平滑去除高的噪聲,消除數(shù)據(jù)間的差異;并通過隨機(jī)森林插補(bǔ)數(shù)據(jù)缺失值,從而增加數(shù)據(jù)的完整性。并且多量子濾波器結(jié)構(gòu)可以讓模型不易陷入局部最優(yōu)。
圖7 ANN 模型中實(shí)際甲烷產(chǎn)量和預(yù)測甲烷產(chǎn)量比較
圖8 CNN 模型中實(shí)際甲烷產(chǎn)量和預(yù)測甲烷產(chǎn)量比較
圖9 KNN 模型中實(shí)際甲烷產(chǎn)量和預(yù)測甲烷產(chǎn)量比較
圖10 QCNN 模型中實(shí)際甲烷產(chǎn)量和預(yù)測甲烷產(chǎn)量比較
為了更好對比模型的性能,還設(shè)計(jì)了離散數(shù)據(jù)模型和時(shí)間窗數(shù)據(jù)模型,離散數(shù)據(jù)缺乏短期記憶,不能良好的捕捉數(shù)據(jù)趨勢。而時(shí)間窗數(shù)據(jù)能夠捕捉數(shù)據(jù)開始和結(jié)束時(shí)候的沼氣產(chǎn)量趨勢。如圖11 所示,Discrete 數(shù)據(jù)下的ACCURACY 和KAPPA 值均小于Time-window 數(shù)據(jù)。CNN 模型在Discrete數(shù)據(jù)上的KAPPA 值小于Time-window 數(shù)據(jù)下的KAPPA 值近0.04,精確度也低了將近8%;QCNN模型在Discrete 數(shù)據(jù)上的ACCURACY 也小了將近6%,KAPPA 值降低了將近0.2。CNN 和QCNN模型在ACCURACY 和KAPPA 值表現(xiàn)上都出現(xiàn)了不同程度的下降。
圖11 Discrete 和Time-window 情況下的ACCURACY 值和KAPPA 值對比
如表3 所示,量子信息編碼增加了量子體系結(jié)構(gòu)的變換,改變了原始RMSE 和MAE 的規(guī)模,記錄了RMSE%和MAE%誤差指標(biāo)。對于類似的體系結(jié)構(gòu),QCNN 模型性能優(yōu)于其他模型。MAPE和MAE 值均優(yōu)于其他經(jīng)典模型,ACCURACY 值為83.308%,KNN 的ACCURACY 值 為80.4%,CNN 為77.26%,ANN 為74.72%。與經(jīng)典的CNN模型和KNN 算法相比,QCNN 能更準(zhǔn)確預(yù)測沼氣生產(chǎn)的趨勢。更好的性能歸因于QCNN 的結(jié)構(gòu),多量子濾波的模型結(jié)構(gòu)產(chǎn)生了更低的噪聲,卷積層和池化層高效的線路組合更易提取信息中的隱藏狀態(tài)。同時(shí)在適度的經(jīng)典輔助下,得到了更優(yōu)異的性能。ANFIS[30]是目前不錯(cuò)的預(yù)測模型,其RMES和MAE 值分別為3.986 和0.673,這些指標(biāo)被本文模型擊敗。因此,QCNN 被認(rèn)為是以上算法模型中最好的模型。
表3 模型性能對比
本文提出一個(gè)改進(jìn)的QCNN 模型,使用小數(shù)據(jù)子集作為輸入特征的短期記憶,準(zhǔn)確地預(yù)測了沼氣產(chǎn)量。在改進(jìn)的QCNN 體系結(jié)構(gòu)上建立量子多變量時(shí)間序列預(yù)測模型,相比CNN 與KNN,準(zhǔn)確度分別提升了8%與3.3%。因此,探索結(jié)合經(jīng)典網(wǎng)絡(luò)和量子計(jì)算的方式開發(fā)QCNN模型,可以提供更高的精度。未來研究主要集中在增加數(shù)據(jù)量和結(jié)合其他優(yōu)化算法兩方面,以更好地提高厭氧消化預(yù)測的準(zhǔn)確性并減少訓(xùn)練成本。