☰
量子机器学习入门:从量子比特到参数化量子线路
2026/10/17 20:11:31 网站建设 项目流程

最近半年,我被问到最多的一句话就是:量子机器学习到底该怎么入门?比起直接啃论文,很多人第一步就卡在量子计算基础上。叠加、纠缠、量子门、测量,这些词每个都眼熟,合在一起就懵了。这篇文章就当一份“抢救式入门笔记”,把我从零学量子计算时真正用到的、踩过坑才总结出来的内容梳理一遍。简单说,这篇就是讲清楚量子机器学习(QML)背后最重要的量子计算概念,不堆公式,不给伪代码,只讲原理和直觉,外加一小段能跑起来的例子。如果你有大学水平的线性代数基础,再会一点Python,这篇能帮你把“量子比特是什么”“量子线路怎么运转”这两个问题彻底搞清楚。

很多人听说量子计算,第一反应是“计算机要颠覆了,所有加密都能被秒破,所有算法都要重写”。这个印象不能说全错,但更像是电影预告片,不是正片。真实情况是:量子计算确实改变了信息表示和处理的方式,但它不是“更快地跑原来的程序”,而是用一套全新的规则做计算。QML之所以值得关注,也不是因为量子计算机能把深度学习模型直接跑得飞快,而是因为量子态天然的高维空间、概率幅带来的表达方式,让模型有机会处理经典特征空间装不下的结构。

这篇笔记面向两类人:一类是准备认真进入QML方向的开发者,另一类是纯粹好奇、想知道“量子机器学习喊了这么多年到底在搞什么”的技术爱好者。读完你应该能看懂后面出现的量子线路图,能理解参数化量子线路为什么是QML的核心,也能自己动手把最简单的贝尔态制备跑出来。至于更多算法层面的内容,这篇文章不展开,但地基打不牢,后面学QML的各种变分算法会非常痛苦。

1. 量子比特和经典比特,本质区别到底在哪?

1.1 一个经典比特装不下的问题

经典计算机里的比特,底层就是电压高低、电流通断或者磁极方向,本质是一个二值状态:要么是 0,要么是 1。二进制组成的比特流经过逻辑门运算,构成了今天所有的软件生态。量子比特也是二态的,比如电子的自旋方向、光子的偏振方向,但它和经典比特有一个决定性的差异:它可以同时处于 0 和 1 的叠加状态。

我用一个不严谨但容易建立直觉的类比。经典比特像一枚静止在桌面上的硬币,你看到正面就是 1,看到反面就是 0,结果永远是二选一。量子比特更像一枚高速旋转中的硬币——在空中旋转时,你不能说它“其实是正面”或者“本质是反面”,它处于一种正面和反面信息同时在场的状态,直到落下来被观察的那一刻,才坍缩成一个确定的面。但这个类比有个必须澄清的坑:旋转硬币的不确定更像“你不知道此刻是什么面”,而量子比特的叠加是系统本身的客观状态,不是因为信息缺失。

如果只记住一句话,那就是:量子比特的数学描述是一个二维复数空间里的单位向量。

1.2 狄拉克符号和布洛赫球

量子力学里描述状态有一套专用符号,叫狄拉克符号。比如 |0⟩ 和 |1⟩ 分别代表量子比特的两个基态,它们可以写成列向量:

|0⟩ = [1, 0]ᵀ,|1⟩ = [0, 1]ᵀ

任何一个量子比特状态可以写成叠加形式:

|ψ⟩ = α|0⟩ + β|1⟩

其中 α 和 β 是复数,满足 |α|² + |β|² = 1。测量这个量子比特时,得到 0 的概率是 |α|²,得到 1 的概率是 |β|²。注意这里 α 和 β 叫概率幅,不是概率本身。概率幅是复数,复数带有相位信息,而相位在量子计算里是极为重要的资源,后面讲干涉的时候再说它。

为了直观理解量子比特的所有可能状态,物理学家发明了布洛赫球。一个纯态量子比特可以对应到单位球面上的一个点:北极是 |0⟩,南极是 |1⟩,赤道上任意一点都是等概率的叠加态。量子门在布洛赫球上的作用,就是让状态点绕不同轴旋转。比如 X 门相当于绕 x 轴转 180 度,把 |0⟩ 变成 |1⟩;Hadamard 门相当于绕特定轴转 90 度,把 |0⟩ 变成等概率的叠加态。把量子计算想象成在布洛赫球面上操作状态点,很多算法直觉会清晰很多。

