Density Encoding Enables Resource-Efficient Randomly Connected Neural Networks

密度编码可实现资源高效的随机连接神经网络

https://arxiv.org/abs/1909.09153

https://ar5iv.labs.arxiv.org/html/1909.09153?_immersive_translate_auto_translate=1

摘要

在资源受限的边缘设备上部署机器学习算法是理论和应用角度都非常重要的挑战。在本文中,我们关注资源高效的随机连接神经网络,即随机向量功能链接(RVFL)网络,因为它们的简单设计和极快的训练时间使它们非常吸引人,用于解决许多应用分类任务。我们提议通过在随机计算领域已知的基于密度的编码来表示输入特征,并使用超维计算领域的绑定和捆绑操作来获得隐藏神经元的激活。使用来自UCI机器学习库的121个真实世界数据集,我们实证展示了所提出的方法比传统RVFL的平均准确度更高。我们还展示了可以使用有限范围内的整数表示读出矩阵,而准确度损失极小。在这种情况下,所提出的方法仅在小n位整数上操作,这导致了一个计算效率高的架构。最后,通过硬件现场可编程门阵列(FPGA)实现,我们展示了这种方法比传统RVFL节省了大约十一倍的能量。

索引术语 - 随机向量功能链接网络,超维计算,基于密度的编码

I. 引言

企业和工业对数据驱动技术的最大需求是提供实时洞察和预测分析的能力。当前发展的矢量目标是使机器学习应用能够在连接的设备(边缘计算)上运行,如智能手机、机器人、车辆等。在边缘进行计算的好处是巨大的:由于从网络连接和带宽可用性中解耦,解决方案的可靠性更高;极低的延迟;更高的安全性和隐私性,因为敏感数据在设备上本地处理。

随机连接的神经网络,如最近提出的称为随机配置网络的高级随机学习技术[1]和众所周知的随机向量功能链接(RVFL)[2],已成为现代理论和应用研究的日益热门话题。在理论方面,主要的成果是RFVL为连续映射和功能近似提供了通用逼近,并且当目标函数是概率密度函数时,它们在Kullback-Leibler散度中收敛[3]。当这与RVFL的设计和训练过程的简单性结合起来时,使它们成为解决边缘计算中实际机器学习问题的非常有吸引力的替代方案。

本文的目的是提出一种方法,将RVFL操作的资源效率(内存占用、计算复杂性和能耗)提高一个数量级。所提出的方法结合了计算机科学的两个领域:随机计算[4]和超维计算[5]。基本思想是使用超维计算的计算简单操作实现隐藏层的激活,并且像随机计算一样使用输入特征的基于密度的编码。此外,我们用仅限整数的读出矩阵增强了这种方法。这种结合使我们能够端到端使用整数算术。文章的新贡献如下:

• 提出了一种资源高效的RVFL方法,仅使用整数操作;

• 在121个真实世界的分类数据集上的实证评估表明,所提出方法的准确度高于传统RVFL;

• 所提出方法的现场可编程门阵列(FPGA)实现比传统RVFL节能一个数量级,速度快2.5倍。

文章的结构如下。第二节介绍了所提出方法所使用的方法的背景。第三节描述了方法本身。第四节是性能评估。第五节涵盖了相关工作。第六节提出了结论性意见。

II. 背景与方法

A. 随机向量功能链接

这一小节简要描述了传统的RVFL。对于想要详细了解RVFL的读者,请参阅[6]。图1描述了传统RVFL的架构,它包括三层神经元。输入层有K个神经元,代表当前输入特征的值,记为x ∈ [K×1]。在操作阶段,输出层(L个神经元)产生网络的预测(记为y)。中间层是网络的隐藏层,执行输入特征的非线性转换。隐藏层包含N个神经元,其状态记为h。

通常,RVFL的连接性由两个矩阵和一个向量描述。一个矩阵Win ∈ [N ×K]描述了输入层神经元和隐藏层神经元之间的连接。这个矩阵将给定的输入特征投影到隐藏层。隐藏层的每个神经元都有一个参数,称为偏置。隐藏层的偏置存储在一个向量中,记为b ∈ [N × 1]。另一个矩阵是读出连接Wout ∈ [L × N],位于隐藏层和输出层之间,将存储在h中的当前激活转换为网络的输出y。

