當前位置:
首頁 > 新聞 > 乾貨!從基礎到進階,長文解析微軟量子計算概念和演算法(下)

乾貨!從基礎到進階,長文解析微軟量子計算概念和演算法(下)

雷鋒網 AI 研習社按,本文為雷鋒網字幕組編譯的微軟量子計算短片,原標題Achieving practical quantum computing,作者為MICROSOFT QUANTUM TEAM。

閱讀上篇請點擊此處。

翻譯 | 楊惠淳   程煒        字幕 | 凡江         整理 | 餘杭

在相對論中,消息會馬上到達,但 Bob 不能真正地看信息,理解它,直到 Alice 向他發送另外兩條經典的信息。如果將這兩條經典信息加密,則需要將它們解碼。經典信息的傳輸速度比光慢。因此  即使數據可以快速移動,信息卻不能。我將通過這一步,展示它是如何工作的,並從線性代數的角度來說明矩陣是如何使用的。所有這些都是非常簡單、直接的線性代數,可以說,這之中沒有什麼神秘的。

左邊的矢量是 100% 的 0 狀態,這是  α;不存在 1 狀態,這是  β,所以有兩個量子位是 0。如果將它們相乘,得到它們的張量積,我可以把兩個量子位看成  4 個狀態,它們都在 00 狀態,而不存在 01 、10 或者 11 。它們是向量的四行,讓我們從那裡開始。

我們有兩個量子位,它們都處於零狀態,現在要應用一個叫做 Hadamard 的門,它將把量子位進行翻轉。也就是說,現在量子位有 50% 的可能性是 0 或 1。我們在這裡做的是顯示第一個量子位,它可能是 0 或 1,但是第二個量子位仍然是零。觀察向量,可以計算得到,為保證計算後長度為 1,需要除以 2 的平方根。

因為是統一的,所以保證向量的長度總是保持不變。現在展示一個異或門,叫做 CNOT,CNOT 會把量子位糾纏在一起,所以現在它們要麼是 00,要麼 11。

如果我測量量子位,但在這一點上,我不知道我得到 50% 的可能性是 0 還是 1,但是無論我得到的量子位是什麼,它一定會給我同樣的值。在一次測量中,如果我測量的結果一個為 0,另一個也將是 0;如果我測量一個為 1,另一個也為 1,不管它們在宇宙中哪個地方,同樣的事情總會發生。

現在這個消息進來了,這是我們的 a 和 b 量子位。

我們現在要用三個量子位來代表它,所以我們把它乘進去,顯示 a 和 b 的位置。我們要用 Alice 的量子位與它糾纏,現在糾纏完成。

如果你注意到,它也與 Bob 的量子位糾纏在一起。但如果鮑伯現在測量,他有 50% 的機會獲得兩種不同的值, 但他不知道哪一個才是正確的值。現在我們來分析 Alice 的量子位,同時測量消息量子位。Alice 是發送一方,這給了我們兩位的經典信息。所以我們得到的是鮑勃的測量可能是 ab 或 ba,但是既然我們已經測量過了,我們就知道了修復量子位的正確方法,所以我們要發送兩行經典信息,基於它們,要麼執行 X 要麼執行 Z 。得到量子位為 ab 狀態 ,這正是我們發送的信息。

我不想太過深入,這有太多的工作要完成。但我想表明,我們所做的只是將每個操作符的矩陣相乘,我們得到了答案。在獲得 Alice 的兩位經典信息之前,Bob 不知道是 ab,還是 ba。所以他沒有打破相對論,這很酷,我們可以用經典的方法進行所有的模擬。但是當我們把量子位加在一起時,你會注意到狀態向量越變越大,事實上,每增加一個量子位 ,它的大小就會加倍。

這裡存在指數增長問題。比如說,你的筆記本或台式機上有 30 個量子位,也許是 40 個,加上雲中的量子位。但如果需要 50 個量子位,就不能在經典機器上模擬,即使是在這個星球上的所有經典機器加在一起也不能一起模擬,因為沒有足夠的內存完成它。

