十一、TN 的本征自洽方法、梯度更新与任意 TN 的收缩
十一、TN 的本征自洽方法、梯度更新与任意 TN 的收缩
1. 无穷大张量网络的本征自洽方法
TRG 和 CRMRG 算法都是用来收缩无穷大的张量网络,它们的关键区别有两点:
- 收缩顺序不同
- 裁剪环境不同
TRG 是通过对张量网络进行粗粒化变换进行收缩,CTMRG 是从假想的边界出发,从外向内进行收缩;TRG 的裁剪环境是被分解的局域张量,CTMRG 的环境是角矩阵和边界张量。
对于 CTMRG 算法,如果我们先考虑一个方向上的 MPS ,并沿着垂直方向上的 MPS 进行收缩,那么这种收缩方式就变成了 infinite TEBD (iTEBD)算法,其表示用 TEBD 算法收缩无穷大的张量网络。我们可以用图形表示如下:
在 iTEBD 算法中,收缩顺序是利用 MPS ,首先收缩垂直方向的指标,再通过 MPS 辅助指标的收缩处理平行方向的指标收缩;iTEBD 算法的裁剪环境为处于边界的 MPS ,如下图:
类似的,我们可以扩展到 infinite DMRG (iDMRG),其表示为用 DMRG 的方式收缩无穷大的张量网络。CTMRG 、iTEBD 和 iDMRG 算法都属于边界 MPS 算法。
这里我们介绍一种无穷大张量网络的本征自洽方法,称为 张量网络编码算法(TN encoding algorithm,TNE),其思想是将无穷大TN的收缩问题等价成为局域自洽本征方程组求解问题。
TNE 是收缩张量网络的一种新思路,并且将 iTEBD 与 iDMRG 这些算法统一到了同一个框架内。我们所学习的四种张量网络的收缩算法可以使用自洽本征方程的方法联系起来。并且 TNE 可以推广到更高维的张量网络。
TNE 的主要步骤是,将无穷大张量网络的收缩问题等价为两组相互有关联的局域自洽本征方程,我们可以使用这两组相互关联的本征方程进行迭代求解,当它们达到自洽解时,该自洽解就是无穷大张量网络的收缩结果。
iDMRG 的局域自洽求解
这里我们重新审视 one - site iDMRG ,首先我们进行两步简化
-
如果将无穷大张量网络中每一层张量构成的 MPO 当作 DMRG 算法中的哈密顿量,在 DMRG 中,我们的目的就是求解哈密顿量的基态 MPS,那么张量网络的收缩计算可以表示成如下基态极小化的问题,即
用图形可以表示如下:
当变分达到极值点后,我们可以近似认为,MPS 就是 MPO 本征态,那么我们就有本征方程:即用 MPS 乘以它的基态,得到的结果还是基态,可以用图形表示为:
根据上述的本征方程,我们可以将整个张量网络看成无穷多层的 MPO ,因为在达到极值点后,MPO 再与基态的收缩不会再改变基态,所以整个张量网络可以被等效为 “基态” MPS 与一层 MPO 的内积,用图形表示为:通过这一步的简化,在横向和纵向都是无穷大的张量网络被简化,其结构变成了在横向为无穷大,在纵向只有三层的张量网络,我们只需要计算其收缩的结果就是整个张量网络的结果。
-
我们考虑无穷大系统且使用 one-site DMRG 算法,MPS满足中心正交形式,如下图所示
绿色的为中心张量,蓝色的圆形为中心张量通过 QR 或 SVD 分解得到的左右正交张量,如下所示由于张量网络中每个张量都相同,我们定义左右转移哈密顿量如下所示:
在中心张量左边的所有张量都是相等的,中心张量右边所有的张量也是相等的,我们可以用左转移哈密顿量的最大左本征态代替所有的左转移哈密顿量,用右转移哈密顿量的最大右本征态代替所有的右转移哈密顿量,用图形表示为:
经过简化后,整个张量网络的收缩变成如下形式:其中的中间三个张量被称为有效哈密顿量,如下图所示,中心张量就是该有效哈密顿量的本征态。
通过上面两步简化,一个大的张量网络的收缩被简化为上面的五个张量构成的整体,其收缩很好计算。在上面表示的张量网络中,我们需要求解的有中心张量、左右正交张量和左右环境张量。可以通过下面的自洽方法迭代求解这几个张量。
- 构造有效哈密顿量。在初始计算时,我们可以随机初始化该哈密顿量。
- 求解有效哈密顿量的本征态,该本征态就是中心张量。求解本征态的过程是一个本征方程。
- 对中心进行 QR 或 SVD 分解,得到左右正交张量。
- 用左右正交张量构造左右转移哈密顿量。
- 分别通过左右转移哈密顿量用本征方程计算左右本征态。这里又得到一组本征方程求解问题。
- 利用计算得到的左右本征态(左右环境张量)更新有效哈密顿量,回到第一步。之后循环进行上述步骤,直到第二步和第五步的两组特征方程达到自洽,我们就可以计算张量网络的收缩结果。
上述整个步骤可以用图形表示如下:
通过上面的循环,我们可以看出,局域自洽求解不需要对整个张量网络进行收缩,只需要将问题转换为循环求解两个自洽方程即可。在上面的第二步和第五步中有两组特征方程,每组特征方程的定义都相互依赖,用第一组特征方程的解定义第二组特征方程,用第二组特征方程的解又定义第一组特征方程,所以这两个本征问题是自洽的,通过这两组本征问题自洽求解张量网络。
iTEBD 的局域自洽求解
在 TEBD 中,我们通过将每一层的张量收缩到底层 MPS 中来求解整个张量网络,没收缩一层,我们需要对辅助指标进行裁剪以保证辅助指标的维数不会过大。我们可以用图形表示 iTEBD 算法为:
我们也重新审视 iTEBD 中对局域张量的收缩和裁剪操作,在 iTEBD 中,收缩张量与 MPS 中张量的共有指标后,其裁剪过程而可以通过引入一对 isometric 张量来表示,对局域张量的计算过程我们可以用图形表示如下:
下面的黄色三阶张量为 MPS 态中的张量,上面的讨论我们知道,如果将 MPO 作用到基态上,当 MPS 基态收敛时,作用的结果仍然是基态 MPS ,所以我们将上面三个张量视为一个作用在基态上的哈密顿量,被称为 转移哈密顿量,如下图所示,所以裁剪张量和不等价张量构成的哈密顿量的本征态构成了收敛时 iTEBD 中收敛的 MPS 态的不等价张量,纠结该哈密顿量的本征态构成了 iTEBD 中的本征态问题。
用于裁剪的 isometric 张量可以通过定义转移矩阵的本征态,通过对本征态进行 SVD 分解得到。
iDMRG 与 iTEBD 可以放到同一个框架:当利用 iTEBD 收缩竖直方向指标来计算张量网络收缩时,其等效为同时在水平方向上进行 iDMRG 计算,也就是 iTEBD 计算得到的是水平方向一行张量构成的 MPO 的基态,对应于 iDMRG 计算得到的是竖直方向一列张量构成的 MPO 的基态,也就是在利用 iTEBD 计算水平方向的 MPO 的基态时,该计算等价于利用 iDMRG 在竖直方向计算了一列张量构成的 MPO 的基态。也就是使用一种方式进行迭代时,等价于利用另一种方式进行迭代。根据本征态满足的方程,二者都解决了TN的收缩问题。
整个 iTEBD 的自洽计算流程中每一步计算与 iDMRG 中每一步的对应关系如下:
iDMRG 的自洽计算流程与 iTEBD 每一步的对应关系如下:
2. 张量网络的梯度更新
在前面所介绍的所有方法中,我们将想要解决的问题都等价为了张量网络的收缩问题,如 iTEBD 与 iDMRG 算法将基态的计算化成了张量网络的收缩计算,而 MPS 被用作为了计算张量网络收缩的工具,即一行张量构成的 MPO 的近似本征态。
实际上,张量网络的收缩问题与变分(极值)问题有一定的等价性,那么我们就可以使用 基于梯度的最速下降法 进行张量网络收缩的求解,这种方法在张量网络机器学习领域是一种常见的方法。
以使用 MPS 态求解基态为例,我们需要解决的极值问题如下,也就是在 MPS 归一化的条件下极小化能量。
该问题可以利用梯度更新法转化为求解能量关于局域张量的梯度,有了梯度之后,我们就可以使用每个张量的梯度更新每一个张量,也就是基于梯度的最速下降法。假设 MPS 中每一个张量相互独立,其具体步骤为:
-
计算能量关于每个基态张量的微分,其微分的结果就是将被求微分的张量从张量网络中去除,微分得到的张量和被微分的张量同阶同维。该过程可以表示如下:
-
记上一步求得的梯度为 ,我们用该梯度来更新该张量,将该张量做如下更新:
其中 为上一步求得的梯度, 为更新步长(学习率)。也就是在每次更新张量时,整个表达式的能量减少 ,循环更新使整个张量网络表示的能量达到最小。
实际上,对于任意闭合张量网络(无开放指标),其关于某张量的导数,等于将该张量从张量网络中移除之后所得的张量网络。代表导数的张量网络的开放指标即为被求导张量的指标,故计算导数张量网络的收缩后得到的张量与被求导张量同阶同维,所以,张量网络导数的计算,仍然使张量网络的收缩计算。
3. 任意有限尺寸张量网络收缩算法
对于上面我们讨论的各种算法,我们进行计算的张量网络的收缩时对张量网络的几何结构都有一定的要求,例如需要一维链,正方形格子,三角格子形等等。并且,不同几何的张量网络对应的重整化群方程,也就是进行张量分解和张量收缩时的方程往往不同,这需要针对不同的张量网络编写相应的程序来实现张量网络收缩计算。
这里我们介绍一种计算任意形状的张量网络收缩的算法。以下图的张量网络为例,
其收缩的主要步骤为:
-
为张量编号,并重新绘制成圈状网络,张量网络由节点及其之间的连接定义,网络的具体形状不影响张量网络的定义,圈状网络和原张量网络是等价的。
-
收缩掉仅有最近邻连接的张量,例如上图中编号为 2 与 4 的张量。该收缩不会增加仍和指标的维数,收缩方法不是唯一的。收缩之后张量的总个数减小。
-
检查是否还有仅有最近邻连接的张量,例如张量 2 和 3 ,将这些最邻近连接的张量都收缩掉。
-
若没有仅有最近邻连接的张量,则进行交换操作,交换的目的是减小非最近邻连接的距离。如上图中交换张量 4 与张量 5。交换的方法为:将两个最近邻连接收缩后,使用 SVD 再重新分解成两个张量。在SVD过程中,分解得到的新指标维数会增大,如果其大于预先设置的裁剪维数,则进行维数裁剪。
-
若交换操作后未出现仅有最近邻连接的张量,则继续进行交换操作;若出现仅有最近邻连接的张量,则回到第二步;若仅剩下两个张量,则直接进行收缩完成全部计算。
在交换操作过程中会进入近似,因此我们需要尽量降低交换操作的次数。如果在交换操作过程中,出现了仅含有有最近邻连接的张量,可以在 SVD 前先进行收缩。