张玺 路编译

不使用先验知识与复杂训练策略,从头训练二值神经网络!

来自德国哈索普拉特纳研究院 (Hasso Plattner Institute) 的研究者近日发布论文,介绍了他们提出的训练二值神经网络新方法。该方法不使用以往研究通过全精度模型得到的先验知识和复杂训练策略,也能实现目前准确率最佳的二值神经网络。

引言

现在,日常生活中许多工作的自动化处理已取得重要的研究进展──从家用扫地机器人到工业生产线机器人,许多工作已经实现高度自动化。其他技术(如自动驾驶汽车)目前正处于发展过程中,并且强烈依赖于机器学习解决方案。智能手机上采用深度学习技术处理各种任务的 APP 数量一直保持快速增长,且未来仍将继续增长。所有这些设备的算力有限,通常要努力最小化能耗,但却有许多机器学习的应用场景。

以全自动驾驶汽车为例,保证实时图像处理同时达到高精度是系统关键。此外,由于该模式下很难保证稳定的低延迟网络连接,因此图像处理系统需配置于汽车内部。该配置要求虽然会限制可支配计算力及内存,但也将从低能耗中获取收益。最有希望解决上述问题的技术之一就是二值神经网络(Binary Neural Network,BNN)。在 BNN 中,卷积神经网络(CNN)中常用的全精度权重被替换成二值权重。这使得存储空间理论上可压缩 32 倍,使 CPU only 架构能够完成更高效的推断。

本文的研究成果概括如下:

  • 本文提出了一种训练二值模型的简单策略,不需要使用预训练全精度模型。

  • 实验表明,该策略并未得益于其他常用方法(如 scaling factor 或自定义梯度计算)。

  • 本文表明快捷连接(shortcut connection)数的增加能够显著改善 BNN 的分类准确率,并介绍了一种新方法:基于密集快捷连接(dense shortcut connection)创建有效的二值模型。

  • 针对不同模型架构及规模,本文提出的方法较其他方法达到当前最优的准确率

网络架构

在研究模型架构前,我们必须考虑 BNN 的主要缺点:首先,相较于全精度网络,BNN 的信息密度理论上是前者的 1/32。研究表明,32 位与 8 位网络之间的差别不大,且 8 位网络的准确率水平几乎与全精度网络相同 [3]。然而,bit-width 降低到 4 位甚至 1 位(二进制)时,准确率会明显下降 [8, 20]。因此,需要借助其他技术降低精度损失,例如增加通过网络的信息流。我们认为主要有三种方法能够帮助保存信息,且无需担心网络二值化

方法一:二值模型应该尽可能在网络中多使用快捷连接,使靠后的网络层能够使用靠前的网络层所获得的信息,不用担心二值化引起的信息损失。残差网络(Residual Network)[4] 与密集连接网络(Densely Connected Network)[7] 的全精度模型架构都使用了类似快捷连接。此外,网络层之间连接数的增加会改善模型性能,尤其是二值网络。

图 2:不同网络架构的单个构造块(加粗黑线的长度代表滤波器数量)。(a)带有瓶颈层架构的初始 ResNet 设计。少量滤波器会降低 BNN 的信息量。(b)无瓶颈层架构的 ResNet 设计。滤波器数量增加,但这时卷积层由 3 变为 2。(c)添加额外快捷连接的 ResNet 架构 [15]。(d)初始 DenseNet 设计,第二层卷积操作中出现瓶颈层。(e)无瓶颈层架构的 DenseNet 设计,两次卷积操作变成一次 3 × 3 卷积操作。(f)本文提出的 DenseNet 设计,具备 N 个滤波器的卷积操作被替换成两个层,每一层各使用 N/2 个滤波器。

方法二:与方法一思路相同,包含瓶颈层的网络架构始终是一项亟待解决的挑战。瓶颈层架构减少了滤波器数量,显著降低了网络层间的信息通路,最终使得 BNN 的信息流变少。因此,我们假定消除瓶颈层或增加瓶颈层的滤波器数量都能使 BNN 获取最好的结果。