讓我們來看看實現遠程傳輸所需的實際軟體。

我們將創建一個分配量子位的例行程序

現在有一個 Alice 的量子位,Bob 的量子位,和一個可以用於糾纏的臨時量子位。我們將採取臨時量子位並應用 Hadamard 門,然後用 Bob 的量子位來糾纏它,使用受控的非門或者 CNOT 。對於 Alice 的量子位,則採用相同的方法 。但是我們要把 Alice 的量子位翻轉。然後我們來測量一個量子位,它決定我們是否需要使用一個 X 門,並測量出另一個量子位,觀察是否需要使用 Z 門。

有趣的是,實際上高級編程語言看起來與其他的高級編程語言是一樣的。任何一個傳統的程序員對它都應該是很熟悉的,區別在於這種語言理解量子,它了解所有需要發生的錯綜複雜的事情,但是它也能理解經典方法。

這是一個經典的關於經典比特位的 if 語句。

在這種情況下,在我們測量 Alice 的量子位之後,它是經典的。因此,我們實際上可以在量子演算法中混合一個經典的 if,它對任何標準的傳統程序員理解如何做量子演算法,並且非常快速地構建非常複雜的演算法大有裨益。

因此 Q# 開發套件是一個完整的,可擴展的量子平台的一部分。


Q# 開發套件構建冷凍控制系統

從 Q# 代碼開始,我們提供了用戶可擴展的量子演算法庫,有一個經典的主機程序可以完成所有的經典部分,兩者可以連接在一起。然後,我們有一個運行在雲中或本地的叫做 Tracer 的系統  ,它可以讓你做大量的量子演算法,當然,你不能通過經典的方法運行它們,但是它會分析它們。告訴你多少門操作,雜訊會如何影響它,什麼類型的門會工作,有多少並行運算等等……

整個系統將建立在冷凍控制之上,並在量子計算機上運行,如果你對冷凍控制方面感興趣的話 , 你可以看看我們的 Q# 代碼,它是開源的,並且運行實驗室設備來運行先前展示的稀釋制冷機。

我們最初於 12 月 11 日發布了 Q# 開發套件,並且已經對 Windows  Mac 和 Linux 平台上的軟體進行了更新,它支持 Python 互操作,也符合 OSS 標準,所以,你可以把微軟公共開發工具包下載到 VisualStudio 中。

它也可以直接在 Github 上使用,這是一個在 mac 的 Visual  Studio 上運行 Q# 開發套件的例子。

它建立了一個量子計算演算法,事實上,這是編輯器內部的傳送。

這裡有一個在 Jupiter  Notebook 中 Python 中斷的例子。


運用量子模擬進行量子層析  

它顯示我們可以實際運行量子模擬,得到輸出。在這種情況下,沿著這個方向做量子層析。

因此,我想舉一個密碼方面的例子,只是為了顯示如何構成電路,以及如何分析。

這是一個受到光學啟發的演算法,它顯示了如何確定一個函數是否被移位,它被移動了多少。然而,這不是一個簡單的轉變,實際上是轉移到超立方體之上。這是很難發現的,這使得它對密碼學非常實用。

對於這個例子,我們將實現 8 個量子位。所以你看到 16x16,256 個狀態代表 8 個量子位。我們將從狀態集合左上角的全零狀態開始,把所有量子位都疊加起來。 在這一點上,所有 256 種可能的狀態中具有相同的可能性。接下來我們要做的是轉換非移位函數,一旦它被移動,我們就把它應用到電路上。

你會注意到與移位版本相比,沒有移位的版本看起來很不一樣,這不是顯而易見的改變。因為轉移實際上是一個 n 維的轉變,可以進行頻譜分析,得到移位函數的頻譜。現在將它與原始函數進行卷積。當我們撤消頻譜分析時,一個狀態突然出現,這就是每個維度的變化量。