RVFL的主要特点是矩阵Win和向量b在网络初始化时随机生成,并在网络的生命周期内保持固定。对于Win和b的生成没有严格的限制。它们通常随机从正态分布或均匀分布中抽取。在这里,Win和b都是从均匀分布中生成的。根据[8],Win的范围是[-1, 1],而b的范围是[-0.1, 0.1]。由于Win和b是固定的,因此训练RVFL的过程集中在学习读出矩阵Wout的值上。仅训练Wout的主要优点是相应的优化问题是严格凸的,因此,解决方案可以在一个单独的分析步骤中找到。

网络隐藏层的激活h由以下方程描述:

B. 基于密度的标量编码

将标量表示为向量的想法并不新鲜。它在几个领域独立提出过。随机计算[4]领域可能是最著名的例子,因为随机计算的整个思想是可以使用位向量(通常是流)上的布尔运算来实现标量的算术运算。在脉冲神经网络中使用的神经元放电的速率编码模型是另一个著名的例子。随机计算操作的是0到1之间的标量,它们被表示为随机位向量,其中被编码的标量决定了生成1的概率。因此,得到的位向量中1的密度编码了标量,因此这种表示方法被称为基于密度的编码。生成随机流很重要,因为两个向量的独立性是使用布尔运算来实现它们上的算术运算(例如,AND用于乘法)的先决条件。请注意,对于所提出的方法,不会对标量的基于密度的编码执行算术运算。因此,在此研究中,编码标量的表示的随机性不是强制性的。实际上,从简单性的角度来看,使用不需要随机源的结构化版本的基于密度的编码更为有利。我们将在本文的其余部分使用也被称为温度计编码的结构化版本的基于密度的编码[9]。

通过可视化最直观地介绍基于密度的编码的概念。图2展示了当表示的维度设定为N = 4时可以编码的所有可能值。图2表明,使用基于密度的编码可以表示N + 1个不同的值。表示这些值的最方便的方式是使用范围在[0, N]内的整数(图左边的节点)。在这种情况下,为了获得给定值v的编码,需要将v个最左边的位置设置为“一”(图中的红色哈希节点),而其余的向量设置为“零”(填充的绿色节点)。在下面使用的双极表示中,“一”对应于-1,而“零”对应于1。

然而,请注意,输入特征不是范围在[0, N]内的整数。相反,假设一个特征xi由范围在[0, 1]内的实数表示。任务是使用上述基于密度的编码将特征的当前值表示为向量f ∈ [N×1]。由于编码需要0到N之间的有限值集,因此首先使用由N确定的固定量化步长将实数离散化。给定特征的当前值,将其量化为最接近的整数如下:

C. 超维计算

超维计算[10],[11],也称为向量符号架构,是一类受生物启发的方法,用于在高维空间中表示和操纵认知架构及其意义的概念。

高(但固定)维度的向量(记为N)是超维计算中信息表示的基础。信息分布在超维向量的各个位置,因此,超维向量使用分布式表示。分布式表示[12]与局部表示相反,因为任何位置的子集都可以被解释。这与前一小节介绍的基于密度的编码非常相关,因为向量f中的编码也是分布式的。

在本文的范围内,Win矩阵的列被解释为超维向量,这些向量是随机生成的。这些超维向量是双极的,并且以+1和−1的相等概率随机。值得注意的是,高维空间的一个重要特性是,所有随机超维向量彼此不同(准正交)的概率极高。为了操纵超维向量,超维计算定义了它们上的操作。在本文中,我们隐式地只使用两个关键操作:绑定和捆绑。

在裁剪函数中,κ是一个可配置的阈值参数。因此,在本文中,捆绑操作是通过逐位置加法和裁剪函数来实现的。例如,捆绑超维向量x和y的结果(记为a)简单地表示为:。与绑定操作不同,结果超维向量a与所有捆绑的超维向量相似,这允许例如在超维向量中存储信息[13]。例如,我们已经展示了裁剪函数在资源高效的自组织映射[14]和回声状态网络[15],[16]实现中的有用性。

III. 使用基于密度编码的RVFL

