量子機器學習 (一) - 概述

作者:
劉宸銉
閱讀時間:
5
分鐘
# 量子機器學習 (一) - 概述 ## 序 近年(~2024)來,大型語言模型的問世改變許多人的生活。有些人覺得自己的工作將要被類似的人工智能取代,有些人認爲這些工具可以大幅提升生產力,使自己的工作模式達到以前無法想像的境界。隱藏在大型語言模型的核心裡的是矩陣、張量與機率等基礎數學構成的機器學習原理。在古典計算的世界,一切源於對古典位元([bits](https://www.entangletech.tw/lesson/popular-02))做[邏輯運算操作](https://www.entangletech.tw/lesson/basic-algorithm-03),構成各式各樣的真值表。而近年崛起的量子計算,利用了量子力學中[疊加](https://www.entangletech.tw/lesson/popular-04)跟[糾纏](https://www.entangletech.tw/lesson/popular-05)的概念,發展許許多多不同的演算法以及應用,從一些理論推導與實驗證據顯示,量子計算的確有可能作為下一個世代的計算方法,解決一些古典計算難以企及的問題。本系列文章旨在從量子機器學習的概觀開始,逐步進入應用的細節,從已提出數年的量子機器學習(QML)方法到今年(2024)剛提出的新量子機器學習架構,讓讀著們對 QML 的概觀與發展有基礎的認識。 ## 機器學習(Machine Learning, ML) 這些對古典位元進行邏輯操作構成的電腦程式,如果可以在某個任務 $T$ 和效能評估 $P$ 上,從經驗 $E$ 中學習,且其在任務 $T$ 上的表現,由 $P$ 衡量而得,能隨著經驗 $E$ 改進,則稱其能從經驗 $E$ 中學習。這裡舉兩個例子,如圖所示,下圍棋任務與辨識貓咪圖片任務。
圖片內容

那什麼樣的程式可以完成這種任務呢?歷史上人類提出各式各樣可能的架構,不過我們這邊主要介紹的架構是類神經網路(以下簡稱神經網路)。
圖片內容

由上圖可以看到,以辨識貓咪圖片任務為例,彩色圖片本身可以視為一個有 RGB 三個通道(channel)的矩陣,這樣的矩陣可以跟一個神經網路做交互作用。以最簡單的一層神經網路為例: \begin{split} y = f(\sum_j w_{ij} x_i + b) \end{split} 其中 $x$ 是輸入資料,$w_{ij}$ 是神經網路的weights(權重),$b$是bias(偏置),$f$ 是activation function (激發函數),而 $y$ 是輸出。我們藉由輸出 $y$,可以透過 loss function (損失函數)估計參數的梯度(gradient),透過梯度下降法等更新算法更新 weights 與 bias,以達到可以透過大量訓練資料找到可以完成任務的目的。在這樣的架構下,有一個可調整參數的神經網路,以及可以調整這個參數的方法是構成學習機制的基礎。 ## 量子機器學習 物理學家 Planck 在研究黑體輻射過程中發現須引入普朗克常數(Planck constant) $h$ 才能解釋實驗結果,意味著能量有最小單位,是離散的,不是連續可變的。有了 Planck constant 後,另一位物理學家 de Broglie 在他的[博士論文](https://fondationlouisdebroglie.org/LDB-oeuvres/De_Broglie_Kracklauer.pdf)提出了物質波的概念,說明物質既有波的特性也有粒子的特性(波粒二象性),而物質波的波長跟 Planck constant 有關,為 $\lambda = h / p$,其中 $p$ 為物體的動量。過幾年後,另一位物理學家 Schrödinger 碰巧讀到了 de Broglie 的博士論文,大受物質波概念啟發,推導出描述微觀粒子行為的薛丁格方程。在 Schrödinger equation 的解中,粒子的狀態以波函數(wave function)的形式描述,wave function 的絕對值平方表示粒子的位置或狀態的機率分佈,而這揭示了粒子行為的機率性質。Schrödinger equation 的解可以是多個 wave function 的線性疊加,這就引入了量子力學中疊加態的概念,也就是後來的量子計算中,bits 與 [qubits](https://www.entangletech.tw/lesson/basic-algorithm-07) 最大不同之處。 一個 qubits 的狀態,可由所謂的量子態來表示: \begin{split} |\psi \rangle = \alpha |0\rangle + \beta | 1 \rangle, \quad \alpha, \beta \in \mathbb{C} \end{split} 代表著這個 qubits ,經過測量後,測到為 $|0\rangle$ 的機率為 $|\alpha|^2$,而測到為 $| 1 \rangle$ 的機率為 $|\beta|^2$。 就如同 bits 之於古典計算一樣,qubits 也可藉由一系列的 [quantum gates](https://www.entangletech.tw/lesson/basic-algorithm-08) 操作而改變他的狀態,構成所謂的量子計算。常見的 quantum gates,有Pauli $X, Y, Z$ gates,Hardmard $H$ gates,以及 Rotational gates (旋轉閘) $R_X(\theta), R_Y(\theta), R_Z(\theta)$...等。
圖片內容 圖片內容 圖片內容 圖片內容