我第一次学布洛赫球的时候总觉得它只是“画得好看”,后来才发现它是理解噪声、退相干和门误差的必备工具。布洛赫球上的每个点都对应一套完整的测量概率分布,真机校准、噪声标定都要回到这个几何图像上理解。

2. 三大引擎:叠加、纠缠和干涉

2.1 叠加:信息的存在方式变了

单量子比特的叠加看起来没什么了不起,真正恐怖的是多量子比特叠加。n 个量子比特可以处于 2ⁿ 个基态的叠加,光是存储这个状态就需要 2ⁿ 个复数。也就是说,一个 50 量子比特的系统,描述它的状态向量维度高达 2⁵⁰,远远超过地球上经典计算机能直接处理的内存规模。

这就是量子计算的指数级“表达空间”来源。很多科普把这件事说成“量子计算机可以同时尝试所有可能性,所以速度快”,这是最容易误导人的表述。量子比特确实可以同时存在于多个状态的叠加里,但测量一次只能坍缩到一个经典结果。如果只是靠“同时尝试然后读出来”,那读哪一个是随机的,根本没法保证输出你想要的那个答案。所以叠加只是提供了计算空间,真正让算法发挥作用的,是干涉。

2.2 纠缠:关联性超越经典直觉

如果说叠加是单兵作战,纠缠就是小队的超距配合。两个纠缠的量子比特,它们的整体状态不能用两个独立状态分别描述。最典型的例子是贝尔态:

|Φ⁺⟩ = (|00⟩ + |11⟩) / √2

在这个状态下,如果你测量第一个比特得到 0,第二个比特必定是 0;如果得到 1,第二个必定是 1。爱因斯坦当年称之为“鬼魅般的超距作用”,就是因为这种关联不需要时间传递,看起来违背直觉。

我用一个简化类比:一副手套,一只左一只右,分别装在两个盒子里。你把一个盒子带到北京,一个盒子带到上海,打开北京那个发现是左手套,你瞬间就知道上海那只必然是右手套。这种经典关联很多人觉得“这不就是早就决定好了吗”。但量子纠缠比这更深刻:在测量之前,两个量子比特的状态不是“已经决定好但你看不到”,而是真正的不确定叠加。贝尔不等式实验已经证明,这种关联产生的统计结果比任何默认“早就有隐藏决定”的经典理论都更强,物理学上已经反复验证过很多轮。

纠缠是量子计算的第二个核心引擎,也是 QML 里最被看重的东西。经典数据点的特征之间通常有相关性,但是经典样本的特征相关性和量子比特纠缠产生的高维关联不是一种类型。QML 的研究者希望利用纠缠来构造经典方法难以表达的特征映射,这是量子优势可能的主要来源之一。

2.3 干涉:让概率变成可调度的资源

量子叠加态里,每个基态的系数是带相位的复数。当两个状态路径最后汇合时,相位差会让概率幅发生相长干涉或相消干涉。通俗点说,某些结果的概率被增强,另一些结果的概率被抑制。量子算法本质上就是设计一套线路,让错误答案路径之间互相抵消、正确答案路径之间互相增强,使得测量时大概率读到你要的结果。

这个逻辑在经典世界里很难找到对应。波有干涉,但是波是连续介质中的能量分布,不是离散的信息状态。量子干涉是在离散的信息状态上做概率幅的重新分配。

既然概率幅这么重要,那相位操作就是量子线路里的核心操作之一。Z 门、S 门、T 门都是改变相对相位而不改变测量概率的门。很多刚学电路图的人会困惑:Z 门对被作用比特的测量结果一点影响都没有,那它到底有什么用?答案是:它在单个比特上确实“看不出效果”,但它会改变这个比特和其他比特之间的相对相位,进而影响后续干涉的最终结果。这是量子计算里最反直觉、也最值得花时间理解的地方。

3. 量子门与量子线路:动手搭第一个线路

3.1 单比特门速查:用矩阵说话

