这一章我们主要讲讲如何使用张量网络来做机器学习,里面有些比较细节的东西后续会通过链接贴上来。
基本思想
以图像处理为例,我们是将每张图片映射成希尔伯特空间中的向量,图像像素的所有可能构型对应着子空间的基矢,纯态在基矢上的投影对于构型的概率幅。图像生成的过程就像是量子态坍缩的过程。
特征映射
这里是讲如何将经典的图片元素映射成qubit的直积。注意一下这里的第二步,子空间维度被设定为了2(降低计算复杂性),但是像素本身的维度D>2,所以我们单考虑一个子空间,不同像素之间的内积不等于0。考虑到整个图片对应的量子态是子空间量子态的直积,所以不同的图片之间内积不等于0,这一点本身是很有问题的,但是我们后面介绍到的正交灾难特性可以很好的适配这种映射方法。
由于维数指数大,任意两张不同的图片内积约等于0,如果是两种相同的图片,内积等于1(由于子空间的量子态本身归一,做完张量之后仍然是归一)。所以正交灾难其实适配于我们前面提到的映射方案。
量子概率
张量网络机器学习模型本质上是一个概率模型,我们首先来看量子概率的定义。
这里的量子概率是定义成了量子态坍缩到特定基矢的概率。所以我们事先需要找到一个合适的测量算子(在这里其实就是
∣
ψ
>
<
ψ
∣
|\psi><\psi|
∣ψ><ψ∣),在有了测量算子之后我们就可以给出任意一张图片的坍缩概率。注意一下他这里的概率的定义形式,它是先做分量缩并(下面的那个图就可以看出来这一点),再做张量积,事实上根据我们前面杂记里面提到的张量积与矩阵乘法之间的交换性质,这个运算等价于先做张量积再做缩并,也就是坍缩概率本身的定义。
这边讲的其实就是我们前面在特征映射那儿提到的问题。这里贴出来主要是说说如果维度严格一致能够严格满足概率归一性。由于复合系统基矢等于子系统基矢的张量积,同时满足了正交完备性,所以求和之后严格等于单位阵。而由于正交灾难,我们之前的映射方法也能保证基本满足概率归一性。
量子懒惰学习
根据我们这样的一个概率模型,想要有好的应用结果,归根结底需要找到一个合适的测量算子 ∣ ψ > < ψ ∣ |\psi><\psi| ∣ψ><ψ∣,从这里开始我们就讲讲怎么来找这样的算子。
首先我们需要定义一个找的标准:同一个分类中,测试集每张图片坍缩的概率相等(这个假设其实也是后面一种训练方法的目标)
懒惰学习呢,就是直接给出了
ψ
>
\psi>
ψ>而不存在训练的过程。这里我们就直接给出了这样的一种平凡的量子态,它是把该分类中所有的图片叠加起来做了个平均,显然这种平凡的测量算子能够满足等概率的标准。这种方法看着非常的平凡,但实际上真正做的时候效果非常不错。(莫名感觉有点玄学,其实还不太能真正理解)
非监督的张量网络机器学习
这里的非监督指的是我们没有告诉训练器每张图片属于那个分类,训练的目标函数也与分类结果无关,而是指的前面所述的等概率假设
这里用梯度更新的方法来求出测量算子。为了把指数复杂度降成多项式的复杂度,我们这里把张量
∣
ψ
>
|\psi>
∣ψ>写成MPS态(维数裁剪),求张量偏导的部分如图所示(注意一下,这里的求法适用于闭合的张量网络,即没有物理分量)。这里是在更新的过程中一直要保持中心正则形式,本身挺麻烦的,另一种更新方法就是直接利用pytorch里的自动微分技术。但是根据切空间原理这样好像效果没有正则形式好(这里留个坑,待我去研究研究那篇论文)
这里是通过联合概率分布求部分参数的概率分布以及概率分布。这里第一个公式就是正常的全概率公式,后面要用到条件概率的公式(这边再说一个细节,由于我们是先做缩并再做张量积,而张量积不满足交换律,所以这里的缩并运算其实是有先后顺序之分的,这也就是为什么我们非得先绕到条件概率上来,下图条件概率的形式可以清晰的看出区别)。但是这里有一点,就是最后这个地方说的,它们严格意义上来说并不是A系统的密度算子,所以从约化密度算子那里开始其实都是约等于。
所以,这里说明了我们前面部分参数的联合概率的公式有一个先验概率等概率分布的假设。
图片生成与压缩
这边逐点生成的方法如图所示。这里面获得单像素概率分布后,如果随机采样,可以用这个方法来生成更多训练图。如果采样极大似然的准则去选择像素的话,那么只能得到一张图,这样的图我们称为量子平均图。压缩感知其实也可以用这样的方法,我们选择纠缠熵最大的那些像素进行压缩,再利用逐点生成法把整张图还原出来。
监督性张量网络的机器学习
这里实际上是把监督的target也作为一个特征映射到一个子空间,然后再采用非监督的方法得到相应的测量算子,有测量算子可以算某一个测试样本的联合概率,有了联合概率可以计算他到某一个分类的条件概率。
最后这一段比较有意思,留个坑待我探索一波!