我們採用了一個小版本,可以在今天的量子硬體上運行它。

左邊是 IBM 的,右邊是馬里蘭大學的離子阱,兩者都有五個量子位。

然後我們可以對它的工作原理進行分析。

從圖中可以看到結果的精準度以及雜訊的情況。

量子化學

現在要轉到一個我更熟悉的領域,那就是量子化學。

這是描述電子如何在原子或分子中移動的方程式。

所有真正的第一個和是電子可能離開原子軌道的一個軌道,從 q 軌道到 p 軌道,所以它離開 q 來到 P,第二項是兩個電子同時移動,所以有兩項。

這個看似簡單的方程是非常難以分析和模擬的。在一年的時間裡 ,我們寫了四篇關於量子演算法如何做到這一點並進行改進的文章,這是解決量子化學中各種問題的核心,從一種叫做鐵氧還蛋白 FE2S2 的分子開始。實際上,能量傳輸分子,有四條小豬尾巴(指四條半胱氨酸殘基),這是非常普遍的,普遍存在於植物光合作用中,也在你的血紅蛋白中。它是一個非常重要的分子,但是它含鐵,  鐵在元素周期表下部。即使在最大的經典機器時代,我們也無法做到這一點。

所以當我們開始做第一篇論文時,我們想用量子演算法來做這件事,並使用假設的量子標度,但是要花 240 億年才能找到答案。不太實用的第一篇文章結束時,這個時間已經下降到 85 萬年了,這會好一點,但還是不能商業化。第二篇論文提出的方法需要耗費30 年,至少進入了人類可以衡量的程度。第三篇論文 5 天,這終於可以派上用場了。但是在第四篇論文中,這個時間降到一個小時。

我想表達的是,在實現量子計算機之前,我們有能力改進量子演算法並設計新的量子演算法。通過模擬,我們可以通過解決一些小問題來告訴我們如何解決這些大問題。通過經典的方法,有些分子類型是我們可以在經典量子模擬器上完成的。

我們看看規模為 30 個自旋軌道,或者 30 個量子位的分子。

那些就是我們可以模擬的,而右邊的就太大了。大約 160 左右,我們開始模擬像這樣的分子 FE2S2。在我們寫第一篇論文,然後是第二篇之前,我們實現了並行演算法,通過它們去除了冗餘。我們發現了一個最優排序,以減少誤差,等等。同時,我們實現了一個量子模擬器,並進行了模擬,我們用液體模擬器得到的線要低得多。

記住這是指數級的,所以這比理論預測得更加高效。對理論家來說,他們花了很多時間研究對於更嚴格的界限而言,什麼是更好的估計。然後我們提出了第三和第四篇論文。正是現在模擬顯示給我們的,一切都很吻合。事實上,我們相信在一個小時左右的時間裡,真的可以模擬這些大分子。

Fe2S2 聽起來不太大,但它是分子的一類,同一類是我在大型超級計算機上顯示的固氮分子,它有六個鐵和鉬,它仍然需要大約相同的時間長度。像化學材料,它非常適合在量子機器進行模擬,但是由於它們在晶格中有規則的結構,所以實際上更容易模擬。因此有一個簡單的模型叫做 Hubbard 模型,它被用來模擬許多項,今天在經典機器上有很多種類的材料,但是許多我們感興趣的材料不包括在內。 因為所有格子都是一樣的,我們只需要挑選一個,並相信它是特別的,然後對剩下做平均  只在本地將它與剩下的進行交互。如果進行平均,整個系統就變成了經典系統。不同的是,在每一個可能的頻率上 ,一個電子可能在我們感興趣的點上跳上跳下。所以我們將採取一個單一的點,這可能相當複雜。它可能是我們以前的量子化學模型,因為這是我們關心的東西。然後我們來模擬電子如何從這個懷疑庫中挑出雜質。

動態平均場理論 

