量子機器學習簡介

作者:
林昱誠(Yu-Cheng Lin)
閱讀時間:
5
分鐘
# 量子機器學習簡介 現在,我們再把視角拉高一個層次,透過 ansatz 產生量子態,根據問題設計 cost (or loss) function,將量子態代入 cost function 後產生一個數字,透過 optimizer 找到數字最小的參數,接著透過這組參數去解決類似問題,這整個過程聽起來是不是像這時代最當紅的「機器學習」: 提出一種模型架構(ansatz),根據問題設計 loss function(比方說分類問題),在訓練過程中模型產出的數值代入 loss function 得出一個數字,接著透過 optimizer 找到可以讓 loss function 得出最小值的參數,訓練完就能利用這組產生去應用在類似的問題(比方說預測圖片裡有沒有貓咪)。 這種過程有牽涉量子電腦又類似機器學習的演算法,統稱為「量子機器學習」(Quantum Machine Learning, QML),是目前這時代學界最火熱的研究議題,聽起來很興奮,但這也代表它還沒像機器學習已經有這麼成熟的理論與方法,有許多是人類未開發之地,也很多地方講不出一個道理,每天都會有人提出新架構新方法,哪個方法會成為未來主流只能等時間去印證。 在這節我們會介紹 QML 的分類,在下一節我們會介紹比較常見的一種 QML:量子神經網路(QNN)。 ## QML 定義與分類 QML 的定義如下,使用可以在**量子電腦**上執行學習的演算法去執行**特定任務**,且**有潛力**勝過經典電腦。 QML 根據資料類型以及演算法類型可以分成以下四類:
Ising model
QML 的四大分類

Picture comes from doi: 10.1007/s42484-024-00191-y

### CC CC 區塊稱作 "quantum-inspired" 方法,在經典電腦上使用 quantum-inspire 演算法處理經典資料,"quantum-inspired" 指的是這演算法雖然是古典,但某些概念是取自量子計算,比方說 tensor networks 和數位退火(digital annealing, DA),其中數位退火跟我們前面介紹的量子退火類似,不過是把演化過程寫成方程式,透過特別為此設計的機器解方程式,這最著名的公司就是鼎鼎大名的富士通 。 ### QC 使用經典電腦處理來自量子系統的量子資料,比方說夠過經典神經網路分類量子態,分析量子電腦的 noise 等等。 ### CQ 使用量子電腦處理經典資料,這部分最多人在研究,你平常聽到或熟知的 QML 大多都指這類,著名的演算法包括 quantum kernels、quantum SVM (QSVM)、QNN、quantum GANs(QGANs)、QCNN、QLSTM 等等,基本上你聽過的經典機器學習,某個地方換成 quantum computer,就會產生 Q-something。 ### QQ 使用量子電腦處理量子資訊。這部分可以再細分成兩類: - 針對機器學習問題的量子演算法,比方說解線性方程的 HHL 演算 - "真"量子機器學習,從頭到尾沒有經典電腦涉入其中,不像 QC 要先將古典資料夠過量子電路轉成量子資料,QQ 是直接使用量子資料,比方說有個量子感應器,它偵測環境中的磁場,然後即時把量子態傳進量子電腦做處理 相比其他三類,QQ 目前最不成熟,還在理論階段或是很初期,而且這部分很仰賴完美量子電腦([FTQC](https://www.entangletech.tw/lesson/popular-08))和 quantum RAM(量子記憶體)的發展。 ## NISQ 時代的 QML 即 QML 定義中的 CQ,因為現在的量子電腦都不完美,容易受到 noise 影響,這類量子電腦統稱為 "[NISQ](https://www.entangletech.tw/lesson/popular-08)",如何使用這種量子電腦用在具有商業或研究意義的用途上,就是這時代最熱們的研究議題,開發可以在這種量子電腦上運行的演算法:NISQ 演算法。NISQ 演算法有幾個特性,首先電路深度都不會太深,畢竟太深錯誤率會變很高,第二是會與經典電腦做配合,因此也稱作 hybrid classical-quantum algorithm,像你在前面學過的 QAOA 和 VQE 均會使用兩種電腦。 可以在 NISQ 上運行的 QML,其中最著名的就是 variational quantum algorithm(VQA),看這名字也能感受到,他其實就跟 VQE 差不多。如下圖,VQA 可以拆分成幾個部件:objection function(即 loss function)、parameterized quantum circuit(PQC)、測量與古典 optimizer(優化器):
VQA model
VQA 的流程圖

Picture comes from doi: 10.1088/1361-6633/ad7f69

