近年来,计算机行业一直在忙着研究如何加快人工神经网络所需的计算速度——无论是为了训练,还是在网络执行功能时进行所谓的推理。特别是在设计专用硬件以运行此类计算方面,已经投入了大量精力。谷歌例如,开发了它张量处理单元首先是TPU描述公开在2016年。最近,英伟达介绍了它的V100该公司表示,图形处理单元是为人工智能训练和推理以及其他高性能计算需求而设计的。而创业公司则专注于其他类型硬件加速器因为神经网络无处不在。

也许他们都在犯一个巨大的错误。

这就是我们要传达的信息一篇论文上周发布于arXiv预印服务器。在书中,作者,贝蒂陈Tharun Medini,
Shrivastava Anshumali莱斯大学的研究人员认为,为神经网络开发的专门硬件可能针对错误的算法进行了优化。

你看,操作这些网络通常取决于硬件执行矩阵乘法的速度有多快,矩阵乘法用于确定每个人工神经元对给定输入值的输出(即其“激活”)。这涉及到矩阵乘法,因为输入到给定神经元的每个值在求和之前都要乘以相应的权重参数——这种相乘和求和是矩阵乘法的基本操作。

与之前的研究人员一样,莱斯大学的研究人员意识到,神经网络中给定层中的许多神经元具有非常小的激活,这意味着它们的输出对后续层计算的结果没有贡献。所以如果你知道这些是哪些神经元,你就可以忽略它们。

然而,要知道一层中哪些神经元没有被激活,唯一的方法似乎是首先对该层执行所有的矩阵乘法。由Anshumali Shrivastava领导的莱斯大学的研究人员意识到,事实上,你可以通过完全不同的角度来更有效地做出判断。Shrivastava说:“我们认为这是一个搜索问题。

也就是说,与其执行所有矩阵乘法来查看哪些神经元对给定输入变得活跃,不如简单地在数据库中查找它们。以这种方式处理问题的好处是,您可以很好地利用计算机科学家很久以前完善的用于加速数据库查找的一般策略:哈希。

哈希法允许您快速检查数据库表中是否有内容,而不必依次查看每个条目。相反,您可以对感兴趣的值使用一些易于计算的散列函数,该函数指向该值将存储在数据库中的位置。然后你可以检查那个位置,看看它是否在那里。

莱斯大学的研究人员在他们的神经网络计算中做了类似的事情。一个假设的例子有助于说明他们的方法:

假设你创建了一个用于识别手写数字的神经网络。进一步假设输入是一个16x16数组的灰度像素值,总共256个数字。让我们想象一下,这些输入输入到一个单独的隐藏层,哦,512个神经元,它们的激活反过来馈送到一个由10个神经元组成的输出层,每个神经元对应一个可能的数字。

在计算隐藏后期神经元的激活之前,使用哈希来确定哪些神经元将是活跃的。从网到表:在计算隐藏后期神经元的激活之前,使用哈希来确定哪些神经元将被激活。这里使用输入值(H1)的散列来查找第一个隐藏层中哪些神经元是相关的——在这里是神经元2和4。另一个哈希(H2)揭示了第二个隐藏层中的神经元将做出贡献。这种策略减少了需要计算的激活数量。图片来源:莱斯大学/arXiv

训练这个网络是一个复杂的过程,但现在,让我们先忽略一下这是如何做到的,假设我们已经调整了每个神经元的权重,这样这个网络就能出色地识别手写数字。当一个清晰的数字作为输入时,其中一个输出神经元(与写入的数字对应的神经元)将在1附近被激活。其他9个输出神经元将在0附近被激活。通常情况下,这个网络的操作需要对512个隐藏神经元中的每个进行一次矩阵乘法,再加上对每个输出神经元进行一次矩阵乘法,因此需要进行大量的乘法运算。

莱斯大学的研究人员会采取不同的处理方式。第一步是使用所谓的“位置敏感哈希”对隐藏层中512个神经元的权重进行哈希,该哈希具有相似输入产生相似哈希值的特性。然后,他们可以将具有相似哈希值的神经元分组,这意味着这些神经元必须具有相似的权重集。每个组将存储在数据库表的某个地方,该数据库表由导致这些特定神经元被激活的输入值的散列决定。

一旦所有的哈希都完成了,就很容易判断哪些隐藏的神经元将被提交给网络的一些新输入激活。只需通过易于计算的哈希函数运行256个输入值,并使用结果在数据库中查找哪些神经元将被激活。这样,你只需要计算少数重要神经元的激活值。你不需要计算该层中所有其他神经元的激活,却发现它们没有贡献。

向这个神经网络应用一个输入,可以被认为是向数据库提交一个查询,它说:“找到所有的神经元,如果事情真的被计算出来,就会变得活跃。”因为你在用哈希表查找东西,所以你很快就能得到答案。然后你就可以计算少量神经元的激活情况了。

莱斯大学的研究人员实现了这种技术,他们称之为SLIDE(亚线性深度学习引擎),用于训练神经网络,这是一个比推理更难计算的过程。然后,他们将他们的训练算法的性能与更传统的使用强大图形处理单元训练神经网络的方法进行了比较——在这种情况下,使用Nvidia V100 GPU。他们的报告非常令人震惊:“我们的结果表明,在任何精度下,在适度的CPU上,SLIDE在挂钟时间上比使用最佳硬件的最佳备选方案快几个数量级。”

现在要知道这些结果(尚未经过同行评审)是否足以让芯片制造商重新考虑如何为深度学习设计专用硬件还为时过早。但是,当一种新的、更好的神经网络计算算法出现的时候,它肯定会凸显出执着于某种特定硬件的危险

对话(0)

IBM量子计算机即将突破1000个量子比特大关

秃鹰处理器只是预定在2023年推出的量子计算的一项进步

4分钟读取
这张照片显示的是一名妇女正在操作悬挂在实验室天花板上的一台仪器。

IBM托马斯·j·沃森研究中心的一名研究人员正在检查那里正在建造的一些量子硬件。

康妮周/ IBM

IBM的秃鹰世界上第一台拥有超过1000个量子比特的通用量子计算机将于2023年问世。IBM还有望在今年推出Heron,这是一系列新型模块化量子处理器中的第一款,该公司表示,这些处理器可能有助于其在2025年前生产出超过4000个量子比特的量子计算机。

这篇文章是我们特别报道的一部分顶级科技2023

虽然理论上,量子计算机可以快速找到经典计算机需要亿万年才能解决的问题的答案,但今天的量子硬件仍然缺乏量子位,限制了它的实用性。量子计算所必需的纠缠态和其他量子态是出了名的脆弱,容易受到热和其他扰动的影响,这使得扩大量子比特的数量成为一项巨大的技术挑战。

继续阅读↓ 显示更少
Baidu