这一节介绍了利用基于密度编码的RVFL架构。该方法在图3中进行了说明。架构故意被描绘成与常规RVFL(图1)在结构上尽可能相同。主要的区别是,所提出的方法用四层神经元来说明:输入层(x,K个神经元);基于密度的表示层(F,N×K个神经元);隐藏层(h,N个神经元);输出层(y,L个神经元)。因此,与传统的RVFL不同,隐藏层并不直接连接到输入层。相反,每个输入特征首先被转换为存储其基于密度编码的神经元行。这些向量构成了基于密度的表示层,该层反过来连接到隐藏层。还要注意,输入和基于密度的表示层并不是完全连接的。输入层中的每个神经元只与下一层相应行中的N个神经元连接。此外,这些连接(图3中的蓝线)被称为“特征依赖”,因为第i个输入神经元xi的激活将根据(4)量化为最接近的整数v;反过来,v决定了最右边的连接数,这些连接传输-1,该神经元的其余连接传输+1。由于基于密度表示层的每个神经元只有一个传入连接,输入激活以双极矩阵F的形式被投影。

同样重要的是要提到,基于密度的表示层和隐藏层并不是完全连接的。实际上,基于密度表示层中的每个神经元只有一个传出连接。因此,描述固定随机连接到隐藏层的矩阵Win仍然是Win ∈ [N ×K]。此外,这些连接具有清晰的结构。在图3中,连接被结构化,使得F中的每个列与隐藏层的一个神经元相连。这解释了为什么隐藏神经元的数量N也决定了特征的基于密度编码的维度:每个隐藏神经元在F中有其相应的列(见图4)。请注意,图4中N设置为10只是为了可视化目的。在实践中,N的值更大。

与传统的RVFL类似,Win的值也是随机生成的。然而,这些值是从{−1, +1}中等概率抽取的。因此,与F类似,Win也是一个双极矩阵。当反映到超维计算的思想时,Win应该被解释为KN维的双极超维向量。换句话说,每个特征都被分配了相应的超维向量。因此,在获得隐藏神经元的输入值之前,概念上的中间步骤是特征的超维向量与其当前基于密度的编码之间的绑定操作。

最后,所提出的方法在隐藏层使用不同的非线性激活函数,使用裁剪函数(5)代替sigmoid函数。裁剪函数的特点是阈值κ调节神经元的非线性行为并限制激活值的范围。总结上述差异,隐藏层的激活h如下获得:

IV. 性能评估

在这一部分,所提出的方法在三种场景中得到验证。第一种场景是比较在两种方法的读出矩阵权重都是实数的情况下,与传统RVFL的对比。第二种场景是比较实数值读出矩阵的结果与获得整数值读出矩阵的考虑策略的结果。最后一种场景是在有限能量预算的情况下,比较所提出方法和有限精度RVFL[8]的FPGA实现。所有报告的结果都是基于从UCI机器学习库[18]获得的121个真实世界的分类数据集。所考虑的数据集集合最初在不同分类器的大规模比较研究中进行了分析,感兴趣的读者请参阅原始工作[19]以获取更多细节。唯一的预处理步骤是将特征归一化到范围[0, 1]。最后,报告的准确率是在五次独立的初始化中平均得出的。

A. 与传统RVFL的比较

B. 量化读出权重的影响

图6展示了所提出方法对于获得整数值读出矩阵的三种考虑策略的平均准确率与上一个实验的平均准确率的对比。所考虑的范围是对称的,图中只指示了正边界。很明显,如果将回归的结果(虚线)量化到很少的水平,准确率会显著受到影响。然而,随着水平数量的增加,准确率接近基线,得出结论,每个权重5位可以非常接近近似。使用遗传算法(GA)优化量化的回归结果(点划线)当然提高了量化水平数量较少时的准确率,这与[8]中的结果一致。然而,对于大于六的量化水平数量使用GA并没有好处。随机GA初始化(点线)降低了准确率。

C. 有限资源情况下的性能

