0
本文作者: 蔣寶尚 | 2020-03-11 11:08 |
自然世界不是經(jīng)典的,如果你想模擬自然世界,最好使用一套量子機制。——理查德·費曼 文 | 蔣寶尚編 | 賈 偉 繼2019年10月谷歌在《Nature》上發(fā)布關于驗證“量子優(yōu)越性”論文之后,3月9日,谷歌再次就“量子”做出新的發(fā)布。 這次發(fā)布的是開源“量子版 TensorFlow”:TensorFlow Quantum(TFQ)。
簡單來說,類似于TensorFlow ,TFQ 作為一個開源庫,將直接降低量子機器學習的門檻,讓我們能夠快速構建量子機器學習模型。 TensorFlow Quantum專注于處理量子數(shù)據(jù),及構建量子-經(jīng)典混合模型(hybrid quantum-classical models)。它在 Cirq 中集成了設計的量子計算算法和邏輯,并提供與現(xiàn)有 TensorFlow API 兼容的量子計算原語,以及高性能的量子電路模擬器。
注:Cirq 是 Google 專為 NISQ 算法打造的框架,允許開發(fā)者為特定的量子處理器編寫量子算法。
在介紹TFQ之前,我們首先應當了解什么是「量子機器學習」;而要想理解量子機器學習,就必須先要理解兩個概念:量子數(shù)據(jù)和量子-經(jīng)典混合模型。
在我們?nèi)粘I畹睦斫庵?,?shù)據(jù)(以二值數(shù)據(jù)為例)似乎總是“要么是(1),要么非( 0 )”。然而當我們細想,就會發(fā)現(xiàn)我們的日常生活也并非完全的“是”“非”分明,往往則是“是”中有“非”,“非”中有“是”,“是”或“非”只是事態(tài)的兩個極端。
量子的思維正是這樣。 在量子力學中常用“態(tài)”(這是一個希爾伯特空間的向量)來描述一個系統(tǒng)。例如經(jīng)典的信息輸入序列 01,用量子力學的語言描述即 |01>。經(jīng)典的數(shù)據(jù)中態(tài)與態(tài)(向量與向量)之間只能是正交的,例如 |01> 與 |00> 不可能同時出現(xiàn),這本質上就是或“是”或“非”的觀點。顯然對于這些正交態(tài)的操作也必須是正交的變換。
(雷鋒網(wǎng))
然而在量子數(shù)據(jù)中,擴展了經(jīng)典數(shù)據(jù)原有的限制。例如二比特的量子數(shù)據(jù),其態(tài)表示如下:
也即它同時可能是四種經(jīng)典數(shù)據(jù)中的任何一種(取決于前面的系數(shù),你可以簡單理解為四個相互正交的向量之間的疊加),而不是非此即彼。 當我們用這種量子數(shù)據(jù)取代經(jīng)典數(shù)據(jù)輸入到網(wǎng)絡中時,會發(fā)生什么呢?如下圖所示
Source:知乎[4](雷鋒網(wǎng))
在經(jīng)典的感知機中,我們輸入的是一個 0 、1 組成的向量,但如果是量子感知機的話,它輸入的就是許多個 |φ> = c1 |0> +c2 | 1> 組成的向量,而這個向量的每個元素又都可能既是 0 又是 1 。 然而到現(xiàn)實中,由于目前的量子處理器仍然存在盡管很小但仍不容忽視的噪聲,這使得幾乎不可能單獨用量子處理器來學習量子數(shù)據(jù)。 于是只能退而求其次,谷歌的NISQ處理器需要與傳統(tǒng)的處理器進行協(xié)同才能有效地抑制噪聲的影響。這種硬件的協(xié)同也同樣造成算法上的協(xié)同,因此便有了量子-經(jīng)典混合模型,其中模型的量子部分在量子處理器上進行處理,而經(jīng)典部分則在經(jīng)典處理器上進行處理。
(雷鋒網(wǎng))
谷歌研究人員表示,在可預期的將來,量子計算機最有用的功能可能便是一個硬件加速器,也即它并不是作為一個單獨的設備存在,而是作為CPU、GPU等傳統(tǒng)處理器的加速輔助。因此提供設計量子-經(jīng)典混合模型的工具就非常有必要。 值得一提的是,和機器學習一樣,量子機器學習也經(jīng)歷了兩代的發(fā)展。對應于第一代機器學習(以支持向量機、k-平均聚類等為代表),第一代量子機器學習主要是一些量子加速線性代數(shù)方法。隨著以深度學習為代表的第二代機器學習的發(fā)展,量子機器學習也因為量子計算機算力的提升步入了第二代,其特點便是基于啟發(fā)方法(和深度學習類似)。
2、TensorFlow Quantum
簡單來說,TensorFlow Quantum 是一個基于TensorFlow的機器學習庫,所面向的是量子-經(jīng)典混合機器學習模型的設計。 更為直白一點,相關量子算法的研究可以調用 TFQ 內(nèi)部的計算框架,然后用 Python 編程完成運算。另外,可以使用標準Keras功能進行訓練。
在具體設計方面,TFQ實現(xiàn)了將TensorFlow與量子計算硬件集成所需的組件,并創(chuàng)建了兩個數(shù)據(jù)類型原語。這兩個原語分別是:
1、量子電路:表示TensorFlow中 Cirq 定義的量子電路,創(chuàng)建不同大小的電路批次,類似于不同的實值數(shù)據(jù)點的批次;
2.Pauli sum:表示Cirq中定義的Pauli運算符的張量積的線性組合。像電路一樣,創(chuàng)建一批大小不一的運算符。
上圖為TFQ 的軟件棧,顯示了它與TensorFlow、Cirq和計算硬件的交互。棧的頂部是要處理的數(shù)據(jù)。經(jīng)典數(shù)據(jù)由TensorFlow本地處理;TFQ增加了處理量子數(shù)據(jù)的能力,包括量子電路和量子運算符。
棧的下一層是TensorFlow中的Keras API。由于TFQ的一個核心原則是與TensorFlow內(nèi)核進行集成,特別是與Keras模型和優(yōu)化器進行集成,所以這個級別覆蓋了整個棧的寬度。
在Keras模型抽象的下面是量子層和微分器,當連接到經(jīng)典的張量流層時,它們能夠實現(xiàn)量子-經(jīng)典的混合自動微分。
在這些層和微分器之下,有TF Ops,它實例化了數(shù)據(jù)流圖;TFQ Ops 可以控制量子電路的執(zhí)行。這些電路可以通過調用qsim或Cirq從而以仿真模式運行,或者最終在QPU硬件上執(zhí)行。
根據(jù)谷歌的白皮書[2],當前已經(jīng)可以使用TFQ包括用于量子分類,量子控制和量子近似優(yōu)化的監(jiān)督學習。此外,高級應用還可用TFQ來解決高級量子學習任務,包括元學習、哈密頓學習和熱采樣。
AI科技評論簡單介紹幾個應用:
量子-經(jīng)典卷積神經(jīng)網(wǎng)絡混合分類器。在量子數(shù)據(jù)的情況下,隱藏的經(jīng)典參數(shù)可以嵌入到量子系統(tǒng)的非局域子系統(tǒng)或子空間中,然后研究員必須執(zhí)行一些解纏的量子變換,以便從非局部的子空間中提取信息。
圖注:用于檢測團簇狀態(tài)CNN的結構
經(jīng)典的神經(jīng)網(wǎng)絡往往具有平移不變性,而具有平移對稱性的量子數(shù)據(jù)有很多種。這樣的量子數(shù)據(jù)往往是簇態(tài)(cluster states)。量子-經(jīng)典卷積神經(jīng)網(wǎng)絡混合分類器可以解決簇態(tài)時檢測錯誤的問題,具體做法是將其看做有監(jiān)督的分類任務,不過訓練所使用的數(shù)據(jù)將由各種正確和不正確準備的簇態(tài)組成,每個都與它們的標簽配對。 量子控制中的混合機器學習。為了充分利用神經(jīng)網(wǎng)絡的優(yōu)化能力的同時,而不用考慮計算開銷,有必要對各種神經(jīng)網(wǎng)絡表示和不同類型的量子控制動力學之間的聯(lián)系進行更深的理解。
圖注:用于學習量子控制分解的混合量子-經(jīng)典神經(jīng)網(wǎng)絡模型的體系結構
為了達到這個目標,需要TFQ集成幾個功能:1、混合量子-經(jīng)典網(wǎng)絡模型;2、批量量子電路模擬器;3、基于量子期望的反向傳播;4、基于梯度和基于非梯度的快速經(jīng)典優(yōu)化器。 量子近似優(yōu)化算法(簡稱QAOA)。QAOA最初是用來求解最大割問題, 目前的QAOA框架已尋找高階哈密頓量和連續(xù)變量哈密頓量等類似問題。
TFQ可以讓研究人員在單個計算圖中將量子數(shù)據(jù)集、量子模型和經(jīng)典控制參數(shù)構造為張量。當然與經(jīng)典機器學習一樣,量子機器學習的關鍵挑戰(zhàn)也是對“噪音數(shù)據(jù)”進行分類。
圖注:TFQ計算步驟的抽象概述。 但是,要構建和訓練這樣的模型,研究人員必須執(zhí)行以下操作:
1、準備量子數(shù)據(jù)集,每個量子數(shù)據(jù)張量都指定為用Cirq編寫的量子電路,該電路可實時生成量子數(shù)據(jù)。
2、評估量子神經(jīng)網(wǎng)絡模型,量子模型實質上是對輸入的量子數(shù)據(jù)進行解糾纏,從而留下以經(jīng)典相關性編碼的隱藏信息,從而使其可用于本地測量( local measurements )和經(jīng)典的后處理( classical post-processing)。
3、樣本或期望值。量子態(tài)的測量從經(jīng)典隨機變量中以樣本形式提取信息。來自隨機變量的值的分布通常取決于量子態(tài)本身以及所測得的可觀測值。由于許多變分算法都取決于測量的平均值,因此TFQ提供了對涉及步驟(1)和(2)的多個運行求期望值的方法。
4、評估經(jīng)典神經(jīng)網(wǎng)絡模型。提取經(jīng)典信息后,其格式適用于進一步的經(jīng)典后處理,由于提取的信息可能仍會以測量的期望之間的經(jīng)典相關性進行編碼,因此經(jīng)典深度神經(jīng)網(wǎng)絡能應用于提取此類相關性。
5、評估損失函數(shù) 。根據(jù)經(jīng)典后處理的結果,評估損失函數(shù)。
6、評估梯度和更新參數(shù)。評估損失函數(shù)后,應沿預期可降低損失的方向更新自由參數(shù)這通常是通過梯度下降執(zhí)行的。 從代碼方面來看?;A的安裝與調用與Python其他深度學習庫沒有什么區(qū)別。
例如安裝:
pip install -q tensorflow-quantum
導入相關模塊:
import tensorflow as tf
import tensorflow_quantum as tfq
import cirq
import sympy
import numpy as np
# visualization tools
%matplotlib inline
import matplotlib.pyplot as plt
from cirq.contrib.svg import SVGCircuit
更多代碼層面的教程請移步下面的鏈接,谷歌由淺入深專門介紹了如何運用TFQ。
https://www.tensorflow.org/quantum/tutorials/hello_many_worlds
在具體的算法層面,谷歌也在白皮書中放出了代碼介紹,例如在量子-經(jīng)典卷積神經(jīng)網(wǎng)絡混合分類器算法中的部分代碼介紹如下:
Reddit 社區(qū)很快便有對谷歌開源TFQ的回應。有網(wǎng)友表示
是的,量子機器學習平臺的開源,與我們何干? 然而正如物理學家理查德·費曼所說,“自然世界不是經(jīng)典的,如果你想模擬自然世界,最好使用一套量子的機制?!?/p>
在過去幾年,盡管以深度學習為代表的機器學習方法在許多問題上產(chǎn)生了深遠的影響。然而從長遠來看,正如牛頓經(jīng)典力學并不能精確描述自然世界一樣,我們?nèi)粝肽M自然世界,經(jīng)典機器學習方法會顯得力有未逮,而量子機器學習方法則將成為必然。 如今,諸多科技巨頭相繼布局量子計算,由此也可見,在未來的10~20年內(nèi),量子計算以及量子機器學習必將成為社會發(fā)展的重要推動力。
現(xiàn)在入手 TFQ,或恰逢其時。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。