iT邦幫忙

2026 iThome 鐵人賽

DAY 1
0
AI Engineering

從 AI Engineering 到 Quantum Machine Learning:30 天打造 QML 實驗與加速開發流程系列 第 1

Day 01|AI 工程師為什麼要理解量子機器學習?|Why Should AI Engineers Understand Quantum Machine Learning?

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20260914/20183919PuDGqB3Kz1.png

說明

本次以 「從 AI 工程到量子機器學習:30 天 CUDA-Q 實作」 為主題,從 AI Engineer 的工程視角出發,使用 PythonNVIDIA CUDA-Q,逐步建立一套完整的 Quantum Machine Learning(QML)實驗流程。

30 天的內容會從 Qubit、Quantum Gate、Measurement 等必要的量子計算基礎開始,進一步實作,本系列不預設量子模型一定優於傳統機器學習,而是透過 Classical ML、Quantum ML 與 Hybrid ML 之間的實際比較,記錄 Accuracy、F1 Score、Training Time、Circuit Cost、Shots、Backend 與執行環境等資訊,嘗試回答一個核心問題:

Quantum Machine Learning 在目前的工程條件下,到底能解決什麼問題,又需要付出多少計算成本?

整個系列的程式碼、實驗紀錄、Benchmark 與文章內容皆整理於 GitHub:

GitHub Repository
https://github.com/kancheng/qml-engineering-30-days

這 30 天希望留下的不只是 30 篇互相獨立的文章,而是一個可以持續累積、執行、驗證、比較與延伸的 QML Engineering Project

0. 前言

假設你手上有一批花的資料,每筆記錄包含花瓣長度、寬度,以及已知的種類。你想寫一個程式,讓它看過這些例子後,能判斷另一朵花屬於哪一類。這是一個機器學習問題。

現在,把程式中的一部分計算換成量子電路,會發生什麼事?資料要怎麼送進去?電路如何給出答案?如果預測變準了,增加的時間與運算成本是否值得?

量子機器學習(Quantum Machine Learning,QML)研究量子計算如何參與機器學習。本系列從上述這類一般數值資料出發,逐步建立可以執行、比較與回查的實驗。第一天先弄清楚整個流程,以及一個貫穿後續章節的判斷原則:程式能執行、模型預測得更準、完成任務的成本更低,需要分別提出證據。

Quantum machine learning (QML) explores how quantum computation can contribute to machine learning. Starting with a simple flower classification task, this chapter follows the path from numerical inputs to quantum circuits, measurements, and model updates. It also establishes how experiments will be assessed: a working implementation, better predictions, and lower total cost are separate claims that require separate evidence.

1. 先把問題說清楚:模型到底在學什麼?

為了方便說明,先假設只需要分辨 A、B 兩種花,而且每朵花只提供花瓣的長度與寬度。以下是虛構的教學資料,並非本專案的實測結果。

花瓣長度 花瓣寬度 已知種類
1.4 公分 0.2 公分 A
1.7 公分 0.4 公分 A
4.5 公分 1.5 公分 B
4.9 公分 1.8 公分 B

長度與寬度是模型可以使用的資訊,稱為特徵;A、B 是希望它學會預測的答案,稱為標籤。這種提供範例與正確答案的學習方式,叫作監督式學習。

最簡單的做法,可以先猜一條規則:「花瓣超過某個長度,就判斷為 B。」這裡的長度門檻是可以調整的數值,也就是模型的參數。如果錯分了太多花,就移動門檻,再看結果是否改善。更複雜的模型可能同時使用長度與寬度,並調整許多參數,但基本工作仍然是從範例中找出可用的判斷規則。

「學會」不能只靠記住這四筆資料來確認。我們真正關心的是:遇到沒看過的花,模型還能不能判斷正確?這種把學到的規則用於新資料的能力,稱為泛化能力

因此,在加入任何量子工具之前,問題就應該先寫清楚:輸入是什麼、要預測什麼,以及用什麼方式判斷預測是否有用。

2. 量子計算放在流程的哪裡?

