十三、张量网络机器学习(二)
1. 等概率假设下的量子懒惰学习
通过之前的讨论我们可知,如果我们知道了用来描述联合概率的多体态 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ ,我们就可以通过联合概率密度计算每张图片出现的概率。概率型机器学习的核心也就是求得概率密度,联合概率密度是由 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 构成的,所以我们的主要任务就是构造 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ ,一种最简单的方法定义 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ ,就是等概率假设下的量子懒惰学习。
对于一组图片组成的集合
X
\mathbb{X}
X ,这一组图片属于相同的类型,如果我们训练一个量子态
∣
ψ
⟩
|\psi\rangle
∣ψ⟩ ,该量子态使得该类中每一张图片出现的概率非零且相等,也就是用其中的任意一张图片映射为量子态,如果我们将该量子态化的图片和
∣
ψ
⟩
|\psi\rangle
∣ψ⟩ 做内积,都得到一个非零常数。用表达式表示为:
P
(
X
)
=
(
∏
⊗
l
=
1
L
∣
⟨
x
l
∣
ψ
⟩
∣
)
2
=
const
.
∀
X
∝
X
\mathrm{P}(\boldsymbol{X})=\left(\prod_{\otimes l=1}^{L}\left|\left\langle x_{l} \mid \psi\right\rangle\right|\right)^{2}=\text { const}. \quad \forall \mathbf{X} \propto \mathbb{X}
P(X)=(⊗l=1∏L∣⟨xl∣ψ⟩∣)2= const.∀X∝X
根据概率归一化,其实我们希望该常数为 1 N \frac{1}{N} N1 ,其中 N N N 为 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 中图片个数。但是实际上只要满足所有图片的乘积都是常数,它和归一化因子只相差一个常数,这个常数并不会太大的影响我们的计算。
当上式成立时,我们认为 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 给出的联合概率分布 P ( X ) {P}(\boldsymbol{X}) P(X) 接近 该类图片 X \mathbb{X} X 给出的像素的联合概率分布。也就是该概率模型就能够描述图片集像素之间真实的概率分布了。这就是 等概率假设 。
如果已知图片集
X
\mathbb{X}
X ,我们可以直接写出一种满足等概率假设的量子态
∣
ψ
⟩
|\psi\rangle
∣ψ⟩ ,可以用等式表示如下:
∣
ψ
lazy
⟩
=
1
∣
X
∣
∑
X
∝
X
∏
⊗
l
=
1
L
∣
x
l
⟩
\left|\psi^{\text {lazy }}\right\rangle =\frac{1}{\sqrt{|\mathbb{X}|}} \sum_{\mathrm{X} \propto \mathbb{X} } \prod_{\otimes l=1}^{L}\left|x_{l}\right\rangle
∣∣ψlazy ⟩=∣X∣1X∝X∑⊗l=1∏L∣xl⟩
其中 ∣ X ∣ |\mathbb{X}| ∣X∣ 表示 X \mathbb{X} X 中图片的总数量。我们称为 lazy 态 。上式表示将每一张图片对应的直积态等概率叠加起来,这个叠加得到的量子态满足等概率假设,用这个量子态就可以求得 P ( X ) {P}(\boldsymbol{X}) P(X) 。
由于正交灾难,容易看出 lazy 态满足概率归一化条件:
⟨
ψ
lazy
∣
ψ
lazy
⟩
=
1
∣
X
∣
∑
X
,
X
′
∝
X
⟨
X
∣
X
′
⟩
≈
1
∣
X
∣
∑
X
,
X
′
∝
X
δ
X
,
X
′
=
1
\left\langle\psi^{\text {lazy }} \mid \psi^{\text {lazy }}\right\rangle =\frac{1}{|\mathbb{X}|} \sum_{X, X^{\prime} \propto \mathbb{X}}\left\langle X \mid X^{\prime}\right\rangle \approx \frac{1}{|\mathbb{X}|} \sum_{X, X^{\prime} \propto \mathbb{X}} \delta_{X, X^{\prime}} =1
⟨ψlazy ∣ψlazy ⟩=∣X∣1X,X′∝X∑⟨X∣X′⟩≈∣X∣1X,X′∝X∑δX,X′=1
所以只要我们知道训练集,我们就可以通过特征映射计算出 ∣ ψ lazy ⟩ \left|\psi^{\text {lazy }}\right\rangle ∣∣ψlazy ⟩ ,该过程不需要任何的训练,而且 ∣ ψ lazy ⟩ \left|\psi^{\text {lazy }}\right\rangle ∣∣ψlazy ⟩ 也不包含任何的变分参数(被优化的参数)。因此通过 lazy 态实现机器学习任务被称为 量子懒惰学习 ,也就是我们的模型是通过样本直接写出的,没有任何训练的过程。这里面唯一可以调节的超参数时特征映射中的形式与参数。
例如,我们可以通过 lazy 态实现监督性分类。对于 0 到 9 的手写体数字 MNIST 数据集,从 0 到 9 共十类手写图片,每个数字都有若干张。对于该训练集,我们定义 10 个 lazy 态,分别为:
∣
ψ
k
l
a
z
y
⟩
=
1
∣
X
k
∣
∑
X
∝
X
k
∏
⊗
l
=
1
L
∣
x
l
⟩
\left|\psi_{k}^{\mathrm{lazy}}\right\rangle=\frac{1}{\sqrt{\left|\mathbb{X}_{k}\right|}} \sum_{\mathbf{X} \propto \mathbb{X}_{k}} \prod_{\otimes l=1}^{L}\left|x_{l}\right\rangle
∣∣∣ψklazy⟩=∣Xk∣1X∝Xk∑⊗l=1∏L∣xl⟩
其中 k k k 可以取 0 到 9 ,分别表示数字 k k k 对应的 lazy 态, X k \mathbb{X}_k Xk 表示数字 k k k 的所有样本。
有了这 10 个 lazy 态
{
∣
ψ
k
l
a
z
y
⟩
}
\{\left|\psi_{k}^{\mathrm{lazy}}\right\rangle\}
{∣∣∣ψklazy⟩} ,我们可以根据量子概率定义,估计任意图片
Y
Y
Y 出现在第
k
k
k 类的概率,只需要将图片映射为量子态后,与每类图片对应的
∣
ψ
k
l
a
z
y
⟩
\left|\psi_{k}^{\mathrm{lazy}}\right\rangle
∣∣∣ψklazy⟩ 分别做内积,就可以得到该图片属于该类的概率:
P
k
(
Y
)
=
∣
⟨
Y
∣
ψ
k
l
a
z
y
⟩
∣
2
P_{k}(\boldsymbol{Y})=\left|\left\langle\boldsymbol{Y} \mid \psi_{k}^{\mathrm{lazy}}\right\rangle\right|^2
Pk(Y)=∣∣∣⟨Y∣ψklazy⟩∣∣∣2
得到的十个概率中,最大的概率对应的分类就是分类器 { ∣ ψ k l a z y ⟩ } \{\left|\psi_{k}^{\mathrm{lazy}}\right\rangle\} {∣∣∣ψklazy⟩} 给出的该图片的分类预测。
量子懒惰学习的表现虽然不及神经网络,但是超过了其他非参数学习的方法。
2. 非监督张量网络机器学习
量子懒惰学习是非参数的机器学习,因此是没有优化的余地,所以我们可以在 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 的基础上通过某种方式提高精度。但是 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 的参数复杂度会随着特征个数 L L L 呈指数上升,也就是会出现指数墙问题。而张量网络的核心思想之一就是 用张量网络表示 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ ,从而使参数复杂度降低到多项式级别。
在前面的 lazy 态的表示是指数复杂的,但是如果要求 P k ( Y ) P_{k}(\boldsymbol{Y}) Pk(Y) ,可以将 Y Y Y 和 { ∣ ψ k l a z y ⟩ } \{\left|\psi_{k}^{\mathrm{lazy}}\right\rangle\} {∣∣∣ψklazy⟩} 直接带入,两个直积态相乘是多项式级的。
以非监督的机器学习为例,在给定 N N N 个训练样本集 { X [ n ] } \{X^{[n]}\} {X[n]} 后,我们可以训练量子态 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩,使其满足等概率假设 P ( X [ 1 ] ) = P ( X [ 2 ] ) = ⋯ P(\boldsymbol{X^{[1]}})=P(\boldsymbol{X^{[2]}})=\cdots P(X[1])=P(X[2])=⋯ ,这被称为 MPS 非监督机器学习。这种非监督学习不需要我们给出指定的标签,其可以对样本进行学习,将样本中的每种图片的联合概率密度算出来。
为例达到目的,我们定义交叉熵损失函数:
f
(
{
X
[
n
]
}
)
=
−
1
N
∑
n
=
1
N
ln
P
(
X
[
n
]
)
=
−
1
N
∑
n
=
1
N
ln
(
∏
⊗
l
=
1
L
∣
⟨
x
l
[
n
]
∣
ψ
⟩
∣
)
2
f\left(\left\{X^{[n]}\right\}\right) =-\frac{1}{N} \sum_{n=1}^{N} \ln P\left(X^{[n]}\right) =-\frac{1}{N} \sum_{n=1}^{N} \ln \left(\prod_{\otimes l=1}^{L} |\left\langle x_{l}^{[n]}|\psi\right\rangle|\right)^{2}
f({X[n]})=−N1n=1∑NlnP(X[n])=−N1n=1∑Nln(⊗l=1∏L∣⟨xl[n]∣ψ⟩∣)2
其中 N N N 为训练集的样本总个数。该定义就是直接对每个图片的 P ( X [ n ] ) P(\boldsymbol{X^{[n]}}) P(X[n]) 求 ln \ln ln 之后累加求和。当且仅当 P ( X [ 1 ] ) = P ( X [ 2 ] ) = ⋯ P(\boldsymbol{X^{[1]}})=P(\boldsymbol{X^{[2]}})=\cdots P(X[1])=P(X[2])=⋯ 时, f f f 达到极小。该函数刻画了 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 表示的概率分布和我们想要的等概率分布之间的差距。MPS 表示下的损失函数用图形表示如下,其表示为将上面的量子多体态 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 写成 MPS 态,这样其复杂度仅仅关于 L L L 为多项式复杂:
定义损失函数后,我们可以通过梯度更新方法,更新张量网络中的张量,使得损失函数降到极低,梯度更新的公式为:
A
(
l
)
←
A
(
l
)
−
η
∂
f
∂
A
(
l
)
A^{(l)} \leftarrow A^{(l)} - \eta \frac{\partial f}{\partial A^{(l)}}
A(l)←A(l)−η∂A(l)∂f
其中梯度步长 η \eta η 在机器学习中又被称为学习率。
使用 MPS 表示 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 时,可以利用 MPS 中心正交形式,逐个更新各个张量,其更新的步骤如下
- 更新第 l l l 个张量 A ( l ) A^{(l)} A(l) 时,将正交中心移动至该张量。
- 利用张量网络的微分法则,求出损失函数关于
A
(
l
)
A^{(l)}
A(l) 的梯度,梯度的求法可以用图形表示如下:
当 f f f 达到极小时,等概率假设就近似满足了,对应的 MPS 态给出的 P ( X [ n ] ) P(\boldsymbol{X^{[n]}}) P(X[n]) 就是我们想要的联合密度,之后我们就可以用联合密度进行分类,分类时对每一类计算一个 MPS 态,就可以用上面相同的方式进行分类了。
我们还可以使用自动微分的方式进行梯度的计算。中心正则方式下逐个更新张量与自动微分同时通信所有张量相比,前者的精度与收敛速度更好,这是因为前者的更新使用了中心正交形式,满足切空间更新原理。
3. 张量网络图片生成与压缩
1. 子体系的联合概率和整个体系的联合概率之间的关系
如果将特征量分为两个部分
{
x
l
}
=
{
x
m
[
A
]
}
∪
{
x
m
[
B
]
}
\{x_l\}=\{x_m^{[A]}\}\cup\{x_m^{[B]}\}
{xl}={xm[A]}∪{xm[B]},比如将图片分成两个部分,
P
(
{
x
m
[
A
]
}
∪
{
x
n
[
B
]
}
)
\mathrm{P} \left( \left\{x_{m}^{[\mathrm{A}]}\right\} \cup \left\{x_{n}^{[\mathrm{B}]}\right\} \right)
P({xm[A]}∪{xn[B]}) 为整体的联合密度,如果我想要知道其中一部分的联合密度,可以用下面的公式求出,也就是可以通过直接对
A
A
A 的自由度求和就可以得到
B
B
B 的联合密度:
P
(
{
x
n
[
B
]
}
)
=
∑
{
x
m
[
A
]
}
P
(
{
x
m
[
A
]
}
∪
{
x
n
[
B
]
}
)
\mathrm{P}\left(\left\{x_{n}^{[\mathrm{B}]}\right\}\right) =\sum_{\left\{x_{m}^{[\mathrm{A}]}\right\}} \mathrm{P} \left( \left\{x_{m}^{[\mathrm{A}]}\right\} \cup \left\{x_{n}^{[\mathrm{B}]}\right\} \right)
P({xn[B]})={xm[A]}∑P({xm[A]}∪{xn[B]})
根据上面的公式我们可以将子体系的联合密度分布和对应的约化密度算子联系起来,也就是子体系的联合密度分布,可以由对应体系的约化密度算子求出。
某一子部分 { x m [ B ] } \{x_m^{[B]}\} {xm[B]} 对应的 qubit 的约化密度矩阵可以表示如下:
ρ ^ [ B ] = Tr { x m [ A ] } ∣ φ ⟩ ⟨ φ ∣ \hat{\rho}^{[B]}=\operatorname{Tr}_{\left\{x_{m}^{[A]}\right\}}|\varphi\rangle\langle\varphi| ρ^[B]=Tr{xm[A]}∣φ⟩⟨φ∣
其表示,对完整的态做外积,得到一个密度算子,之后对子空间 A A A 部分的自由度求和, Tr { x m [ A ] } \operatorname{Tr}_{\left\{x_{m}^{[A]}\right\}} Tr{xm[A]} 表示对 { x m [ A ] } \{x_m^{[A]}\} {xm[A]} 对应的 qubit 的自由度求迹,这样密度算子里就只剩下 B B B 的自由度。即一个纯态的子体系的密度算子,就是对剩余体系的自由度在外积构成的密度算子下进行求和。
之后我们就可以直接通过约化密度算符直接求得
B
B
B 体系的联合概率密度,即直接对约化密度算符进行概率性的观测,用
B
B
B 部分进行映射得到的直积态取观测
B
B
B 系统的约化密度算符,就可以得到
B
B
B 系统的概率密度,用公式表示如下:
P
(
{
x
n
[
B
]
}
)
=
∏
⊗
n
⟨
x
n
[
B
]
∣
ρ
^
[
B
]
∣
x
n
[
B
]
⟩
\mathrm{P}\left(\left\{x_{n}^{[\mathrm{B}]}\right\}\right) =\prod_{\otimes n} \left\langle x_{n}^{[\mathrm{B}]}\left|\hat{\rho}^{[B]}\right| x_{n}^{[\mathrm{B}]}\right\rangle
P({xn[B]})=⊗n∏⟨xn[B]∣∣∣ρ^[B]∣∣∣xn[B]⟩
上面的步骤可以用图形表示如下:
-
求得 B B B 部分的约化密度矩阵 ρ ^ [ B ] \hat{\rho}^{[B]} ρ^[B] 。下图中 T r Tr Tr 后的图形表示式子 ( ∏ ⊗ l = 1 L ∣ ⟨ y l ∣ ψ ⟩ ∣ ) 2 \left(\prod_{\otimes l=1}^{L}\left|\left\langle y_{l} \mid \psi\right\rangle\right|\right)^{2} (∏⊗l=1L∣⟨yl∣ψ⟩∣)2 中进行平方的两部分,也就是整体的联合概率密度。 T r Tr Tr 表示对全空间的 A A A 系统进行求和,因为是两部分做外积,因为将图片进行量子化时近似满足正交完备条件,即
∑ { x m [ A ] } ∏ ⊗ m ∣ x m [ A ] ⟩ ⟨ x m [ A ] ∣ ∝ I \sum_{ \left\{ x_{m}^{[\mathrm{A}]} \right\} } \prod_{\otimes m}\left|x_{m}^{[\mathrm{A}]}\right\rangle\left\langle x_{m}^{[\mathrm{A}]}\right| \propto I {xm[A]}∑⊗m∏∣∣∣xm[A]⟩⟨xm[A]∣∣∣∝I
所以上下相对的两个绿色向量的直积替换为单位阵,就可以直接用竖线相连,得到右边的结果。
-
之后使用 B B B 部分的量子化直积态和约化密度矩阵相乘,得到 B B B 部分的概率密度。
2. 条件概率进行图像修复
当我们获得量子态 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 后,不但可以求出像素的联合概率密度,还可以计算条件概率。
考虑已知
∣
ψ
⟩
|\psi\rangle
∣ψ⟩ 中的部分像素
{
x
m
[
A
]
}
\{x_m^{[A]}\}
{xm[A]} ,我们记剩余未知像素为
{
x
n
[
B
]
}
\{x_n^{[B]}\}
{xn[B]} ,则未知像素的概率分布可由如下的条件概率给出:
P
(
{
x
n
[
B
]
}
∣
{
x
m
[
A
]
}
)
=
(
∏
⊗
n
⟨
x
n
[
B
]
∣
ψ
~
⟩
)
2
P\left(\left\{x_{n}^{[B]}\right\} \mid\left\{x_{m}^{[A]}\right\}\right) =\left(\prod_{\otimes n}\left\langle x_{n}^{[B]} \mid \tilde{\psi}\right\rangle\right)^{2}
P({xn[B]}∣{xm[A]})=(⊗n∏⟨xn[B]∣ψ~⟩)2
其中,量子态
∣
ψ
~
⟩
|\tilde{\psi}\rangle
∣ψ~⟩ 为通过对
∣
ψ
⟩
|\psi\rangle
∣ψ⟩ 的投影测量获得,其表示将整体
∣
ψ
⟩
|\psi\rangle
∣ψ⟩ 中的
A
A
A 部分收缩掉,得到的是
B
B
B 部分的联合概率
∣
ψ
~
⟩
|\tilde{\psi}\rangle
∣ψ~⟩:
∣
ψ
~
⟩
=
1
Z
∏
⊗
m
⟨
x
m
[
A
]
∣
ψ
⟩
|\tilde{\psi}\rangle =\frac{1}{Z} \prod_{\otimes m} \left\langle x_m^{[A]}|\psi \right\rangle
∣ψ~⟩=Z1⊗m∏⟨xm[A]∣ψ⟩
其中的 Z Z Z 为归一化系数。 ∣ ψ ~ ⟩ |\tilde{\psi}\rangle ∣ψ~⟩ 为 { x n [ B ] } \{x_n^{[B]}\} {xn[B]} 对应的量子概率模型,其包含的 qubit 数与 { x n [ B ] } \{x_n^{[B]}\} {xn[B]} 中像素个数一致。我们可以用图形表示 ∣ ψ ~ ⟩ |\tilde{\psi}\rangle ∣ψ~⟩ 如下,也就是将 A A A 部分的像素和 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 收缩求和,就得到只剩 B B B 部分的 ∣ ψ ~ ⟩ |\tilde{\psi}\rangle ∣ψ~⟩ 。
在等概率的先验分布前提下,上面条件概率的定义与之前子系统的概率公式是自洽的。根据概率论中的全概率公式:
P
(
{
x
n
[
B
]
}
)
=
∑
{
x
m
[
A
]
}
P
(
{
x
m
[
A
]
}
∪
{
x
n
[
B
]
}
)
=
∑
{
x
m
[
A
]
}
P
(
{
x
n
[
B
]
}
∣
{
x
m
[
A
]
}
)
P
(
{
x
m
[
A
]
}
)
P\left(\left\{x_{n}^{[B]}\right\}\right) =\sum_{\left\{x_{m}^{[A]}\right\}} P\left(\left\{x_{m}^{[A]}\right\} \cup\left\{x_{n}^{[B]}\right\}\right) =\sum_{\left\{x_{m}^{[A]}\right\}} P\left(\left\{x_{n}^{[B]}\right\} \mid\left\{x_{m}^{[A]}\right\}\right) P\left(\left\{x_{m}^{[A]}\right\}\right)
P({xn[B]})={xm[A]}∑P({xm[A]}∪{xn[B]})={xm[A]}∑P({xn[B]}∣{xm[A]})P({xm[A]})
先验分布近似为等概率分布的前提下,我们可以直接将
P
(
{
x
m
[
A
]
}
)
P\left(\left\{x_{m}^{[A]}\right\}\right)
P({xm[A]}) 作为一个常数,将
1
Z
\frac{1}{Z}
Z1 提取到求和号外,有
P
(
{
x
n
[
B
]
}
)
=
1
Z
∑
{
x
m
[
A
]
}
P
(
{
x
n
[
B
]
}
∣
{
x
m
[
A
]
}
)
P\left(\left\{x_{n}^{[B]}\right\}\right) =\frac{1}{Z} \sum_{\left\{x_{m}^{[A]}\right\}} P\left(\left\{x_{n}^{[B]}\right\} \mid\left\{x_{m}^{[A]}\right\}\right)
P({xn[B]})=Z1{xm[A]}∑P({xn[B]}∣{xm[A]})
将条件概率公式:
P
(
{
x
n
[
B
]
}
∣
{
x
m
[
A
]
}
)
=
(
∏
⊗
n
⟨
x
n
[
B
]
∣
∏
⊗
m
⟨
x
m
[
A
]
∣
ψ
⟩
⟩
)
2
P\left(\left\{x_{n}^{[B]}\right\} \mid\left\{x_{m}^{[A]}\right\}\right) =\left(\prod_{\otimes n}\left\langle x_{n}^{[B]} \mid \prod_{\otimes m}\left\langle x_m^{[A]}|\psi \right\rangle \right\rangle\right)^{2}
P({xn[B]}∣{xm[A]})=(⊗n∏⟨xn[B]∣⊗m∏⟨xm[A]∣ψ⟩⟩)2
带入上式可得概率公式(
Tr
{
x
m
[
A
]
}
\operatorname{Tr}_{\{x_m^{[A]}\}}
Tr{xm[A]} 和
∑
{
x
m
[
A
]
}
\sum_{\{x_m^{[A]}\}}
∑{xm[A]} 等价):
P
(
{
x
n
[
B
]
}
)
=
∏
⊗
n
Tr
{
x
m
[
A
]
}
⟨
x
n
[
B
]
∣
φ
⟩
⟨
φ
∣
x
n
[
B
]
⟩
=
∏
⊗
n
⟨
x
n
[
B
]
∣
Tr
{
x
m
[
A
]
}
∣
φ
⟩
⟨
φ
∣
∣
x
n
[
B
]
⟩
\mathrm{P}\left(\left\{x_{n}^{[\mathrm{B}]}\right\}\right)=\prod_{\otimes n} \operatorname{Tr}_{\left\{x_{m}^{[\mathrm{A}]}\right\}}\left\langle x_{n}^{[\mathrm{B}]} \mid \varphi\right\rangle\left\langle\varphi \mid x_{n}^{[\mathrm{B}]}\right\rangle =\prod_{\otimes n} \left\langle x_{n}^{[\mathrm{B}]} \left| \operatorname{Tr}_{\left\{ x_{m}^{[A]} \right\}} | \varphi\rangle\langle\varphi| \right | x_{n}^{[\mathrm{B}]} \right\rangle
P({xn[B]})=⊗n∏Tr{xm[A]}⟨xn[B]∣φ⟩⟨φ∣xn[B]⟩=⊗n∏⟨xn[B]∣∣∣∣Tr{xm[A]}∣φ⟩⟨φ∣∣∣∣∣xn[B]⟩
其中
Tr
{
x
m
[
A
]
}
∣
φ
⟩
⟨
φ
∣
=
ρ
^
[
B
]
\operatorname{Tr}_{\left\{ x_{m}^{[A]} \right\}} | \varphi\rangle\langle\varphi| =\hat{\rho}^{[B]}
Tr{xm[A]}∣φ⟩⟨φ∣=ρ^[B]
在已知 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 和 { x m [ A ] } \{x_m^{[A]}\} {xm[A]} 的条件下,我们可以根据 P ( { x n [ B ] } ∣ { x m [ A ] } ) P\left(\left\{x_{n}^{[B]}\right\} \mid\left\{x_{m}^{[A]}\right\}\right) P({xn[B]}∣{xm[A]}) 对 { x m [ B ] } \{x_m^{[B]}\} {xm[B]} 进行蒙特卡洛采样,从而根据已知像素来生成未知像素 { z l } \{z_l\} {zl} ,但是该概率分布中包含的可能性个数会随着未知像素的个数呈指数上升,因此在一般情况下我们不会直接通过 P ( { x n [ B ] } ∣ { x m [ A ] } ) P\left(\left\{x_{n}^{[B]}\right\} \mid\left\{x_{m}^{[A]}\right\}\right) P({xn[B]}∣{xm[A]}) 进行生成 { x m [ B ] } \{x_m^{[B]}\} {xm[B]} 。
我们可以采用如下逐点生成的方法避免指数级复杂的 P ( { x n [ B ] } ∣ { x m [ A ] } ) P\left(\left\{x_{n}^{[B]}\right\} \mid\left\{x_{m}^{[A]}\right\}\right) P({xn[B]}∣{xm[A]}) :
- 通过 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 与已知像素 { x m [ A ] } \{x_m^{[A]}\} {xm[A]} ,利用投影公式计算描述未知像素对应的量子态,记为 ∣ ψ ~ ( 0 ) ⟩ = 1 Z ∏ ⊗ m ⟨ x m [ A ] ∣ ψ ⟩ |\tilde{\psi}^{(0)}\rangle=\frac{1}{Z} \prod_{\otimes m} \left\langle x_m^{[A]}|\psi \right\rangle ∣ψ~(0)⟩=Z1∏⊗m⟨xm[A]∣ψ⟩ 。
- 在第 t t t 步得到 ∣ ψ ~ ( t − 1 ) ⟩ |\tilde{\psi}^{(t-1)}\rangle ∣ψ~(t−1)⟩ ,之后我们计算在 B B B 部分中第 t t t 个未知像素 x t [ B ] x_{t}^{[B]} xt[B] 对应的 qubit 的约化密度矩阵 ρ ~ [ t − 1 ] \tilde{\rho}^{[t-1]} ρ~[t−1] (因为是单个 qubit 的约化密度举着,所以其系数为 2 × 2 2 \times 2 2×2 的厄密矩阵) ,计算该像素的概率分布 P ( x ) = ⟨ x ∣ ρ ^ [ t − 1 ] ∣ x ⟩ P(x)=\left\langle x\left|\hat{\rho}^{[t-1]}\right| x\right\rangle P(x)=⟨x∣∣ρ^[t−1]∣∣x⟩ ,并根据该概率分布进行采样,生成该像素 x t [ B ] x_t^{[B]} xt[B] 。
- 如果仍有未知像素,则根据生成的像素对 ∣ ψ ~ ( t − 1 ) ⟩ |\tilde{\psi}^{(t-1)}\rangle ∣ψ~(t−1)⟩ 进行投影得到 ∣ ψ ~ ( t ) ⟩ = 1 z ⟨ x t [ B ] ∣ ψ ~ ( t − 1 ) ⟩ |\tilde{\psi}^{(t)}\rangle=\frac{1}{z}\left\langle x_{t}^{[B]} \mid \tilde{\psi}^{(t-1)}\right\rangle ∣ψ~(t)⟩=z1⟨xt[B]∣ψ~(t−1)⟩ ,并重复执行第二步。每经过一次第二和第三步,就能计算除出来一个像素,循环计算得出所有的像素。
如果我们仅仅知道 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 但是不知道任何像素,也可以通过逐点生成法直接生成一张图片,这时直接开始第二步循环生成。
每次通过约化密度矩阵计算出单个像素的概率分布后,可以通过随机采样生成该像素。
可以在获得单像素概率分布后,计算最概然的像素值作为生成的像素,也就是在第二步生成 x t [ B ] x_t^{[B]} xt[B] 时选择使 P ( x ) P(x) P(x) 达到最大的 x x x 作为像素值,采用这种方法时,每个量子态 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 仅生成一张最概然图片,被称为 量子平均图。
利用最概然生成法,我们可以对图片进行 压缩采样 ,也就是对于目标图片,通过保留尽量少的像素,利用量子态恢复重构出原始图片,也就是在保存时只保留少量像素,当需要整张图片时我们通过量子态将其余像素生成,这被称为 张量网络压缩感知 。
其中采用的采样方法被称为纠缠次序采样协议(EOSP) ,其核心思想是利用纠缠熵(也就是量子版本的信息熵),衡量不同像素携带的信息量的大小,以此采样出信息量(纠缠熵)大的像素。也就是直接计算每个像素对应的纠缠熵,如果我们需要保留 n n n 个像素,只需要保留纠缠熵最大的 n n n 个像素即可。
4. 监督性张量网络机器学习
从量子概率的角度理解非监督张量网络机器学习后,监督性张量网络机器学习可以看作是非监督的自然推广,这点是不同于神经网络等非概率机器学习模型的。
以分类任务为例,我们需要使用张量网络建立从数据(特征量
{
x
}
\{x\}
{x})到分类标签
κ
\kappa
κ 的函数映射
f
f
f ,而对于概率模型而言,该映射可以由条件概率
P
P
P 给出:
f
:
{
x
}
→
κ
⇒
P
(
κ
∣
{
x
}
)
f:\{x\} \rightarrow \kappa \Rightarrow P(\kappa \mid\{x\})
f:{x}→κ⇒P(κ∣{x})
我们可以考虑利用张量网络建立该条件概率,一种常用的方法采用非监督学习的方法先获得 ∣ ψ ^ ⟩ |\hat{\psi}\rangle ∣ψ^⟩ ,并计算联合概率分布,再通过投影计算获得条件概率。
∣
ψ
^
⟩
|\hat{\psi}\rangle
∣ψ^⟩ 中含有
(
L
+
1
)
(L+1)
(L+1)个 qubit ,其中
L
L
L 个 qubit 对应于图片像素,一个 qubit 对应于分类标签,因此,MPS 表示中应该含有
(
L
+
1
)
(L+1)
(L+1) 个物理指标。也就是将已知的标签信息也看作图像的一个特征,将 MPS 扩展为有
(
L
+
1
)
(L+1)
(L+1) 个特征的样本,之后使用标准的非监督张量网络机器学习训练 MPS 态,训练后使用条件概率公式
P
(
{
x
n
[
B
]
}
∣
{
x
m
[
A
]
}
)
P\left(\left\{x_{n}^{[B]}\right\} \mid\left\{x_{m}^{[A]}\right\}\right)
P({xn[B]}∣{xm[A]}) 计算条件概率,之后就可以使用条件概率得到数据到标签的映射。
其具体步骤为:
-
将分类标签 κ \kappa κ 也当作是特征量,利用训练集进行非监督机器学习,训练量子态 ∣ ψ ^ ⟩ |\hat{\psi}\rangle ∣ψ^⟩ 。
-
利用投影计算条件概率
P ( κ ∣ { x } ) = ( ⟨ κ ∣ ∏ ⊗ n ⟨ x n ∣ ψ ^ ⟩ ) 2 P(\kappa \mid\{x\})=\left( \langle \kappa | \prod_{\otimes n}\left\langle x_{n} \mid \hat{\psi}\right\rangle\right)^{2} P(κ∣{x})=(⟨κ∣⊗n∏⟨xn∣ψ^⟩)2分类的结果就是最大值的标签 arg max κ P ( κ ∣ { x } ) \argmax_{\kappa}P(\kappa|\{x\}) κargmaxP(κ∣{x}) 。
关于非监督张量网络机器学习,并不一定要按照条件概率建立映射,当矩阵乘积态不满足量子态对应的归一化条件时,条件概率的图景也就丢失了,因为量子态归一化条件是张量网络量子概率可解释性的核心,所有上述算法失效,而矩阵乘积态也就仅仅表示了从特征量到分类标签的映射 f : { x } → κ f:\{x\} \rightarrow \kappa f:{x}→κ 。此时,可直接利用自动微分技术使用梯度下降法训练模型。
舍去量子态归一化条件的张量网络分类精度要高于量子概率性的张量网络,其牺牲了可解释性,但是有了更高的精度。
张量网络不但可以作为非概率性的映射进行监督性学习,也可以作为量子态进行量子概率性机器学习,还可以作为经典概率模型进行概率性机器学习。张量网络即可以表示量子模型,也可以表示经典的模型,其作为一种表示模型是不区分经典和量子的,但是我们在加入一些约束条件时才有了量子意义,所以张量网络也可以作为经典概率模型进行机器学习,其中的两个例子为受限波尔兹曼机与贝叶斯张量网络。