Supervised Learning with Projected Entangled Pair States
这份笔记是在阅读论文《Supervised Learning with Projected Entangled Pair States》的过程中所做的一些记录和补充。论文的出处以及阅读过程中产生的其余文献的参考,均置于文末参考文献中。
注:这篇论文已经发表在PRB上,根据配图来看,正式发表的论文相比于arXiv上的预印版,应该有所补充或完善。但是,发表的论文虽然有了DOI号,不知道是不是还没有被SCI检索的原因,暂时无法下载。
一、研究的问题
目前,基于张量网络的机器学习方法,在进行数据处理的时候,总是考虑将其表示为近似一维的与树结构类似的张量网络,比如矩阵乘积态(Matrix Product State, MPS)、树张量网络(Tree Tensor Network, TTN)等。当然,在实际的应用中也取得了不错的效果。但是,基于MPS和TTN的模型在处理图像的时候,邻近像素点之间的结构和空间关联被忽略,并且导致短程关联被人为地变成长程关联,带来了不必要的计算开销和统计偏差。而投影纠缠对态(Projected Entangled Pair States, PEPS)具有与原始图像类似的二维结构,因此,论文考虑利用PEPS来建立机器学习模型。
二、PEPS图像分类
1. 输入数据的特征映射
监督学习的目的就是寻找一个函数或者映射 f ( x ) f(x) f(x),将输入的训练图像 x ∈ R L 0 × L 0 x \in \mathbb{R}^{L_{0} \times L_{0}} x∈RL0×L0 映射为 y ∈ { 1 , 2 , ⋯ , T } y \in \{1, 2, \cdots, T\} y∈{1,2,⋯,T}。由于非线性性能够有效提升输入空间的维度,使得提取数据的特征更加容易,因此这样的映射通常是高度非线性的。而张量网络是能够作用在高维空间中的线性模型,于是所有的特征就变得线性可分,不需要考虑非线性性。因此,我们首先需要将输入数据 x x x 转换为特征张量 Φ ( x ) \Phi(x) Φ(x) ,有如下两种特征映射方式:
1) 直积态
将黑色像素点
x
i
=
0
x_{i} = 0
xi=0 表示为态
∣
0
⟩
=
[
1
0
]
|0\rangle=\left[\begin{array}{l}1 \\ 0\end{array}\right]
∣0⟩=[10] ,白色像素点
x
i
=
1
x_{i} = 1
xi=1 表示为态
∣
1
⟩
=
[
0
1
]
|1\rangle=\left[\begin{array}{l}0 \\ 1\end{array}\right]
∣1⟩=[01]。那么,介于0和1之间的像素值可以表示为如下的叠加态:
ϕ
(
x
i
)
=
a
∣
0
⟩
+
b
∣
1
⟩
=
a
[
1
0
]
+
b
[
0
1
]
\phi\left(x_{i}\right)=a|0\rangle+b|1\rangle=a\left[\begin{array}{l} 1 \\ 0 \end{array}\right]+b\left[\begin{array}{l} 0 \\ 1 \end{array}\right]
ϕ(xi)=a∣0⟩+b∣1⟩=a[10]+b[01]
其中
a
=
cos
π
x
i
2
a=\cos \frac{\pi x_{i}}{2}
a=cos2πxi,
b
=
sin
π
x
i
2
b=\sin \frac{\pi x_{i}}{2}
b=sin2πxi。那么,对于图像
N
=
L
0
×
L
0
N = L_{0} \times L_{0}
N=L0×L0,其特征张量
Φ
(
x
)
\Phi(x)
Φ(x) 定义为:
Φ
(
x
)
=
ϕ
(
x
1
)
⊗
ϕ
(
x
2
)
⊗
⋯
⊗
ϕ
(
x
N
)
\Phi(x)=\phi\left(x_{1}\right) \otimes \phi\left(x_{2}\right) \otimes \cdots \otimes \phi\left(x_{N}\right)
Φ(x)=ϕ(x1)⊗ϕ(x2)⊗⋯⊗ϕ(xN)
2) 卷积特征映射
这里的卷积指的是神经网络中的卷积层。卷积层的输入是原始图像
x
∈
R
L
0
×
L
0
x \in \mathbb{R}^{L_{0} \times L_{0}}
x∈RL0×L0,输出是一个维度为
L
×
L
×
d
L \times L \times d
L×L×d 的三阶特征张量,其中
L
×
L
(
L
≤
L
0
)
L \times L(L \leq L_{0})
L×L(L≤L0) 是特征的输出尺寸,
d
d
d 表示通道数。不难看出,卷积神经网络的特征映射输出的结果依旧可以看作是一个直积态,每个值都在
L
×
L
L \times L
L×L 大小的格点上,并且物理维度为
d
d
d。因此,特征张量的总的空间大小为
d
L
×
L
d^{L \times L}
dL×L。
传统的多层感知器(MLP)是将特征张量
Φ
(
x
)
\Phi(x)
Φ(x) 展平为一个向量作为输入,忽略了特征张量的空间结构。在这里,考虑一种使用二维张量网络的线性分类器,其可以充分地将原始特征张量作为输入,这样可以保留空间结构。
关于多层感知器(MLP),YouTobe大佬3B1B讲解的很棒,视频链接附于文末。
2. PEPS分类器
考虑一个线性映射
W
W
W,得到一个向量,表示给定输入图像的
T
T
T 个标签之一的概率,即:
f
(
x
)
=
W
⋅
Φ
(
x
)
f(x) = W \cdot \Phi(x)
f(x)=W⋅Φ(x)
其中,
W
∈
R
d
L
×
L
×
T
W \in \mathbb{R}^{d^{L \times L} \times T}
W∈RdL×L×T,
⋅
\cdot
⋅ 表示
W
W
W 与
Φ
(
x
)
\Phi(x)
Φ(x) 之间的张量缩并。由于总的参数量达到了
d
L
×
L
×
T
d^{L \times L} \times T
dL×L×T,利用PEPS对
W
W
W 进行近似表示:
W
l
,
s
1
s
2
⋯
s
N
=
∑
σ
1
σ
2
⋯
σ
K
T
σ
1
,
σ
2
s
1
T
σ
3
,
σ
4
,
σ
5
s
2
⋯
T
σ
k
,
σ
k
+
1
,
σ
k
+
2
,
σ
k
+
3
s
i
,
l
⋯
T
σ
K
−
1
,
σ
K
s
N
W^{l, s_{1} s_{2} \cdots s_{N}}=\sum_{\sigma_{1} \sigma_{2} \cdots \sigma_{K}} T_{\sigma_{1}, \sigma_{2}}^{s_{1}} T_{\sigma_{3}, \sigma_{4}, \sigma_{5}}^{s_{2}} \cdots T_{\sigma_{k}, \sigma_{k+1}, \sigma_{k+2}, \sigma_{k+3}}^{s_{i}, l} \cdots T_{\sigma_{K-1}, \sigma_{K}}^{s_{N}}
Wl,s1s2⋯sN=σ1σ2⋯σK∑Tσ1,σ2s1Tσ3,σ4,σ5s2⋯Tσk,σk+1,σk+2,σk+3si,l⋯TσK−1,σKsN
其中,
K
K
K 是虚拟指标
σ
k
∈
{
1
,
2
,
⋯
,
D
}
\sigma_{k} \in \{1,2,\cdots,D \}
σk∈{1,2,⋯,D} 的个数。每个张量都有一个物理指标
s
i
∈
{
1
,
2
,
⋯
,
d
}
s_{i} \in \{1,2,\cdots,d\}
si∈{1,2,⋯,d},与输入向量
Φ
(
x
i
)
\Phi(x_{i})
Φ(xi) 相关联。在中心张量处,有一个多余的标签索引
l
∈
{
1
,
2
,
⋯
,
T
}
l \in \{1,2,\cdots,T\}
l∈{1,2,⋯,T} ,产生模型的输出向量。这些张量的值随机初始化为
0
0
0 到
0.01
0.01
0.01 的实数,构成了模型的可训练参数
θ
θ
θ。
3. 训练算法
训练的目的是调整参数
θ
\theta
θ,使训练标签和预测标签之间的差值达到最小。通过最小化表示预测标签分布与对应训练标签分布的
o
n
e
−
h
o
t
one-hot
one−hot 向量之间距离的损失函数
L
\mathcal{L}
L 来实现,其定义如下:
L
=
−
∑
x
i
,
y
i
∈
T
log
[
softmax
(
f
[
y
i
]
(
x
i
)
)
]
\mathcal{L}=-\sum_{x_{i}, y_{i} \in \mathcal{T}} \log \left[\operatorname{softmax}\left(f^{\left[y_{i}\right]}\left(\boldsymbol{x}_{i}\right)\right)\right]
L=−xi,yi∈T∑log[softmax(f[yi](xi))]
softmax
[
f
[
y
i
]
(
x
)
]
≡
exp
f
[
y
i
]
(
x
i
)
∑
ℓ
=
1
T
exp
f
[
ℓ
]
(
x
i
)
\operatorname{softmax}\left[f^{\left[y_{i}\right]}(\boldsymbol{x})\right] \equiv \frac{\exp f^{\left[y_{i}\right]}\left(\boldsymbol{x}_{i}\right)}{\sum_{\ell=1}^{T} \exp f^{[\ell]}\left(\boldsymbol{x}_{i}\right)}
softmax[f[yi](x)]≡∑ℓ=1Texpf[ℓ](xi)expf[yi](xi)
其中,
x
i
x_{i}
xi 表示第
i
i
i 张图片,
y
i
y_{i}
yi 表示数据集
T
\mathcal{T}
T 中相应的标签。激活函数
softmax
\operatorname{softmax}
softmax 的输出可以解释为图片
x
i
x_{i}
xi 属于
y
i
y_{i}
yi 的概率,损失函数
L
\mathcal{L}
L 表示模型概率与图像标签的交叉熵。
f
[
ℓ
]
f^{[\ell]}
f[ℓ] 由PEPS模型的物理指标和特征映射向量缩并得到:
f
[
ℓ
]
(
x
)
=
W
ℓ
,
s
1
s
2
⋯
s
N
⋅
ϕ
s
1
(
x
1
)
⊗
ϕ
s
2
(
x
2
)
⊗
⋯
⊗
ϕ
s
N
(
x
N
)
=
∑
σ
1
σ
2
⋯
σ
K
M
σ
1
,
σ
2
M
σ
3
,
σ
4
,
σ
5
⋯
M
σ
k
,
σ
k
+
1
,
σ
k
+
2
,
σ
k
+
3
ℓ
⋯
M
σ
K
−
1
,
σ
K
\begin{aligned} f^{[\ell]}(\boldsymbol{x}) &=W^{\ell, s_{1} s_{2} \cdots s_{N}} \cdot \phi_{s_{1}}\left(x_{1}\right) \otimes \phi_{s_{2}}\left(x_{2}\right) \otimes \cdots \otimes \phi_{s_{N}}\left(x_{N}\right) \\ &=\sum_{\sigma_{1} \sigma_{2} \cdots \sigma_{K}} M_{\sigma_{1}, \sigma_{2}} M_{\sigma_{3}, \sigma_{4}, \sigma_{5}} \cdots M_{\sigma_{k}, \sigma_{k+1}, \sigma_{k+2}, \sigma_{k+3}}^{\ell} \cdots M_{\sigma_{K-1}, \sigma_{K}} \end{aligned}
f[ℓ](x)=Wℓ,s1s2⋯sN⋅ϕs1(x1)⊗ϕs2(x2)⊗⋯⊗ϕsN(xN)=σ1σ2⋯σK∑Mσ1,σ2Mσ3,σ4,σ5⋯Mσk,σk+1,σk+2,σk+3ℓ⋯MσK−1,σK
其中,
M
=
∑
s
i
T
s
i
ϕ
s
i
(
x
i
)
M=\sum_{s_{i}} T^{s_{i}} \phi_{s_{i}}\left(x_{i}\right)
M=∑siTsiϕsi(xi)。
当PEPS模型比较小的时候,其张量缩并的计算复杂度正比于 D L D^{L} DL。当 D D D 和 L L L 很大的时候,需要采用近似方法——边界MPS方法。
边界MPS方法
我们已经提及,PEPS是一个具有二维结构的张量网络,因此,将位于最底层的一行张量看作MPS,剩下的所有行视为作用在该MPS上的算符。当每一行作用在MPS上时,需要将MPS的键维裁剪为最大值 χ \chi χ。而为了获得最小的裁剪误差,首先对MPS使用QR分解,以此确保MPS是正确的正则形式(canonical form)。然后,再对正则化MPS的中心张量使用SVD分解,确保裁剪是最优的。
由边界MPS方法实现的近似缩并的总的计算复杂度为 O ( N χ 3 D 6 ) O(N\chi^{3}D^{6}) O(Nχ3D6)。更有效的方法是从顶层MPS和底层MPS对PEPS进行并行缩并,此时的计算复杂度为 O ( T χ 3 D 2 ) O(T\chi^{3}D^{2}) O(Tχ3D2)。
除了预测标签和评估损失函数的正向过程外,还需要逆向过程来计算损失函数相对于训练参数的梯度:利用张量网络的自动微分技术。自动微分技术的关键
在于将张量网络算法视为关于张量和代数操作的可追踪计算图,然后通过简单的链式法则,可以沿着这个计算图实现反向传播过程,得到损失函数
L
\mathcal{L}
L 对各个参数的梯度值(就是冉仕举视频中的求梯度的那种方式)
。最后,直接使用随机梯度下降和Adam优化器来更新可训练参数
θ
\theta
θ。如果参数均为非负值,优化的稳定性能得到很大的改善。
三、实验结果
关于实验结果,需要关注的是对于初始图像的处理。如果采用的是直积态的方式,那么将 28 × 28 28\times28 28×28 的图像以 2 × 2 2\times2 2×2 的块大小与 14 × 14 14\times14 14×14 的PEPS中的张量进行缩并。以 6 × 6 6\times6 6×6 的图像为例(如下图所示),每个像素值均表示为二维向量的形式。对 2 × 2 2\times2 2×2 的块大小(左上角),求其张量积得到直积态与PEPS中的张量进行缩并,以此类推。
第二种方式是利用卷积神经网络对图像进行处理,然后将处理后的数据同样地与PEPS进行缩并:利用 10 10 10 个大小为 5 × 5 5\times5 5×5 的卷积核以步长为 1 1 1 对 28 × 28 28\times28 28×28 的图像进行卷积操作(需要将原始图像补 0 0 0 为 32 × 32 32\times32 32×32 的图像),每一次卷积都能得到 28 × 28 28\times28 28×28 的图像,然后经过非线性激活层和 2 × 2 2\times2 2×2 的最大池化层之后,得到 14 × 14 14\times14 14×14 的输出。经过 10 10 10 次这样的卷积操作之后,最终得到 14 × 14 × 10 14\times14\times10 14×14×10 的三阶张量。同样地,取 2 × 2 2\times2 2×2 的块大小与 14 × 14 14\times14 14×14 的PEPS中的张量进行缩并。与方式一的不同之处在于:方式一中PEPS的物理指标维度为 16 16 16 ,而卷积之后的物理指标维度为 10 10 10 。两种方式中,PEPS的键维均设置为 χ = 10 \chi=10 χ=10 。
数据集采用的是经典的MNIST和Fashion-MNIST数据集,其包含的具体数据如下图所示。
将论文中提到的两种方式分别在MNIST数据集中进行训练与测试,可以看出,PEPS和CNN-PEPS的准确度明显比MPS结构好很多。键维 D = 4 D=4 D=4 时,PEPS的测试准确度超过了传统的MLP;键维 D = 2 D=2 D=2 时,CNN-PEPS的测试准确度也超过了CNN-MLP。并且,键维 D = 5 D=5 D=5 时,两者达到最优的准确度。
而在Fashion-MNIST数据集中,相比于MPS、PEPS和MPS结合TTN这三种张量网络结构,CNN-PEPS具有更好的效果。
论文中的疑问
- 边界MPS方法对PEPS进行收缩的时间复杂度 O ( N χ 3 D 6 ) O(N\chi^{3}D^{6}) O(Nχ3D6) ,和同时收缩时的时间复杂度 O ( T χ 3 D 2 ) O(T\chi^{3}D^{2}) O(Tχ3D2) ,不清楚是如何计算出来的;
- 为什么特征映射采用直积态的形式,并且保持参数为非负值,能够极大地改善优化的稳定性?论文中并没有给出解释。
参考文献
1) 论文
[1] Cheng S, Wang L, Zhang P. Supervised Learning with Projected Entangled Pair States[J]. arXiv preprint arXiv:2009.09932, 2020.
[2] Vidal G. Efficient classical simulation of slightly entangled quantum computations[J]. Physical review letters, 2003, 91(14): 147902.
2) 多层感知器(MLP)
[1] YouTube
[2] BiliBili
3) 交叉熵
[1] 简单的交叉熵,你真的懂了吗?