文 /大眾汽車公司和萊頓大學(xué)的 Andrea Skolik
3 月初,Google 與滑鐵盧大學(xué)和大眾汽車公司共同發(fā)布了 TensorFlow Quantum(TFQ)。TensorFlow Quantum 是一個(gè)量子機(jī)器學(xué)習(xí) (QML) 軟件框架,允許研究員聯(lián)合使用 Cirq 和 TensorFlow 的功能。Cirq 和 TFQ 都用于模擬噪聲中等規(guī)模量子 (NISQ) 的設(shè)備。這些設(shè)備當(dāng)前仍處于實(shí)驗(yàn)階段,因此未經(jīng)糾錯(cuò),還會受到噪聲輸出的影響。
本文介紹的訓(xùn)練策略可以解決量子神經(jīng)網(wǎng)絡(luò) (QNN) 中的消失梯度問題,并更好地利用 NISQ 設(shè)備提供的資源。
量子神經(jīng)網(wǎng)絡(luò)
訓(xùn)練 QNN 與訓(xùn)練經(jīng)典神經(jīng)網(wǎng)絡(luò)沒有太大不同,區(qū)別僅在于優(yōu)化量子電路的參數(shù)而不是優(yōu)化網(wǎng)絡(luò)權(quán)重。量子電路的外形如下所示:

用于四個(gè)量子位分類任務(wù)的簡化 QNN
電路從左到右讀取,每條水平線對應(yīng)量子計(jì)算機(jī)寄存器中的一個(gè)量子位,每個(gè)量子位都初始化為零狀態(tài)。方框表示對按順序執(zhí)行的量子位的參數(shù)化運(yùn)算(或“門”)。在這種情況下,我們有三種不同類型的運(yùn)算,X、Y 和 Z。垂直線表示兩個(gè)量子邏輯門,可用于在 QNN 中產(chǎn)生糾纏 - 一種使量子計(jì)算機(jī)勝過經(jīng)典計(jì)算機(jī)的資源。我們在每個(gè)量子位上將一層表示為一個(gè)運(yùn)算,然后將一系列的門連接成對的量子位,產(chǎn)生糾纏。
上圖為用于學(xué)習(xí) MNIST 數(shù)字分類的簡化 QNN。
首先,將數(shù)據(jù)集編碼為量子態(tài)。使用數(shù)據(jù)編碼層來完成這一操作,上圖中標(biāo)記為橙色。在這種情況下,我們將輸入數(shù)據(jù)轉(zhuǎn)換為向量,并將向量值用作數(shù)據(jù)編碼層運(yùn)算的參數(shù) d 。基于此輸入執(zhí)行電路中藍(lán)色標(biāo)記的部分,這一部分代表 QNN 的可訓(xùn)練門,用 p表示。
量子電路的最后一個(gè)運(yùn)算是測量。計(jì)算期間,量子設(shè)備對經(jīng)典位串的疊加執(zhí)行運(yùn)算。當(dāng)我們在電路上執(zhí)行讀出時(shí),疊加狀態(tài)坍縮為一個(gè)經(jīng)典位串,這就是最后的計(jì)算輸出。所謂的量子態(tài)坍縮是概率性的,要獲得確定性結(jié)果,我們需要對多個(gè)測量結(jié)果取平均值。
上圖中,綠色標(biāo)記的部分是第三個(gè)量子位上的測量,這些測量結(jié)果用于預(yù)測 MNIST 樣本的標(biāo)簽。將其與真實(shí)數(shù)據(jù)標(biāo)簽對比,并像經(jīng)典神經(jīng)網(wǎng)絡(luò)一樣計(jì)算損失函數(shù)的梯度。由于參數(shù)優(yōu)化是經(jīng)典計(jì)算機(jī)使用 Adam 等優(yōu)化器處理,因此這些類型的 QNN 稱為“混合量子經(jīng)典算法”。
消失的梯度,又稱貧瘠高原
事實(shí)證明,QNN 與經(jīng)典神經(jīng)網(wǎng)絡(luò)一樣,也存在消失梯度的問題。由于 QNN 中梯度消失的原因與經(jīng)典神經(jīng)網(wǎng)絡(luò)有著本質(zhì)的不同,因此采用了一個(gè)新術(shù)語:貧瘠高原 (Barren Plateaus)。本文不探討這一重要現(xiàn)象的所有細(xì)節(jié),建議感興趣的讀者閱讀首次介紹 QNN 訓(xùn)練景觀 (Training Landscapes) 中貧瘠高原的文章。
簡而言之,當(dāng)量子電路被隨機(jī)初始化,就會出現(xiàn)貧瘠高原 - 在上述電路中,這意味著隨機(jī)選擇運(yùn)算及其參數(shù)。這是訓(xùn)練參數(shù)化量子電路的一個(gè)重點(diǎn)問題,并且會隨著量子位數(shù)量和電路中層數(shù)的增加而越發(fā)嚴(yán)重,如下圖所示。