一般機器學習模型會把輸入數值經過一連串計算,得到預測。QML 的一種做法,是讓量子電路負責其中一段計算。整理資料、計算預測誤差與更新參數,仍可由一般電腦完成。

先沿著一朵花的資料走一遍:

花瓣長度、寬度
      ↓
一般電腦:把數值轉成適合電路的輸入
      ↓
量子電路:依輸入與目前參數執行操作
      ↓
量測:取得結果,累積成可供預測的數值
      ↓
一般電腦:產生預測,與已知種類比較
      ↓
調整參數,再用新的設定執行電路

這裡的量子電路,可以先理解成一張有順序的操作清單:先準備量子位元,再依序對它們做指定操作,最後讀取結果。單一步驟稱為量子閘。它們實際如何改變狀態,會在 Day 02–04 用數值與小電路說明。

量子位元(qubit)是量子計算使用的基本資訊單位。在本系列最先使用的讀取方式下,一次量測會得到 0 或 1。不過,描述量測前的狀態,還需要能影響後續運算的資訊,不能只列出得到 0、1 的機率就結束。Day 02 會說明這項差別為什麼重要。

把花瓣尺寸轉成電路可以處理的形式,稱為資料編碼。例如,可以先把長度縮放成某個角度,再用這個角度設定量子操作。這裡需要區分兩種數值:輸入角度隨著每朵花改變;模型參數則由訓練流程調整,用來學習一套適用於多朵花的規則。

如果電路裡有可調整的參數,就稱為參數化量子電路。一般電腦與量子運算共同完成任務的方式,稱為量子與經典混合計算;「經典」在這裡就是一般電腦使用的計算方式。

QML 的範圍比這一條流程更廣,也包含其他學習方法與來自量子系統的資料。本系列先聚焦在一般數值資料,方便把輸入、預測與比較條件交代清楚。

3. 量測得到 0 或 1,怎麼拿來判斷花的種類?

我們可以約定:用電路量到 1 的比例,作為「判斷為 B」的分數。

假設對同一朵花、同一組參數,重新準備並執行電路 100 次,其中 73 次量到 1,便得到分數 73 ÷ 100 = 0.73。再約定分數至少 0.5 就判為 B,這朵花便會被分到 B 類。這些數字只是說明流程的假設例子;0.5 是我們選的判斷門檻,並非量子計算強制的規則。

這種重複執行以取得結果的方式叫作取樣,執行次數常以 shots 表示。每一次都包含重新準備狀態、執行操作與量測,並不是對同一份未改變的狀態反覆讀取。

如果再做一組 100 次,可能只得到 69 次 1。這種差異可能只是有限次取樣造成的波動,未必表示程式有錯。增加次數通常能讓比例更穩定,但也要付出更多執行成本。若裝置本身有系統性的讀取偏差,多量幾次仍不會自動把偏差消掉。

接著,一般電腦會把分數與正確答案比較。假設用 1 代表 B,便可以用平方差衡量這筆預測的誤差:

預測分數為 0.73:誤差 = (0.73 − 1)² = 0.0729
預測分數為 0.90:誤差 = (0.90 − 1)² = 0.0100

這種把預測與答案的差距變成數值的規則,稱為損失函數。訓練時通常會綜合多筆資料的損失,再調整參數,嘗試讓整體損失下降。負責選擇如何調整的演算法,稱為最佳化器

注意,0.73 與 0.90 在上述門檻下都已判為 B,但平方誤差仍然不同。這說明「分類答對幾題」與「訓練時如何衡量誤差」是兩種不同的觀察。量到 1 的比例也不會自動成為可信的種類機率;它與實際答對機會的關係,仍要用資料檢驗。

當訓練完成、參數選定後,對新資料執行同樣的輸入與預測流程,就叫作推論。此時沒有這朵花的正確答案可供當場修正模型。

4. 為什麼值得研究?又為什麼不能先假設它比較好?

改變模型的運算方式,也會改變它能表示的輸入與輸出關係。對花的分類而言,可以把這件事想成:模型能在「長度與寬度」構成的平面上,畫出哪些分界,把 A、B 兩類分開?

