《张量网络基础课程》第六章

cover

6.1 张量网络机器学习基本思想

张量网络机器学习的实质就是,利用张量网络建立输入到输出的映射,并使用张量网络算法实现变分参数的更新。

张量网络机器学习的基本步骤:将数据编码/嵌入到希尔伯特空间;利用张量网络在该空间进行映射获得输出。

表达非常清晰的一张图,说明了机器学习张量网络学习的过程,并很好地体现了两者的差别,即张量网络学习多了特征映射这一步,随后通过张量网络而非神经网络进行训练。

张量网络的优点是,它能在可解释性准确率上达到一个较好地平衡点,但它的效率和准确度不如神经网络。神经网络的优点是准确率高,但它的可解释性不强。

6.2 特征映射、希尔伯特空间与量子概率

特征映射的基本思想是,通过特征映射,将一个样本映射成L个qubit的直积态(L为特征的个数),以图像为例设第n张图片的第个像素值为(xi[n](0<xi[n]<1)x_i^{[n]}(0<x_i^{[n]}<1)),将其映射成为单qubit态

xin=cos(xi[n]π)/20+sin(xi[n]π)/21\left|x_{i}^{|n|}\right\rangle=\cos \left(x_{i}^{[n]} \pi\right) / 2|0\rangle+\sin \left(x_{i}^{[n]} \pi\right) / 2|1\rangle

通过这种映射就能将一整张图片映射成为由个qubit构成的直积态,如下所示

X[n]=l=1L[xl[n]]\left|X^{[n]}\right\rangle=\prod_{\otimes l=1}^{L}\left[\left|x_{l}^{[n]}\right\rangle\right]

那么对于具备L个像素的图片集而言,假设其联合概率分布由L个qubit构成的多体态(记为)描述,满足

P(y1,,yL)=[(l=1L[(yiψ)])]2P\left(y_{1}, \ldots, y_{L}\right)=\left[\left(\prod_{\otimes l=1}^{L}\left[\left|\left(y_{i} \mid \psi\right)\right|\right]\right)\right]^{2}

P(y1,,yL)P(y_1,…,y_L )表示该概率分布给出的样本出现的概率,用张量网络图可以表示为

这里还有一个比较重要的性质,如果局域量子空间的维数等于特征取值个数d=D(例如黑白图与d=2映射),则不同样本对应的量子态将完全正交,有

X[m]X[n]=0\left\langle X^{[m]} \mid X^{[n]}\right\rangle=0

这意味着,其中一张图片量子态对应的概率分布中,出现与之不同的图片的概率为0。但是视频中提到此处的正交性意义不大,即使特征取值个数d<D,此时各个样本的概率和会大于1,**概率归一性被违背,但结果与单位矩阵仅相差一个归一化因子。**更详细的解释可以看论文《Phys. Rev. X 8, 031012 (2018)》和《Phys. Rev. B101,075135 (2020)》

6.3 等概率假设和量子懒惰学习

对于一大类图片,例如0到9的手写字体,可以训练量子态,使得该类中每一张图片出现的概率非零且相等,即

P(X)=[(l=1L[(xiψ)])]2= const. P(X)=\left[\left(\prod_{\otimes l=1}^{L}\left[\left|\left(x_{i} \mid \psi\right)\right|\right]\right)\right]^{2}=\text { const. }

等概率假设:当上式成立时,我们认为给出的联合概率分布接近该类图片给出的像素的联 合分布。要想满足同类中图片出现的概率**非零且相等,**一种可行的方案如下

ψlazy=1/XXxl=1Lxi\left.\left|\psi^{l a z y}\rangle=1 / \sqrt{|X|} \sum_{X \in x} \prod_{\otimes^{l}=1}^{L}\right| x_{i}\right\rangle

其中X|X|代表XX中的图片数量,上态称之为lazy态。我觉得之所以将其称为lazy态,是因为这个量子态不需要经过训练,而是直接能根据图片特征映射得到,是一个通用的模板,因此通过lazy态实现机器学习任务被称为量子懒惰学习(quantum lazy learning)

上面是以一个类别进行举例,那么将其用于MNIST数据集,就是10个lazy态[ψ]klazy{[|ψ]_k^{lazy}⟩},那么就可以根据量子概率定义,估计任意图片(记为Y)出现在第k类的概率

Pk(Y)=[Yψklazy]2P_{k}(Y)=\left[\left|\left\langle Y \mid \psi_{k}^{\text {lazy}}\right\rangle\right|\right]^{2}

显然,通过就能得到概率最大的那个类,这个类就是分类器[ψ]klazy{[|ψ]_k^{lazy}⟩}给出的该图片的分类预测,这种非参数的方法可以给出不错的分类结果:MNIST– 97%fashion-MNIST –85%量子懒惰学习的表现不如神经网络,但是超过了SVM、NB等传统机器学习算法。

