历时半个多月,我们终于从刚开始的张量学习 ,到现在的张量网络,本人真的是一路艰辛,哎 ,打油诗一首表心意:

本是计科专业狗,年少无知四顾首。
无奈量子吸引我,前路茫茫无处走。
早知人生本就难,科研门前抖一抖。
陷入深渊尚未知,乐此不疲直挥手。
半路出家尝滋味,心理防线已失守。
老板教诲不敢忘,硬着头皮往前走。
其中滋味难传达,卿知否?卿知否?
前路迢迢虽泥泞,组内都是好盆友。
光阴不可再虚度,忆往事痛心疾首!
下定决心埋头干,吾定要大显身手!
祖国崛起志士缺,天下英雄谁敌手?
夜半三更睡不着,写首诗精神抖擞。

Tensor network learning

  • 一 . 张量网络的基本表示方法
  • 二 .张量网络初体验
  • 三 . 深化理解与量子过渡

一 . 张量网络的基本表示方法

我们前面曾经简单的为大家介绍过用圆形点和线结合的方式来表示不同维度的张量!这里我们继续深入了解:


除此之外,您还需要知道:

示意图 目的 结果公式
一阶张量的内积
矩阵与张量的乘积
二阶张量 求迹
四阶张量 求偏迹 对其中的某一个部分求迹

还记得我们在前面刚开始学张量的缩并的时候说过:矩阵的乘法就是张量的缩并,我们先来看看传统的矩阵乘积算法:

我们用新的张量(矩阵)表示法看如下图所示:

注意,具有相同索引 j j j 的边是缩并的边,这与两个矩阵只有在输入/输出维度匹配时才能相乘,同时结果图片有两个自由索引,即 i 和 k,他们又组成了一个新的矩阵。后面有一系列非常好的动态图片帮助大家理解,此时 j = k j=k j=k:
同样的,对于高阶张量的缩并我们也可以利用矩阵乘法的原理类比一下:

回过头来,这些都比较低维的张量表示,那么对于更高维的张量来说,新方法是否还能巧妙地表示呢?本期就是图片大赏~~

上面这幅图分别展示了4阶,5阶和6阶张量,每个张量中与点相连的线都代表了它的一个阶数,这里有个圆圈把点给圈住是啥意思呢?

圈内有线,圈外也有线,这就有讲究了!比如第一个四阶张量,直接与 “点” 相连的有三个 ,说明这个四阶张量是由三阶张量排成一排组成的,显然五阶张量是三阶张量排成一个矩阵的形式,那么圈外面就要有两条线了!

我们同样也可以用平面图来表示不同维数的张量,有了上面的基础,大家对下面的这幅图应该能有所体会了:

图片后面的英文也是解释的一部分,英文水平的高低将直接影响你科研的速度和效率!

现在我们再来看看张量的其他几种基本运算方法的图示 ,是动态图片,不动的鼠标放在上面点一下

(1)如果是矩阵乘以向量,这里的 j = k j=k j=k:

(2) H a d a m a r d Hadamard Hadamard 积:

H a d a m a r d Hadamard Hadamard 积就是两个大小相同的张量对应元素数字直接相乘就可了,得到的新张量维数和阶数都不变!

(3)两个向量的外积:

后面张量网络中常用的就是这几个 ,如果缺了某个知识点,我们到时候再补上。

为何张量网络如此好用?

张量是多维数组,按照阶数分类:例如普通数是零阶张量(也被称为标量),向量是一阶张量,矩阵是二阶张量,以此类推…… 虽然低阶张量可以简单地使用数组或者 T i j k l m ⋯ T_{ijklm\cdots} Tijklm⋯​(其中角标的数目代表张量的阶数)这样的数学符号来表示,但如果我们要处理高阶张量,这种符号表示法就会很繁琐。

在这种情况下使用图解表示法(diagrammatic notation)是更好的选择。只需要画一个圆(其他形状也行)和由此延伸出去的若干条线,或称之为腿,而腿的数量表示张量的阶数。在这种符号体系中,标量是一个圆,向量有一条腿,矩阵有两条腿,以此类推…… 张量的每一条腿也有维度,就是腿的长度。例如,代表物体在空间中速度的向量就是三维一阶张量。

二 .张量网络初体验

将多个张量(包含向量、矩阵、高阶张量)按照特定规则缩并,形成一个网络,称为张量网络


许多个不同的张量通过缩并形成一个像蜘蛛网一样的示意图!

其中:连接维度(bond dimension)决定张量网络中组成张量的大小。连接维度越大说明张量网络越强大,但同时也需要更多的计算资源

在真正深入学习张量网络之前,我们需要明白一个道理,张量网络的图 包括前面我们说的新方法表示不同阶数的张量都不是一成不变的,他们都是具有灵活性的,比如这个中国的原点表示矩阵的线性变换关系,那么这个矩阵的转置又怎么表示呢,所以此时一味的用圆形表示就不合理了!


