量子電腦有嚴格或者沒那麼嚴格的定義
不過這波熱潮的量子電腦 很多時候也沒分那麼細
甚至古典計算+量子計算結合在一起 都是可以的
量子力學很多跟古典物理不同的規則
第一個是所謂的量子疊加
簡單說 古典電腦的資訊是用|0>或者|1>來儲存 並操作這些位元 進行計算
而在量子力學 一個態可以同時0或1的疊加 表示為|0>+|1>
(我忽略歸一化常數 之後也是 不要找我漏洞 謝謝)
是指真的不是0或者是1(而非只是我們不知道到底是哪個!)
只有真的做觀測 才會變成是哪個態(量子力學裡叫做 波函數塌陷)
|0>+|1>就變成|0>或|1>
另一個是量子糾纏 這個比較複雜點 用一個具體的例子來解釋
假設有兩個人a和b 手上有一對量子糾纏態|0,a>|1,b>+|1,a>|0,b>
a跟b現在都不知道自己手上的是甚麼 但都"很確定"自己手上一開始的是|0>+|1>的疊加態
但a一旦做了觀測 發現自己的是|0,a>
那麼 b本來的疊加態 "在b自己還沒觀測前" 就就被決定了|1,b>
(注意 這些量子規則都是因為實驗驗證的必然 繞不掉的
為什麼非得接受這些規則 為什麼我會說 "而非只是我們不知道" 或者"繞不掉"
是物理史很精彩的故事 但詳細我不想展開 那會模糊焦點 又需要花時間寫更多)
總之 嚴格意義的量子電腦 是指用這些規則 建構量子位元 組合各種量子邏輯閘
只用這些量子邏輯閘來構成量子電路 跟古典電腦的結構比較像
這種的被稱為量子電路計算
現在各大主流公司 google IBM...幾乎都是在做這種模型的量子電腦
但還有另一種量子電腦 叫做絕熱量子計算
是用另一種量子原理 不是用前面說的量子邏輯電路而建構
具體而言 是準備一個量子系統 然後由於量子力學的演化法則
這個量子系統會演化成另一個 這就可以當作一個計算過程:
可以根據想要算的問題 專門設計量子初態 調節它們的交互作用
最後演化出來的對應的就是問題的結果
D-wave的量子電腦就類似這種技術
其實這兩種量子計算模型 印象中被證明在理論上是多項式等價 不過具體實踐技術差很多
以下就只講量子電路模型
總之 量子力學存在比古典力學還多的操作 而且 事實上 這世界的本質本來就是量子的
所以不必很驚訝 在某些問題上 量子電腦會比古典電腦更好
特別是 如果那些問題本來就跟量子層級的物理有關的話
只是實際還是有很多技術上的困難
因為量子態很脆弱 很容易跟環境中很多東西有糾纏或交互作用
然後量子疊加態就會因此而快速消失 這個現象就做量子去同調(Decoherence)
這會造成量子計算過程的不穩定和錯誤
於是 為了解決困難 必須要更多的量子位元來糾正錯誤
(又或者 真的用所謂的"拓樸"量子位元當元件 不過那根本沒個影 連微軟都不打算玩了)
以現在的技術而言 要大約數百到一千個的"物理"量子位元
才能夠做出一個真正用來當作計算元件的"邏輯"量子位元
量子計算的第一個熱潮 是在上個世紀末左右
Peter Shor發展出量子算法 Shor算法 做質因數分解 可以有指數級的加速
在那之後像是Grover算法 拿來做資料搜尋 跟Shor算法一起 對解碼有根本性的影響
加上08年的HHL算法 這些都是都是理論上證明 的確有不同等級加速的量子算法
這三個大概可以說是最著名 而且潛在應用最廣 被證明有加速的量子算法
但這些都需要上面提的 另外更多的量子位元來糾錯才能實現
以目前的技術 大概都要至少10^6個甚至10^8個左右的物理量子位元才做得到
可以參考這張18年的圖 https://imgur.com/a/fpu9X5C
可見未來暫時是做不到的
特別值得提的是HHL算法 這是拿來解線性方程組的 可以有指數級加速
但也同樣需要更多量子位元來糾錯
但可以想像 解線性方程組在最佳化或者機器學習上有多大的用處
自那以後 加上機器學習的熱潮 量子機器學習就很多人開始研究
老實說 讓量子計算熱潮在二十年後重啟的原因 其實跟甚麼密碼學上的應用關係比較有限
而是被隨著機器學習熱潮而被推動
台灣還是常常還是看到 很多人還是拿二十世紀末的量子計算熱潮時的東西當科普
那都是沒跟上後來的發展
我之所以想要回這篇 也是因為推文裡的q大和h大的爭論
更認真來講 這波熱潮的來源 大概有兩個
第一個是來自技術上的進步
很長一段時間 個位數或頂多十來個物理量子位元構成的量子電路 就是極限了
而目前已經可以做到數百個量子位元構成的量子電路了
幾年內應該就可以到一千個以上了(IBM宣稱今年就可以了)
已經接近真正做出一個邏輯量子位元了
這雖然離要做糾錯量子計算的10^6-10^8個還有很大距離
但是不是這樣規模的量子電路 已經可以在某些"特定"問題上有幫助呢?
這個概念還有個特別的詞 在現在學界和業界很紅
叫做Noisy intermediate-scale quantum era(噪聲中小規模量子紀元...簡稱NISQ)
想要了解這波量子熱潮的最好方式 就是拿NISQ去google或chatgpt一下
而所謂的量子霸權(quantum supremacy)
指的就是在非常特定的問題上 量子電腦做得比古典電腦快
微軟在2018就在一個非常特定的問題上實現了量子霸權
只是這個問題沒甚麼利益 只是為了用來展示量子霸權而設計的
但有些人就抱持期待 是不是能找到一些有利可圖的特定問題實現量子霸權呢?
之所以NISQ這個概念被關注 除了技術的發展外 也是跟2010年後有新的理論發展有關
Variational quantum eigensolver(變分量子特徵值求解器 簡稱VQE)在約十年前被提出
最早是用來求系統的最低能量(基態) 或者 在量子力學裡 是矩陣的特徵值(eigenvalue)
這是一種融合量子電路和古典電腦的算法
具體而言 是利用量子電路 輸出某個能量
然後再把得到的結果丟到古典電腦算梯度下降 再根據此來調節量子電路的參數
這個過程反覆疊代後 得到的就會是最低能量 就是想要的結果
這本來是在量子化學裡發展的新方法 在藥物或材料模擬上有用處
優勢是 不那麼需要糾錯 在NISQ時期就可能就可以使用了
而細心的人可以想到 這裡的輸出 不一定得要能量
可以根據不同的問題來設計 應用在各種最佳化問題上
甚至 如果把能量換成cost function
那麼這整個概念 是不是就跟深度學習很像?
於是後來當然一堆人把深度學習裡做的事情 用這個版本做一次再發文章
你可以想成 量子電路基本提供另一個有別於神經網路的數學結構 然後拿來做類似的事情
只是 這個技術目前沒有證明 到底有沒有量子加速
甚至其實根本很難有個明確的定義 到底效果會是怎樣
就好像...深度學習如果不是當初伴隨著GPU發展 然後跑出來後真的效果很好
那麼大概也還是會有很多懷疑
但"說不定" 量子電路供比神經網路更有效或更廣泛的數學結構(或至少在某些問題如此)
有些文章就是朝著這個方向研究 宣稱在某些特定情況下是這樣
總之 其實這波熱潮最吸引人 而且也是好的結果 就是拿來做AI或者各種最佳化問題
拿來做解密或搜尋甚麼的 大概要等更久以後了
退一步 要是VQE能夠拿來做它本來打算做的事 藥物或材料模擬 那也算是有很大用處了
只是 到底會多有用 說穿了 至少暫時 還沒人真正知道
畢竟 真正被理論證明有加速的量子算法 還是以前那幾個
能在有利可圖的問題上應用的算法還很少 基本沒一個可以在未來十多年內的技術來實現
過去十來年這些新的算法 就像上面說的 目前還沒一個是真的被證明有加速的
或者 必須要滿足某些不那麼簡單的前提(像是 初始資料已經是量子態)
但這也不妨礙有些人先佈局就是了
畢竟 要是真的最後跑出來 效果就是很好呢?
隨著量子位元數可以做到上千 慢慢的也會看出點成果
P.S. 寫了那麼多 我想版上懂機器學習的版友很多
要是有更進一步的興趣 可以自己到IBM的Qiskit教程上玩玩 感受下量子機器學習
https://qiskit.org/ecosystem/machine-learning/tutorials/index.html
只是要建小玩具的話很簡單 寫起來不會比sklearn難多少
(當然 這不是在真正的量子電腦跑的 而且也沒有很好優化 速度跟效果都沒很理想XD)