量子门就是对量子比特做合法变换的矩阵,约束是必须满足酉矩阵条件:U†U = I。这意味着量子门是可逆的,信息不会在运算中被复制或删除。丢掉信息这件事在量子层面是很敏感的,因为不可逆意味着无法保持量子相干性。

下面这张表是最常用的单比特门,建议刚开始就把矩阵形式记住,后面看论文的时候随时要用。

门名称矩阵形式作用
I 门[[1, 0], [0, 1]]啥也不做,恒等变换
X 门[[0, 1], [1, 0]]比特翻转,类似经典 NOT
Z 门[[1, 0], [0, -1]]相位翻转,对
H 门(1/√2)[[1, 1], [1, -1]]制造叠加态,把
S 门[[1, 0], [0, i]]90 度相位旋转
T 门[[1, 0], [0, e^{iπ/4}]]45 度相位旋转

其中 H 门是最重要的单比特门,没有之一。它把一个确定基态变成等概率叠加态,是几乎所有量子算法的起点。H 门在布洛赫球上相当于绕 (x+z)/√2 轴旋转 180 度,一次作用就能把北极点搬到赤道上。

3.2 CNOT 门:生成纠缠的最小组合

单比特门只能控制单个量子比特,但多量子比特线路里真正的核心是 CNOT 门(受控非门)。它有两个输入:控制比特和目标比特。如果控制比特是 |1⟩,就对目标比特做 X 翻转;如果控制比特是 |0⟩,目标比特保持原样。CNOT 的矩阵是 4x4 的:

[[1,0,0,0], [0,1,0,0], [0,0,0,1], [0,0,1,0]]

这个矩阵看起来平淡无奇,但它就是生成纠缠态的开关。只需要两步路就能得到贝尔态:先对第一个比特做 H 门,再对两个比特做 CNOT,控制比特是第一个,目标比特是第二个。整个过程线路很短,但在真机上已经能明显看出测量结果不符合任何经典独立模型能解释的关联特征。

3.3 用 NumPy 手撸一个贝尔态

其实量子计算模拟器本质上就是向量乘法。为了搞清楚量子线路到底在做什么,我建议每个人都手写一次。下面这段简单的 Python 代码,不依赖任何量子计算框架,只靠 NumPy 就能模拟贝尔态制备。

import numpy as np zero = np.array([1, 0], dtype=complex) one = np.array([0, 1], dtype=complex) # H 门:制造叠加态 H = (1 / np.sqrt(2)) * np.array([[1, 1], [1, -1]]) # CNOT 门:四维空间上的受控翻转 CNOT = np.array([ [1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 1], [0, 0, 1, 0] ], dtype=complex) # 初始状态 |00> = |0> ⊗ |0> state = np.kron(zero, zero) print("初始状态:", state) # 第一步:对第一个比特施加 H 门 # 注意 H 只作用于第一个比特,所以第二个比特要乘单位矩阵 H_on_first = np.kron(H, np.eye(2)) state = H_on_first @ state print("施加 H 后:", state) # 第二步:施加 CNOT 门 state = CNOT @ state print("施加 CNOT 后:", state) # 测量概率 probs = np.abs(state) ** 2 print("测量概率:", probs)

这段代码的输出会清楚地显示,最终状态是 (|00⟩ + |11⟩) / √2,四个基态中的 |00⟩ 和 |11⟩ 概率各占 0.5,而 |01⟩ 和 |10⟩ 的概率是 0。这就是纠缠态:测一个比特为 0,另一个必为 0;测一个为 1,另一个必为 1。

我特别强调一下张量积这一步。两个量子比特组合成系统时,状态空间维度是 2×2=4,操作门的矩阵是 4×4。很多人学了线性代数但没接触过量子计算,最容易卡在 np.kron 这一步。其实张量积就是“两个系统组合”的数学操作。H 门只作用于第一个比特,所以第二个比特乘以 2x2 的单位矩阵;CNOT 是一门作用于整个双比特系统的两比特门,所以直接是 4x4。弄懂这一步,量子线路的底层逻辑就通了。

4. 从量子线路到量子机器学习的关键桥梁

4.1 测量:从概率幅回到经典数据