第三个实验比较了在固定能量预算的情况下,所提出方法和有限精度RVFL的FPGA硬件实现。限制能量预算的想法可以看作是比较两种方法的有界最优性[21]的直观设置。使用了8位每神经元/权重的有限精度RVFL[8],因为它比传统RVFL更高效。根据前一个实验的结论,所提出方法的读出权重分辨率被设置为5位。两种方法都部署在ZedBoard FPGA上,并且使用Xilinx功耗估算工具估计能耗。能量预算被设置为3.2微焦耳,以反映具有典型参数的网络。图7展示了所提出方法(平均0.73)与有限精度RVFL(平均0.65)的准确率。使用5%显著性水平的双样本假设检验,准确率的差异在统计上是显著的。由于资源有限,这些值低于第一个实验,然而,当我们的方法的性能与定点RVFL相比较时,结果是令人印象深刻的。

V. 相关工作

这一节简要描述了相关工作。首先,对依赖随机创建连接的神经网络感兴趣的读者,请参阅[6]中的调查。

A. 用于所提出方法的范式

为了设计一个资源高效的RVFL算法,所提出的方法结合了两个领域的想法。这些是从随机计算中的基于密度的编码和超维计算中的绑定和捆绑操作。由于这两个都是它们自己的研究领域,这里我们只指出有助于进入这些领域的入门论文。最近的杂志文章[4]可能是随机计算最易懂的阅读材料。关于超维计算,最好的起点是由Kanerva撰写的类似教程的文章[5]。

B. 资源高效的RVFL

回想一下,即使是传统的RVFL网络也被认为是机器学习最简单的方法之一。这一事实解释了为什么将RVFL网络的资源效率推向极致的努力相当有限。这方面的最相关工作是[8],[22]。与本研究类似,这两项工作都使用FPGA进行硬件实验。此外,这两项工作都依赖于有限精度实现以提高资源效率。然而,工作[22]严重侧重于获得读出矩阵权重的过程,这里不是这种情况。工作[8]侧重于操作阶段,这里用作与所提出方法比较的基线。然而,据我们所知,以前在RVFL领域的工作都没有专注于使用基于密度的编码与绑定操作的组合。作为未来研究的一个重要课题,我们看到所提出方法获得的分类性能改进的理论特征化。如前所述,一个假设是量化和基于密度的编码提供了额外的正则化。为了朝这个方向前进,相关工作与通过添加噪声[23]或离散化定量特征[24]来改善网络泛化现象有关。

C. 神经网络的简化

最后,值得一提是,近年来,神经网络计算架构的简化是一个重要的研究课题。值得注意的例子包括在卷积神经网络上评估的作品[25]、[26]、[27];引入了三元激活网络的作品[28];以及引入了所有参数均为二进制的网络的作品[29]。值得一提的是,与位级网络[29]相比,所提出的基于密度的编码不需要对输入特征进行二值化处理,这通常会降低准确率。

VI. 结论

本文提出了一种针对随机连接神经网络的资源高效的全整数方法。有效获得隐藏神经元激活的关键是通过在随机计算中使用的基于密度的编码表示输入特征,以及使用超维计算领域的绑定和捆绑操作的结合。读出矩阵的整数值可以通过最小损失准确度的方式获得,例如,通过对岭回归解决方案进行简单四舍五入,进而可以通过遗传算法进行微调。实证评估在121个真实世界数据集上进行。所提出的方法比传统的RVFL网络展示了更高的平均准确度,同时速度快2.5倍,能耗减少十一倍(典型的FPGA网络上的网络)。最后,当两个网络都被限制在固定的能耗预算时,所提出方法的准确度显著优于有限精度RVFL网络。

尽管这项工作只关注了分类任务,但值得一提的是,形成隐藏层激活的方法应该被视为一种基于高维随机投影的通用结构化表示方案,它允许直接学习复杂的非线性函数。因此,未来工作的一个有希望的方向是开发类似于这种表示的容量理论的分析理论[13],该理论将基于非线性函数的复杂性、输入和输出的数量以及隐藏神经元的数量和它们的分辨率来关联近似的质量。

最后但同样重要的是,我们推测基于密度的编码将有助于开发其他神经网络的资源高效版本。例如,正如最近在[30]中所展示的,对卷积神经网络的初始层进行二值化处理可能会轻易损害其准确度。我们期望基于密度的输入特征编码将解决这一问题。

原文链接:https://arxiv.org/abs/1909.09153‍‍‍‍