劉文杰,趙膠膠,張 穎,葛業(yè)波
(1.南京信息工程大學(xué)計(jì)算機(jī)與軟件學(xué)院,江蘇南京 210044;2.數(shù)字取證教育部工程研究中心,江蘇南京 210044;3.南京信息工程大學(xué)自動(dòng)化學(xué)院,江蘇南京 210044)
生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)是一種深度學(xué)習(xí)模型,是近年來復(fù)雜分布上無監(jiān)督學(xué)習(xí)最具有應(yīng)用潛力的方法之一.它由Goodfellow[1]在2014年提出,該模型由生成器和判別器兩部分組成.隨后,很多學(xué)者利用GAN 在圖像生成[2]、超分辨[3]、圖像轉(zhuǎn)換[4]等領(lǐng)域取得了優(yōu)異成果,但其過程是不可控的.為了改善上述問題,Mirza 等人[5]提出了條件生成對(duì)抗網(wǎng)絡(luò)(Conditional Generative Adversarial Network,CGAN),在輸入層隱變量中增加條件約束引導(dǎo)GAN 從條件分布中采樣.2018 年Miyato 等人[6]提出了一種基于投影方法的CGAN算法,將條件約束信息增加到判別器中,提高了數(shù)據(jù)生成的質(zhì)量.但CGAN 生成離散數(shù)據(jù)的效果較差,并且巨大的計(jì)算開銷可能會(huì)使GAN 達(dá)到摩爾定律的極限.與經(jīng)典GAN 相比,量子GAN 可能存在著潛在的指數(shù)優(yōu)勢(shì)[7].
量子生成對(duì)抗網(wǎng)絡(luò)(Quantum Generative Adversarial Network,QGAN)是一種基于量子電路[8]的算法.2018年Lloyd等人[9]提出QGAN,從理論角度分析了三種量子對(duì)抗學(xué)習(xí)場(chǎng)景以及QGAN 潛在的量子優(yōu)勢(shì).2019 年Situ 等人[10]提出利用量子玻恩規(guī)則生成離散數(shù)據(jù),解決了離散數(shù)據(jù)生成問題.Zeng等人[11]提出了生成對(duì)抗量子電路(Generative Adversarial Quantum Circuits,GAQC)算法,利用量子玻恩規(guī)則探索量子電路有效采樣能力,并利用BAS(Bars-And-Stripes)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)驗(yàn)證.由于受限于算法發(fā)展和可用的量子資源,先前的QGAN 實(shí)驗(yàn)主要針對(duì)單量子比特量子態(tài)的生成和加載[12].一些學(xué)者關(guān)于QGAN 的應(yīng)用也做了研究[13,14].但這些算法生成過程具有較大的隨機(jī)性.Dallaire-Demers 等人[15]提出了一種帶有條件約束的QuGAN 算法.該算法加強(qiáng)了對(duì)生成數(shù)據(jù)的控制,但它求解梯度時(shí)需要復(fù)雜的受控操作和誤差糾錯(cuò),不適合目前的嘈雜中型量子時(shí)代.最近,Liu等人[16]提出了一個(gè)混合量子-經(jīng)典條件生成對(duì)抗網(wǎng)絡(luò)算法,該算法提高了生成過程的可控性,但只適合生成經(jīng)典數(shù)據(jù).
為解決這個(gè)問題,本文提出了一種量子條件生成對(duì)抗網(wǎng)絡(luò)(Quantum Conditional Generative Adversarial Network,QCGAN)算法.采用one-hot 形式進(jìn)行多粒子W態(tài)編碼,使生成器具備根據(jù)條件信息生成特定數(shù)據(jù)的能力.生成器和判別器都由參數(shù)化量子電路(Parameterized Quantum Circuit,PQC)構(gòu)成,前者用來生成擬合訓(xùn)練集的新樣本,后者用來判斷新樣本的真?zhèn)我约皹颖九c條件信息是否匹配.該算法適用于經(jīng)典和量子數(shù)據(jù)分布學(xué)習(xí),降低了時(shí)間復(fù)雜度且可有效收斂到Nash均衡點(diǎn).
針對(duì)GAN 訓(xùn)練過程不可控的問題,條件生成對(duì)抗網(wǎng)絡(luò)CGAN 在生成器G 和判別器D 輸入中加入條件變量y進(jìn)行約束和指導(dǎo).條件變量y可以是任何標(biāo)簽信息,如人臉圖像的面部表情、圖像的類別等.在CGAN框架下,G 更關(guān)注與條件約束密切相關(guān)的樣本特征,并控制訓(xùn)練過程以生成更高質(zhì)量的數(shù)據(jù).G 的輸出可視為從條件分布pG(x|y)中進(jìn)行采樣,因此CGAN 的目標(biāo)函數(shù)為
CGAN 算法需同時(shí)對(duì)噪聲矢量z和條件變量y進(jìn)行采樣,因此為了提高G 擬合真實(shí)分布的能力,根據(jù)生成目標(biāo)設(shè)置合理的條件變量至關(guān)重要.最常見的一種方法是直接從訓(xùn)練數(shù)據(jù)中選定條件變量,讓G和D在接收輸入時(shí)就得到關(guān)于訓(xùn)練集的部分先驗(yàn)知識(shí),此時(shí)CGAN可看作是弱監(jiān)督或有監(jiān)督模型.
盡管CGAN算法在很多領(lǐng)域都表現(xiàn)出優(yōu)異的性能,但該算法無法直接生成離散數(shù)據(jù).而量子生成對(duì)抗網(wǎng)絡(luò)QGAN 算法通過對(duì)生成器電路采樣可直接生成離散數(shù)據(jù),因此吸引了廣泛關(guān)注.
量子生成對(duì)抗網(wǎng)絡(luò)QGAN 算法流程如圖1所示,該算法從原理上也是構(gòu)造G 和D 的零和博弈.與經(jīng)典生成對(duì)抗網(wǎng)絡(luò)不同的是,G 和D 都由參數(shù)化量子電路PQC構(gòu)成.量子數(shù)據(jù)集用密度矩陣表示,對(duì)應(yīng)于經(jīng)典數(shù)據(jù)集的協(xié)方差矩陣.量子數(shù)據(jù)集通過量子設(shè)備生成,可以直接作為PQC 的輸入,而經(jīng)典數(shù)據(jù)集需要編碼成量子態(tài)輸入到D 中.在博弈過程中,G 的目標(biāo)是生成一個(gè)量子態(tài)迷惑判別器,讓其無法判斷這個(gè)量子態(tài)是目標(biāo)態(tài)還是生成態(tài).相反,D 的目標(biāo)是要區(qū)分G 生成的量子態(tài)和數(shù)據(jù)源的目標(biāo)態(tài).假設(shè)G 和D 有足夠的能力,這個(gè)模型就會(huì)收斂到Nash 均衡點(diǎn),即判別器不能判別輸入是真是假.Lloyd 等人[9]指出,利用QGAN 生成高維數(shù)據(jù)時(shí),對(duì)抗性量子博弈學(xué)習(xí)有潛力以指數(shù)級(jí)加速收斂到Nash均衡點(diǎn).
圖1 量子生成對(duì)抗網(wǎng)絡(luò)算法示意圖
量子生成對(duì)抗網(wǎng)絡(luò)QGAN 算法生成過程具有較大的隨機(jī)性,本文所提的QCGAN 算法可提高生成過程的可控性,其流程如圖2 所示.該算法的G 用來生成擬合訓(xùn)練集的新樣本,D用來判斷新樣本的真?zhèn)我约皹颖九c條件信息是否匹配.在數(shù)據(jù)準(zhǔn)備階段,根據(jù)生成任務(wù)的目標(biāo)和數(shù)據(jù)特征引入條件約束,并將經(jīng)典條件信息編碼為量子態(tài)下面對(duì)算法過程涉及的關(guān)鍵操作和訓(xùn)練策略進(jìn)行詳細(xì)說明.
圖2 量子條件生成對(duì)抗網(wǎng)絡(luò)算法框架
條件信息的W態(tài)編碼及電路如圖3 所示是按照真實(shí)樣本概率分布將m類條件變量制備成的量子態(tài)
用one-hot 方法對(duì)條件信息進(jìn)行編碼.假設(shè)待分類種類為m,制備的電路如圖3 所示,其中條件寄存器初態(tài)為對(duì)應(yīng)的量子位為Q1,Q2,…,Qm.制備過程為:(1)采用Ry和CNOΤ 門,通過調(diào)整單量子比特門旋轉(zhuǎn)角度,將量子比特制備成只包含m項(xiàng)的特殊態(tài),即
(2)經(jīng)過圖3中的Ⅱ之后,量子態(tài)變?yōu)?/p>
對(duì)于企業(yè)的內(nèi)部控制定義,可以解釋為:在企業(yè)內(nèi)部,企業(yè)的管理層、企業(yè)的決策層以及企業(yè)內(nèi)部的全體員工共同參與的,以期實(shí)現(xiàn)企業(yè)的基本目標(biāo)的,一系列經(jīng)營控制活動(dòng)。而企業(yè)的內(nèi)部控制最主要目的,就是在保證投資者最高利益的基礎(chǔ)上,能夠創(chuàng)新出更多新型的、價(jià)值的內(nèi)容。其具體實(shí)施體現(xiàn)在會(huì)計(jì)信息的準(zhǔn)確性上,根據(jù)國家法律法規(guī)的規(guī)定內(nèi)容,以及不同地方的政策規(guī)定,在使企業(yè)的財(cái)產(chǎn)和資源更加完整的基礎(chǔ)上,實(shí)現(xiàn)企業(yè)長(zhǎng)期發(fā)展中的經(jīng)濟(jì)效益提升。
圖3 制備m分類的量子電路
采用one-hot 方式對(duì)條件信息進(jìn)行量子態(tài)編碼,需要用到的量子比特?cái)?shù)相對(duì)較多,但可減少數(shù)據(jù)量子/經(jīng)典后處理時(shí)再轉(zhuǎn)換成其他編碼形式的工作量.
在算法中,G 和D 都由PQC 構(gòu)成,且PQC 由旋轉(zhuǎn)層和糾纏層作為基礎(chǔ)電路模塊組成.旋轉(zhuǎn)層可由單量子比特RX、RY和RZ構(gòu)成,糾纏層可由CNOΤ 門、SWAP 門或CRX、CRY 和CRZ 門組成,其拓?fù)浣Y(jié)構(gòu)可為:線型、環(huán)型、星型和全連接型.
生成器G 電路如圖4所示,寄存器對(duì)應(yīng)的量子位用Qj表示,其中j={1,2,…,l}.對(duì)G 來說,需要(ll=d+m)個(gè)量子位,其中數(shù)據(jù)寄存器有d個(gè)量子位,用來生成樣本數(shù)據(jù);條件信息寄存器有m個(gè)量子位,用來接收m類條件信息.它們的初始態(tài)分別為表示制備量子態(tài)的電路模塊.在電路中,旋轉(zhuǎn)層和糾纏層交替迭代LG次,其中i∈{1,2,…,LG},θ是G的參數(shù).
圖4 生成器G的量子電路
圖5 判別器D的量子電路
用泡利Z測(cè)量D 的最終態(tài),其結(jié)果為其中i表示量子位索引表示輸入到判別器的數(shù)據(jù)
量子條件生成對(duì)抗網(wǎng)絡(luò)的訓(xùn)練是具有反饋回路的參數(shù)優(yōu)化量子算法,生成器和判別器的可訓(xùn)練參數(shù)分別記為θ和φ,其目標(biāo)函數(shù)為
表1 五種生成對(duì)抗網(wǎng)絡(luò)算法性能對(duì)比(生成數(shù)據(jù)類型中,C表示連續(xù)數(shù)據(jù),D表示離散數(shù)據(jù))
由于損失函數(shù)可微性限制,經(jīng)典算法(GAN、CGAN等)無法直接生成離散數(shù)據(jù),而量子QGAN 對(duì)電路采樣可直接生成離散數(shù)據(jù).對(duì)于生成N維數(shù)據(jù)分布,經(jīng)典GAN 算法時(shí)間復(fù)雜度為O(N2).而量子信息處理器僅需logN(qubits),其時(shí)間復(fù)雜度為O(N).
對(duì)于GAQC 來說,需要2d(qubits)制備真實(shí)數(shù)據(jù)和量子編碼.但其生成過程具有較大的隨機(jī)性,不太適用于現(xiàn)實(shí)場(chǎng)景.對(duì)于帶條件約束的QuGAN 和QCGAN 算法,G 增加了條件信息的輸入,消耗的量子資源也會(huì)增加.其中,QuGAN生成器和真實(shí)源都需要d(qubits)生成目標(biāo)數(shù)據(jù),m(qubits)表示條件信息和n(qubits)輔助位;判別器需要m(qubits)表示條件信息,s(qubits)輔助位,2(qubits)用來輸出判斷結(jié)果和求解梯度;故QuGAN總資源消耗為2d+3m+2n+s+2(qubits).而QCGAN 算法的G和D都只需d(qubits)生成目標(biāo)數(shù)據(jù),m(qubits)表示條件信息,故QCGAN 總資源消耗為2d+2m(qubits).因此,QCGAN比QuGAN算法消耗更少量子資源.
本文采用PennyLane 平臺(tái)進(jìn)行算法仿真,分別完成經(jīng)典數(shù)據(jù)和量子混合態(tài)的生成任務(wù).
5.1.1 BAS(Bars-And-Stripes)數(shù)據(jù)集
與GAQC 算法[11]一樣,本文采用BAS 數(shù)據(jù)集進(jìn)行模型訓(xùn)練.本實(shí)驗(yàn)生成目標(biāo)是BAS(3,3)圖像.訓(xùn)練集中總共有14 種有效模式圖且符合均勻分布,這些圖像可分為三類:橫條紋、豎條紋和全色圖(像素值全0或全1),根據(jù)one-hot 規(guī)則分別標(biāo)注為:001、010 和100 編碼,如圖6所示.
圖6 BAS(3,3)數(shù)據(jù)集分類示意圖
5.1.2 實(shí)驗(yàn)設(shè)置
在實(shí)驗(yàn)中,訓(xùn)練集均包含6 000 個(gè)訓(xùn)練樣本.為公平起見,將epoch 均設(shè)置為200,迭代訓(xùn)練次數(shù)為10,批次大小為600,初始學(xué)習(xí)率為0.001,衰減率為0.1.另外,利用量子Adam優(yōu)化器優(yōu)化G和D.
GAQC 算法不需要條件信息的W態(tài)編碼及電路設(shè)計(jì),因此G 和D 都只需要9(qubits)處理數(shù)據(jù)的信息,QCGAN 算法除了要處理數(shù)據(jù)信息,還需要3(qubits)接收條件信息.因此,根據(jù)圖4和5,QCGAN算法G和D的電路可簡(jiǎn)化為圖8 和9.其中,圖8 中是圖7 制備的,電路旋轉(zhuǎn)層選用RY門,糾纏層選用環(huán)型連接CRY門.它們的電路參數(shù)分別為108和36個(gè),且初始值從均勻分布U[0,2π)中隨機(jī)采樣.
圖7 制備三粒子W態(tài)的量子電路
圖8 生成BAS數(shù)據(jù)的生成器G的量子電路
圖9 生成BAS數(shù)據(jù)的判別器D的量子電路
5.1.3 實(shí)驗(yàn)結(jié)果分析
GAQC 和QCGAN 算法損失函數(shù)分別如圖10 和11所示.QCGAN 算法在迭代次數(shù)為800 時(shí)就收斂到了Nash 均衡點(diǎn),且模型基本趨于穩(wěn)定.因此,與GAQC 相比,QCGAN生成圖像的效率更高.
圖10 GAQC算法的損失變化曲線
訓(xùn)練完成后,對(duì)G 進(jìn)行1000 次采樣分析生成分布,結(jié)果如圖12 所示.其中,圖12(a)和12(b)分別是GAQC 和QCGAN 算法生成BAS 數(shù)據(jù)的概率分布,橫坐標(biāo)是用十進(jìn)制數(shù)表示的BAS 數(shù)據(jù),軸坐標(biāo)表示對(duì)應(yīng)的概率值.紅線表示目標(biāo)概率分布,藍(lán)線表示經(jīng)過訓(xùn)練后G 輸出的概率分布.從圖12(a)和圖12(b)可看出QCGAN 算法生成的數(shù)據(jù)絕大多數(shù)都落在14 種BAS 有效模式圖中,且三類條紋圖基本符合均勻分布.圖12(c)是GAQC 算法生成的前100個(gè)像素圖,從中可看出GAQC 有兩處既沒有正確生成橫或豎條紋.而如圖12(d)所示,可看出QCGAN算法的G 經(jīng)過訓(xùn)練已具備生成BAS(3,3)數(shù)據(jù)的能力.
圖11 QCGAN算法的損失變化曲線
圖12 生成BAS(3,3)數(shù)據(jù)結(jié)果
GAQC 與QCGAN 算法生成BAS 數(shù)據(jù)準(zhǔn)確率如表2所示.從表中可看出,QCGAN 算法準(zhǔn)確率為0.968 3,而GAQC 算法準(zhǔn)確率僅為0.953 2.QCGAN 算法準(zhǔn)確率高的原因是該算法加入了條件變量,使模型得到了更多關(guān)于真實(shí)數(shù)據(jù)的信息.
表2 算法生成BAS數(shù)據(jù)集的準(zhǔn)確率
5.2.1 實(shí)驗(yàn)準(zhǔn)備
圖13 制備的量子電路
圖14 生成量子數(shù)據(jù)的生成器G的量子電路
將epoch 設(shè)置為300,并采用Adam 優(yōu)化器進(jìn)行優(yōu)化.定義表示兩個(gè)狀態(tài)的重疊情況,反映了量子電路的保真度.
圖15 生成量子數(shù)據(jù)的判別器D的量子電路
5.2.2 實(shí)驗(yàn)結(jié)果分析
生成量子數(shù)據(jù)的損失函數(shù)如圖16 所示.在迭代次數(shù)為500時(shí),生成器和判別器的損失函數(shù)已基本收斂到Nash 均衡點(diǎn),但在后續(xù)的訓(xùn)練中G 和D 的損失函數(shù)值都出現(xiàn)了輕微的震蕩(這是該類算法生成量子數(shù)據(jù)普遍存在的現(xiàn)象[15]).
圖16 生成量子數(shù)據(jù)的損失變化曲線
QCGAN 算法生成態(tài)和目標(biāo)態(tài)之間的保真度如圖17 所示.從圖中可看出,通過對(duì)抗訓(xùn)練,G 生成的最終態(tài)和目標(biāo)態(tài)的保真度逐漸增加并收斂于1,因此該算法能根據(jù)輸入生成目標(biāo)量子混合態(tài).
圖17 生成量子數(shù)據(jù)的保真度變化曲線
圖18 分類生成量子態(tài)采樣結(jié)果
本文提出的QCGAN 算法是一種適用于經(jīng)典和量子數(shù)據(jù)分布學(xué)習(xí)的方案.該算法通過在輸入層增加條件約束,有效引導(dǎo)網(wǎng)絡(luò)生成符合特定要求的數(shù)據(jù),提高了生成過程的可控性.與經(jīng)典GAN 相比,本文提出的QCGAN 算法的時(shí)間復(fù)雜度更低;與QuGAN 相比,QCGAN 消耗更少的量子資源.另外,以BAS(3,3)數(shù)據(jù)集和量子混合態(tài)生成為例,選用PennyLane 進(jìn)行仿真實(shí)驗(yàn),結(jié)果表明QCGAN 算法經(jīng)過訓(xùn)練可有效收斂到Nash均衡點(diǎn).
隨著問題規(guī)模的擴(kuò)大,算法PQC 中量子位或門數(shù)量會(huì)急劇上升,容易出現(xiàn)“貧瘠高原”現(xiàn)象(由于運(yùn)算規(guī)模急劇上升,導(dǎo)致電路參數(shù)的梯度均值為0、方差隨著量子比特個(gè)數(shù)的增加呈指數(shù)減少).下一步工作,我們將研究通過優(yōu)化量子電路結(jié)構(gòu),改進(jìn)電路參數(shù)優(yōu)化迭代策略等手段,減少一次迭代可訓(xùn)練參數(shù)個(gè)數(shù)和電路深度,從而減輕貧瘠高原的負(fù)面影響.