Google AI发布了TensorNetwork,新型数值计算方法厉害在哪里?

导读

计算物理和计算化学的一个很重要的目标,就是根据量子力学理论,通过数值计算来预言,由各种各样的原子组成的材料和分子到底有什么样的性质。我们可以利用这一类数值计算工具来设计有用的材料和分子。这对材料、化工、制药等工业应用实在是太重要了。

目前我们拥有的最好的数据计算工具是密度泛函方法,其发明者因此获得了1998年诺贝尔化学奖。可是密度泛函方法只能处理相互作用比较弱的系统,如半导体系统和简单金属系统。它根本无法处理强耦合、高量子纠缠系统,也就是无法处理有高度纠缠的拓扑材料。要处理高度纠缠的系统,我们只有严格对角化这一数值方法。但这一数值方法需要极大的计算资源。即使利用目前最大的超级计算机,我们也只能计算一个仅含有二十几个电子的系统。

十几年前,由于量子信息科学的发展,一类全新的数值计算方法——张量网络方法——被开发出来。这一新方法的最大特点就是可以处理高量子纠缠系统。特别是针对一维量子系统,张量网络方法非常有效。可以高精度地计算具有成千上万个电子的一维系统。但张量网络方法还处于发展的初级阶段,针对二维,特别是三维量子系统的计算效率还有待提高。

下面这篇文章介绍了一个开源的张量网络软件包。希望有兴趣的学生和研究人员下载下来,自己玩耍,来进一步发展张量网络这一很有前途的新型数值计算方法。另外,张量网络这一思考问题的角度对于深刻理解高度纠缠量子拓扑系统起到了关键性作用。它将是现代凝聚态物理学的一个重要组成部分,是每一个在这一领域工作的学生和研究人员需要了解的知识。

—— 文小刚

来源 | GoogleAI

撰文 | Chase Roberts、Stefan Leichenauer

编译 | 李泽南、路(机器之心)

张量网络正越来越多地用于机器学习领域,它被用来执行复杂的计算任务。但对大多数人来说,张量网络仍然遥不可及——我们还没有开源库来大规模运行这种底层算法。幸运的是,谷歌正在解决这一问题。6月4日,Google AI 发布了 TensorNetwork,它使用 TensorFlow 机器学习框架作为后端,并用 GPU 优化来提高张量计算的效率。

TensorNetwork 链接:https://github.com/google/tensornetwork

在科学领域有很多难度颇高的挑战,如开发高温超导体、理解时空的本质,这些任务涉及到处理复杂的量子系统。这些挑战之所以如此困难,是因为系统中量子态的数量呈指数级增长,这使得暴力计算(brute-force computation)变得不可行。为了解决这个问题,人们开发了张量网络(tensor network)这一数据结构。

张量网络让我们专注于那些与现实世界问题最为相关的量子态,比如低能态,并忽略那些不太相关的部分。张量网络也越来越多地应用到了机器学习当中。然而,要将张量网络广泛地应用于机器学习领域仍然面临着许多困难:

1)目前还没有生产水平的、用于加速硬件的张量网络库可用于规模化地运行张量网络算法;

2)大多数张量网络文献是物理学应用方向的,这就产生了一种错误的印象,似乎需要通晓量子力学知识才能理解张量网络算法。

为了解决这些问题,谷歌发布了 TensorNetwork:一个旨在提高张量计算效率的全新开源库。谷歌表示,这个工具是与加拿大前沿理论物理研究所(Perimeter Institute for Theoretical Physics)、谷歌 X 公司共同开发的产品。它使用 TensorFlow 作为后端,针对 GPU 进行优化,与 CPU 上的运行速度相比实现了最高达 100 倍的加速。

谷歌还在一系列论文中介绍了 TensorNetwork,其中第一篇论文《TensorNetwork: A Library for Physics and Machine Learning》介绍了这个库及其 API,并为非物理背景的读者介绍了张量网络的背景。在第二篇论文《TensorNetwork on TensorFlow: A Spin Chain Application Using Tree Tensor Networks》中,谷歌将重点放在一个物理问题的案例上,介绍了使用 GPU 获得的加速。

为何张量网络如此好用?

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

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

张量的图解表示