量子模型的資料編碼與電路安排,會影響這些可表示的關係。這是可以研究的問題:某種安排是否適合某類資料?需要多少參數與量測?能否在有限的訓練時間內找到好設定?資料編碼如何影響模型能表示的函數,已有專門的理論研究。Schuld、Sweke 與 Meyer(2021)

但「能表示某種關係」與「訓練找得到它」仍有距離。就像有一套很靈活的繪圖工具,不代表有限時間內就能畫出合適的分類邊界。工具更複雜,也可能更難調整。

對工程工作而言,理解 QML 的價值,在於能把一項新計算方法接進完整流程,檢查它解決了什麼問題、增加了哪些成本。對研究而言,則需要進一步提出可被實驗推翻或支持的假設,例如:

在相同輸入資料、資料切分與模型選擇預算下,讓資料多次進入量子電路,是否能改善未見資料上的分類表現?改善是否值得增加的電路執行成本?

這個問題指定了要改變的因素、要固定的條件,以及要觀察的結果,後續才有辦法設計比較。

5. 一份結果,要怎麼判讀?

假設有人展示以下數字。這是一張虛構的判讀練習表,不是本專案成果。

方法 測試答對比例 完整訓練時間
一般模型 90% 2 秒
量子模型(在一般電腦上模擬) 92% 120 秒

這張表最多先告訴我們:在這一次列出的結果中,量子模型的答對比例較高,訓練也較久。要解釋這個差距,還需要知道以下條件。

第一,兩個模型是否拿到相同的題目與資訊? 如果一個只用花瓣長度,另一個同時使用寬度,差距可能來自輸入資訊。若量子模型必須先壓縮資料,也應讓一般模型使用相同的壓縮輸入做對照;必要時再保留使用完整輸入的一般模型,觀察壓縮本身的影響。

第二,考試資料是否事先被拿來挑設定? 我們把資料分成三種用途:訓練資料用來調參數,驗證資料用來挑選模型設定,測試資料留到設定選定後評估。這就像練習題、模擬考與最後考試各有角色;如果反覆看最後考試的成績來改模型,它就不再是獨立的檢驗。縮放資料時使用的平均值等資訊,也應只從訓練資料取得,避免把測試資訊帶進訓練。

第三,差距是否穩定? 模型的初始參數、資料切分與有限次量測,都可能讓結果改變。如果測試集只有 50 筆,90% 與 92% 就只差一筆答對。需要記錄樣本數,並依實驗目的重複不同設定,報告平均表現與波動,才能判斷差距是否值得進一步研究。

控制程式隨機序列的起始設定稱為隨機種子(seed)。保存種子有助於重做實驗,但也要保存軟體版本與執行條件;單靠同一個種子,無法保證不同硬體上的所有結果完全一致。

第四,一般模型是否獲得合理的調整機會? 解決相同任務的參考方法稱為比較基準(baseline)。可以從簡單分類規則開始,再加入合適的一般機器學習模型。兩者不必強迫使用相同參數量,但必須交代各自的複雜度與選擇設定所花的預算。只仔細調整量子模型,卻讓一般模型使用不合適的設定,會讓比較失去說服力。

第五,時間到底算了哪些步驟? 完整成本可能包含資料轉換、反覆執行電路、量測、更新參數與模型選擇。如果使用遠端量子硬體,還可能包含傳輸與排隊。只量某一小段計算,無法直接回答整個任務要花多久。

量子優勢是更強的主張:需要說明在什麼任務、品質要求、問題規模與成本條件下,量子方法優於適當的經典方法。單次準確率較高,或電路成功執行,都不足以單獨支持這個結論。

6. 模擬器、GPU 與真正的量子硬體,各自做什麼?

本系列可以先在一般電腦上執行量子電路,因為模擬器會用數值計算,模仿量子狀態如何變化。這讓我們能先檢查小電路與訓練流程。

