文摘
近年来,高成本的实现深层神经网络由于其巨大的模型尺寸和参数的复杂性使得这一个具有挑战性的问题设计轻量级模型,降低应用成本。现有的关键神经网络遭受大内存占用和大数量的可训练的参数。我们提出一个轻量级的关键卷积神经网络(CBCNN)模型来解决多类分类/识别问题。我们使用二进制权重和激活。我们实验表明模型只使用0.59米可训练的params足以达到92.94%的准确率GTSRB数据集,它也有类似的表现与其他方法相比MNIST Fashion-MNIST数据集。因此,大多数算术运算与逐位运算简化,因此使用内存大小和内存访问都减少了32倍。此外,颜色信息被删除,这也大大降低了训练时间。所有这些在一起让我们的架构上运行有效、实时简单cpu(而不是gpu)。通过我们获得的结果,我们表明,尽管简化和颜色信息删除,我们的网络实现类似的表现相比,古典cnn在训练和较低成本嵌入式部署。
1。介绍
深层神经网络(款)正在每天巨大的进步,在许多应用领域。计算机视觉、自然语言处理和许多其他领域受益于这些发展打开大门,新的困难问题的解决办法。卷积神经网络(cnn)是最常见的方法使用这些天。cnn解决各种视觉问题,如图像分类、识别,或检测。新的CNN模型不断提出和改进,如ResNeXt [1]和SK-Net [2];然而,他们的体系结构并没有改变在过去的十年。主要的改进是可能由于计算能力的可用性:基于gpu的机器的使用以及相关的记忆的增加允许cnn实现出色的表演。一个自然的问题引起,有可能达到相似或更好的表演在一个较低的计算成本吗?也就是说,有可能有cnn或等价,跑步或者更便宜的机器和更少的内存(通常是手机)和类似的结果吗?这个新的最近开放的问题已经解决,人们开始开发基于模型的压缩和二值化的方法。Yoshua Bengio在他的开创性工作3]介绍了神经网络训练的关键方法(bnn)。事实上,在训练阶段,二进制权重和激活取代真实的梯度操作cnn。这大大减少了使用内存大小,访问时间,和取代大多数算术运算与逐位运算,这完全符合最初的追求以更低的成本保持相同的效果。
我们的工作需要灵感来自BNN [3]。我们主要集中在两点:(i)找到减少可训练的条件参数,(ii)推导最好的预处理操作,所有一起保持最高的表演可能以最低的成本。此外,我们还显示颜色信息是没有必要的,图像的亮度足够达到类似的表演古典cnn执行相同的任务。我们获得良好的实验结果。这双压缩方法有以下三个优点:(1)培训过程中有效地减少计算量,加快模型的训练速度。(2)大大减少了内存占用的空间模型。(3)大大减少了实际应用程序部署成本。
2。相关工作
2.1。信息丢失
与优化二进制卷积过程直接层,LAB2 [4)直接认为二进制损失和影厅牛顿算法适用于二进制权重。CI-BCNN [5),通过学习加强图模型,挖掘通道级互动,和流行迭代数,减少在二进制符号不一致特征图和保留了输入样本信息。LNS [6]提出了预测二进制重量通过监测噪声学习和培训的二元函数。ProxyBNN [7)利用基础和协调子矩阵形成权重矩阵二进制转换之前,虽然IR-NET [8],RBNN [9],IA-BNN [10],SLB [11],BBG-NET [12优化,重塑、激活和分配权重的二进制转换过程。
2.2。网络结构
现有的二进制古典研究网络,存在一些问题,比如过多的记忆,更多的参数,复杂网络模型结构和相对较高的应用成本由于继承传统神经网络的结构。此外,不同的关键神经网络体系结构不仅会影响性能的关键卷积神经网络,但也会影响实际的硬件部署成本。随后研究人员进行了一系列增强BNN [3),如BBG-Net [12]和Real-to-Bin [13),旨在提高ResNet和其他高性能的传统网络的准确性。DMS (14)有效地缩小了精度不能网络之间的差距。蝙蝠(15],bna [16],和合本[17],high-capacity-expert [18)提出了专业NAS方法设计架构搜索BNN和比较相似网络模型的准确性和一些传统网络的关键,如ResNet。与此同时,high-capacity-expert [18)适用条件计算方法称为专家BNN卷积,卷积集团结合上述方法。MoBiNet-Mid [19)和关键MobileNet [20.)提出一种新的、更轻BNN结构参考Mobilenet-V1更好的精度性能。MeliusNet [21]和ReActNet [22)设计一个新的BNN模型结构与少浮点和二进制操作(失败/打)计算成本,比不能轻量级MobileNet更好的精度。BNN-BN-free [23)包含BN-free (24)概念,提出了一种方法,构建网络体系结构没有批规范化,已取代比例因子。FracBNN [25)合理延伸ReActNet的拓扑结构,建构网络阻塞。BCNN [26)设计一个特定的网络结构专为ImageNet数据分类的任务,和它的模型比MeliusNet轻量级和ReActNet。二进制操作基于经典的网络有时浪费计算资源在处理一些实用的小型工程应用。同时,该模型需要更多的内存空间和增加应用程序的成本。我们得到了很多灵感先前的研究的基础上,我们设计一个轻量级CBCNN模型以满足现实的硬件部署问题。
2.3。培训策略
培训计划和技术的选择也会影响神经网络的最佳精度。主要/子公司(27)提出了一个方法,修剪BNN过滤器。防喷器(28]和UniQ [29日)每提出一个新的培训BNN优化器。指的是彩票假说(30.],MPT [31日)设计一个简单的学习计划BNN高精度修剪和量化精度CNN用随机加权。Real-to-bin [13)设计一个两步训练策略使用的方法转移学习训练BNN通过学习真正价值培训网络。通过实施培训战略,高度准确的模型,如ReActNet [22],high-capacity-expert [18],BCNN [26最终是训练有素的。此外,BNN-stochastic [32)提出了一种放松的方法随机方法,提高CIFAR-10数据集的准确性。上述研究为关键的发展奠定了坚实的基础网络,大大降低了计算复杂度,逐步提高了精度。面临硬件部署应用程序的需要,顺序模型双压缩关键CBCNN卷积神经网络结构是研究网络结构更轻。
2.4。CBCNN(压缩关键卷积神经网络)
CBCNN是一个连续的模型结构,使模型更简单。我们binarize网络权重和激活功能参与误差反向传播。在培训期间,关键权重和激活参与计算梯度值。在做预测,网络的权重和激活值是二进制(−1 / + 1)。
本节描述我们提出压缩关键卷积神经网络(CBCNN)框架和相关培训的细节。
2.5。模型
我们CBCNN的核心目标是合理压缩BCNN的参数使模型更轻量级的。CBCNN包含三种类型的模块,我们命名为二进制块1,二进制块2,图像压缩块如图1,二进制块1包含Binary_C(二进制卷积层),MaxPooling层以及一批标准化层,和二进制块2包含Binary_D(二进制致密层)和一批标准化层。此外,我们设计图像压缩块有效压缩数据集。我们的网络体系结构如图2,为不同的输入设置不同的块大小。我们评估模型与三两个不同大小的数据集,32321、28281,28281,分别。
(一)
(b)
(c)
(一)
(b)
Binary_C层是用来提取特征。我们进行一系列的实验配置不同的块,最后根据实验结果选择模型结构合理。内核大小是33,池的大小是22。
2.6。培训
随着GTSRB [33]数据集包含RGB彩色图像,我们使用图像压缩块进行一些数据预处理前培训。输入图像从RGB转换为YUV,和两个颜色通道U和V移除,而亮度通道Y保存,作为网络的输入。同时,我们使用直方图均衡化和规范功能训练的方法。此外,直方图均衡化的最终映射方程所示(1),是目标像素值,是原始的像素值,是灰色的水平,的概率是在原始图像,是图像中像素的总数,然后呢代表像素的数量在原始图像。然后,标准化特性方法如方程所示(2),图像的平均值,是图像矩阵,标准方差,代表图像的像素值。Fashion-MNIST [34]和MNIST [35),通道的灰度图像,我们不训练之前进行额外的处理。
我们介绍的实现原则Binary_act(二进制激活函数),Binary_C(二进制卷积层),和Binary_D(二进制致密层),分别。单层梯度的计算规则CBCNN模型中我们定义算法所示1,在那里x输入的重量,x是当前输入的梯度,y输出的重量,y是输出的梯度。算法的过程1如图3。
(一)
(b)
|
为了训练CBCNN模型的每一层根据算法1,我们使用“hard_sigmoid”功能如下:
CBCNN模型的训练过程中,为了实现向前传播算法和反向传播算法(算法1),我们定义中间函数方程“十字架”(4)。“S_G”意味着停止梯度。
我们定义的激活函数Binary_act CBCNN模型(方程(5),“S_G”意味着停止梯度和“h_s”是指“hard_sigmoid”功能在方程(3)。
至于Binary_C,我们提出的函数(方程(6))binarize CBCNN卷积的内核层模型。的值是卷积的内核层,“S_G”意味着停止梯度和“h_s”是指“hard_sigmoid”功能(方程(3))。通过函数方程(6),我们(−之间转换的价值H1,H1)- - - - - -H1或H1。
至于Binary_D,我们提出的函数(方程(7)binarize内核CBCNN致密层的模型,在致密层的价值内核,“S_G”意味着停止梯度和“h_s”是指“hard_sigmoid”功能(方程(3))。通过函数方程(7),我们(−之间转换的价值H2,H2)- - - - - -H2或H2。
3所示。实验结果
我们测试了我们的模型在三种不同的数据集(GTSRB [33],Fashion-MNIST [34],MNIST [35]),相比其他使用卷积和二进制方法的神经网络模型。
3.1。GTSRB测试和分析
为了更好地模拟实际工程中的分类问题,在本文中,我们选择一个更有挑战性和实际数据集(43类交通标志)来评估我们的模型的性能。我们选择德国交通标志识别基准(GTSRB) [33),一个数据库提供的交通标志识别INI研究所的神经计算在德国。最后,51840张图片,超过1700的情况下,共有43类。根据交通标志的数量每个类的照片,我们合理地把它们分成训练集和验证集。我们有一个与39209个样本训练集和验证集12630个样本。据我们所知,这是第二条GTSRB数据集神经网络评估的关键。我们的每个类和数量分布的数据训练集在图所示4。我们的数据验证每个类和数量分布的设置如图5。GTSRB数据集,我们比较的方法36- - - - - -40),快R-CNN [415],传统方法(42在测试(12630张照片)。结果如表所示1。
(一)
(b)
(一)
(b)
我们设置一些训练参数,时代是1000。我们使用批处理规范化minibatch大小200加快培训。优化器使用“亚当”和损失函数使用“平方铰链”。我们使用的学习速率作为初始值10−3和结束值为10−4。我们获得的准确性和损失是图所示6,模型的精度达到92.94%。在表1,我们可以清楚地看到,CBCNN优于五个传统方法(42),精度高于1.14%更快R-CNN [41),只有6.65%低于当前最先进的结果(37]。然而,我们的模型只有6.81 MB的内存,可训练的params只有0.59,逐位运算可以同时进行。
(一)
(b)
3.2。Fashion-MNIST测试和分析
Fashion-MNIST [34)是由对象组成的数据集相关的服装、鞋、包。的训练集和测试集Fashion-MNIST一致分布MNIST的训练集和测试集。据我们所知,这是第一条Fashion-MNIST数据集神经网络评估的关键。我们比较测试图像(10000)与其他先进的方法(43- - - - - -48)Fashion-MNIST数据集,结果如表所示2。
我们设置一些训练参数,时代是500。我们使用批处理标准化的minibatch大小50加快培训。优化器使用和使用的损失函数是“亚当的平方铰链。“我们使用的学习速率作为初始值10−3和结束值为10−4。我们获得的准确性和损失是图所示7,模型的精度达到92.86%。在表2,我们可以清楚地看到,CBCNN只有4.05%的准确性低于当前的最佳方法(48]。然而,我们的模型只有1.89 MB的内存,可训练的params只有0.48,逐位运算可以同时进行。
(一)
(b)
3.3。MNIST测试和分析
MNIST是基准图像分类数据集35]。它由28×28灰度图像,代表数字0到9之间,包含了60000 10000年训练集和测试集。在BNN [3),二进制MLP方法用于获得MNIST最好的准确率99.04%,但中长期规划的设计使模型占用大量的内存。我们比较测试结果CBCNN方法与其他方法,结果如表所示3。
我们的实验参数配置是一样的Fashion-MNIST测试。我们获得的准确性和损失是图所示8,模型的精度达到99.32%。在表3,我们可以看到最好的CBCNN精度是0.28%高于当前的最好方法3在神经网络的关键。此外,我们的模型只有1.89 MB的内存,可训练的params只有0.48,逐位运算可以同时进行。
(一)
(b)
4所示。讨论
我们分析的模型性能CBCNN如下。
4.1。内存大小和访问
32位款相比,CBCNN 32倍更少的内存和32倍更少的内存访问。这将有效地减少能源消耗超过32倍。与此同时,在网络层和训练数据是有效地压缩,使用内存会大大降低,这是更适合嵌入式部署。
4.2。向前传递效率
在传球前进(运行时间和培训时间),CBCNN大大减少了内存大小和访问和取代大多数算术运算与逐位运算。我们认为CBCNN可以减少60%的时间复杂度在专用硬件3]。
4.3。二进制激活和权重
在CBCNN,网络的激活和权重都是限于−1或+ 1。因此,大量的32位浮点操作被比特取代操作,因此实际应用成本大大降低。
4.4。二进制过滤器
CBCNN二进制过滤器,和2 d过滤器的大小3×3重复自己。如果使用了专用的硬件和软件,我们可以应用独特的2 d地图上每个特性过滤器并将结果添加到获得每个三维滤波器的卷积结果(3]。
根据实验结果,我们模型的三个数据集的内存大小是6.81 MB, 1.89 MB,和1.89 MB,分别,这足以让我们的模型是部署在非常有限的内存芯片。另外,我们的模型的逐位运算工作,这是足以适用于硬件电路只包含低内存元素。减少模型参数的操作大大减少了应用程序的成本模型在移动终端设备。同时,我们为开发人员提供一个关键的双压缩后卷积神经网络模型,以便开发人员可以合理配置二进制块的数量根据自己的项目需求。
5。结论
在本文中,我们提出一个轻量级的神经网络CBCNN(压缩关键卷积神经网络)来解决图像multiclassification识别的问题。我们压缩数据集和关键卷积神经网络结构在处理multiclassification问题。CBCNN获得最先进的结果的关键在GTSRB卷积神经网络(33],Fashion-MNIST [34],MNIST [35]。此外,在前进的过程中通过(运行和培训),CBCNN模型取代大多数算术运算与逐位运算,减少了内存的大小和内存访问32倍。此外,双压缩方法(网络结构和数据集)大大减少了内存占用的空间模型,使潜在的神经网络加载到便携式设备已经严重内存有限,哪个更有利于神经网络嵌入式部署。实验结果表明,CBCNN精度略低于了卷积神经网络在处理multiclassification问题,但在硬件部署CBCNN具有更低的成本。高性能的神经网络结构有时会导致浪费计算资源在处理一些实际工程问题。此外,过度依赖高性能硬件增加应用程序的成本。在未来,我们将继续提高性能的关键神经网络通过改变网络结构和训练策略。
数据可用性
我们的代码是可用的https://github.com/AI-Xuan/CBCNN。所有的实验数据都是公开的数据集。
的利益冲突
作者宣称没有利益冲突。
作者的贡献
玄气和Zegang太阳同样这项工作。
确认
这项工作得到了国家自然科学基金(批准号61973334)。