以这种方式表示张量的优点是可以简洁地编码数学运算,例如将一个矩阵乘以一个向量以产生另一个向量,或者将两个向量相乘以产生标量。这些都是更为通用的「张量缩并」概念的示例。

张量缩并的图解表示法。以上示例包括向量和矩阵的乘法,以及矩阵的迹(即矩阵的对角元素之和)。

以下是张量网络的简单示例,它们用图的形式表示将多个组成张量进行缩并形成新张量的过程。每个组成张量的阶数由其腿的数量决定,腿相连形成一条边表示缩并,而最终张量的阶数由「落单」的腿的个数决定。

左:四个矩阵乘积的迹 tr(ABCD)是一个标量(图中没有出现「落单」的腿)。右:三个三阶张量通过张量缩并过程生成一个新的三阶张量(图中有三个「落单」的腿)。

尽管这些示例很简单,但研究的张量网络通常表示数百个张量以多种多样的方式缩并。使用传统符号描来述这一过程将会非常复杂,这也是 1971 年 Roger Penrose 创造图解表示法的原因。

实践中的张量网络

给出一组黑白图像,每一张图像都可以被认为是 N 个像素值的列表。单个图像中的单个像素可以被 one-hot-encode 为一个二维向量,将这些像素编码结果结合起来会得到整个图像的 2^N 维 one-hot-encoding 结果。谷歌将高维向量转化为 N 阶张量,然后将所有图像的所有张量聚合到一起得到一个总的张量 T_(i1,i2,...,iN)。

这看起来似乎是在浪费存储空间,因为用这种方式编码约 50 像素的图像就需要拍字节级别(petabytes)的内存。而这正是张量网络的作用所在。研究人员没有直接存储或操纵张量 T,而是将 T 表示为多个小的张量缩合为一个张量网络的形式,这样就高效得多了。例如,流行的矩阵乘积态(matrix product state,MPS)网络可以将 T 表示为 N 个较小的张量,从而使总参数量与 N 呈线性关系,而不是 N 的指数级。

在 MPS 张量网络中,高阶张量 T 被表示为多个低阶张量。

这并不能表明,在高效创建或操纵大型张量网络的同时能够持续避免使用大量内存。但这至少说明在某些情况下是可能的,这也是张量网络广泛用于量子物理和机器学习领域的原因。Stoudenmire 和 Schwab 在论文《Supervised Learning with Quantum-Inspired Tensor Networks》中使用这种编码来创建图像分类模型,展示了张量网络的新用途。而谷歌开发的 TensorNetwork 库旨在推进这类工作,谷歌在 TensorNetwork 相关论文《TensorNetwork: A Library for Physics and Machine Learning》中介绍了该库的用途。

TensorNetwork 在物理场景中的性能

TensorNetwork 是一个针对张量网络算法的通用库,因此它应当也适用于物理学场景。逼近量子态是张量网络在物理学领域的一个典型例子,恰好可以说明 TensorNetwork 库的能力。谷歌在另一篇论文《TensorNetwork on TensorFlow: A Spin Chain Application Using Tree Tensor Networks》中,介绍了一种树张量网络(tree tensor network,TTN),它可以逼近周期性量子自旋链(一维)或圆环面上的点阵模型(二维)的基态。谷歌使用 TensorNetwork 库实现了该算法。此外,谷歌研究人员还对比了使用 CPU 和 GPU 的情况,发现在使用 GPU 和 TensorNetwork 库时出现了显著的计算加速(最高达100 倍)。

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

结论和未来工作

谷歌表示,这是阐述 TensorNetwork 在现实应用中的强大作用的系列文章中的第一篇,后续谷歌将使用 TensorNetwork 在 MNIST 和 Fashion-MNIST 上执行图像分类。进一步的计划还包括在机器学习方向进行时序分析,在物理方向进行量子电路模拟等。谷歌希望 TensorNetwork 能够成为物理学家和机器学习从业者的得力助手。

原文链接

https://ai.googleblog.com/2019/06/introducing-tensornetwork-open-source.html

本文经授权转载自公众号“机器之心”。

《返朴》,致力好科普。国际著名物理学家文小刚与生物学家颜宁联袂担任总编,与几十位学者组成的编委会一起,与你共同求索。二次转载或合作请联系fanpu2019@outlook.com。