谷歌最新开源库可提升100倍计算性能

张量网络在机器学习中的应用越来越多,但它们在 ML中的广泛使用依然有许多限制,目前还没有一个可供免费使用的加速库来大规模运行底层算法。 而且大多数张量网络文献是面向物理应用。

许多艰巨的科学挑战,例如开发高温超导体和理解时空的真实本质,都涉及到处理复杂的量子系统。 这些系统中的量子态数量是呈指数级增长的,使得蛮力计算变得不可行。 为了解决这个问题,我们会使用称为张量网络的数据结构。 张量网络可以让人们关注与现实世界问题最相关的量子态(比如低能量状态) ,而忽略其他与此无关的状态。

为了解决这些问题,昨天谷歌公司的人工智能部门发布TensorNetwork,这是一个全新的开放源代码库,旨在提高张量计算的效率,该库使用 TensorFlow 作为后端,并为 GPU 处理进行了优化,与 CPU 相比,它可以加速100倍。 谷歌已经已经在两篇论文中介绍了 TensorNetwork,其中一篇[1]介绍了新库及其 API,并为非物理学研究者提供了张量网络的概述;第二篇论文[2]集中讨论了物理学中的一个特殊用例,演示了使用 gpu 的加速效果。

张量网络作用

张量是多维数组,按顺序在层次结构中被分类,例如一个普通数是0阶张量(也称为标量) ,一个向量是一阶张量,一个矩阵是一个2阶张量,等等。 虽然低阶张量可以很容易地用明确的数组或数学符号来表示,但一旦开始讨论高阶张量,这种表示法就变得非常繁琐。 在这一点上,使用图形符号是很有用的,在这种符号中,人们只需要简单地画一个圆,从中延伸出来一些线或腿ーー腿的数目与张量的顺序相同。 在这个符号中,一个标量就是一个圆,一个矢量有一条腿,矩阵有两条腿,等等。 张量的每条腿也有一个维度,就是那条腿的大小。 例如,一个代表物体在空间中速度的矢量就是一个三维的一阶张量。

《谷歌最新开源库可提升100倍计算性能》
《谷歌最新开源库可提升100倍计算性能》 张量网络中用低阶张量表示的高阶张量

张量网络非常有效地表示几个、几十个、甚至几百个张量,具体怎么做的呢?它们不是直接存储或操作,而是在较大张量网络中表示为较小张量的收缩。 这使得它们在图像分类、物体识别和其他人工智能任务中更加实用。

Tensornetwork 开源库[3]就是为此而设计的,它是张量网络算法的通用库,谷歌希望这对工程师和研究科学家都有用。近似量子态是物理学中张量网络的一个典型用例,张量网络让人们关注与现实世界问题最相关的量子状态,比如低能量状态,而忽略其他与此无关的状态,在开源社区中,谷歌也一直在为 TensorNetwork 本身添加新的功能,他们希望 TensorNetwork 能够成为机器学习者和物理学家的有力工具。

有人使用 TensorNetwork 对数据集中的图像进行分类,如 MNIST 、时间序列分析和量子电路模拟等。

参考

  1. ^https://arxiv.org/abs/1905.01330
  2. ^https://arxiv.org/abs/1905.01331
  3. ^https://github.com/google/tensornetwork
    原文作者:清华阿罗
    原文地址: https://zhuanlan.zhihu.com/p/68121934
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