上述算法,是核心,但其参数复杂度会随着特征个数L指数上升,那么用张量网络表示它就能使参数复杂度降低到多项式级,在给定N个训练集样本后,我们可以训练量子态,使其满足等概率假设P(x[1])=P(x[2])=P(x^[1] )= P(x^[2] )=⋯,这被称为MPS非监督机器学习。那么如何能够构建等概率假设的条件呢,交叉熵损失函数正好解决了这个问题,它的公式如下

f(x[n])=1/N1N[ln[(l=1L[Xl[n]ψk])]2]f\left(x^{[n]}\right)=-1 / N \sum_{1}^{N}\left[\ln \left[\left(\prod_{\otimes l=1}^{L}\left[\left|\left\langle X_{l}^{[n]} \mid \psi_{k}\right\rangle\right|\right]\right)\right]^{2}\right]

损失函数f取极小时正好能满足等概率假设的条件(之前的汇报里证明过)。

6.4 监督/非监督张量网络机器学习

通过梯度更新方法,更新张量网络中的张量,使得损失函数在一次次迭代中降到极低,梯度更新公式为

A(L)A(L)ηf/(A((l)))\left.A^{(L)} \longleftarrow A^{(L)}-\eta \partial f /\left(\partial A^{(}(l)\right)\right)

其中ηη为学习率

使用MPS表示ψ|ψ⟩时,可利用**MPS中心正交形式,**逐个更新各个张量,步骤如下

  1. 更新第ll个张量A(L)A^{(L)}时,将正交中心移动到该张量

  2. 利用张量网络微分法则,求出损失函数关于A(L)A^{(L)}的梯度(见下图)

6.5 张量网络图片生成与压缩

获得量子态后,不但可以求出像素的联合概率密度,还可以计算条件概率,具体内容为,考虑已知与图片中的部分像素(记为[x]m[A][{x]_m^{[A]}}),则剩余位置像素(记为[x]n[B]{[x]_n^{[B]}})的概率分布可由如下条件概率给出

P([x]n[B][x]m[A])=[[xn[B]Ψ]]2P\left([x]_{n}^{[B]} \mid[x]_{m}^{[A]}\right)=\left[\prod\left[\left\langle x_{n}^{[B]}\right| \Psi\right]\right]^{2}

量子态为通过对的投影测量获得

ψ=1/Zm[xmb[A]ψ]\left|\psi^{\sim}\right\rangle=1 / Z \prod_{\otimes m}\left[\left\langle x_{m b}^{[A]} \mid \psi\right\rangle\right]

其中Z为归一化系数,上述式子用张量网络可表示为

6.6 监督张量网络机器学习

监督性张量网络机器学习可以看做是非监督的自然推广,这点是不同于神经网络等非概率机器学习模型的,因为神经网络模型的非线性映射是不可逆的。以分类任务为例,需要使用张量网络建立从数据分类标签的函数映射,而对于概率模型而言,该映射可以由条件概率P给出:

f:xκP(κx)f: x \rightarrow \kappa \Rightarrow P(\kappa \mid x)

那么可以考虑用张量网络建立该条件概率,一种常用的方法采用非监督学习的方法先获得并计算联合概率分布,再通过投影计算获得条件概率。

中含有(L+1)个qubit,其中L个qubit是图片像素的映射,一个qubit对应于分类的标签;因此,MPS表示中含有(L+1)个物理指标。

进行监督性学习的具体方法是:

  1. 将分类标签也当做是特征量,利用训练集进行非监督机器学习,训练量子态;

  2. 利用投影计算条件概率P(κ│{x} )=[(|ψ ̌ ⟩ ∑_{⊗n}[⟨x_n |ψ ̌ ]⟩)]^2,分类结果即为最概然的标签值[argmax]kP(κx)[argmax]_k P(κ|{x})

当然,非监督张量网络的机器学习,并不一定要按照条件建立概率映射,例如当矩阵乘积态不满足量子态对应的归一化条件时,张量网络量子概率的可解释性也就受到影响,上面的算法就失效了,此时可以直接用梯度下降法训练模型(自动微分技术)

6.7 张量网络与经典概率模型

张量网络不仅可以作为非概率性的映射进行监督机器学习,也可以作为量子概率性机器学习,还可以作为经典概率模型进行概率性机器学习,其中两个例子为受限玻尔兹曼机和贝叶斯张量网络。

论文《Deep convolutioanl tensor network》

论文中主要完成的工作:

  1. 提出了一个基于张量网络的新张量模型,该模型基于张量网络组成(称为EPS(Enquetted
    Plaquette状态)),可以满足参数共享、局域性和深度的需求

  2. 展示了EPS如何实现**向后传播的功能层,**这可以用于神经网络或者其他基于向后传播的模型

  3. 使用常用的技术训练深度神经网络,并在FashionMNIST上训练并评估模型。我们发现,虽然基于一个EPS的浅层模型在精度和参数数目方面与DCNN具有竞争性,但使其更深会导致更多的过拟合,从而导致精度降低

  4. 展示了各种超参数如何影响模型的优化和概括