由上至下: X, Y, Z, H gates 作用在 |0> 上的示意圖

圖片內容 圖片內容 圖片內容

由上至下: Rx, R_y, Rz gates 作用在 |0> 上的示意圖,可以發現基本上就是繞著相應的軸旋轉 theta 度。

在這些 gate 中,其中 rotational gates 對於後續 QML 最重要,因為可旋轉角度 $\theta$ 構成了**可調參數**,就跟上面提過的一樣,有可以調整的參數,才有機會可以構成學習的機制!由這些可調參數閘構成的量子電路,就可以稱作為 Parameterized quantum circuit (參數化量子電路, PQC),例如:
PQC example

圖中,每個旋轉角度都是 $\frac{\pi}{2}$,當然他們也可以是其他角度,而中間 CNOT gates 構成了不同 qubits 間糾纏的機制,以至於在這 PQC 中控制其中某個 qubits 的旋轉閘角度是有可能影響到其他 qubits 的狀態(當然也要看操作順序是如何)。 有了 PQC 後,我們就能夠藉由輸入不同的參數(旋轉角度),製造出不同的量子態,也就是說,如果在機器學習任務的觀點,我們有了一個可以調整輸出的**量子神經網路**(Quantum Neural Network, QNN)。
圖片內容

上圖為目前(2024)主流的 QML 架構:**混合古典量子機器學習**(Hybrid Quantum-Classical Machine Learning)的流程,跟古典機器學習不同的是,在讓資料與 QNN 互動前,需要先把資料“編碼”成量子態,這樣有了資料資訊的量子態才可以被由量子操作構成的 QNN 運算。在量子模型運算完後,計算結果會由測量的方式產出,常見的做法是測量對 Pauli-Z 運算子的期望值 $\langle \sigma_z \rangle$。 而測量結果會再經由一個古典模型做後處理,最後才輸出整個混合模型的預測結果。就如同前面提到的古典機器學習一樣,有了預測結果,就可以建構出與任務有關的 loss function,來對量子模型的參數(旋轉角度)與古典模型的參數(矩陣權重)做更新。以上的範例會衍生出各式各樣的問題與可能性,例如: 1. 資料編碼的方式對於不同資料的影響?在什麼情況下應該用哪種編碼方式? 2. QNN 有哪些種類?為什麼在不同情況下要用不同的量子電路? 3. 典模型運算的部分可以刪去嗎?純粹用 QNN 就好?會有什麼影響,該怎麼設計? 4. QNN 的參數更新方式跟古典模型一樣嗎?為什麼? 5. 有沒有其他種 QML? 接下來的系列文章會以回答以上問題的角度出發,希望讓讀者對於 QML 有更詳細的理解,激發出更多學習的樂趣! ## 延伸閱讀 1. [機器學習任務](https://www.youtube.com/watch?v=WeHM2xpYQpw&list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&index=3) 2. [神經網路介紹](https://www.youtube.com/watch?v=xCGidAeyS4M&list=PLJV_el3uVTsPy9oCRY30oBPNLCo89yu49&index=30)
課程目錄