梯度方差根據(jù)隨機(jī)電路中量子位和層數(shù)的變化而衰減
對于下面介紹的算法,關(guān)鍵在于電路中添加的層越多,梯度的方差就越小。另一方面,類似于經(jīng)典神經(jīng)網(wǎng)絡(luò),QNN 的表示能力也隨著深度的增加而增加。這里的問題是,隨著電路尺寸的增加,優(yōu)化景觀在很多位置都會趨于平坦,以至于難以找到局部最小值。
注意,對于 QNN,輸出通過多次測量的平均值進(jìn)行估算。想要估算的量越小,獲得準(zhǔn)確結(jié)果所需的測量就越多。如果這些量與測量不確定性或硬件噪聲造成的影響相比要小得多,這些量就無法可靠確定,電路優(yōu)化基本上會變成隨機(jī)游走。
為了成功訓(xùn)練 QNN,必須避免參數(shù)的隨機(jī)初始化,同時(shí)也要阻止 QNN 在訓(xùn)練過程中由于梯度變小而隨機(jī)化,例如在接近局部最小值的時(shí)候。為此,我們可以限制 QNN 的架構(gòu)(例如,通過選擇某些門配置,這需要根據(jù)當(dāng)前任務(wù)調(diào)整架構(gòu)),或控制參數(shù)的更新,使其不會變得隨機(jī)。
分層學(xué)習(xí)
在我們與 Volkswagen Data:Lab(Andrea Skolik、Patrick van der Smagt、Martin Leib)和 Google AI Quantum(Jarrod R. McClean、Masoud Mohseni)網(wǎng)絡(luò)聯(lián)合發(fā)表的論文 Layerwise learning for quantum neural networks 中,我們介紹了一種避免初始化在高原上并避免網(wǎng)絡(luò)在訓(xùn)練過程中在高原上結(jié)束的方法。接下來是一個(gè)關(guān)于 MNIST 數(shù)字二進(jìn)制分類學(xué)習(xí)任務(wù)的分層學(xué)習(xí) (Layerwise Learning) 示例。首先,我們需要定義待堆疊的層的結(jié)構(gòu)。當(dāng)前的學(xué)習(xí)任務(wù)未經(jīng)任何假設(shè),因此各層選擇的布局與上圖相同:一層由每個(gè)初始化為零的量子位上的隨機(jī)門和兩個(gè)量子邏輯門組成,兩個(gè)量子邏輯門連接量子位以實(shí)現(xiàn)糾纏。
我們指定了若干個(gè)起始層,在本例中只有一個(gè),將在訓(xùn)練過程中始終保持活躍狀態(tài),并指定訓(xùn)練每組層的周期數(shù)。另外兩個(gè)超參數(shù)是每個(gè)步驟中添加的新層數(shù),以及一次被最大訓(xùn)練的層數(shù)。在這里選擇一種配置,其中每個(gè)步驟中添加兩個(gè)層,并凍結(jié)除起始層之外的所有先前層的參數(shù),以在每個(gè)步驟中僅訓(xùn)練三個(gè)層。將每組層訓(xùn)練 10 個(gè)周期,然后重復(fù)此過程十次,直到電路總共由 21 層組成。這里的事實(shí)依據(jù)是淺層電路會比深層電路產(chǎn)生更大梯度,由此避免了高原上的初始化。
這提供了一個(gè)優(yōu)化過程的良好起點(diǎn),可以繼續(xù)訓(xùn)練更大的連續(xù)層集。對另一個(gè)超參數(shù),我們定義了算法第二階段一起訓(xùn)練的層的百分比。在此將電路分成兩半,交替訓(xùn)練兩個(gè)部分,其中不活動部分的參數(shù)始終凍結(jié)。一個(gè)所有分區(qū)都訓(xùn)練過一次的訓(xùn)練序列稱為掃描,對這個(gè)電路執(zhí)行掃描,直到損失收斂。當(dāng)完整參數(shù)集始終完成訓(xùn)練時(shí),我們將這種情況稱為“完全深度學(xué)習(xí)”(Complete Depth Learning),一個(gè)欠佳的更新步驟會影響整個(gè)電路并將其引入隨機(jī)配置,導(dǎo)致無從逃脫的貧瘠高原。
接下來將我們的訓(xùn)練策略與訓(xùn)練 QNN 的標(biāo)準(zhǔn)技術(shù) CDL 進(jìn)行比較。為了得到公平的結(jié)果,我們使用與先前 LL 策略生成的電路架構(gòu)完全相同的電路架構(gòu),但現(xiàn)在在每一步中同時(shí)更新所有參數(shù)。為了給 CDL 提供訓(xùn)練的機(jī)會,參數(shù)將優(yōu)化為零,而不是隨機(jī)優(yōu)化。由于無法使用真正的量子計(jì)算機(jī),因此我們模擬 QNN 的概率輸出,并選擇一個(gè)相對較低的值來估計(jì) QNN 每次預(yù)測的測量次數(shù)——此例中為 10。假設(shè)真正的量子計(jì)算機(jī)上的采樣率為 10kHZ,我們可以估算出訓(xùn)練運(yùn)行的實(shí)驗(yàn)性掛鐘時(shí)間,如下所示:

不同學(xué)習(xí)率 η 的分層深度學(xué)習(xí)和完全深度學(xué)習(xí)的比較。每種配置訓(xùn)練了 100 個(gè)電路,并對最終測試誤差低于 0.5(圖例中成功運(yùn)行的次數(shù))的電路取平均值
通過少量的測量,可以研究 LL 和 CDL 方法不同梯度幅度的影響:如果梯度值較大,則與較小值相比,10 次測量可以提供更多信息。執(zhí)行參數(shù)更新的信息越少,損失的方差就越大,執(zhí)行錯(cuò)誤更新的風(fēng)險(xiǎn)也就越大,這將使更新的參數(shù)隨機(jī)化,并導(dǎo)致 QNN 進(jìn)入高原。這一方差可以通過更小的學(xué)習(xí)率降低,因此上圖比較了學(xué)習(xí)率不同的 LL 和 CDL 策略。
值得注意的是,CDL 運(yùn)行的測試誤差會隨運(yùn)行時(shí)間的增加而增加,最初看起來像是過擬合。然而,這張圖中的每條曲線都是多次運(yùn)行的平均值,實(shí)際情況是,越來越多的 CDL 運(yùn)行在訓(xùn)練過程中隨機(jī)化,無法恢復(fù)。如圖例所示,與 CDL 相比,LL 運(yùn)行中有更大一部分在測試集上實(shí)現(xiàn)了小于 0.5 的分類誤差,所用時(shí)間也更少。
綜上所述,分層學(xué)習(xí)提高了在更少訓(xùn)練時(shí)間內(nèi)成功訓(xùn)練 QNN 的概率,總體上具有更好的泛化誤差,這在 NISQ 設(shè)備上尤其實(shí)用。
原文標(biāo)題:介紹量子神經(jīng)網(wǎng)絡(luò)訓(xùn)練策略,解決消失梯度問題
文章出處:【微信公眾號:TensorFlow】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
量子
+關(guān)注
關(guān)注
0文章
497瀏覽量
26337 -
量子神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
2瀏覽量
1539
原文標(biāo)題:介紹量子神經(jīng)網(wǎng)絡(luò)訓(xùn)練策略,解決消失梯度問題
文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
CNN卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)原理及在MCU200T上仿真測試
NMSIS神經(jīng)網(wǎng)絡(luò)庫使用介紹
在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的一些經(jīng)驗(yàn)
液態(tài)神經(jīng)網(wǎng)絡(luò)(LNN):時(shí)間連續(xù)性與動態(tài)適應(yīng)性的神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)RAS在異步電機(jī)轉(zhuǎn)速估計(jì)中的仿真研究
神經(jīng)網(wǎng)絡(luò)壓縮框架 (NNCF) 中的過濾器修剪統(tǒng)計(jì)數(shù)據(jù)怎么查看?
BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的比較
如何優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率
BP神經(jīng)網(wǎng)絡(luò)的優(yōu)缺點(diǎn)分析
什么是BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法
BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)的關(guān)系
BP神經(jīng)網(wǎng)絡(luò)的基本原理
BP神經(jīng)網(wǎng)絡(luò)在圖像識別中的應(yīng)用
深度學(xué)習(xí)入門:簡單神經(jīng)網(wǎng)絡(luò)的構(gòu)建與實(shí)現(xiàn)
人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法

解決量子神經(jīng)網(wǎng)絡(luò)消失梯度問題 更好利用 NISQ 設(shè)備資源
評論