这篇论文首先介绍了一个张量网络中的copy操作,能够copy输入或者输出向量,一个比较形象的例子如下,在用箭头表示的输入边处用红点标记,输出边用另一种方式标记,这种copy操作等价于两个相同的input向量与张量网络进行收缩,如下图所示

对于输入数据,仍然同之前的论文一样,将各个像素或样本映射到归一化的向量上,用它们的张量积表示系统量子态,如下图所示,图中表示了20个张量的张量积。

这篇文章采用的映射函数为:

φ(x)=ν[cos2(π2x)sin2(π2x)]\varphi(x)=\nu\left[\begin{array}{l} \cos ^{2}\left(\frac{\pi}{2} x\right) \\ \sin ^{2}\left(\frac{\pi}{2} x\right) \end{array}\right]

随后,文章中又讲解了EPS态的原理,它定义了kernel
size(这一点非常类似于卷积神经网络CNN中的kernel),通过这一层EPS得处理,就能将参数化为一个的张量,其中为输入,1为输出。一个3*3矩阵的EPS处理示例如下

然而一张图片可以有很多个3*3或者2*2这样的子矩阵,因此就可以对这些局部采用EPS进行处理,以一张4*3的图片为例,它的EPS核可以按照下图的方式收缩,可以看到每个2*2的子矩阵收缩成了一个EPS张量。

对于图片的处理流程可以表示如下,即先对图片进行映射,其次采用N层EPS进行参数化。随后用一个矩阵A和向量b线性层进行映射,softmax激活层进行激活,整体的模型可以用如下的等式进行定义

X0(h,w)=φ(X(h,w))X1=eps(E1,X0)X2=eps(E2,X1)lnp^(y=X)=(Avec(XN)+b)XN=eps(EN,XN1)p(y=X)=softmax([lnp^(y=1X)lnp^(y=2X)lnp^(y=LX)))=p^(y=X)=1Lp^(y=X),\begin{array}{c} X_{0}(h, w)=\varphi(X(h, w)) \\ X_{1}=\operatorname{eps}\left(E_{1}, X_{0}\right) \\ X_{2}=\operatorname{eps}\left(E_{2}, X_{1}\right) \\ \vdots \\ \ln \hat{p}(y=\ell \mid X)=\left(A \cdot \operatorname{vec}\left(X_{N}\right)+b\right)_{\ell} \\ X_{N}=\operatorname{eps}\left(E_{N}, X_{N-1}\right) \\ p(y=\ell \mid X)=\operatorname{softmax}\left(\left[\begin{array}{c} \ln \hat{p}(y=1 \mid X) \\ \ln \hat{p}(y=2 \mid X) \\ \vdots \\ \ln \hat{p}(y=L \mid X) \end{array}\right)\right)=\frac{\hat{p}(y=\ell \mid X)}{\sum_{\ell^{\prime}=1}^{L} \hat{p}\left(y=\ell^{\prime} \mid X\right)}, \end{array}

上述公式非常清晰的阐明了EPS完整的网络结构,可以通过下图展示EPS网络来训练输入张量的过程

再来一个对4*4图片采用两层EPS的张量网络展示,从这个图中可以看到,每一层EPS都有单独的Kernel
size,收缩单位都是上一层EPS的输出张量。

在文章的最后,还介绍了一些EPS网络参数优化的方法,并且通过实验验证了EPS的效果,类似于DCTN(deep convolutional tensor network),在参数共享、局域性和深度方面都有较好的表现。但是另一方面,多层的EPS网络很容易导致过拟合造成较差的结果,因此文中建议就是可以将EPS仅作为神经网络中的一层操作。详细代码见Github.

这个代码我下载下来看了一下,基于python3.7和深度学习框架torch,代码整体非常规范,项目比较大,看起来比较吃力。远比之前TTN网络训练MNIST要复杂。而HTN论文中缺少代码,正在编码想复现HTN这篇网络。卢陈玉学长的代码中,将tucker和cp分解处理后的图片和卷积神经网络结合起来,可以作为HTN中神经网络层的参考。因此HTN论文复现的关键就在于通过TTN网络压缩图片(两篇论文的TTN略有不同),将其作为后续深度学习网络的输入。

结尾附上赖老师赠送给我的一张量子计算的层次结构图,非常清晰。就不需要再纠结上面论文中的算法如何设计成量子线路了(其实本身也是一头雾水。。。),只需要关注如何将复杂的张量网络机器学习算法如何用量子态进行表示和处理就OK了。

下面这张图也很useful,浅水区域表示了人工智能已经比较成熟的领域。陆地上的是正在热门解决的问题,高山上的是比较棘手复杂的AI问题,例如AI设计、写书、科学研究等。

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2015-2024 YuleZhang's Blog
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信