欢迎光临
我们一直在努力

到处都是神经网络

人工智能系统(如语音或面部识别程序)的最新进展来自神经网络,即通过分析大量训练数据来学习执行任务的简单信息处理器的密集互连网格。

但是神经网络很大,而且它们的计算能量密集,所以它们对于手持设备来说并不是很实用。大多数依赖神经网络的智能手机应用程序只需将数据上传到互联网服务器,互联网服务器会对其进行处理并将结果发送回手机。

现在,麻省理工学院的研究人员开发出一种专用芯片,可将神经网络计算的速度提高三到七倍,同时将功耗降低94%至95%。这可以使在智能手机上本地运行神经网络甚至将它们嵌入家用电器中变得切实可行。

“通用处理器模型是芯片的某些部分有一个存储器,芯片的另一部分有一个处理器,当你进行这些计算时,你可以在它们之间来回移动数据,”Avishek Biswas说。麻省理工学院电气工程和计算机科学专业的研究生,领导了新芯片的开发。

“由于这些机器学习算法需要这么多的计算,这种数据的来回传输是能量消耗的主要部分。但这些算法所做的计算可以简化为一个特定的操作,称为点积。我们的方法是,我们是否可以在内存中实现这​​种点积功能,这样您就不需要来回传输这些数据了?“

Biswas和他的论文顾问,麻省理工学院工程学院院长Anantha Chandrakasan和Vannevar Bush电气工程和计算机科学教授在Biswas本周在国际固态电路会议上发表的论文中描述了新芯片。

回到模拟

神经网络通常排列成层。网络的一层中的单个处理节点通常将从下面的层中的若干节点接收数据,并将数据传递到上面的层中的若干节点。节点之间的每个连接都有自己的“权重”,它表示一个节点的输出在下一个节点执行的计算中将扮演的角色有多大。培训网络是设定权重的问题。

从下面的层中的多个节点接收数据的节点将每个输入乘以相应连接的权重并对结果求和。该操作 - 乘法的总和 - 是点积的定义。如果点积超过某个阈值,则节点将通过与其自身权重的连接将其传输到下一层中的节点。

神经网络是一种抽象:“节点”只是存储在计算机内存中的权重。计算点积通常涉及从存储器中提取权重,获取相关数据项,将两者相乘,将结果存储在某处,然后对节点的每个输入重复操作。鉴于神经网络将拥有数千甚至数百万个节点,这就是要移动的大量数据。

但是这一系列操作只是对大脑中发生的事情的数字近似,其中沿着多个神经元传播的信号在“突触”或神经元束之间的间隙处相遇。神经元的激发速率和穿过突触的电化学信号对应于数据值和权重。麻省理工学院研究人员的新芯片通过更忠实地复制大脑来提高效率。

在芯片中,节点的输入值被转换为电压,然后乘以适当的权重。仅将组合电压转换回数字表示并存储以供进一步处理。

因此,芯片可以在一个步骤中计算多个节点的点积 - 一次16个,在原型中 - 而不是在每个计算中在处理器和存储器之间穿梭。

全有或全无

系统的关键之一是所有权重都是1或-1。这意味着它们可以作为简单的开关在存储器本身内实现,这些开关可以闭合电路或保持开路。最近的理论工作表明,仅使用两个砝码训练的神经网络应该失去很少的准确性 - 大约在1%到2%之间。

Biswas和Chandrakasan的研究证实了这一预测。在实验中,他们在传统计算机上运行神经网络的完整实现,并在其芯片上运行二进制当量等效物。他们的芯片结果通常在传统网络的2%到3%之间。

免责声明:本网站图片,文字之类版权申明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。