名稱 在流程中的角色
CPU:中央處理器 執行一般程式、整理資料、控制訓練流程,也能執行量子模擬
GPU:圖形處理器 擅長大量適合平行處理的數值運算,可用來加速部分量子模擬
QPU:量子處理器 實際在量子硬體上執行操作與量測

CPU 與 GPU 都是經典硬體。GPU 上的模擬變快,表示一般電腦更快完成某個量子模擬工作;要知道真實 QPU 的速度與預測品質,仍需要另外量測。

模擬也有容量限制。以直接保存完整純態向量的常見方法為例,n 個量子位元需要 2ⁿ 個複數係數。這裡的重點是:每增加一個量子位元,這部分儲存需求就加倍。 小電路能順利執行,不能直接外推更大電路的成本。其他模擬方法可能利用電路結構節省資源,因此也要記錄採用哪種方法。

這些係數用來描述量子狀態,並不代表真實量子電腦可以一次把所有係數讀出來。從電路取得可用答案,仍然受到量測方式與次數的限制。

到了真實硬體,還需要考慮操作與讀取的偏差,也就是雜訊。此外,並非任意兩個量子位元都能直接一起操作,可能需要增加中間步驟。考慮能同時執行的操作後,仍需依序完成的層數稱為電路深度;更深的電路通常也意味著要更仔細檢查時間與雜訊的影響。

CUDA-Q 在其中的位置

CUDA-Q 是本系列用來描述量子電路、指定執行目標與取得結果的開發工具。它支援一般運算與量子運算共同構成的程式流程。NVIDIA CUDA-Q 入門文件

執行後端(backend)就是程式實際交給哪個模擬器或硬體。沿用電路描述可以減少改寫工作,但切換後仍需核對可用操作、數值精度與量測條件。

本專案以 Surface Pro 7 進行寫作、資料整理與小型數值計算,以 Ubuntu 主機與 RTX 3060 顯示卡進行 CUDA-Q 環境與 GPU 模擬實驗。具體環境與驗證範圍見 Day 06。目前專案的多 GPU 部分是情境模型,QPU 部分是本地預演;兩者都沒有對應的真實硬體實測,也尚未證明量子優勢。

7. 後續會沿著哪些方法往下走?

有了完整流程,再看方法名稱就比較容易知道它們各自負責什麼。

方法 用花的分類來理解 後續入口
變分量子分類器(VQC) 調整電路裡的參數,讓預測更接近已知種類;「變分」在這裡指反覆調整參數來改善目標值 Day 15
混合神經網路 先由一般神經網路把尺寸轉成中間數值,再交給量子電路,兩部分一起調整;神經網路是由多層可調計算組成的模型 Day 19
量子核方法 用量子狀態之間的關係建立兩朵花的相似度,再交給一般學習方法分類 Day 23

量子核方法中的「核」是一種符合特定數學條件的比較函數。它與 CUDA-Q 中描述量子運算程式區塊的 quantum kernel,是不同概念。

後續也會改變資料進入電路的方式,以及電路的操作排列,觀察預測與成本怎麼變化。方法名稱只是索引;閱讀時可以持續追問:輸入如何轉換、哪些參數會學習、輸出如何形成,以及比較結果支持了什麼。

8. 30 天如何累積成一個完整專案?

階段 要回答的問題 累積的成果
Day 01–05 量子狀態、操作與量測如何連起來? 能用小型數值計算核對電路
Day 06–10 如何讓電路參與反覆學習? 環境紀錄與第一個參數更新流程
Day 11–15 一般資料如何變成分類預測? 資料編碼、分類器與保存的模型
Day 16–20 量子、一般與混合模型差在哪裡? 固定條件的比較與花卉資料實驗
Day 21–25 資料太多或模型學不動時,原因是什麼? 輸入壓縮、核方法與訓練限制的分析
Day 26–30 雜訊、規模與硬體條件如何影響結論? 效能紀錄、硬體執行準備與成果證據整理

完整章節見 30 天學習路線