前面的线路都是在操纵概率幅,但最后所有的计算结果都要通过测量读出来。测量这个动作在数学上是一个投影操作:把量子态投影到某个测量基的某个方向上,得到一个经典结果。这个结果是随机的,概率由概率幅的模平方决定。

QML 的输出通常不是“读一个 0 或 1”,而是测量多个量子比特的期望值。比如对某个比特做 Z 基测量,测量的期望值 ⟨Z⟩ 可以看作是这个比特状态在布洛赫球 z 轴上的坐标投影。经典机器学习里的模型输出一个实数或一个向量,QML 里常见的做法就是把期望值当作模型输出,然后对这个输出做损失函数梯度下降。

这意味着 QML 的“前向传播”几乎总要重复多次实验:同一个线路跑几十次几百次,统计测量结果的均值,才能得到一个可靠的期望值估计。采样次数直接决定输出精度。真机上时间开销很大一块就花在这里。

4.2 参数化量子线路:QML 的“神经网络”

经典神经网络的核心是带可训练权重参数的矩阵运算,通过反向传播调整参数来最小化损失函数。QML 对应的核心结构叫参数化量子线路,缩写是 PQC。它的基本形态是:在量子线路里加入带有可调参数的量子门,典型的如旋转门 RY(θ)。θ 是连续角度参数,相当于经典神经网络里的权重。

一个最简单的参数化线路可以这样理解:经典输入数据 x 被编码成某个旋转角度 θ,然后通过 RY(θ) 作用到初始 |0⟩ 态上,得到叠加态 cos(θ/2)|0⟩ + sin(θ/2)|1⟩。经过一组带参数的纠缠门和旋转门后,在最后用测量期望值读出模型的输出。整个线路从数据输入到测量输出,就是一个参数化的函数 f(x, θ),这里的 θ 就是要训练的参数。

QML 的研究者们把输入数据编码成量子态的这一步也设计出很多不同风格:角度编码、幅度编码、数据再上传编码等等。每一种编码方式影响后续纠缠结构能接触到什么信息,也直接影响模型的表达能力。很多刚入门的人把注意力都放在“量子线路有多深”“用了多少纠缠门”,却忽略了数据编码。这个环节选得不好,后续线路设计得再精巧也很难有好效果。

4.3 变分量子算法:量子-经典混合模式的样板

如果你看过 QML 论文,会发现很多算法有一个共同框架:量子线路只负责计算某个量或者输出某个函数值,而参数优化交给经典计算机上的梯度优化器来完成。这就是变分量子算法的基本思想。

最有代表性的就是变分量子本征求解器(VQE)。它本身是给量子化学算分子基态能量的,但它的训练流程构成了 QML 几乎所有混合算法的原型:设计一个带参数的量子线路,初始化参数,在量子硬件或模拟器上测量目标函数,经典优化器根据测得的目标函数值更新参数,然后重复这一循环直到收敛。

我刚开始接触这个框架时觉得很奇怪:量子计算机自己不能完成端到端的训练吗?为什么非要经典计算机插一脚?答案很简单也很现实:当前的量子硬件还做不到长时间保持相干态,也没有足够多的逻辑量子比特去做大规模并行操作,所以最务实的方案就是“能用量子的地方用量子,能用经典的地方用经典”。量子部分负责在高维量子态空间里做那些经典机器难以模拟的特征变换,经典部分负责顺序决策和参数优化。

对学 QML 的人来说,理解 VQE 的这套混合循环比记住任何一个具体量子算法都重要。后面你会遇到的量子分类器、量子回归模型、量子生成模型,骨架基本都是这一套,只是换了线路结构和损失函数。

5. 新手入门量子机器学习,最容易踩的五个坑

5.1 误以为量子计算是“更快地穷举”

这个误解太普遍了。叠加态的空间确实指数大,但你测量一次只能得到一个结果,想要通过“同时尝试所有答案”来解决问题,最终还是要靠干涉把正确答案的概率挑出来。如果只是把叠加当成并行计算,你设计出来的线路很可能最后测出来全是一堆均匀随机数,没有任何意义。真正关键的是相位的设计,而不是叠加的规模。

5.2 忽略噪声与退相干环境

