您的位置:首页 >科技 >

软件协同设计方法可以减少神经网络的耗电量

2019-03-02 16:16:37来源:

由加州大学圣地亚哥分校领导的团队开发了一种神经启发的硬件 - 软件协同设计方法,可以使神经网络培训更加节能和快速。他们的工作有朝一日可以在智能手机,笔记本电脑和嵌入式设备等低功耗设备上训练神经网络。

最近在Nature Communications上发表的一篇论文中描述了这一进展。

训练神经网络来执行识别物体,导航自动驾驶汽车或玩游戏等任务会消耗大量的计算能力和时间。通常需要具有数百到数千个处理器的大型计算机来学习这些任务,并且培训时间可能需要数周到数月。

这是因为进行这些计算涉及在两个独立单元(内存和处理器)之间来回传输数据,这在神经网络训练期间消耗了大部分能量和时间,资深作者Duygu Kuzum说,他是电气和计算机教授加州大学圣地亚哥分校Jacobs工程学院的工程学。

为了解决这个问题,Kuzum和她的实验室与Adesto Technologies合作开发硬件和算法,允许这些计算直接在内存单元中执行,从而无需重复洗牌数据。

“我们正在从两端解决这个问题 - 设备和算法 - 在神经网络训练期间最大限度地提高能效,”第一作者Yuhan Shi说,他是一名电气工程博士。Kuzum在加州大学圣地亚哥分校的研究小组的学生。

硬件组件是一种超高能效类型的非易失性存储器技术 - 512千比特子量子导电桥接RAM(CBRAM)阵列。它比现有的领先内存技术消耗的能量低10到100倍。该器件基于Adesto的CBRAM存储器技术 - 它主要用作只有'0'和'1'状态的数字存储设备,但Kuzum和她的实验室证明它可以编程为具有多个模拟状态模仿人脑中的生物突触。这种所谓的突触装置可用于进行神经网络训练的内存计算。

“传统处理器中的片上存储器非常有限,因此它们没有足够的容量在同一芯片上执行计算和存储。但在这种方法中,我们有一个高容量存储器阵列,可以进行与神经相关的计算内存中的网络培训,无需将数据传输到外部处理器。这将在培训期间实现大量性能提升并降低能耗,“Kuzum说。

Kuzum隶属于加州大学圣地亚哥分校的机器集成计算与安全中心,负责开发可轻松映射到此突触设备阵列的算法。该算法在神经网络训练期间提供了更多的能量和时间节省。

该方法使用一种称为尖峰神经网络的节能神经网络,用于在硬件中实现无监督学习。最重要的是,Kuzum的团队应用了他们开发的另一种称为“软修剪”的节能算法,这使得神经网络训练更加节能,而不会在准确性方面牺牲太多。

节能算法

神经网络是一系列连接的人工神经元层,其中一层的输出为下一层提供输入。这些层之间的连接强度由所谓的“权重”表示。训练神经网络处理更新这些权重。

传统的神经网络花费大量精力来不断更新这些权重中的每一个。但是在尖峰神经网络中,只有与尖峰神经元相关的权重才会更新。这意味着更少的更新,这意味着更少的计算能力和时间。

网络也做了所谓的无监督学习,这意味着它本质上可以训练自己。例如,如果网络显示一系列手写的数字,它将弄清楚如何区分零,一,二,等等。一个好处是网络不需要在标记的示例上进行训练 - 这意味着它不需要被告知它看到零,一个或两个 - 这对于导航这样的自主应用很有用。

为了使训练更快,更节能,Kuzum的实验室开发了一种新的算法,他们称之为“软修剪”,用无监督的尖峰神经网络实现。软修剪是一种方法,可以找到在训练期间已经成熟的权重,然后将它们设置为常量非零值。这可以阻止他们在剩余的训练中更新,从而最大限度地降低计算能力。

软修剪与传统的修剪方法不同,因为它是在训练期间而不是之后实施的。当神经网络将其训练用于测试时,它还可以导致更高的准确度。通常在修剪中,完全去除冗余或不重要的重量。缺点是你修剪的权重越多,网络在测试过程中执行的准确性就越低。但软修剪只是将这些权重保持在低能量设置中,因此它们仍然可以帮助网络以更高的精度执行。

硬件 - 软件共同设计测试

该团队在子量子CBRAM突触装置阵列上实现了神经启发的无监督尖峰神经网络和软修剪算法。然后,他们训练网络对MNIST数据库中的手写数字进行分类。

在测试中,即使高达75%的权重经过软修剪,网络也能将数字精确到93%。相比之下,当使用传统的修剪方法仅修剪40%的重量时,网络的准确度低于90%。

在节能方面,该团队估计,与现有技术相比,他们的神经启发硬件 - 软件协同设计方法最终可以将神经网络训练期间的能耗降低两到三个数量级。

“如果我们将新硬件与其他类似的内存技术进行对比,我们估计我们的设备可以将能耗降低10到100倍,那么我们的算法协同设计可以将其减少到10个。总体而言,我们可以期望获得100个增益根据我们的方法,在能源消耗方面,千倍,“Kuzum说。

展望未来,Kuzum和她的团队计划与内存技术公司合作,将这项工作推进到下一阶段。他们的最终目标是开发一个完整的系统,在该系统中,神经网络可以在内存中进行训练,以便以非常低的功耗和时间预算完成更复杂的任务。