方法三:将二值网络中的某些核心层替换为全精度层,以保存信息(提高模型准确率)。原因如下:如果网络层完成二值化,取消快捷连接,则(二值化产生的)信息损失无法在后续的网络层中复原,这将影响第一层(卷积层)和最后一层(全连接层,输出神经元数与类别数相同)。第一层为整个网络产生初始信息,最后一层使用最终信息进行预测。因此,我们在第一层使用全精度层,最后一层使用全网络架构。关于该决策,我们采用了之前研究 [16,20] 的成果,其通过实验验证了第一层和最后一层的二值化将大幅降低准确率,且节省的内存及计算资源非常有限。深度网络的另一个关键部分是下采样卷积,其将网络先前收集的所有信息转化为规模较小且具备更多通道的特征图(该卷积通常步幅为 2,输出通道数两倍于输入通道数)。下采样过程中损失的的任何信息将不可恢复。因此,即便会增加模型规模和运算次数,下采样层是否应该被替换为全精度层始终需要仔细权衡。

图 3:ResNet 与 DenseNet 的下采样层。加粗黑线表示下采样层,它可被替换为全精度层。如果在 DenseNet 中使用全精度下采样层,则需要加大减少通道数量的缩减率(虚线表示没有减少的通道数量)。

表 1:在 MNIST 和 CIFAR-10 数据集上,本文提出的二值模型的性能与 Yang 等人 [18] 结果的对比。

表 7:在 ImageNet 数据集上,本文方法与当前最优二值模型的对比。所有方法都在下采样部分的卷积层中使用了全精度权重

论文:Training Competitive Binary Neural Networks from Scratch

  • 论文链接:https://arxiv.org/abs/1812.01965

  • 代码链接:https://github.com/hpi-xnor/BMXNet-v2

摘要:卷积神经网络已在不同应用领域获得令人瞩目的成就。现有文献已提出许多在移动端和嵌入式设备中应用 CNN 模型的方法。针对计算力低的设备,二值神经网络是一项特别有前景的技术。然而,从零开始训练准确的二值模型仍是一项挑战。之前的研究工作通常使用全精度模型产生的先验知识与复杂的训练策略。本研究关注如何在不使用类似先验知识与复杂训练策略的前提下,改善二值神经网络的性能。实验表明,在标准基准数据集上,本文提出的方法能达到当前最优水平。此外,据我们所知,我们首次成功地将密集连接网络架构应用于二值网络,提高了当前最优的性能。

理论神经网络哈索普拉特纳研究院
4
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

二值化技术

二值化是将像素图像转换为二进制图像的过程。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

自动驾驶汽车技术

自动驾驶汽车,又称为无人驾驶汽车、电脑驾驶汽车或轮式移动机器人,是自动化载具的一种,具有传统汽车的运输能力。作为自动化载具,自动驾驶汽车不需要人为操作即能感测其环境及导航。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

先验知识技术

先验(apriori ;也译作 先天)在拉丁文中指“来自先前的东西”,或稍稍引申指“在经验之前”。近代西方传统中,认为先验指无需经验或先于经验获得的知识。先验知识不依赖于经验,比如,数学式子2+2=4;恒真命题“所有的单身汉一定没有结婚”;以及来自纯粹理性的推断“本体论证明”

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

图像处理技术

图像处理是指对图像进行分析、加工和处理,使其满足视觉、心理或其他要求的技术。 图像处理是信号处理在图像领域上的一个应用。 目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理。

MXNet技术

MXNet是开源的,用来训练部署深层神经网络的深度学习框架。它是可扩展的,允许快速模型训练,并灵活支持多种语言(C ++,Python,Julia,Matlab,JavaScript, Go,R,Scala,Perl,Wolfram语言)

推荐文章
暂无评论
暂无评论~