一個可供他人檢查的專案,需要把「為什麼這樣做」與「怎麼得到結果」連起來。每個重要實驗應保留問題、資料來源與切分、比較方法、執行環境、結果,以及尚未回答的限制。例如,若只測過少量輸入特徵,就應把結論限定在這些條件內,並說明下一步如何檢查規模增加後是否仍成立。

這些紀錄讓讀者能順著文章找到程式,再從程式找到保存結果。即使某次比較沒有改善,也能留下有用的分析:哪項假設沒有得到支持、可能原因是什麼,以及還需要哪個實驗才能區分原因。

9. 今天先完成一份問題定義

Day 01 的產出是一份能指引後續實驗的問題定義。沿用花的分類,可以先寫成:

項目 本日練習設定
任務 根據花瓣長度與寬度,判斷 A、B 兩類
輸入與答案 兩個尺寸數值,以及每筆資料的已知種類
一般比較方法 先建立簡單分類規則,再選擇適當的一般模型
量子方法 把尺寸轉成電路操作的角度,調整電路參數,以量測比例形成預測
評估方式 在保留的測試資料上計算答對比例,記錄重複實驗的波動
成本紀錄 記錄完整訓練時間、預測時間與量測次數
結論邊界 小型模擬結果只能支持相應條件下的觀察,不能直接代表真實硬體或更大規模的表現

到這裡,可以試著回答三個問題:

  1. 若量子模型比較準,但完整訓練時間增加許多,你還需要哪些資訊才能決定是否採用?
  2. 若 GPU 把模擬時間縮短一半,這項結果證明的是哪一段工作變快?
  3. 若更換資料切分後,原本的優勢消失,你會如何修改結論與下一次實驗?

回答時,將條件、觀察與推論分開:條件是兩個模型拿到什麼資料與資源;觀察是實際量到的數值;推論則是這些數值能支持到哪裡。這個習慣會一路用在後續的程式與實驗報告中。

10. 文獻與後續閱讀

  • [R1] Biamonte et al., “Quantum machine learning,” Nature 549, 195–202 (2017), DOI.
  • [R2] Cerezo et al., “Challenges and opportunities in quantum machine learning,” Nature Computational Science 2, 567–576 (2022), DOI.
  • [R4] Schuld and Petruccione, Supervised Learning with Quantum Computers, Springer (2018), DOI.
  • [F1] Nielsen and Chuang, Quantum Computation and Quantum Information, 10th Anniversary Edition, Cambridge University Press (2010), publisher page.
  • [P1] Schuld, Sweke, and Meyer, “Effect of data encoding on the expressive power of variational quantum-machine-learning models,” Physical Review A 103, 032430 (2021), DOI.
  • [D2] NVIDIA CUDA-Q Local Installation.

基礎數學可以從 [F1] 的量子狀態、量子閘與量測開始;[R1]、[R2] 是整理多項研究的綜述,適合建立領域地圖;[R4] 將有標籤資料的學習問題接到量子計算;[P1] 則深入分析資料編碼如何限制模型能表示的關係。

閱讀一篇研究時,可以先記下它使用什麼資料、與誰比較、計算哪些成本,以及證據來自理論、模擬還是真實硬體。完整書目與用途見 文獻與資源索引

延伸閱讀:[N1] Shreeya Sanjeev Gokhale et al., “A review of quantum machine learning algorithms, applications, and emerging advantages,” Discover Computing 29, 226 (2026)。原始來源完整書目。可沿用上面的問題整理閱讀筆記,區分方法構想與支持結論的證據。

11. 下一篇

Day 02|從 Bit 到 Qubit:量子狀態與量測機率

今天把量子電路視為流程中的一段計算。下一篇會打開這一段,從 0 與 1 開始,說明量測前的量子狀態如何表示,以及為什麼兩個狀態即使有相同的 0、1 量測機率,經過後續操作仍可能出現不同結果。


下一篇
Day 02|從 Bit 到 Qubit:量子狀態與量測機率|From Bit to Qubit: Quantum States and Measurement Probabilities
系列文
從 AI Engineering 到 Quantum Machine Learning:30 天打造 QML 實驗與加速開發流程10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言