理想状态下,量子门和纠缠都是完美的,但这只是数学模型的假设。真实硬件上,量子比特会和环境发生相互作用,导致量子态逐渐退相干,保真度随时间衰减。这意味着线路不是越深越好。本来想堆砌 100 层门来提高模型表达能力,结果真机上跑了 30 层以后,状态可能已经退化得不成样子。

所以做 QML 算法设计时,一定要养成“线路越短越好”的意识。复杂功能可以想办法用更紧凑的线路结构实现,而不是无脑加深度。纠缠门的数量也要控制,因为两比特门往往是错误率最高的部分。

5.3 把模拟器结果当成真机结果

模拟器里没有噪声,没有门误差,没有测量误差,所有操作都是精确矩阵乘法,所以你能跑出非常漂亮的曲线。真机上完全不是一回事。同样的线路,在不同的比特映射、不同的设备标定时间下,结果都可能不一样。我刚接触真机的时候,一开始在模拟器上收敛得很好的某个小模型,上真机之后输出分布完全变形,后来才发现是没做比特映射的优化,把一个高错误率的比特当成了工作比特。

建议刚入门的路径是:先用模拟器验证算法的逻辑正确性,再迁移到真机时先跑简单的标定线路,确认门错误率和读出错误率可以接受,再跑完整模型。

5.4 矩阵和张量积基础不牢

现在开源框架封装得很好,很多人一行代码就能把量子线路建出来,根本看不到底层矩阵长什么样。但问题在于:一旦你开始读论文实现新算法,或者自己设计参数化线路,矩阵表示是绕不过去的。量子门本质是酉矩阵,复合线路本质是矩阵乘法,多比特系统本质是张量积,测量本质是投影算符。这些概念不在脑子里形成图像,就会一直处于“代码能跑但不知道它为什么对”的状态。

我建议你花一两天时间,把前面那段贝尔态的代码自己写一遍,再把单比特门矩阵在布洛赫球上的对应旋转验证一遍。这一步看起来慢,实际上省掉后面很多查错时间。

5.5 忽略数据编码和测量算子的选择

很多人在搭建 QML 模型时会把注意力完全放在参数化线路的结构上,但输入数据怎么编码、最终测量什么算子,对模型效果的影响和控制线路本身一样大。角度编码简单直观,适合连续变量;幅度编码更紧凑,可以表示更多维度的信息,但噪声敏感度也更高;测量的算子如果选择不当,输出的信息可能覆盖不了你要关注的那部分量子态特征。

CIO、数据重上传这些进阶技巧暂且不展开,但你要记住:对 QML 来说,编码和测量和线路一样都是模型的一部分,不是“反正量子就是这样”的固定方式。

6. 学习路线怎么排:最短路径的几个阶段

第一步,把线性代数里特征值、特征向量、矩阵的指数形式、张量积这几个概念搞熟。不需要把所有线性代数都重学一遍,只要这几个概念能随时调用就够了。

第二步,把单比特门、多比特纠缠门、测量过程从头推一遍。手推一遍贝尔态、GHZ 态、一位量子隐形传态线路。能推完这三个线路,你对量子线路的运作就有感觉了。

第三步,开始接触参数化量子线路和变分算法。随便选几个道问题的经典数据集,把数据编码成角度,把参数化线路当作模型,最后用测量期望值做损失,自己手动实现一个小规模的量子分类器。这一步的关键不是算法性能,而是体会“量子线路输出是一个随机期望值”这件事对训练过程造成的影响。你会发现,梯度方法需要重新理解,因为测量结果是概率分布,不是确定性输出。

第四步,再回头读那些 QML 综述论文。这个时候你会发现之前看不懂的线路图、损失函数设计、噪声分析变得顺眼很多。这个阶段才算真正进入 QML 的门内。

我在实际学习中的体会是,量子机器学习最折磨人的地方不是数学深,也不是代码难,而是你的直觉一直被经典计算带着跑。把量子比特想象成“单位复向量”,把量子线路想象成“酉矩阵作用在高维向量上”,把测量想象成“概率投影”,用这套数学直觉去替代“机器里有一个 0/1 开关在跳”的物理直觉,很多概念会顺畅得多。至于 QML 到底能不能在当前这一代硬件上带来真正的优势,那是学完基础之后需要持续跟踪的开放问题,先把地基打牢,后面再变都不怕。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询