但神经网络体积庞大,计算耗能巨大,因此不太适合手持设备。大多数依赖神经网络的智能手机应用只是简单地将数据上传到互联网服务器,由服务器处理数据并将结果发送到手机。.
麻省理工学院的研究人员现在开发出一种专用芯片,与之前的芯片相比,它将神经网络的计算速度提高了三到七倍,同时将功耗降低了94%到95%。这使得在智能手机上本地运行神经网络,甚至将其集成到家用电器中成为可能。.
“一般的处理器模型是,芯片上的某个地方有内存,芯片上的另一个地方有处理器,当你进行这些计算时,数据就在两者之间来回移动,”领导开发这款新芯片的麻省理工学院电子与计算机工程研究生阿维谢克·比斯瓦斯 (Avishek Biswas) 说。.
“由于这些机器学习算法需要大量的计算,这种来回的数据传输是能源消耗的主要部分。但是,这些算法执行的计算可以简化为一种称为点积的特定运算。我们的思路是,能否在内存中实现点积功能,从而避免来回传输数据?”
Biswas 和他的论文导师,麻省理工学院工程学院院长兼 Vannevar Bush 电气与计算机工程教授 Anantha Chandrakasan,在一篇论文中描述了这种新型芯片。Biswas 将于本周在国际固态电路会议上发表这篇论文。.
回到模拟层面:
神经网络通常以层的形式组织。网络中某一层的单个处理节点通常会接收来自下一层多个节点的数据,并将数据传递给上一层的多个节点。节点之间的每个连接都有其自身的“权重”,该权重表示一个节点的输出在下一个节点执行的计算中的重要性。训练网络的过程就是确定这些权重。
接收来自下一层多个节点数据的节点会将每个输入乘以对应连接的权重,然后将结果相加。这种运算,即乘积之和,正是点积的定义。如果点积超过某个阈值,该节点会将结果通过具有自身权重的连接传递给下一层的节点。
神经网络是一种抽象:“节点”实际上只是存储在计算机内存中的权重。计算点积通常涉及从内存中检索权重,检索关联的数据元素,将两者相乘,将结果存储在某个地方,然后对每个节点的输入重复此操作。由于神经网络拥有成千上万甚至数百万个节点,因此需要处理的数据量极其庞大。
然而,这种操作序列仅仅是对大脑运作方式的一种数字化近似。在大脑中,信号沿着多个神经元传递,并在“突触”(神经元束之间的间隙)处汇合。神经元的放电频率和穿过突触的电化学信号对应于数据值和权重。麻省理工学院研究人员研发的新型芯片通过更精确地模拟大脑来提高效率。
在该芯片上,节点的输入值被转换为电压,然后乘以相应的权重。最后,只有组合后的电压值才会被转换回数字表示并存储起来以供后续处理。
这样,该芯片就可以一步完成多个节点(原型机一次可处理 16 个节点)的点积计算,而无需像以往那样每次计算都在处理器和内存之间切换。
要么全有,要么全无:
该系统的关键之一在于所有权重均为 1 或 -1。这意味着它们可以在内存中实现为简单的开关,要么闭合电路,要么断开电路。最近的理论研究表明,仅使用两个权重训练的神经网络的精度损失应该很小——大约在 1% 到 2% 之间。Biswas
和 Chandrakasan 的研究验证了这一预测。在实验中,他们在传统计算机上运行了完整的神经网络,并在他们的芯片上运行了等效的二进制权重网络。他们的芯片的结果通常与传统网络的结果相差在 2% 到 3% 以内。
作者:Larry Hardesty,麻省理工学院新闻办公室
