概要:无人驾驶,语音识别,计算机视觉和机器翻译等人工智能系统之所以能大放异彩,都有赖于一种业内闻名的软件系统——神经网络。
近几年来,无人驾驶,语音识别,计算机视觉和机器翻译等人工智能系统之所以能大放异彩,都有赖于一种业内闻名的软件系统——神经网络。但神经网络要占据大量内存空间,能耗也非常高,因此通常在云平台中运行。云平台从桌面或移动设备接收数据,而后返回平台的分析结果。
去年,麻省理工大学电子工程和计算机科学专业的副教授VivienneSze与同事合作发布了一款专为神经网络优化的新型节能计算机芯片。有了该芯片,强劲的人工智能系统可直接在移动设备本地运行。
然而最近Sze和同事们又通过反向思维,另辟蹊径,研发了一系列有助于设计更节能的神经网络的新技术。他们首先设计了一种分析方法判断某种神经网络在特定型号的硬件上耗能多少。然后,他们又用该方法评测新技术简化神经网络的能力,最终使神经网络在手持设备上运行更加高效。
研究团队将于下周的计算机视觉与模式识别会议上发布论文介绍研究成果。他们在该论文中表示,此次研发的方法能够为标准实现的神经网络降低73%的能耗,并且比之前削减网络结构的最优方法还要多简化43%。
功耗评估器
大体上,神经网络模仿了大脑的结构,由几千个甚至几百万个结构简单但联系紧密的信息处理结点组成。结点通常分布在不同的层次,不同类型的网络根据网络层的数量,节点之间互相连接的数量以及每层节点数量的变化而变化。
结点之间的连接具有“权重”,权重决定某一结点的输出对下一个节点计算结果的影响程度。网络在训练期间,会执行一些计算样例,通过重新调整权重使网络最后一层的输出结果与计算结果一致。
“我们做的第一件事是,通过建模,开发了一个可以说明数据传输、数据处理和数据流功耗的工具。指定某个神经网络的架构和权重值后,该工具可以计算出该网络的能耗。人们常常会说,‘让浅层网络具备更高权重,或让深度网络具备更低权重,这样是不是更节能?’这个工具就能帮我们更了解功耗走向,让算法设计者掌握更多反馈信息。掌握了能量的确切走向后,我们开始做第二件事,即利用该模型推进节能神经网络的设计。”Sze表示。
她解释说,过去的研究人员尝试过用一种叫做“修剪(pruning)”的技术降低神经网络的能耗。节点之间的低权重连接对神经网络的最终输出影响甚小,因此这类结点大多都可以安全地消除或修剪掉。
有原则地修剪
该文章的第一作者Tien-Ju Yang 和Yu-Hsin Chen都是电气工程和计算机科学专业的研究生,Sze和这两位同事在能量模型的帮助下修改了上述的修剪方式。减去大量低权重连接或许对神经网络的输出影响甚微,但无法保证将这种连接尽数消除会有什么后果,所以修剪技术中需具备某种可判断是否应停止修剪的机制。
因此,MIT研究人员首先去除了消耗能量最大的网络层,从而最大程度地节约了能量。他们将该方法称为“功耗感知修剪”。
因为神经网络的权重可正可负,所以这一新方法还会寻找某个连接抵消另一个权重符号相反的连接的情况。特定结点的输入是下层结点的输出乘以节点之间连接的权重,因此该方法不仅关注权重,还注重关联结点处理训练数据的方式。对于几组具有正负权重的连接,只有在它们能持续不断地抵消彼此时,我们才能安全去除这些连接。与之前的修剪方法相比,该方法能使网络节点更少,更加高效。
谷歌的移动视觉团队总监Hartwig Adam 表示:“最近,在深度学习领域,人们越发注重研发计算受限平台上的高效神经网络架构,然而,这类研究要么是缩小模型,要么是减少计算量,而对智能手机等很多使用电池和具有热量限制的设备来说,能耗才是重中之重。上述研究是卷积神经网络(CNN)架构优化方面的一次创新之举,它用复杂的新型能量估算工具,直接尝试使能耗最低化。而且与注重计算量的方式相比,该方法的性能大大提高。我希望该领域的其他研究者能效仿该方法,将其当做通用的方法论设计神经网络模型架构。”