1.背景
我们考虑一种特殊的张量网络收缩计算,即由无穷多个张量构成的闭合张量网络,且所有张量都相等。记该类张量网络为
Z
=
t
T
r
(
[
T
]
∞
)
Z = tTr([T] ^∞ )
Z=tTr([T]∞)
T
T
T被称为构成该张量网络的不等价(inequivalent)张量。
该类张量网络由两个因素完全确定:不等价张量与网络几何结构。
下面,我们以定义在无穷大正方格子上的张量网络为例,其示意图如下,显然,严格收缩该张量网络的计算复杂度会随着收缩的进行指数上升,刚好对应张量网络态的二维的面积定律。
d
i
m
∼
O
(
D
L
)
(
L
为
边
界
指
标
个
数
)
dim\sim O(D^L)(L为边界指标个数)
dim∼O(DL)(L为边界指标个数)
注:如果收缩一部分几何指标,例如图中黄色阴影部分内的指标,则会得到一个高阶张量,其指标为边界处的几何指标(红色)。易得,该张量的维数会随着边界处指标个数指数上升
2.张量重整化群(TRG)算法
由上可知,我们需要发展算法,引入合理的近似,将计算复杂度控制到多项式级,下面,我们介绍张量重整化群(tensor renormalization group,TRG)算法,设第0步时
T
(
0
)
=
T
T^{(0)} = T
T(0)=T,计算步骤如下:
步骤1:在第t次循环中,利用SVD对不等价张量做如下两种不同的分解
T
[
s
1
s
2
]
[
s
3
s
4
]
(
t
)
≅
∑
s
′
=
0
χ
−
1
U
[
s
1
s
2
]
s
′
V
[
s
3
s
4
]
s
′
T_{\left[s_{1} s_{2}\right]\left[s_{3} s_{4}\right]}^{(t)} \cong \sum_{s^{\prime}=0}^{\chi-1} U_{\left[s_{1} s_{2}\right] s^{\prime}} V_{\left[s_{3} s_{4}\right] s^{\prime}}
T[s1s2][s3s4](t)≅s′=0∑χ−1U[s1s2]s′V[s3s4]s′
T
[
s
4
s
1
]
[
s
2
s
3
]
(
t
)
≅
∑
s
′
′
=
0
χ
−
1
P
[
s
1
s
4
]
s
′
′
Q
[
s
2
s
3
]
s
′
′
T_{\left[s_{4} s_{1}\right]\left[s_{2} s_{3}\right]}^{(t)} \cong \sum_{s^{\prime \prime}=0}^{\chi-1} P_{\left[s_{1} s_{4}\right] s^{\prime\prime}} Q_{\left[s_{2} s_{3}\right] s^{\prime\prime}}
T[s4s1][s2s3](t)≅s′′=0∑χ−1P[s1s4]s′′Q[s2s3]s′′如图所示:
其中,当SVD中求和的维数(即被分解矩阵的秩)大于截断维数χ时,则仅保留前χ个最大的奇异值及对应的奇异向量(注:
T
(
t
)
=
T
T^{(t)} = T
T(t)=T)
经过步骤1,张量网络被变换为如有图所示的形式:
步骤2:计算如下收缩(虚框所示)
T
s
1
′
s
2
′
s
3
′
s
4
′
′
(
t
)
=
∑
s
1
s
2
s
3
s
4
V
s
3
s
4
s
1
′
Q
s
2
s
3
s
2
′
U
s
1
s
2
s
3
′
P
s
1
s
4
s
4
′
T^{'(t)}_{s^{'}_1s^{'}_2s^{'}_3s^{'}_4} = \sum_{s_1s_2s_3s_4}V_{s_3s_4s^{'}_1}Q_{s_2s_3s^{'}_2}U_{s_1s_2s^{'}_3}P_{s_1s_4s^{'}_4}
Ts1′s2′s3′s4′′(t)=s1s2s3s4∑Vs3s4s1′Qs2s3s2′Us1s2s3′Ps1s4s4′收缩完后原张量网络变为如下图所示:
步骤3:归一化张量
C
(
t
)
=
∣
T
s
1
′
s
2
′
s
3
′
s
4
′
′
(
t
)
∣
C^{(t)} = |T^{'(t)}_{s^{'}_1s^{'}_2s^{'}_3s^{'}_4}|
C(t)=∣Ts1′s2′s3′s4′′(t)∣
T
s
1
′
s
2
′
s
3
′
s
4
′
(
t
+
1
)
=
T
s
1
′
s
2
′
s
3
′
s
4
′
′
(
t
)
/
C
(
t
)
T^{(t+1)}_{s^{'}_1s^{'}_2s^{'}_3s^{'}_4} = T^{'(t)}_{s^{'}_1s^{'}_2s^{'}_3s^{'}_4}/C^{(t)}
Ts1′s2′s3′s4′(t+1)=Ts1′s2′s3′s4′′(t)/C(t)归一化的目的:防止张量元的数值发散
步骤3后,张量网络变回正方格子网络tTr
(
[
T
(
t
+
1
)
]
∞
/
2
t
)
\left(\left[T^{(t+1)}\right]^{\infty / 2^{t}}\right)
([T(t+1)]∞/2t),张量总个数为最初的
1
2
t
\frac{1}{2^t}
2t1倍。
C
(
t
)
C^{(t)}
C(t) 被称为重整化因子。
步骤4:检查不等价张量是否收敛,如果未达到收敛阈值,则返回步骤1;如果收敛,计算张量网络收缩结果:
Z
=
∏
t
=
1
t
~
[
C
(
t
)
]
N
2
t
=
∏
t
=
1
t
~
[
C
(
t
)
]
2
(
t
~
−
t
)
Z=\prod_{t=1}^{\tilde{t}}\left[C^{(t)}\right]^{\frac{N}{2^{t}}}=\prod_{t=1}^{\tilde{t}}\left[C^{(t)}\right]^{2^{(\tilde{t}-t)}}
Z=t=1∏t~[C(t)]2tN=t=1∏t~[C(t)]2(t~−t)其中,
N
N
N为收敛时张量网络中每个张量等效代表的原张量
T
(
0
)
T^{(0)}
T(0) 的个数,满足
N
=
2
t
~
N = 2^{\tilde{t}}
N=2t~,
t
~
\tilde{t}
t~为收敛时的迭代次数。这是由于每进行一步迭代,张量网络中张量的个数减小一半,相当于收缩之后的每个张量等效地代表收缩之前的两个张量。
注意:上式中
Z
Z
Z是难以计算的,其取值取决于收敛次数,这显然不是一个被良好定义的量。于是我们定义张量网络平均自由能:
F
=
−
ln
Z
N
=
ln
[
∏
t
=
1
t
~
[
C
(
t
)
]
2
(
t
~
−
t
)
2
t
~
]
=
−
∑
t
=
1
t
~
2
−
t
ln
C
(
t
)
F=-\frac{\ln Z}{N}=\ln \left[\frac{\prod_{t=1}^{\tilde{t}}\left[C^{(t)}\right]^{2^{(\tilde{t}-t)}}}{2^{\tilde{t}}}\right]=-\sum_{t=1}^{\tilde{t}} 2^{-t} \ln C^{(t)}
F=−NlnZ=ln⎣⎡2t~∏t=1t~[C(t)]2(t~−t)⎦⎤=−t=1∑t~2−tlnC(t)
显然,重整化因子
C
(
t
)
C^{(t)}
C(t)为有限大小的正实数,则由于因子
2
−
t
2^{-t}
2−t,求和项随
t
t
t指数减小。
当
t
t
t足够大时,
F
F
F收敛,且收敛的
F
F
F与迭代次数
t
~
\tilde{t}
t~无关。
当张量网络代表Ising模型配分函数时,根据热力学公式,在倒温度𝜷下的模型的平均格点自由能满足:
f
(
β
)
=
−
ln
Z
N
β
=
F
β
f(\beta)=-\frac{\ln Z}{N \beta}=\frac{F}{\beta}
f(β)=−NβlnZ=βF
3.总结
TRG算法并不是严格地计算了张量网络的收缩。在步骤1中,设张量
T
(
t
)
T^{(t)}
T(t)的维数为
D
×
D
×
D
×
D
D\times D\times D\times D
D×D×D×D,如果进行严格的奇异值分解,则分解出的新指标(奇异谱维数)为
D
2
D^2
D2,即张量
T
(
t
+
1
)
T^{(t+1)}
T(t+1) 的维数为
D
2
×
D
2
×
D
2
×
D
2
D^2\times D^2\times D^2\times D^2
D2×D2×D2×D2 。
可以看出,如果每次迭代都进行严格的奇异值分解,则不等价张量的指标维数会随着迭代次数指数上升。
TRG中,如果奇异值分解出的指标维数大于截断维数 χ ,则进行维数裁剪,保留前χ个奇异谱与对应的奇异向量。
该近似中的误差,对于被分解的不等价张量是极小化的(
T
[
s
1
s
2
]
[
s
3
s
4
]
(
t
)
T_{\left[s_{1} s_{2}\right]\left[s_{3} s_{4}\right]}^{(t)}
T[s1s2][s3s4](t)和
T
s
1
′
s
2
′
s
3
′
s
4
′
′
(
t
)
T^{'(t)}_{s^{'}_1s^{'}_2s^{'}_3s^{'}_4}
Ts1′s2′s3′s4′′(t)的最优低秩近似),因此,
T
(
t
)
T^{(t)}
T(t)被称为裁剪环境。
因此,TRG的裁剪环境是局域的,即对整个张量网络而言裁剪并不是最优的,这也是限制TRG精度的主要因素。