### objection function 即 $\hat{H}$,代表你希望期望值越來越小的東西,對應到機器學習就是你的 loss function。如果今天的問題是物理系統(凝態物理或是化學分子),那 $\hat{H}$ 就是這系統的總能量,如果問題並不是物理系統,而是像前面幾節提到的 graph,那你可以自己建構一個 $\hat{H}$,就像我們前面在做的一樣。 最常見的 $\hat{H}$ 型式會是由一連串的 Pauli 矩陣組合而成,像我們在 VQE 和 QAOA 提到的一堆 $Z, X, I, Y$ 這類,當然沒有說 objection function 只能這樣做,也有其他方式,但比較少見,有興趣的讀者可以參看延伸閱讀。 ### Parameterized quantum circuits (PQC) PQC 如同前面我們提到的 "ansatz",由很多 rotation gate 組成的量子電路,而這些 gate 的角度會由經典電腦優化出的參數所決定,因此稱作 "PQC",PQC 在 QML 裡有兩種角色:負責將古典資訊編碼成量子資訊,以及製備 $|\psi(\theta)\rangle$,即 "ansatz"。 #### 編碼(encoding) 在前面 VQE 與 QAOA 的部分沒有這一段,在 QML 中我們常常需要使用數據庫裡的古典資料(classical data),然後這種資料量子電腦看不懂,因此需要用一個量子電路把古典資料轉成量子資料,怎麼轉也是今天學術界熱門的研究議題,如何發揮量子力學的潛力(像是疊加態)使用幾個 qubits 就能表示大量的資訊,每天都有人提出新方法,常見的方法如下圖:
VQA model
Encoding 的常見方法

Picture comes from doi: 10.48550/arXiv.2310.10315

因為已經有這行的專家撰寫編碼這節,有興趣的讀者可以點看[這篇文章](https://www.entangletech.tw/lesson/qml-01),這裡就不多做介紹。 ### Ansatz PQC 在這裡的目的是要製備各種可能的 $|\psi\rangle$,以找到最低能量對應的量子態,依照 ansatz 的類型可以分成兩種,一種是針對問題問題去設計的 problem-inspired ansatz,另一種是就不是針對特定問題但要盡可能地節省硬體資源的 hardware efficient ansatz: Problem-inspired ansatz 就如同 QAOA 特別為 maxcut 問題做設計,或是像 VQE 特別為某個物理或化學系統的 $H$ 做設計,常見的有像是針對化學的 unitary coupled cluster(UCC),不過這種 ansatz 通常所需的電路深度和 qubits 數會很多,應用在更複雜的問題上會難以用在 NISQ 上。 另外一種就是不是針對特定問題設計的,這種 ansatz 會盡可能地遍歷 qubits 上所有的量子態,並盡可能地使用比較少的 quantum gates,這種 ansatz 會由 single qubit and two-qubits gate 組成一個 "block",然後這個 block 會重複好幾個,這重複幾個我們會用 "layer"(層數)來形容,如同 QAOA 裡的 layers,$H_C$ 與 $H_M$ 組合成一個 block,然後重複好幾個 block。 ### 測量 如同在 VQE 所提,在期望值中遇到什麼 Pauli 矩陣就用個 gate 轉到 Z basis。這邊目前遇到的困難是,如果要得到更精準的期望值,就要同個電路測量幾千幾萬遍,得到比較完整的統計數據來推估 qubits 的量子態,然而測量次數越多,就會拉長運算時間。 ### 優化 其實這步驟跟經典機器或深度學習差不多,透過 loss function 的梯度找到達到最低點的路徑,並根據此提供新的參數: \begin{align} \theta_i(t+1)=\theta_i(t)-\mu \frac{\partial L}{\partial\theta_i}|_{\theta_i=\theta_i(t)} \end{align} 其中 $\mu$ 就是 learning rate(學習率),常見的方法有 SGD, ADAM 等等,幾乎跟經典機器學習用的一樣。 當然也有不須透過梯度做參數更新,比方說透過 evolutionary 演算法以及 sequential minimal optimization(SMO),這邊就不詳述。 ## QML 的問題與挑戰 如同前面提及,QML 目前是學界熱門研究議題,有很多人類未開發之地,因此對於 VQA 這類演算法究竟普遍表現如何,以及在什麼情況下會失敗仍是未解之謎。在這裡,我們提及一些比較常見會導致 VQA 表現欠佳的原因。 ### Barren plateaus 當今天 VQA 需要用到的 qubits 數越來越多,問題的景觀(landscape)會變得越來越平坦,最後找不到梯度(因為太平了,找不到滾到最低點的路徑),這種現象就稱作 "barren plateaus",而要突破這問題又需要更多的資源,像是測量次數變得更多。 當然競爭的學界也提出五花八門的方法來克服這問題,不過也是需要時間來驗證誰的方法會變成未來的主流。 ### Noise 的影響 現在 NISQ 的計算結果都容易受到 noise 影響,因此研究 noise 會對 VQA 造成什麼影響也是學界熱門研究議題之一,不過這目前還有待更多實驗團隊給出實驗結果,然後透過這些實驗結果歸納出一個理論。 很有趣的是,有些文獻發現 noise 反而可以讓 VQA 的表現更好,或許是因為有 noise,可以避免優化到局部低點,因為 noise 的震盪可以讓優化跳出局部低點。 ## 延伸閱讀 - [專家撰寫 QML 概述](https://www.entangletech.tw/lesson/qml-00) - [QML 的未來與發展](https://www.entangletech.tw/lesson/qml-09)
課程目錄