因此,所有這些都能夠模擬材料中非常複雜的分子,這是一種標準的技術,它在小型計算機上廣泛應用,但是我們可以在量子機器上進行更大規模的模擬,因此產生了動態平均場理論。當我們製造這些平均場時,保持了量子性。有趣的是,我們可以假定一個模型並在量子計算機上運行它。

這是一個典型的 AI 型循環,一種經典的量子模型調整方法。在這裡得到的不僅僅是一個單一的輸出,一個數字。記住,經典和量子之間的區別是,量子方法我們只得到一個數字;通過經典方法訓練得到的是一個模型。我們可以在量子計算機上高效地載入模型,很快就能得到各種問題的答案,包括基態、激發態、催化率、擴散,各種各樣的東西。

既然我們有一個可以有效載入的模型,  那麼有另一種方法來解決這個問題。建立一個模型,而不是取整個描述系統的方程的整個哈密頓運算元,我們取小塊,然後把它們相加,通過這些小塊,我們仍然可以建立一個模型,以此測試量子。

那有什麼好處呢 ?這些小塊只有很少的門和很少的量子位,因此可以在很短的時間內保持連貫。這使得它在短期內運行小規模或所謂的 NISQ 含雜訊的中等規模量子計算機成為可能;不好的部分是,因為我們沒有整個系統的連貫性,實際上它比用相位估計這樣的技術更糟,這就是我們如何做量子化學和較早的量子材料。但這對於使用物理而不是邏輯量子位的小機器來說具有是有用的,它們具有很短的相干時間。

你會聽到很多關於變數化技術的知識,在失去連貫性之前,我們只需要幾千個門。我們可以用很多類型的量子位來實現。


中等規模的量子計算如何造福人類

所有這些結果都讓我們相信中等規模的量子計算機可以解決一些非常有趣的問題。實際上會影響我們在這個星球上所做的,我們之前所展示的固氮或者氮分子,就是今天製造肥料的一個例子。我們使用地球上每年產生的 5% 的天然氣,這是地球總能量輸出的 3%。在許多地方,人們甚至買不起肥料 ,因為它太貴了。但我們知道植物根部有一種厭氧細菌,每天都在低溫、低壓、低能量下進行這個過程。利用量子計算機,我們有希望建立一個合成的固氮分子,可以很容易地製造便宜的肥料;同樣的問題是碳捕獲,我們可以做一種油漆,你用它漆在世界所有的東西上。它從空氣中吸收碳,這將會緩解全球變暖。在材料方面,我們在全國的輸電線路中損失了 15% 的能源輸出。我們可以製造無損的電力線,如果我們能製造室溫超導體,我們可以製造更好的電池,智能材料。還有很多例子。

當然,作為微軟,我們關心機器學習。有很多事情可以通過更好的模型,更高效,更好的分析來實現。但是它們需要一千個邏輯量子位,而不是一兩百個量子位的量子計算機,所以它們短期內不會出現,但它即將到來,我們可以做的事情是用它來幫助全世界的機器學習。當我們把所有這些聯繫在一起時,它給了我們希望,量子計算實際上會讓我們以積極的方式影響這個星球上的生命,並為我們目前無法企及的問題提出解決方案。

量子計算夢之隊

今天,我們組織了一個全世界的夢之隊。

我們在歐洲、澳大利亞、美國都有實驗室,  我們花了很多時間和一個由世界上最優秀的人組成的多樣性的團隊一起工作。我會給你一個 URL 地址,在那裡你可以得到量子開發套件。

你會找到 Q# 開發套件,但你也會發現我們的程序的所有信息,我們所有的實驗室的鏈接。  你可以註冊一個新聞通訊,當它們出現時你會看到結果,我們會及時發布。

本文首發於雷鋒網 AI 研習社(微信 ID:okweiwu)。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

Google發生「小型叛亂」 :雲工程師拒絕為軍事訂單開發雲服務
紐約排名前五的西奈山醫院與醫療AI公司合作,檢測和管理腎臟疾病

TAG:雷鋒網 |