TT分解和矩阵乘积态一、Tensor-train分解(TT分解)1. 定义2. TT低秩近似二、矩阵乘积态(MPS)1. 定义2. 矩阵乘积态与量子纠缠3. 矩阵乘积态的规范自由度与正交形式
我是一只正在不断学习、希望早日成为小白的小小白,有什么错误欢迎大家批评指正,喜欢的请点个赞哦!
一、Tensor-train分解(TT分解)
1. 定义
给定N阶张量,将其分解成N个二阶或三阶张量的缩并形式:
TS1S2…SN=a1a2…aN−1∑AS1a1(1)AS2a1a2(2)…ASN−1aN−2aN−1(N−1)ASN(N)=AS1:(1)AS2:⋯(2)…ASN−1::(N−1)ASN:(N)T
其中,
{an}被称为几何或辅助指标,
{sn}被称为开放或物理指标。
tensor-train直译过来就是张量火车,正如下图我们所看到的那样,一个大的张量被分解成了一个个小张量缩并的形式,就像我们平时所看到的一节节火车的车厢,所以不得不说前人还是很富有想象力的。为了方便,在后面的学习中我们会把Tensor-train分解简称为TT分解。
TT分解可以通过N-1次奇异值分解实现。先把第一个指标看成一个指标,后面三个指标看成一个大指标,这样子就得到一个二阶张量(矩阵),将其进行奇异值分解,左边就是奇异值分解后得到的
U,右边就是
ΛV†。同理对右边的张量按照上述方法继续进行奇异值分解……例如四阶张量的TT分解,如下图:
经过N-1次奇异值分解,一个N阶的张量就被分解成了N个小张量。但是严格的TT分解不能解决指数墙的问题,辅助指标会随着奇异值分解的次数呈指数增长。那么这个时候怎么解决这个问题呢?可以先思考下,答案后面揭晓。
2. TT低秩近似
TT秩的定义
每一次进行奇异值分解所得到的非0奇异值的个数(辅助指标的维数),因为N阶张量要进行N-1次奇异值分解,所以一个N阶张量的TT秩包含N-1个数。
TT低秩近似
令辅助指标有一个上限,辅助指标的上限
χ 称为截断维数或裁剪维数:
{dim(an)≤χ}min∣Ts1s2…sN−a1a1…aN−1∑As1a1(1)As2(2)a1a2⋯AsN−1aN−2aN−1(N−1)ASNaN−1(N)
获得TT秩近似最简单的算法之一就是每次进行奇异值分解后将多于截断维数的奇异值和对应的奇异向量进行裁剪,将辅助指标的维数裁剪为
χ ,简而言之就是在进行TT分解时不断利用奇异值分解的低秩近似,是不是超级容易就解决了一个问题。
随机生成10×10×10×10的张量进行不同截断维数的TT低秩近似的误差(下图为
χ 取30到60)
附上代码,没事可以自己去试试,感觉有点神奇呢!(看我这没见过世面的样子U•ェ•U):
import numpy as np
import BasicFun as bf
import matplotlib.pyplot as plt# 考虑(2, 2, 2, 2, 2, 2, 2, 2, 2, 2)的8阶张量,进行无裁剪TT分解,查看分解后辅助指标的维数
x = np.random.randn(2, 2, 2, 2, 2, 2, 2, 2, 2, 2)
tensors = bf.ttd(x)[0]
# 读取辅助指标维数
a_dims = list()
for x in tensors[:-1]:
a_dims.append(x.shape[-1])
print('The ancillary dimensions of the TT form = ')
print(a_dims)# 考虑(10, 10, 10, 10)的张量,计算不同截断维数下的误差
y = np.random.randn(10, 10, 10,10)
err = list()
z0 = np.linalg.norm(y)
for chi in range(30, 61,1):
tensors = bf.ttd(y, chi)[0]
y1 = bf.tt_product(tensors)
err.append(np.linalg.norm(y - y1) / z0)
print('\nThe error with different dimension cut-off = ')
print(err)
plt.plot(np.arange(30, 61,1), err, marker='x')
plt.xlabel(r'dimension cut-off $\chi$')
plt.ylabel('relative error')
plt.show()
二、矩阵乘积态(MPS)
1. 定义一般而言,矩阵乘积态(MPS)定义为系数矩阵满足TT形式的量子态:
∣φ⟩=s1s2…sN∑φs1s2…sN⊗n=1∏N∣sn⟩
在不引起误解的情况下矩阵乘积态也可以直接理解为系数矩阵:φs1s2…sN=a1a1…aN−1∑As1a1(1)As2a1a2(2)…AsN−1aN−2aN−1(N−1)ASNaN−1(N)=As1:(1)AS2:⋯(2)…ASN−1:(N−1)ASN:(N)T
矩阵乘积态的两种边界条件分别为开发边界条件(OBC)和周期边界条件(PBC),如下图:
在TT分解中,量子态参数个数随N指数增加,满足:#(∣φ⟩)∼O(dN)
在MPS中,给定辅助指标截断维数为 ,则MPS包含参数的个数随N线性增加,满足:#(MPS)∼O(Ndχ2)
对于MPS分解,我们并不需要知道指数复杂的量子系数是什么,也不需要进行TT分解,而是直接假设基态具备MPS的形式,直接处理MPS中的局部张量,从而绕开指数墙的问题,但是这样子会引入误差。并且,在求基态时我们是在并不知道基态是什么的情况下直接假设基态是具有给定截断维数的MPS态,因此我们并不能确定这样的MPS态可以有效的描述基态。我们可以从奇异谱入手定义刻画MPS的有效性,而MPS态对应的奇异谱刚好就是量子态的量子纠缠谱,由此引入量子纠缠。有没有很懵,don’t worry,继续往下看!
2. 矩阵乘积态与量子纠缠
斯密特分解与纠缠谱:给定N自旋的量子态
∣φ⟩=∑s1s2⋯sNφs1s2⋯sN⊗n=1∏N∣sn⟩
将自旋分成两部分:
{sn}=(s1,s2,⋯,sK)∪(sK+1,⋯,sN)
两部分不能为空,将前面一部分看成一个指标,后面一部分看成一个指标,这样就得到一个二阶张量(矩阵),对矩阵的系数进行奇异值分解:
φs1s2⋯sN=a=0∑D−1Us1s2⋯sK,aΛaVsK+1⋯sN,a∗
对系数进行奇异值分解对应于对量子态做分解:
∣φ⟩=a=0∑D−1Λa∣Ua⟩∣Va⟩
∣Ua⟩∣Va⟩之间进行直积,
Λa可看成权重系数。该分解被称为量子态的斯密特分解,量子态的斯密特分解对应于系数矩阵的奇异值分解,
Λ称为量子态的纠缠谱。其中
∣Ua⟩∣Va⟩为D个量子态,满足:
∣Ua⟩=s1s2⋯sK∑D−1Us1s2⋯sK,a⊗n=1∏K∣sn⟩
∣Va⟩=s1s2⋯sK∑D−1V∗sK+1⋯sN,a⊗n=1∏K∣sn⟩
由于
⟨φ∣φ⟩=1,∣φ⟩=a=0∑D−1Λa∣Ua⟩∣Va⟩
所以
⟨φ∣φ⟩=a=0∑D−1Λa2⟨Va∣⟨Ua∣Ua⟩∣Va⟩=a=0∑D−1Λa2=1
定义
∣φ⟩被投影到
∣Ua⟩∣Va⟩态的概率满足
Pa=Λa2(量子力学的基本假设),显然概率满足归一化条件
∑aPa=1
根据概率论香农熵的定义:
ES=−Pa∑alnPa
根据该公式定义量子态的纠缠熵:
S=−a=0∑D−1Λa2lnΛa2
因为香农熵是刻画信息量的大小,类推到量子态,那么量子态的纠缠熵就是刻画量子信息量的大小。把量子态二分为A体系和B体系,A、B体系在进行给定基底下的概率测量得到的信息熵就是这两个体系在该二分下的纠缠熵。
奇异值分解中
φs1s2⋯sN=a=0∑D−1Us1s2⋯sK,aΛaVsK+1⋯sN,a∗
UV满足正交性:
U†U=s1…SK∑Us1…SK,α∗US1…SK,α′=I
V†V=s1…SK∑Vs1…SK,α∗VS1…SKα′=I
由上述性质可计算开放边界MPS的纠缠,设MPS态满足:
φs1s2…sN=a1a1…aN−1∑As1a1(1)…AsKaK−1aK(K)ΛaK(K)AsK+1aKaK+1(K+1)…ASNaN−1(N)
当如下左/右正交条件满足时,
ΛK为MPS给出的前K个自旋与其余自旋之间的纠缠:
a.
∑s1As1a1(1)As1a1(1)∗=Ia1a1
b.∑snan−1Asnan−1an(n)Asnan−1an(n)∗=Ianan(1<n<K)
c.∑sNAsNaN−1(N)ASNaN−1(N)∗=IaN−1aN−1
d.∑snan+1Asnan−1an(n)Asnan−1an(n)∗=Ian−1an−1(K<n<N)
e.Λ0(K)≥Λ1(K)≥⋯≥0
前面K个tensor收缩构成SVD分解中的U,后面的tensor收缩构成SVD分解中的V,称为MPS的中心正交形式,也称为SVD形式。例如长度为4的MPS,箭头表示正交条件的方向:
MPS的中心正交形式在后面的学习中会经常涉及,且与SVD分解紧密联系在一起,所以这个要好好进行理解消化( o=^•ェ•)o!3. 矩阵乘积态的规范自由度与正交形式
计算MPS的斯密特分解可将MPS变成SVD形式,但是其所表示的量子态不能改变。改变MPS中的tensor但不改变其所表示的量子态,被称为规范变换也就是物理量不改变、数学形式改变的变化。进一步定义MPS的规范自由度:对于同一个量子态,可由多组由不同张量组成的MPS态来表示其系数。
已知MPS满足:
φS1S2…SN=AS1:(1)…ASn:(n)ASn+1:⋯(n+1)…ASN:(N)T
引入任意可逆矩阵
U及其逆矩阵
U−1,定义:
Bsn(n)=Asn::(n)U,Bsn(n+1)=U−1Asn::(n+1)
得到同一个量子态的两种MPS表示:
φs1s2…sN=As1(1)…Asn::(n)Asn+1:⋯(n+1)…AsN:(N)T=As1:(1)…Bsn:(n)Bsn+1!(n+1)…ASN:(N)T
公式总是没有图来得直观,下面我们用下图来进行进一步理解。MPS规范变换可以在任何一个或多个辅助指标上插入一个单位阵,也就是任何可逆矩阵及其逆矩阵的乘积。我们都知道任何矩阵乘单位阵都等于自己本身,所以在任何一个或多个辅助指标上插入一个单位阵都不会改变量子态。将变换矩阵作用到各张量{
A(n)}上,就能得到新张量{
B(n)}
在这种情况下,我们插入不同维数的单位矩阵就会得到不同的新张量{B(n)},这个时候,我们可以通过引入新的约束条件,固定MPS的规范自由度,使得给定量子态具备唯一的MPS表示。
例如MPS的中心正交形式,如下图所示。当张量{
A(n)}(n<k)满足左正交条件,{
A(n)}(n>k)满足右正交条件,中间的tensor满足归一条件,此时MPS被称为具有
K-中心正交形式。可通过多次的SVD分解进行规范变换从
K-中心正交形式变换成K‘-中心正交形式(
K=K′),这个过程值得细细思考品味。
给定任意一个矩阵乘积态,求量子纠缠谱(Λ(K)):
(1) 把该矩阵乘积态变成K-中心正交形式;
(2) 对K-中心正交形式的中心tensor做奇异值分解。基于K-中心正交形式,可对MPS辅助指标维数进行最优裁剪,裁剪方法为:
(1) 进行中心正交化,将正交中心放置于第K个张量;
(2) 对中心张量进行奇异值分解AsKaK−1aK(K)=∑β=0χ−1UsKaK−1βΛβ(K)VaKβ
仅保留前
χ个奇异值及对应的奇异值向量,其中
χ为截断维数;
(3) 将第K个张量更新为U→A(K);
(4) 将第(K+1)个张量更新为∑aKΛβ(K)VaKβAsK+1aKaK+1(K+1)→AsK+1βaK+1(K+1)
通过不断移动正交中心的位置来实现MPS辅助指标的最优裁剪。
MPS的正则形式:给定量子态
∣φ⟩=∑s1s2⋯sNφs1s2⋯sN⊗n=1∏N∣sn⟩
其系数满足:
φS1S2…SN=AS1:(1)Λ(1)AS2:Λ(2)Λ(2)…Λ(N−2)ASN−1:Λ(N−1)Λ(N−1)ASN:(N)T
Λ(n)是当前位置下进行二分得到的纠缠谱,满足:
a.
∑s1As1a1(1)As1a1(1)∗=Ia1a1
b.∑snan−1Λan−1an−1(n−1)Asnan−1an(n)Λan−1an−1(n−1)Asnan−1an(n)∗=Ianan
c.∑snanAsnan−1an(n)Λanan(n)Asnan−1an(n)∗Λanan(n)=Ian−1an−1(1<n<K)
d.∑SNASN(N)aN−1ASNa′N−1(N)∗=IaN−1aP−1
有没有觉很很神奇,神奇的事情还在后面,我们下期见!
我是一只正在不断学习、希望早日成为小白的小小白,有什么错误欢迎大家批评指正,喜欢的请点个赞哦!
原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说
免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。
您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 张量网络基础算法(四、TT分解和矩阵乘积态)
关注我们小说电影免费看关注我们,获取更多的全网素材资源,有趣有料!120000+人已关注
评论抢沙发