竇 通, 周振威, 劉 濤, 汪凱蔚, 汪 皓, 崔 巍
(1.華南理工大學自動化科學與工程學院,廣東廣州 510640;2.工業(yè)和信息化部電子第五研究所,廣東廣州 511370;3.鴻富錦精密電子(煙臺)有限公司,山東煙臺 264000)
量子計算是一種基于量子力學規(guī)則的新型計算范式,有望在人工智能、組合優(yōu)化、量子化學等領(lǐng)域解決經(jīng)典計算機難以解決的問題.理論上,未來大規(guī)模的容錯量子計算機可以在質(zhì)因數(shù)分解[1]、無序結(jié)構(gòu)搜索[2]、求解線性方程組[3]等問題上實現(xiàn)加速,然而噪聲和量子比特數(shù)的限制阻礙了上述量子算法的實現(xiàn).當前量子技術(shù)離通用量子計算機要求的保真度、相干時間還有很長的距離.在未來的一段時間,人們能使用的量子計算設(shè)備只有幾十到幾百的量子比特,同時這些量子比特是沒有經(jīng)過糾錯的物理量子比特,而不是邏輯量子比特,且只能進行相干時間有限的不完美的量子操作.這些量子計算設(shè)備被稱為帶噪聲中等規(guī)模量子(noisy intermediate-scale quantum,NISQ)計算設(shè)備[4].因此在帶噪聲中等規(guī)模量子計算設(shè)備上進行計算必須考慮如下因素:
1) 量子比特的數(shù)量有限;
2) 量子比特之間的連通性有限;
3) 限制量子電路深度的相干和非相干錯誤.
如何最大限度地利用現(xiàn)有的量子資源,為帶噪聲中等規(guī)模量子計算設(shè)備尋找可以發(fā)揮其優(yōu)勢的應用問題,是當前量子計算領(lǐng)域的研究重點.現(xiàn)階段,變分量子算法(variational quantum algorithm,VQA)已經(jīng)成為在NISQ設(shè)備上獲得量子優(yōu)勢的主要策略,因為變分量子算法采用的線路擬設(shè)(ansatz)在低深度時可以有效實現(xiàn).其旨在借助經(jīng)典計算機的力量盡可能發(fā)揮有噪中規(guī)模量子計算設(shè)備的計算能力去解決具體的問題.變分量子算法的一部分任務由量子計算設(shè)備完成,然后通過經(jīng)典計算調(diào)整量子計算部分的可調(diào)參數(shù),反復迭代最后輸出結(jié)果.
基于變分量子算法,學術(shù)界和工業(yè)界在機器學習領(lǐng)域進行了許多應用的探索,并產(chǎn)生了新興的量子機器學習(quantum machine learning,QML)[5-8]研究領(lǐng)域.量子機器學習嘗試利用量子計算的優(yōu)勢從而增強機器學習模型的性能,并致力于回答下面的開放性問題:
1) 量子信息如何影響機器學習模型的行為?如何利用它?
2) 量子計算機是否更適合高度相關(guān)的數(shù)據(jù)集(或具有量子相關(guān)的經(jīng)典數(shù)據(jù)集)?
3) 量子機器學習模型能比經(jīng)典機器學習模型學習得更快嗎?
4) 如何降低量子機器學習模型的復雜性,以及是否能從更小的數(shù)據(jù)樣本中學習?
本文擬在當前已實現(xiàn)的量子計算硬件條件下,研究如何優(yōu)化特征提取方法從而提升量子神經(jīng)網(wǎng)絡的性能.進一步,本文將所研究的混合量子-經(jīng)典神經(jīng)網(wǎng)絡模型應用到故障數(shù)據(jù)異構(gòu)以及是否發(fā)生故障未知的故障診斷問題中,從而進一步驗證所提出的混合神經(jīng)網(wǎng)絡的有效性.該量子-經(jīng)典混合卷積神經(jīng)網(wǎng)絡(convolutional neural networks,CNN)[9-13]可以通過局部連接和參數(shù)共享學習數(shù)據(jù)的上下文關(guān)聯(lián)性.本文異常檢測的基本思想是,將檢測問題轉(zhuǎn)化為分類問題,通過卷積神經(jīng)網(wǎng)絡強大的特征提取能力提取相關(guān)特征,然后經(jīng)過分類器進行分類.文獻[14]提出了一種量子-經(jīng)典混合卷積神經(jīng)模型,該模型通過隨機量子線路代替經(jīng)典的卷積操作,從而構(gòu)造經(jīng)典計算難以產(chǎn)生的復雜的映射關(guān)系,并在手寫數(shù)字識別任務上取得較好的結(jié)果.但由于選取的量子線路具有隨機性,與問題或數(shù)據(jù)無關(guān);并且線路的參數(shù)固定,會導致最后結(jié)果具有很大的隨機性.因此,本文在文獻[14]的模型基礎(chǔ)上,提出一種基于量子自編碼器[15-16]和K-medoids聚類算法的無監(jiān)督特征學習方法,可用于多層次結(jié)構(gòu)的特征學習.該方法的關(guān)鍵是通過量子自編碼器將數(shù)據(jù)與量子線路的參數(shù)關(guān)聯(lián)起來,并通過K-medoids聚類算法選取在“質(zhì)點”的量子自編碼器作為量子-經(jīng)典混合卷積神經(jīng)模型的量子“濾波”器,然后再將選取好的“量子”濾波器通過卷積形式進行特征提取.實驗說明,該模型在軸承異常檢測問題上具有較好的效果.
本文結(jié)構(gòu)如下:第2節(jié)介紹量子變分算法的基本概念與設(shè)計思想;第3節(jié)簡單介紹基于量子變分算法的量子自編碼器;第4節(jié)介紹本文提出的無監(jiān)督特征學習方法;第5節(jié)為實驗及分析;最后以第6節(jié)作為論文的總結(jié).
本節(jié)將簡單介紹變分量子算法的基礎(chǔ)概念,使用的主要符號如表1所示.變分量子算法的核心在于將計算任務轉(zhuǎn)化為優(yōu)化問題,由量子計算機和經(jīng)典計算機協(xié)同完成任務.量子計算機執(zhí)行困難的部分,而經(jīng)典計算機完成相對簡單的優(yōu)化任務.可以表達為下式:
表1 主要符號表Table 1 Notations
變分量子算法典型的算法流程如圖1所示,通常包括狀態(tài)準備、參數(shù)化酉變換、測量和經(jīng)典優(yōu)化器.變分量子算法可分為如下步驟:
圖1 變分量子算法流程圖Fig.1 Framework for variational quantum algorithm
步驟1 在量子計算設(shè)備上準備量子態(tài)ρin;
步驟2 施加由參數(shù)→θ表征的酉變化U(→θ);
步驟3 在厄密算符?O上對量子線路末態(tài)進行測量,求取代價函數(shù)f(→θ);
步驟4 經(jīng)典計算機根據(jù)損失函數(shù)的值更新參數(shù)→θ;
步驟5 重復步驟1-4,直至收斂.
值得注意的是,變分量子算法通常包含一個精心設(shè)計的代價函數(shù)f,使得當f取最小值時可以實現(xiàn)計算任務.由于代價函數(shù)實現(xiàn)了從實數(shù)(可調(diào)參數(shù))到實數(shù)(測量結(jié)果)的映射,變分量子算法可以使用經(jīng)典優(yōu)化方法來優(yōu)化可調(diào)參數(shù)→θ.可見,該算法結(jié)合了量子設(shè)備的計算能力與經(jīng)典設(shè)備的優(yōu)化方法,故又稱作混合量子-經(jīng)典算法.
實現(xiàn)變分量子算法必須考慮如何設(shè)計代價函數(shù)將計算任務轉(zhuǎn)化為優(yōu)化問題,以及如何構(gòu)造一個參數(shù)化的酉變換(如果算法處理的任務涉及到經(jīng)典數(shù)據(jù),則需要額外的編碼過程將數(shù)據(jù)轉(zhuǎn)換成量子數(shù)據(jù)).此外,變分量子算法中采用的經(jīng)典優(yōu)化方法往往會對算法的效率和準確度產(chǎn)生影響.特別的,相比于不基于梯度的優(yōu)化方法,解析梯度以及解析高階導數(shù)因為需要運行更少的量子電路來決定優(yōu)化方向已經(jīng)成為當前變分量子算法所關(guān)注的重點.本節(jié)接下來將簡要介紹變分量子算法中代價函數(shù)和參數(shù)化酉變換兩者基本概念.
變分量子算法中的代價函數(shù)一般具有如下形式:
其中:ρj是一組輸入量子態(tài);Hj是一組厄密算符;〈Hj〉=Tr(HjU(→θ)ρjU(→θ)?)表示在線路末端進行Hj測量的結(jié)果;fj是一組經(jīng)典函數(shù),表示對測量結(jié)果的經(jīng)典后處理.由變分量子算法的框架可知,代價函數(shù)的設(shè)計必須滿足:當且僅當代價函數(shù)達到全局最小時,計算任務求得解.這被稱為變分量子算法的忠實性(faithfulness)條件[17].
值得注意的是,考慮到在帶噪聲中等規(guī)模量子設(shè)備上的適用性,變分量子算法的代價函數(shù)必須能夠高效地計算.在實際中,Hj一般為泡利算符.此時損失函數(shù)可以直接通過對量子態(tài)的泡利測量得到.特別的,在許多常見的物理模型(如伊辛模型)中,Hj寫成局部泡利算符的線性組合
其中Pj,k是泡利算符,且只不平凡地作用在局部的量子比特上.若每一個Pj,k最多只作用于m個量子比特,則稱損失函數(shù)為m-局部的(m-local).局部損失函數(shù)相較于全局損失函數(shù)在梯度消失問題[18]上被認為更具有優(yōu)勢.
在帶噪聲中等規(guī)模量子計算設(shè)備實現(xiàn)參數(shù)化的酉變換是變分量子算法的一個關(guān)鍵.參數(shù)化量子電路(parameterized quantum circuit,PQC)是一種通用的參數(shù)化酉變換實現(xiàn)方式.在參數(shù)化量子電路中,電路一般采用分層結(jié)構(gòu):
而不含參數(shù)的酉變換Wl作為連接層,一般由鄰近量子比特間的CNOT或CZ雙比特門構(gòu)成,為電路提供糾纏能力.參數(shù)化電路的結(jié)構(gòu)也常被稱為擬設(shè)(ansatz).從PQC的結(jié)構(gòu)邏輯來看,變分量子算法可以說是經(jīng)典計算機器學習方法(如神經(jīng)網(wǎng)絡)的量子擴展,故參數(shù)化量子線路又可以認為是量子神經(jīng)網(wǎng)絡(quantum neural network,QNN)[19].
盡管變分量子算法的發(fā)展迅速,但該領(lǐng)域仍有許多挑戰(zhàn)需要解決.這里簡單介紹變分量子算法的可訓練性(trainability)問題.
經(jīng)典的機器學習中,自編碼器(autoencoder,AE)可以看成一種神經(jīng)網(wǎng)絡,可以學習高維空間中數(shù)據(jù)有效的低維表示.其任務是給定輸入x,將x映射到低維表示h,而x可以從h中重構(gòu).該網(wǎng)絡可以分為兩部分:一個由映射h=e(x)表示的編碼器和一個生成重構(gòu)的解碼器,由映射r=d(h)表示.圖2展示了自編碼器的一般結(jié)構(gòu).自編碼器的學習過程可以表述為最小化一個損失函數(shù)
圖2 經(jīng)典自編碼器的一般結(jié)構(gòu),通過內(nèi)部表示h將輸入x映射到輸出(重構(gòu))rFig.2 The general structure of a classical autoencoder,mapping an input x to an output(reconstruction)r through an internal representation h
其中g(shù)(·,·)是一個損失函數(shù),表示懲罰d(e(x))與x之間的差異.
基于經(jīng)典自編碼器的思想,圖3為一種基于量子變分算法的量子自編碼器模型,可以用來執(zhí)行量子數(shù)據(jù)的自編碼任務.與經(jīng)典的自編碼器模型相似,量子自編碼器由一組節(jié)點表示輸入,每個節(jié)點代表一個量子比特,網(wǎng)絡的第1層代表輸入寄存器,最后一層代表輸出寄存器.對于量子自編碼器中的量子線路,輸入態(tài)包含的部分信息在經(jīng)過編碼部分的量子線路后被丟棄(被測量的量子比特稱為“丟棄比特”),然后初始化為一些參考態(tài)(通常為|0〉態(tài)),并使用它實現(xiàn)解碼操作,并將其與初態(tài)進行比較.最后,計算輸入態(tài)與重構(gòu)輸出態(tài)的偏差,本文用兩量子態(tài)之間的保真度進行度量,如下式所示:
圖3 一種量子自編碼器的結(jié)構(gòu)Fig.3 The structure of a quantum autoencoder
時,量子自編碼器訓練成功.
量子自編碼器的編碼部分可以由參數(shù)化量子線路組成,由U(θ)表示.簡單地,解碼部分可以用U(θ)?表示.這時候當“丟棄比特”的測量結(jié)果等于參考態(tài),則被編碼的量子態(tài)可以完美地重構(gòu)為輸出態(tài).本文可以采用“丟棄比特”與參考態(tài)之間的保真度作為損失函數(shù),這樣可以使用基于梯度下降的算法對參數(shù)進行優(yōu)化,并且在優(yōu)化時忽略解碼部分的量子線路.
文獻[14]基于卷積神經(jīng)網(wǎng)絡提出了一種量子-經(jīng)典混合神經(jīng)網(wǎng)絡,主要是利用隨機量子線路代替卷積神經(jīng)網(wǎng)絡中的卷積操作,可以把量子線路看作量子“濾波器”.動機是使用隨機的非線性特征可以提高機器學習算法的性能和減少訓練時間,而量子線路可以映射經(jīng)典計算機難以高效計算復雜的函數(shù)關(guān)系.然而因為“貧瘠高原”現(xiàn)象的存在,許多隨機挑選的參數(shù)化量子線路在很大的參數(shù)空間內(nèi),其輸出態(tài)的量子性質(zhì)是相似的,這會使得隨機量子線路產(chǎn)生的非線性特征相近.本節(jié)將介紹一種結(jié)合量子自編碼器和Kmedoids聚類方法的量子“濾波器”選取方法,并用于量子特征提取.
總體上看,無監(jiān)督學習過程可以分為以下3個步驟:
1) 隨機選取多個數(shù)據(jù)塊和參數(shù)化量子線路的結(jié)構(gòu),對每個數(shù)據(jù)塊訓練一個量子自編碼器;
2) 通過K-medoids算法對訓練得到的量子自編碼器進行聚類;
3) 對訓練數(shù)據(jù)進行預處理并分類.
正如第2.2節(jié)所提及的,文獻[21]列舉了若干能夠在含噪聲中等規(guī)模量子計算設(shè)備(NISQ)上實現(xiàn)的量子線路結(jié)構(gòu)(ansatz).本文將采取表達能力較強的4個量子線路,即circuit 5,13,4,6進行實驗.
選取好量子線路結(jié)構(gòu)的寬度和深度,初始化好線路的參數(shù)之后,對選取的數(shù)據(jù)塊訓練一個量子自編碼器.然后運行編碼部分的線路,得到末態(tài).可知可以通過量子編碼線路的末態(tài)表征該量子自編碼器,所以對量子自編碼器進行聚類本質(zhì)上是對量子編碼線路的末態(tài)進行聚類.由于需要聚類的量子態(tài)眾多,為了方便,本文對所有量子態(tài)在計算基矢上進行多次測量,得到了每個量子態(tài)的概率分布描述xi.通過對量子態(tài)概率分布進行聚類從而實現(xiàn)對量子線路的聚類.假設(shè)有m個不同量子線路,所得樣本集為
其中每一個樣本為以向量表示的概率分布.若希望將X劃分為k類,則算法如表2所示.
表2 用于量子線路的K-medoids聚類算法Table 2 K-medoids for clustering quantum circuit
需要注意的是,由于輸入數(shù)據(jù)本質(zhì)上是一個概率分布,距離度量函數(shù)d(xj,xi)=dji選取兩個概率分布之間的JS散度(jensen-shannon divergence,JSD),如下式:
其中P,Q為兩個概率分布.
得到聚類的結(jié)果之后,選取每個簇類中心的概率分布所代表的量子線路作為一個“量子”濾波器,這樣便可以得到k個“量子”濾波器.可以根據(jù)“量子”濾波器的需求選取k,為了更好的收斂也可通過手肘法確定k.
通過上述無監(jiān)督學習,可以得到k個“量子”濾波器,這樣對于輸入x ∈RN可以學習到新的表示y=g(x)∈RM.
4.3.1 特征提取
本節(jié)將通過數(shù)值實驗驗證所提方法的可行性,該實驗主要關(guān)注軸承的異常檢測問題.主要因為異常檢測是一個復雜的問題,在相當長的一段時間內(nèi),一直是機器學習領(lǐng)域的一個具有挑戰(zhàn)性的問題[23-24].而軸承是在機械設(shè)備中具有廣泛應用的關(guān)鍵部件之一.由于過載、疲勞、磨損、腐蝕等原因,軸承在機器操作過程中容易損壞,造成設(shè)備劇烈搖晃、設(shè)備停機、停止生產(chǎn)、甚至人員傷亡,所以軸承狀態(tài)的監(jiān)測和分析非常重要.如果可以發(fā)現(xiàn)軸承的早期弱故障,則防止故障造成損失.一般來說,早期的軸承弱故障是復雜的,難以檢測.
本實驗使用一個小型的真實軸承振動信號數(shù)據(jù)集.該數(shù)據(jù)集中,軸承有3種故障:外圈故障、內(nèi)圈故障、滾珠故障,外加正常的工作狀態(tài).如表3所示,結(jié)合軸承的3種直徑(直徑1、直徑2、直徑3),軸承的工作狀態(tài)有10類,見表1所示.
表3 故障類別Table 3 The fault categories
數(shù)據(jù)集中,訓練集樣本數(shù)為629,測試集個數(shù)為163.每一個樣本由6000個時間序列的采樣點組成,標簽使用獨熱(one-hot)編碼.
本實驗訓練一層基于量子自編碼器的量子“卷積”層.對于每種量子線路的擬設(shè),需要選擇的參數(shù)有兩個:線路的寬度,即量子比特的數(shù)目n;線路的深度,即擬設(shè)的層數(shù)L.對于線路的量子比特數(shù)目,統(tǒng)一選取n=6.對于線路的深度,對于每種結(jié)構(gòu)的線路,選取L=2.而量子線路參數(shù)的選取則從區(qū)間[0,2π]中隨機均勻選取.總共訓練600個量子自編碼器.
經(jīng)過K-medoids聚類之后,得到9個聚類中心,即9個“量子”濾波器.在“量子”卷積操作中,步長s=32,每個樣本對應的輸出數(shù)據(jù)為9個通道,每個通道數(shù)據(jù)長度為188,展開之后得到1692維的特征.通過PCA降維之后,由SVM進行分類,核函數(shù)為高斯核(Gaussian kernel)函數(shù).最終效果如下.
圖4為測試集準確率(十分類)與經(jīng)過PCA后的特征數(shù)個數(shù)的關(guān)系.在每種特征數(shù)情況下,采用十折交叉驗證方法,取最好結(jié)果.由圖可知,測試集準確率隨著PCA后的特征數(shù)個數(shù)的增大,先上升后下降.存在一個合適的特征數(shù)(大約在32左右),使得測試集的準確率最高.
圖4 經(jīng)過PCA后的特征數(shù)與測試集準確率的關(guān)系Fig.4 The relationship between the number of components after PCA and the accuracy on test set
圖5為特征數(shù)為32時測試集的混淆矩陣.可以看到,在判斷數(shù)據(jù)是否異常時(二分類),模型在測試集上的準確率為100%;在判斷數(shù)據(jù)為外圈故障、內(nèi)圈故障、滾珠故障還是正常數(shù)據(jù)時(四分類),模型在測試集上的準確率為89.6%;而到進一步的具體故障(十分類)時,模型在測試集上的準確率為81.6%.
圖5 特征數(shù)為32時,測試集的混淆矩陣Fig.5 The confusion matrix of test set when the number of components is 32
5.2.1 對比
基于同樣的數(shù)據(jù)集,使用PCA和SVM相結(jié)合的分類模型作為對比,效果如下.
圖6為使用PCA和SVM相結(jié)合的分類模型時,測試集準確率(十分類)與經(jīng)過PCA后的特征數(shù)個數(shù)的關(guān)系.在每種特征數(shù)情況下,采用十折交叉驗證方法,取最好結(jié)果.由圖可知,當經(jīng)過PCA后的特征數(shù)為128時,測試集的準確率最高,為55.2%.
圖6 經(jīng)過PCA后的特征數(shù)與測試集準確率的關(guān)系(PCA+SVM)Fig.6 The relationship between the number of components after PCA and the accuracy on test set(PCA+SVM)
圖7為使用PCA和SVM相結(jié)合的分類模型時,特征數(shù)為128時測試集的混淆矩陣.可以看到,在判斷數(shù)據(jù)是否異常時(二分類),模型在測試集上的準確率為99.4%;在判斷數(shù)據(jù)為外圈故障、內(nèi)圈故障、滾珠故障還是正常數(shù)據(jù)時(四分類),模型在測試集上的準確率為57.7%;而到進一步的具體故障(十分類)時,模型在測試集上的準確率為55.2%.對比可知,經(jīng)過無監(jiān)督特征學習所得到量子“濾波器”的特征提取有助于模型對異常檢測數(shù)據(jù)集分類性能的提高.
基于量子-經(jīng)典混合卷積神經(jīng)網(wǎng)絡模型,本文給出了一種無監(jiān)督學習的特征學習方法.該方法的關(guān)鍵是利用K-mediods算法對訓練得到的量子自編碼器進行聚類,將得到的“質(zhì)點”作為量子-經(jīng)典混合神經(jīng)網(wǎng)絡的“濾波器”對數(shù)據(jù)進行特征提取.由于每次只需要訓練一個小型的量子自編碼器,可緩解當前量子-經(jīng)典混合神經(jīng)網(wǎng)絡當前難以大規(guī)模訓練的問題.進一步,本文通過軸承異常檢測問題驗證了該方法的有效性.與PCA和SVM結(jié)合的模型相比,實驗結(jié)果表明,基于無監(jiān)督學習的特征學習方法有助于提高分類模型的性能.需要說明的是,本文實驗只用了一層“量子”卷積層,具有兩層及多層“量子”卷積層的混合卷積神經(jīng)網(wǎng)絡模型的性能有待進一步研究.實際上該過程可以看作一個預訓練的過程,可用于全監(jiān)督學習精調(diào)之前,從而節(jié)約量子計算資源.