类似于这样,我们通过半圆的“方向”就很好的解决了这个问题。以此类推,对称矩阵转置不发生变化又该怎么表示呢?
这就有内味了!

前面我们说张量网络是将许多小的缩并在一起形成大的网络,但是有增就有减,也可以将大的张量网络或者是某一个张量分解成几个小张量,这就自然而然的让我们想到了前几期博客的 非负矩阵分解(NMF)和 奇异值分解(SVD)了:
大家可以按照前面说的将这些不同形状的矩阵对号入座! 总结一下就是:矩阵分解是将一个节点分解为多个节点;矩阵乘法是将多个节点融合为一个节点。,也可以用下面这个图来表示:


看似普通的图其实还蕴藏了这些图的另一个重要的特点:节点的空间位置,颜色都是不重要的唯一重要的是:图有两个自由边。矩阵的乘积是另一个矩阵

下面我们来看看张量网络示意图来表示我们前面说的CP分解和Trucker 分解:

显然是一个四阶张量,右边的图表示的4个向量的外积(都在一个大圆圈内表示四个所有向量的外积),最后再求和就出来了,这个四阶张量的CP我们一般用不动,有些小伙伴看这个可能有点陌生,我们来看看个熟悉的:


上期博客也曾简单介绍过,第一个是CP分解,第二个是Tucker分解,区别就是核张量是否为对角矩阵,这里就不再赘述了!

除此之外,张量网络的方便简洁还体现在如下:

我们以典范矩阵化为例来对比一下传统的图示法和新张量网络示意图来对比一下:

右侧可以看到张量网络的表达非常简单也很有效. 3个点代表了中间还有很多按序排列的维的意思。

三 . 深化理解与量子过渡

细心的小伙伴可能发现了,我们上面的所有图片,基本上都是直线和点组成的,是不是只有直线呢?显然是不止的,下面我们一边介绍的张量曲线表示,一边向量子系统和MPS 矩阵乘积态做铺垫!

在量子力学中,我们通常把张量看做是一个具有索引的以数字为元素的数组:

和上面的图像表示有略微的区别,但是大体不变:(a)中是在空间 H i \mathcal{H_{i}} Hi​ 中的张量 ψ i \psi_{i} ψi​ ,那么三阶张量 T j k i T_{jk}^{i} Tjki​ 所在空间为三者的直积,如下:
H i ⊗ H j ⊗ H k \mathcal{H}^{i} \otimes \mathcal{H}_{j} \otimes \mathcal{H}_{k} Hi⊗Hj​⊗Hk​

这里有三个特殊的张量来代表我们原来学过的那个 Kronecker 函数( δ i j = 1 − ( i − j ) 2 \delta_{i j}=1-(i-j)^{2} δij​=1−(i−j)2)

这三个图从做左到右分别对应下图的从上到下三个公式:

学习了前面公式的小伙伴们这几个公式应该是不难理解的!后面的张量网络中我们会遇到这几个图形。

从图表上看,两个张量指数的收缩相当于用一根导线连接这些指数,对于给定的张量 T j k i , A n l T_{j k}^{i}, A_{n}^{l} Tjki​,Anl​和 B m q B_{m}^{q} Bmq​ ,我们在张量中乘以 δ l j δ q k \delta_{l}^{j} \delta_{q}^{k} δlj​δqk​ ,形成一个收缩:

T j k i A n j B m k = def  Γ n m i T_{j k}^{i} A_{n}^{j} B_{m}^{k} \stackrel{\text { def }}{=} \Gamma_{n m}^{i} Tjki​Anj​Bmk​= def Γnmi​
这里右边出现了一个新的式子(其实可以不看这个 原理与我们之前将的缩并一样,在量子系统中我们得这样表示):

下面我们再来看看张量里面的迹:

和前面一样,左边的(a)表示的是一个二阶张量的迹,(b)表示的是一个四阶张量,但是只有二阶张量有 “迹” 这个说法,我们把它拆成两个二阶张量的迹,所以中间图示表示的是 B i q i q B_{i q}^{i q} Biqiq​ 的迹,最右边那个高阶张量中某一小部分的迹,我们称之为“偏迹” ,前面表格中也有!

当两个或更多不相连的张量出现在同一个图中,它们用张量积相乘,在量子系统中,还是用 ⊗ 来表示张量积,图示化如下,图示中的张量积符号就省略了:

上面的图示我们可以用下面这个方程来表示,这里我们用导线扮演了单位张量的角色:

综合以上的内容,我们以后尽量的使用新图示法来表示张量网络及其之间的作用,而不在单纯的用数学符号表示:

张量网络系列(一 从张量到张量网络)相关推荐

  1. 张量网络系列(TT分解 MPS)

    本期将正式进入张量网络中的核心部分:矩阵乘积态,闲话少叙,我们直接进入正题~~ Tensor Network Learning 1. Tensor-train 分解 2. 量子知识点回顾 3 . 矩阵 ...

  2. 张量网络算法基础(七、张量网络中的有效哈密顿思想)

    张量网络中的有效哈密顿思想 一.无穷大张量网络的本征自洽方法 二.张量网络的梯度更新 三.任意尺寸张量网络收缩算法 四.张量网络中的有效哈密顿量思想 我是一只正在不断学习.希望早日成为小白的小小白,有 ...

  3. 张量网络算法基础(一、张量和线性代数基础)

    张量和线性代数基础 一.张量基础 1. 张量的定义 2. 张量的基本操作和运算 二.线性代数基础 1. 本征值分解与最大本征值问题 本征值分解 最大本征值问题 最大本征值问题的幂级数求解法 2. 奇异 ...

  4. [TensorFlow系列-4]:Tensorflow基础 - 张量的创建方法

    作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing 本文网址:https://blog.csdn.net/HiWangWenBing/article ...

  5. 不懂锤爆我系列之Tensorflow入门学习—— 张量扩展函数tile()详解

    第二期,第二期,开始,开始. 在tensorflow中有个很常用的张量扩展函数--tile(),看过了许多讲解博客之后,觉得有必要系统的进行一下整理.同时,我将讲解一维.二维.乃至多维张量使用tile ...

  6. 浅谈张量分解(五):稀疏张量的CP分解

    在前面的文章中,我们已经讨论了稀疏张量的Tucker分解,并介绍了如何采用梯度下降训练出一个合理的分解结构,与Tucker分解略有不同,这篇文章将介绍在数学表达式上更为简洁的CP分解,同时讨论如何利用 ...

  7. Android新手系列教程(申明:来源于网络)

    Android新手系列教程(申明:来源于网络) 地址:http://blog.csdn.net/column/details/androidcoder666.html 转载于:https://www. ...

  8. PyTorch系列入门到精通——生成对抗网络一瞥

    PyTorch系列入门到精通--生成对抗网络一瞥

  9. Rasa课程、Rasa培训、Rasa面试系列之 Rasa对话式 AI 网络研讨会回顾

    Rasa课程.Rasa培训.Rasa面试系列之 Rasa对话式 AI 网络研讨会回顾 Rasa公司在网络研讨会系列"对话式 AI 的企业成功"中采访了Rasa公司的两位客户,以了解 ...

最新文章

  1. JHipster技术简介
  2. 实战SSM_O2O商铺_17【商铺编辑】Dao层开发
  3. json模拟数据怎么用_在使用axios获取自己模拟的json数据是踩到的坑
  4. VS.NET 2005 BETA 2 NOT DELAYED?
  5. 人工智能写小说python_1月下旬值得一读的10本技术新书(人工智能、C++、Python数据科学等)!文末有福利!...
  6. java 程序在Eclipse 或者 Linux 运行报 Unsupported major.minor version 51.0解决办法
  7. 2.3谨慎活跃问题(Beware of Liveness Problems)
  8. NLP学习03--递归神经网络RNN
  9. 数据库入门(SQL SEVER)之SQL语句删除单行数据,所有行数据,表和数据库
  10. Keli μVision中 STR指令写入内存无效
  11. VMware Workstation 安装ssh服务器
  12. MACOS系统安装pip
  13. 查看服务器的外网IP
  14. Android ImageView属性
  15. 【安全攻防知识-4】CTF之MISC
  16. 微信将可开小号!微信内测一个手机可注册俩号
  17. 微信砍价 php,GitHub - YInJunWen/bcwx: vue2+thinkPHP5.1 前后端分离的微信砍价
  18. (https专业版)2018年1月5日高仿互站仿友价T5虚拟交易+实物交易商城-站长交易源码送手机版程序10套模版+首页微信登陆+头部下拉导航...
  19. bootstrap 字体太大怎么办
  20. 传染病模型(1)——SI模型及matlab详解

热门文章

  1. Fairplay流程
  2. 图像处理之高斯混合模型
  3. C语言实现四舍五入 c语言实现四舍五入
  4. 进程间通信的方式及原理
  5. 3GPP TS 23501-g51 中英文对照 | 4.4.4 Location services
  6. 雅思作文模板.html,雅思写作模板必看范文
  7. 基于移动端的快递物流信息管理系统Uniapp
  8. java nul 字符_Java字符串替换和NUL(NULL,ASCII 0)字符?
  9. 如何用Java设计一个简单的窗口界面(初级二)
  10. 栈(简单介绍及其应用)