CN117474051A - 二值量化方法、神经网络的训练方法、设备以及存储介质 - Google Patents
二值量化方法、神经网络的训练方法、设备以及存储介质 Download PDFInfo
- Publication number
- CN117474051A CN117474051A CN202210836913.1A CN202210836913A CN117474051A CN 117474051 A CN117474051 A CN 117474051A CN 202210836913 A CN202210836913 A CN 202210836913A CN 117474051 A CN117474051 A CN 117474051A
- Authority
- CN
- China
- Prior art keywords
- neural network
- binary
- data
- quantization
- quantized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 212
- 238000000034 method Methods 0.000 title claims abstract description 211
- 238000013139 quantization Methods 0.000 title claims abstract description 198
- 238000012549 training Methods 0.000 title claims abstract description 67
- 238000009826 distribution Methods 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims description 96
- 230000008569 process Effects 0.000 claims description 62
- 230000015654 memory Effects 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 23
- 230000004913 activation Effects 0.000 claims description 11
- 238000013527 convolutional neural network Methods 0.000 description 98
- 239000010410 layer Substances 0.000 description 93
- 238000010586 diagram Methods 0.000 description 20
- 238000001514 detection method Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 238000007667 floating Methods 0.000 description 11
- 230000001133 acceleration Effects 0.000 description 10
- 101100153586 Caenorhabditis elegans top-1 gene Proteins 0.000 description 8
- 101100370075 Mus musculus Top1 gene Proteins 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 238000002679 ablation Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000012633 leachable Substances 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 238000011282 treatment Methods 0.000 description 3
- 238000009844 basic oxygen steelmaking Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013140 knowledge distillation Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 108091028043 Nucleic acid sequence Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012014 frustrated Lewis pair Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000009022 nonlinear effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- -1 tensor Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本申请用于提供一种二值量化方法、神经网络的训练方法、设备以及存储介质。二值量化方法包括:确定神经网络中的待量化数据;确定所述待量化数据对应的量化参数,所述量化参数包括缩放系数和偏移量;基于所述缩放系数和所述偏移量确定所述待量化数据对应的二值化上限值和二值化下限值;基于所述缩放系数和所述偏移量对所述待量化数据进行二值量化,以将所述待量化数据量化为所述二值化上限值或所述二值化下限值。该方法通过使用一个自适应的缩放系数和偏移量来控制生成二值量化最终的二值集合,将全精度的待量化数据量化到任意二值以灵活地适应不同的数据分布,能够提升二值量化特征的表达能力,进而提升二值神经网络的性能。
Description
技术领域
本申请涉及机器学习技术领域,尤其涉及一种二值量化方法、神经网络的训练方法、设备以及存储介质。
背景技术
近年来,深度神经网络(Deep Neural Networks,DNN)因其强大的表征学习能力而被应用到各种任务上,如计算机视觉,自然语言处理和语音识别等等。为了进一步提升模型准确率,模型的结构被设计的越来越复杂,单个模型对内存和计算资源的需求也日益增大,使得移动端和嵌入式端的模型部署变得极其困难。于是大量的技术被提出用于压缩和加速神经网络,包括低秩分解、剪枝、量化和知识蒸馏等。其中量化方法因为通过降低表示每个参数的比特数,从而能够达到显著减少网络的内存占用,节省能耗并降低延时的效果而受到了广泛的关注。
二值神经网络(Binarized Neural Networks,BNN)是量化方法的一个特殊应用,它将模型中的权重和中间特征都用1比特数进行表示,并用同或(xnor)位操作和计数(popcount)位操作分别代替传统神经网络中的浮点乘法和累加操作,从而可以实现几十倍的推理加速和内存节省。现有的二值神经网络一般使用符号函数将权重和中间特征二值量化为固定值,如{-1,+1}。例如,Rastegari等人提出最小化量化误差的新型二值量化方法,Qin等人提出最小化权重量化误差和信息熵损失的两步量化方式和近似梯度的渐进训练方法,Liu等人提出显式学习中间特征形状和偏移的新网络结构,以及Wang等人提出诱使中间特征稀疏化,然后使用可训练阈值将其量化到{0,+1}集合的新型二值量化方式。但是这些将不同分布的浮点数都量化到一个固定的二值集合的方式大大限制了二值神经网络的表达能力,准确率相差也较大,从而限制了二值神经网络在更复杂任务上的应用,如目标检测、语义分割和目标跟踪等。
发明内容
本申请的一些实施方式提供了一种二值量化方法、神经网络的训练方法、设备以及存储介质,以下从多个方面介绍本申请,以下多个方面的实施方式和有益效果可互相参考。
第一方面,本申请实施方式提供了一种二值量化方法,应用于电子设备,所述方法包括:
获取神经网络中的待量化数据;
确定所述待量化数据对应的量化参数,所述量化参数包括缩放系数和偏移量;
基于所述缩放系数和所述偏移量确定所述待量化数据对应的二值化上限值和二值化下限值;
基于所述缩放系数和所述偏移量对所述待量化数据进行二值量化,以将所述待量化数据量化为所述二值化上限值或所述二值化下限值。
根据本申请实施方式,提出了一种自适应的二值量化方式,摒弃了将二值量化之后的取值范围局限在{0,+1}或者一对相反数的固定二值集合上的限制,通过使用一个自适应的缩放系数和偏移量来控制生成二值量化最终的二值集合,将全精度的待量化数据(包括权重参数和中间特征)量化到任意二值以灵活地适应不同的数据分布,能够提升二值量化特征的表达能力,从而提升二值神经网络的表达能力,在增加少量计算量和参数量的前提下,有效提升了二值神经网络的性能,有利于二值神经网络在不同任务中的推广应用。
在一些实施方式中,所述待量化数据为所述神经网络中的第一权重参数;
所述确定所述第一权重参数对应的量化参数包括:
基于所述神经网络中的各个权重参数的数据分布确定对应的均值和标准差;
将所述均值作为所述第一权重参数对应的偏移量;以及,
根据所述标准差确定所述第一权重参数对应的缩放系数。
在一些实施方式中,所述二值化上限值为所述缩放系数和所述偏移量之和;以及,
所述二值化下限值为所述缩放系数的相反数与所述偏移量之和。
根据本申请实施方式,对于权重参数而言,通过最小化全精度权重参数和二值化权重参数之间的KL散度(Kullback-Leibler Divergence),可以得到权重参数对应的缩放系数和偏移量的解析解。这种根据原始数据分布自适应地确定缩放系数和偏移量,进而确定最佳的二值集合的方式,能够去除二值集合的固定约束,得到随数据分布自适应修正的最优二值化权重,使得二值量化之后的数据可以适应不同的原始分布并增强二值化特征的表达能力。
在一些实施方式中,所述待量化数据为所述神经网络中的中间特征;并且,
作为待量化数据的所述中间特征对应的偏移量和缩放系数是从所述神经网络中获取的。
根据本申请实施方式,对于中间特征而言,同时考虑了中间特征分布的偏移和幅值,通过在神经网络中引入可学习的缩放系数和偏移量,在模型训练过程中可以通过梯度优化的方式进行更新,而在正向推理过程中被固定,相比符号函数能够提供更丰富的纹理特征,从而进一步提升二值神经网络的精度。
在一些实施方式中,所述基于所述缩放系数和所述偏移量对所述待量化数据进行二值量化包括:
计算所述待量化数据与所述偏移量之间的差值,并确定所述差值与所述缩放系数的比值;
将所述比值与预设量化阈值进行比较,得到比较结果;
根据所述比较结果将所述待量化数据转化为所述二值化上限值或所述二值化下限值。
根据本申请实施方式,通过提出一种新型二值量化器,将神经网络中的权重参数和中间特征二值量化到自适应的二值集合中,操作简单,对功耗、内存以及其他计算资源的需求量减少,有利于整体性能的提升。
第二方面,本申请实施方式提供了一种神经网络的训练方法,应用于电子设备,所述方法包括:
获取待训练的神经网络及对应的训练数据集;
对于所述训练数据集,交替进行所述神经网络的正向传播过程和反向传播过程,以调整所述神经网络的参数,直至所述神经网络对应的损失函数收敛;
其中,在所述正向传播过程中,采用本申请第一方面任一实施方式提供的二值量化方法对所述神经网络中的待量化数据进行二值量化,得到对应的二值神经网络,并基于所述二值神经网络进行所述正向传播过程;
将所述损失函数收敛时所述神经网络对应的二值神经网络确定为训练得到的神经网络。
根据本申请实施方式,采用自适应的二值量化方式,通过使用一个自适应的缩放系数和偏移量来控制生成二值量化最终的二值集合,将全精度的待量化数据(包括权重参数和中间特征)量化到任意二值以灵活地适应不同的数据分布,能够提升二值量化特征的表达能力,从而提升二值神经网络的表达能力,在增加少量计算量和参数量的前提下,提升了二值神经网络的精度,有效减少了二值神经网络与全精度的神经网络之间的性能差距,有利于将二值神经网络进一步推广到更复杂任务上。
并且,根据本申请实施方式训练得到的神经网络为具有量化权重参数的二值神经网络,能够减小模型的大小,降低存储和内存带宽需求,降低计算代价,使得训练得到的神经网络能够部署到资源受限的设备中,有利于神经网络在边缘计算设备上的应用。
在一些实施方式中,所述神经网络采用Maxout函数作为激活函数;
所述方法进一步包括:
在所述反向传播过程中,确定所述损失函数对所述Maxout函数中参数的第一梯度,并根据所述第一梯度对所述Maxout函数中的参数进行调整。
根据本申请实施方式,通过使用Maxout函数作为神经网络中的激活函数,能够进一步增强网络的非线性/表达能力。并且Maxout函数正负半轴都增加了可学习的参数,在模型训练过程中可以通过梯度优化的方式进行更新,具有更强大的非线性能力,可以进一步增强网络的特征学习能力。
在一些实施方式中,所述待量化数据包括所述神经网络中的各个权重参数和中间特征;
所述方法进一步包括:
在所述反向传播过程中,基于所述第一梯度分别确定所述损失函数对各个所述权重参数的第二梯度,以及对与所述中间特征对应的量化参数的第三梯度;
根据所述第二梯度对所述神经网络中的各个所述权重参数进行调整,以及根据所述第三梯度对所述神经网络中与所述中间特征对应的量化参数进行调整。
根据本申请实施方式,在模型训练过程中可以通过梯度优化的方式对所述神经网络中的各个所述权重参数,以及所述神经网络中与所述中间特征对应的量化参数进行更新,以完成所述神经网络的训练,从而可以提高神经网络的训练效果,保证训练得到的神经网络具有较高的准确性。
第三方面,本申请实施方式提供了一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令;处理器,当处理器执行存储器中的指令时,可使得电子设备执行本申请第一方面任一实施方式提供的二值量化方法或者执行本申请第二方面任一实施方式提供的神经网络的训练方法。第三方面能达到的有益效果可参考本申请第一方面任一实施方式的有益效果或者参考本申请第二方面任一实施方式的有益效果,此处不再赘述。
第四方面,本申请实施方式提供了一种计算机可读存储介质,计算机可读存储介质上存储有指令,该指令在计算机上执行时使得计算机执行本申请第一方面任一实施方式提供的二值量化方法或者执行本申请第二方面任一实施方式提供的神经网络的训练方法。第四方面能达到的有益效果可参考本申请第一方面任一实施方式的有益效果或者参考本申请第二方面任一实施方式的有益效果,此处不再赘述。
附图说明
图1示出了本申请一个实施例提供的卷积神经网络的结构示意图;
图2示出了本申请一个实施例提供的二值神经网络的应用示意图;
图3示出了根据一些实施例提供的二值量化方法的示意图;
图4示出了本申请一个实施例提供的电子设备的结构示意图;
图5示出了本申请一个实施例提供的电子设备的软件结构框图;
图6示出了本申请一个实施例提供的一种二值量化方法的流程示意图;
图7a和图7b示出了本申请一个实施例提供的新型二值量化器的示意图;
图7c示出了本申请一个实施例提供的权重参数对应的二值量化器的示意图;
图7d示出了本申请一个实施例提供的中间特征对应的二值量化器的示意图;
图8示出了本申请一个实施例提供的中间特征的二值量化结果的示意图;
图9示出了本申请一个实施例提供的一种神经网络的训练方法的流程示意图;
图10示出了本申请一个实施例提供的位操作加速运算的示意图;
图11示出了本申请一个实施例提供的非线性函数的示意图;
图12示出了本申请一个实施例提供的Bolt测速结果对比图;
图13示出了本申请一个实施例提供的Top-1准确率对比图;
图14示出了本申请一个实施例提供的一种二值量化装置的结构示意图;
图15示出了本申请一个实施例提供的一种神经网络的训练装置的结构示意图。
具体实施方式
本申请的说明性实施例包括但不限于一种二值量化方法、神经网络的训练方法、设备以及存储介质。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。为了更清楚理解本申请实施例中的方案,下面首先对本申请涉及的术语进行简要说明:
神经网络:神经网络是由大量的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,是人工智能的核心,属于人工智能的一个分支。神经网络的应用领域十分广泛,例如:数据挖掘、数据分类、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人运用等。其中,神经网络包括但不限于卷积神经网络(Convolutional Neural Networks,CNN)、循环神经网络(Recurrent Neural Network,RNN)、深度神经网络等。
卷积神经网络:是一种具有多个神经网络层的神经网络,每个神经网络层由多个二维平面组成,而每个平面由多个独立神经元组成,每个平面的多个神经元共享权重,通过权重共享可以降低神经网络中的参数数目。目前,在卷积神经网络中,处理器进行卷积操作通常是将输入信号特征与权重参数的卷积,转换为特征图矩阵与权重参数矩阵之间的矩阵乘运算。
二值神经网络:是一种在浮点型的神经网络的基础上,将其权重参数和中间特征用1比特数进行表示得到的神经网络。二值神经网络的网络结构与浮点型的神经网络相同,主要在梯度下降、权重更新、卷积运算上做了一些优化处理。
示例性地,图1示出了本申请一个实施例提供的卷积神经网络的结构示意图。如图1所示,卷积神经网络包括输入层110、卷积层120、激活层130,池化层140,全连接层150和输出层160。其中,卷积层120的功能是对输入数据(即中间特征)进行特征提取,得到多个特征图。卷积层120内部包含多个卷积核,组成卷积核的每个元素都对应一个权重参数和一个偏差值。卷积核在工作时,会有规律地扫过输入数据,在感受野内对输入数据做矩阵元素乘法求和并叠加偏差量。激活层130可以用于对卷积层120输出的各个特征图进行激活,以提高后续层的运算速度。池化层140可以对激活层130输出的特征图进行特征选择和信息过滤,以转换为固定大小的特征图。全连接层150可以用于对池化层140输出的特征图进行非线性组合以得到输出,即全连接层150本身不被期望具有特征提取能力,而是试图利用现有的高阶特征完成学习目标。输出层160可以用于使用逻辑函数或归一化指数函数输出最终结果。
图1所示的卷积神经网络可以应用于图像分类、目标检测等问题。对于图像分类问题,输出层160可以输出分类标签,所述分类标签可以包括:风景、人物、动物等。对于目标检测问题,输出层160可以输出检测目标对应的分类标签和感兴趣区域位置。应理解,上述神经网络各个神经网络层的输入数据或输出数据可以为矩阵、张量、向量等,本申请实施例对此不作限定。
对于卷积神经网络,从逻辑上而言,一般情况下包括多层卷积层,每一层卷积层都有对应的卷积模型(卷积模型可以理解为计算模型),即每一层卷积层都有对应的权重参数。例如,卷积神经网络的第i层卷积层(第i层卷积层为逻辑上的卷积层的概念)的卷积模型主要可以包括公式(1)所示的模型:
ci=Conv(wi,ai) (1)
其中,wi表示第i层卷积层的权重参数,ai表示输入到第i层卷积层的输入数据(也即中间特征),Conv(x,y)表示卷积运算。通过公式(1)的计算,可以得到第i层卷积层的卷积结果ci。
在实际应用中,为了降低神经网络的复杂度,大量的技术被提出用于压缩和加速神经网络,包括低秩分解、剪枝、量化和知识蒸馏等。其中量化方法因为通过降低表示每个参数的比特数,从而能够达到显著减少网络的内存占用,节省能耗并降低延时的效果而受到了广泛的关注。
示例性地,对于卷积神经网络,可以将其中的卷积层中的权重参数和中间特征进行量化,利用得到的量化数据进行卷积运算,可以大大降低网络的计算量和参数量,显著提升网络的运算速度。例如,在对上述卷积神经网络的第i层卷积层的卷积模型进行量化运算时,可以先对权重参数wi和中间特征ai分别进行量化,获取对应的量化数据wb,ab;然后直接计算量化数据wb,ab的卷积运算结果即可。
二值量化是一种1位的量化,其数据只有两个可能的值。使用二值量化对神经网络进行压缩后,网络中的权重参数和中间特征都可以用1比特数进行表示,而不会占用太多内存。此外,通过二值量化得到的二值神经网络可以使用轻量级的xnor位操作和popcount位操作分别代替浮点型的神经网络中的浮点乘法和累加操作,从而可以实现几十倍的推理加速和内存节省。
在实际应用中,由于海量的视频传输以及存储成本巨大,通过嵌入式计算平台,将智能终端设备不断智能化,使之在本地可以进行全部离线计算或者部分计算,可以大大减轻数据中心的压力。通过将二值量化后的二值神经网络应用于智能终端设备中,对摄像头拍摄的视频或图像进行处理,使得可以在仍然保持较高精度的情况下大大减少算法的计算复杂度和空间复杂度,从而提升智能终端设备的任务处理速度。其中,所述智能终端设备可以为智能摄像头、智能手机、机器人、车载终端、自动驾驶车辆等。应理解,本申请实施例中,对智能终端设备的具体形式不作任何限制。
示例性地,图2示出了本申请一个实施例提供的二值神经网络的应用示意图。如图2所示,本申请实施例提及的二值神经网络210可以应用于目标检测领域,二值神经网络210的输入数据可以为输入图像220,二值神经网络210的输出数据可以为输入图像中的目标检测结果230。
应理解,根据网络结构的不同,本申请实施例提及的二值神经网络还可以应用于边缘计算场景下的大规模图像分类、语义分割和目标跟踪等领域,根据实际的应用,本申请实施例对二值神经网络的网络结构以及处理的内容均不作具体限定。例如,随着无人机和无人送货小车的使用越来越普及,对于这种具有独立计算能力的智能终端,通过将二值神经网络应用于其中,也可以进一步减少其运行所需的功耗以及内存需求。
图3示出了根据一些实施例提供的二值量化方法的示意图。如图3(a)所示,根据一些实施例的一种二值量化方法,可以直接使用符号函数sign(x)将权重参数w二值量化到{-α,+α},即小于0的数全部置为-α,大于等于0的数全部置为+α,其中α通过计算每个通道的L1范数得到。于是最原始的权重参数w被二值量化为图中的二值化权重参数wb。应理解,上述二值量化方法没有考虑权重参数的偏移和幅值,量化误差较大。
如图3(b)所示,根据一些实施例的另一种二值量化方法,为了实现同时最小量化误差和信息熵损失,首先对原始的权重参数w进行标准化处理,即减去均值,再除以标准差,得到标准化处理后的权重参数wstd,然后再使用符号函数sign(x)将标准化处理后的权重参数wstd二值量化到{-α,+α},即小于0的数全部置为-α,大于等于0的数全部置为+α,其中α通过计算每个通道的L1范数得到。在图3(b)中,实线表示原始的权重参数w的数据分布,虚线表示标准化处理后的权重参数wstd的数据分布,通过符号函数将标准化处理后的权重参数wstd二值量化为图中的二值化权重参数wb,于是原始的权重参数w即被二值量化为图中的二值化权重参数wb。上述二值量化方法的具体内容可以参考论文《Forward and BackwardInformation Retention for Accurate Binary Neural Networks》(Haotong Qin andRuihao Gong.CVPR,2020)中的具体描述,本申请实施例在此不再赘述。
应理解,上述二值量化方法中的标准化处理方式使得权重参数倾向于满足标准正态分布,限制了权重参数在训练过程中的自适应更新。并且,最终得到的二值化权重参数虽然可以达到最大的信息熵,但是相比原始的权重参数存在比较大的量化损失。
如图3(c)所示,根据一些实施例的另一种二值量化方法,可以直接使用符号函数sign(x)将中间特征a二值量化到{-1,+1},即小于0的数全部置为-1,大于等于0的数全部置为+1。于是最原始的中间特征a被二值量化为图中的中间特征ab。应理解,上述二值量化方法没有考虑中间特征的偏移和幅值,直接将中间特征量化到一个固定的二值集合上,大大限制了网络的表达能力,量化误差较大。
如图3(d)所示,根据一些实施例的另一种二值量化方法,在进行二值量化之前,首先会对原始的中间特征a进行偏移,得到偏移后的中间特征aReAct,然后再利用符号函数sign(x)对偏移后的中间特征aReAct进行二值量化,即小于0的数全部置为-1,大于等于0的数全部置为+1,得到二值化中间特征ab。其中,对中间特征a进行偏移的偏移量是可学习的参数,在模型训练过程中会被更新。在图3(d)中,实线表示原始的中间特征a的数据分布,虚线表示偏移后的中间特征aReAct的数据分布,通过符号函数将偏移后的中间特征aReAct二值量化为图中的二值化中间特征ab,于是原始的中间特征a即被二值量化为图中的二值化中间特征ab。上述二值量化方法的具体内容可以参考论文论文《ReActNet:Towards Precise BinaryNeural Network with Generalized Activation Functions》(Zechun Liu,ZhiqiangShen,Marios Savvides,ECCV,2020)中的具体描述,本申请实施例在此不再赘述。
应理解,上述二值量化方法只考虑了中间特征的自适应偏移,而没有考虑幅值,这样会导致较大的量化误差。
为了解决上述问题,本申请实施例提供了一种二值量化方法,该方法包括:获取神经网络中的待量化数据。例如,在对如图1所示的卷积神经网络进行二值量化时,获取所述卷积神经网络的卷积层120中的各个权重参数和卷积层120的中间特征(即输入数据),作为待量化数据。
然后确定所述待量化数据对应的量化参数,所述量化参数包括缩放系数和偏移量;以及基于所述缩放系数和所述偏移量确定所述待量化数据对应的二值化上限值和二值化下限值。例如,对于所述卷积神经网络的卷积层120中的各个权重参数,可以基于各个所述权重参数的数据分布计算对应的缩放系数和偏移量;将所述缩放系数和所述偏移量之和作为对应的二值化上限值,将所述缩放系数的相反数与所述偏移量之和作为对应的二值化下限值。又例如,对于所述卷积神经网络的卷积层120的中间特征,可以直接从所述卷积神经网络中获取对应的偏移量和缩放系数;将所述缩放系数和所述偏移量之和作为对应的二值化上限值,将所述缩放系数的相反数与所述偏移量之和作为对应的二值化下限值。。
最后基于所述缩放系数和所述偏移量对所述待量化数据进行二值量化,以将所述待量化数据量化为所述二值化上限值或所述二值化下限值。
应理解,基于上述方案,本申请实施例提出了一种自适应的二值量化方式,去除了二值化集合的固定约束,通过使用一个自适应的缩放系数和偏移量来控制生成二值量化最终的二值集合,将全精度的待量化数据量化到任意二值以灵活地适应不同的数据分布,能够提升二值量化特征的表达能力,从而提升二值神经网络的表达能力,在增加少量计算量和参数量的前提下,有效提升了二值神经网络的性能。
应理解,根据本申请实施例提供的二值化方式,对于卷积运算过程,通过简单的线性变换,仍然可以使用xnor位操作和popcount位操作对任意二值进行加速,增加的操作数和参数量相比于模型总计算量和参数量可忽略不计,但能够进一步减少二值神经网络与全精度的神经网络之间的性能差距。具体的加速过程将在后续进行详细描述。
应理解,神经网络中的任意参数均可以采用上述二值量化方法,本申请实施例提及的神经网络可以是各种类型的神经网络,例如卷积神经网络、深度置信网络(DeepBelief Networks,DBN)和循环神经网络等等。根据实际的应用,本申请实施例对二值量化适用的神经网络不作具体限定。
应理解,本申请实施例提供的方法可以在各种电子设备上实施,包括但不限于服务器、多个服务器组成的分布式服务器集群、手机、平板电脑、人脸识别门禁、膝上型计算机、台式计算机、可穿戴设备、头戴式显示器、移动电子邮件设备、便携式游戏机、便携式音乐播放器、阅读器设备、个人数字助理、虚拟现实或者增强现实设备、其中嵌入或耦接有一个或多个处理器的电视机等电子设备等。
下面在详细介绍本申请实施例提供的二值量化方法之前,首先对电子设备的硬件结构进行介绍。
图4示出了本申请一个实施例提供的电子设备400的结构示意图。如图4所示,电子设备400的硬件结构可以包括处理器410、无线通信模块420、移动通信模块430、电源模块440、音频模块450、接口模块460、摄像头470、存储器480、传感器模块490、按键401以及显示屏402等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备400的具体限定。在本申请另一些实施例中,电子设备400可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器410可以包括一个或多个处理单元,例如,可以包括中央处理器CPU(Central Processing Unit)、图像处理器GPU(Graphics Processing Unit)、数字信号处理器DSP、微处理器MCU(Micro-programmed Control Unit)、AI(ArtificialIntelligence,人工智能)处理器或可编程逻辑器件FPGA(Field Programmable GateArray)等的处理模块或处理电路。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器410中可以设置存储单元,用于存储指令和数据。
在一些实施例中,处理器410中的存储单元为高速缓冲存储器。其中,处理器410可用于执行本申请实施例中的二值量化方法或者执行本申请实施例中的神经网络的训练方法。
存储器480可以用于存储计算机可执行程序代码,可执行程序代码包括指令。存储器480可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备400使用过程中所创建的数据(比如音频数据,电话本等)等。此外,存储器480可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(Universal Flash Storage,UFS)等。处理器410通过运行存储在存储器480的指令,和/或存储在设置于处理器410中的存储器的指令,执行电子设备400的各种功能应用以及数据处理。
在一些实施例中,存储器480中可以存储有二值量化方法或者神经网络的训练方法的指令,处理器410通过运行二值量化方法的指令对神经网络中的待量化数据进行二值量化,或者运行神经网络的训练方法的指令对神经网络进行训练等。
电源模块440可以包括电源、电源管理部件等。电源可以为电池。电源管理部件用于管理电源的充电和电源向其他模块的供电。在一些实施例中,电源管理部件包括充电管理模块和电源管理模块。充电管理模块用于从充电器接收充电输入;电源管理模块用于连接电源,充电管理模块与处理器410。电源管理模块接收电源和/或充电管理模块的输入,为处理器410,显示屏402,摄像头470,及无线通信模块420等供电。
无线通信模块420可以包括天线,并经由天线实现对电磁波的收发。无线通信模块420可以提供应用在电子设备400上的包括无线局域网(Wireless Localarea Networks,WLAN)(如无线保真(Wireless Fidelity,Wi-Fi)网络),蓝牙(Bluetooth,BT),全球导航卫星系统(Global Navigation Satellite System,GNSS),调频(Frequency Modulation,FM),近距离无线通信技术(Near Field Communication,NFC),红外技术(Infrared,IR)等无线通信的解决方案。电子设备400可以通过无线通信技术与网络以及其他设备进行通信。
移动通信模块430可以包括但不限于天线、功率放大器、滤波器、LNA(Low NoiseAmplify,低噪声放大器)等。移动通信模块430可以提供应用在电子设备400上的包括2G/3G/4G/5G等无线通信的解决方案。
在一些实施例中,电子设备400的移动通信模块430和无线通信模块420也可以位于同一模块中。
显示屏402用于显示人机交互界面、图像、视频等。显示屏402包括显示面板。显示面板可以采用液晶显示屏(Liquid Crystal Display,LCD),有机发光二极管(OrganicLight-Emitting Diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(Active-Matrix Organic Light Emitting Diode的,AMOLED),柔性发光二极管(FlexLight-Emitting Diode,FLED),Miniled,Microled,Micro-Oled,量子点发光二极管(Quantum Dot Light Emitting Diodes,QLED)等。
传感器模块490可以包括接近光传感器、压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
音频模块450用于将数字音频信息转换成模拟音频信号输出,或者将模拟音频输入转换为数字音频信号。音频模块450还可以用于对音频信号编码和解码。在一些实施例中,音频模块450可以设置于处理器410中,或将音频模块450的部分功能模块设置于处理器410中。在一些实施例中,音频模块450可以包括扬声器、听筒、麦克风以及耳机接口。
摄像头470用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给ISP(Image SignalProcessing,图像信号处理)转换成数字图像信号。电子设备400可以通过ISP,摄像头470,视频编解码器,GPU(Graphic Processing Unit,图形处理器),显示屏402以及应用处理器等实现拍摄功能。
接口模块460包括外部存储器接口、通用串行总线(Universal Serial Bus,USB)接口及用户标识模块(Subscriber Identification Module,SIM)卡接口等。其中外部存储器接口可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备400的存储能力。外部存储卡通过外部存储器接口与处理器410通信,实现数据存储功能。通用串行总线接口用于电子设备400和其他电子设备进行通信。用户标识模块卡接口用于与安装至电子设备400的SIM卡进行通信,例如读取SIM卡中存储的电话号码,或将电话号码写入SIM卡中。
在一些实施例中,电子设备400还包括按键401、马达以及指示器等。其中,按键401可以包括音量键、开/关机键等。马达用于使电子设备400产生振动效果,例如在用户的电子设备400被呼叫的时候产生振动,以提示用户接听电子设备400来电。指示器可以包括激光指示器、射频指示器、LED指示器等。
电子设备400的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备400的软件结构。其中,本申请对电子设备的操作系统的类型不做限定。例如,Android系统、Linux系统、Windows系统、Ios系统、鸿蒙操作系统(Harmony Operating System,鸿蒙OS)等。
图5示出了本申请一个实施例提供的电子设备400的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android Runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图5所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(ApplicationProgramming Interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图5所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备400的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android Runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(Surface Manager),媒体库(Media Libraries),三维图形处理库(例如:Opengl ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
本申请实施例提供的二值量化方法可以应用于具有如图4所示的硬件结构和如图5所示的软件结构的电子设备中。或者比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置等类似的硬件结构和软件结构的电子设备中。
下面结合上述提及的电子设备,以卷积神经网络为例,对本申请实施例中的二值量化方法进行详细说明。图6示出了本申请一个实施例提供的一种二值量化方法的流程示意图,该方法可以由电子设备400中的处理器410执行。如图6所示,二值量化方法可以包括步骤S601-S604。
S601:电子设备获取卷积神经网络(作为神经网络的实例)中的第一权重参数(作为待量化数据的实例)。
本申请实施例中,所述第一权重参数表示所述卷积神经网络中的某个或某些权重参数,即所述第一权重参数可以是单个权重参数,也可以是多个权重参数,也可以是全部权重参数,本申请实施例对此不作具体限定。在本申请实施例中,为了方便说明,假定所述第一权重参数为所述卷积神经网络中第i层卷积层中的全部权重参数。
示例性地,所述卷积神经网络中每一层卷积层都有对应的如公式(1)所示的卷积模型,电子设备可以获取卷积神经网络中的第i层卷积层的卷积模型中的权重参数wi作为待量化的第一权重参数。
应理解,所述卷积神经网络为浮点型的卷积神经网络,所述卷积神经网络中的第一权重参数也为浮点型的数据。
S602:电子设备确定所述第一权重参数对应的量化参数,所述量化参数包括缩放系数和偏移量。
本申请实施例中,所述第一权重参数对应的量化参数为对所述第一权重参数进行量化的系数。电子设备将所述量化参数应用于通用的新型二值量化器中,即可确定所述第一权重参数对应的二值量化器。电子设备可以基于该二值量化器对所述第一权重参数进行二值量化得到对应的二值量化结果。
本申请实施例提出了一种通用的新型二值量化器,如下式(2)所示:
其中,x为待量化数据,s为缩放系数,z为偏移量,g(x)为如下式(3)所示的符号函数:
如图7a所示,进行二值量化后的集合可以表示为{b1,b2},其中b1=-s+z,b2=+s+z。可见,b1,b2的值由s和z决定,该二值量化器可以直接用于对权重参数和中间特征的二值量化。如图7b所示,原始分布的左半边数据会被二值化到b1,右半边数据会被二值化到b2,s和z会随着分布的改变而改变,于是二值化之后的数据分布也会随着发生改变。通过控制s和z,可以将浮点分布二值化为任意两个数。
电子设备将上述二值量化器应用于所述卷积神经网络中的第一权重参数,可以得到所述第一权重参数对应的二值量化器,如下式(4)所示:
其中,w为第一权重参数,sw为第一权重参数对应的缩放系数,zw为第一权重参数对应的偏移量。如图7c所示,其对应的二值量化后的集合为{wb1,wb2}={-sw+zw,+sw+zw}。
电子设备可以确定全精度的第一权重参数和二值量化后的第一权重参数之间的KL散度可以表示为:
其中Pr(x)和Pb(x)分别为全精度的第一权重参数和二值量化后的第一权重参数的数据分布。
假设所述权重参数服从高斯分布:
其中μ和σ分别为高斯分布的均值和标准差。为了让二值量化后的第一权重参数的数据分布更加平衡,其中心应该跟全精度的第一权重参数数据分布的中心对齐,即电子设备可以确定第一权重参数对应的偏移量为对应的数据分布的均值,如下式(5)所示:
zw=E(w)≈μ (5)
那么二值量化后的第一权重参数wb1,wb2的概率分别为Pb(wb1)=Pb(wb2)=0.5,那么上述KL散度可以表示为:
通过最小化上述KL散度,电子设备可以得到第一权重参数对应的缩放系数如下式(6)所示:
在实际应用中,电子设备可以采取下式(7)所示的简化形式来确定第一权重参数对应的缩放系数:
其中n是卷积神经网络中每个通道元素的个数。
也就是说,本申请实施例中,所述确定所述第一权重参数对应的量化参数包括:
基于所述第一权重参数(作为卷积神经网络中的各个权重参数的实例)的数据分布确定对应的均值和标准差;
将所述均值作为所述第一权重参数对应的偏移量;以及,
根据所述标准差确定所述第一权重参数对应的缩放系数。
具体地,电子设备在获取到第一权重参数w后,可以根据所述第一权重参数w的数据分布确定对应的均值μ作为所述第一权重参数w对应的偏移量zw。再根据所述第一权重参数w及所述均值μ(即zw),通过(7)式计算得到所述第一权重参数w的数据分布对应的标准差σ。可选择地,电子设备可以直接将所述标准差σ作为所述第一权重参数w对应的缩放系数sw,电子设备也可以根据所述标准差σ通过(6)式计算得到所述第一权重参数w对应的缩放系数sw。
需要说明的是,当所述第一权重参数为所述卷积神经网络中某一神经网络层中的部分权重参数时,所述各个权重参数为所述卷积神经网络中所述第一权重参数对应的神经网络层中的全部权重参数。示例性地,假定所述第一权重参数为所述卷积神经网络中第i层卷积层中的部分权重参数,则所述卷积神经网络中的各个权重参数即是指所述卷积神经网络中第i层卷积层中的全部权重参数。
需要说明的是,在一些实施例中,当所述第一权重参数包括卷积神经网络中多个神经网络层中的权重参数时,可以分别对每个神经网络层中的权重参数分别采用本申请实施例提供的方法进行二值量化处理,得到对应的二值量化结果。
S603:电子设备基于所述缩放系数和所述偏移量确定所述第一权重参数对应的二值化上限值和二值化下限值。
具体地,根据前述分析可知,所述二值化上限值为所述缩放系数和所述偏移量之和;以及,所述二值化下限值为所述缩放系数的相反数与所述偏移量之和。例如,电子设备可以计算所述缩放系数sw和所述偏移量zw之和,作为所述第一权重参数w对应的二值化上限值;并计算所述缩放系数sw的相反数与zw所述偏移量之和,作为所述第一权重参数w对应的二值化下限值。
S604:电子设备基于所述缩放系数和所述偏移量对所述第一权重参数进行二值量化,以将所述第一权重参数量化为所述二值化上限值或所述二值化下限值。
本申请实施例中,电子设备可以根据(4)式所示的二值量化器对所述第一权重参数进行二值量化。具体地,电子设备获取到所述第一权重参数w对应的缩放系数sw和偏移量zw后,可以先计算所述第一权重参数w与所述偏移量zw之间的差值w-zw,并确定所述差值w-zw与所述缩放系数sw的比值电子设备可以将所述比值与0(作为预设量化阈值的实例)进行比较,得到比较结果;并根据所述比较结果将所述第一权重参数w转化为所述二值化上限值+sw+zw,或所述二值化下限值-sw+zw。具体地,当所述比较结果为所述比值大于或等于0时,将所述第一权重参数w转化为所述二值化上限值+sw+zw;当所述比较结果为所述比值小于0时,将所述第一权重参数w转化为所述二值化下限值-sw+zw。
需要说明的是,上述实施例是以第一权重参数作为待量化数据的示例进行说明的。在一些实施例中,所述待量化数据还可以为所述卷积神经网络中的中间特征,所述中间特征可以是所述卷积神经网络中某个或某些神经网络层的输入数据。即所述中间特征可以是单个神经网络层的输入数据,也可以是多个神经网络层的输入数据,本申请实施例对此不作具体限定。为了方便说明,假定所述中间特征为所述卷积神经网络中第i层卷积层的输入数据。也就是说,电子设备还可以获取输入到第i层卷积层的中间特征ai作为待量化的中间特征。
应理解,所述卷积神经网络为浮点型的卷积神经网络,所述卷积神经网络中的中间特征也为浮点型的数据。
在一些实施例中,所述卷积神经网络中存储有待量化的中间特征对应的量化参数,包括偏移量和缩放系数。当电子设备将所述中间特征作为待量化数据时,可以直接从所述卷积神经网络中获取作为待量化数据的所述中间特征对应的偏移量和缩放系数。
具体地,所述中间特征对应的量化参数为对所述中间特征进行量化的系数。电子设备将所述量化参数应用于(2)式所示的新型二值量化器中,即可确定所述中间特征对应的二值量化器。电子设备可以基于该二值量化器对所述中间特征进行二值量化得到对应的二值量化结果。
在实际应用中,考虑到卷积神经网中的中间特征会随着输入的改变而发生改变,如果采取与第一权重参数的二值化方式类似的方法,去计算得到一个最优化的解析解,会大大增加模型推理过程中的计算复杂度。因此在卷积神经网络中引入可学习的偏移量和缩放系数,在卷积神经网络的训练过程中可以不断进行调整以寻找最佳的匹配方式,而在前向推理过程中这两个参数会被固定住。也就是说,可以引入可学习的偏移量和缩放系数继续应用(2)式所示的新型二值量化器,以得到所述中间特征对应的二值量化器。
具体地,电子设备将(2)式所示的二值量化器应用于所述卷积神经网络中的中间特征,可以得到所述中间特征对应的二值量化器,如下式(8)所示:
其中,a为中间特征,sa为中间特征对应的缩放系数,za为中间特征对应的偏移量。如图7d所示,其对应的二值量化后的集合为{ab1,ab2}={-sa+za,+sa+za}。
需要说明的是,当电子设备将所述卷积神经网络中的中间特征作为待量化数据时,电子设备确定所述中间特征对应的二值化上限值和二值化下限值的方法与图6所示实施例中确定所述第一权重参数对应的二值化上限值和二值化下限值的方法类似,本申请实施例在此不再赘述。
需要说明的是,当电子设备将所述卷积神经网络中的中间特征作为待量化数据时,电子设备可以根据(8)式所示的二值量化器对所述中间特征进行二值量化,得到对应的二值量化结果。具体量化过程与图6所示实施例中所述第一权重参数的量化过程类似,本申请实施例在此不再赘述。
示例性地,图8示出了本申请一个实施例提供的中间特征的二值量化结果的示意图。如图8所示,(a)行中示出了实际中间特征的图像,(b)行示出了采用符号函数对中间特征进行二值量化后得到的结果,(c)行示出了采用本申请实施例提供的二值量化方法对中间特征进行二值量化后得到的结果。从图8中可以看出,本申请实施例提供的二值量化方法相对于之前的二值量化方法,能够提供更丰富的纹理特征,从而提高神经网络的表达能力,保证了神经网络的精度。
应理解,本申请实施例中电子设备对所述卷积神经网络中的第一权重参数和/或中间特征进行二值量化后,即可得到所述卷积神经网络对应的二值神经网络。
由于在卷积神经网络中引入了中间特征对应的可学习的偏移量和缩放系数,在卷积神经网络的训练过程中,所述缩放系数和偏移量会随着损失函数进行调整,从而自适应地学习所述卷积神经网络的中间特征的分布。下面结合本申请实施例提供的神经网络的训练方法的相关附图,对具体的调整方法进行详细介绍。
图9示出了本申请一个实施例提供的一种神经网络的训练方法的流程示意图,该方法可以由电子设备400中的处理器410执行。如图9所示,该方法可以包括步骤S901-S903。
S901:电子设备获取待训练的卷积神经网络(作为神经网络的实例)及对应的训练数据集。
本申请实施例中,在训练卷积神经网络对应的二值神经网络时,电子设备需要先构建初始的卷积神经网络,作为待训练的卷积神经网络。应理解,所述卷积神经网络为浮点型的神经网络,所述卷积神经网络中的各类数据均为浮点型的数据。
在具体的实施过程中,电子设备还需要先获取训练数据集。根据实际的应用场景,所述训练数据集可以为不同类型的数据,例如对于图像分类或目标检测场景,所述训练数据集可以包括但不限于图像训练数据集。当所述训练数据集为图像训练数据集时,所述图像训练数据集中的图像可以是利用智能终端设备实时采集的图像,也可以是预先获取到的存储在预设内存中的图像。并且所述图像可以为RGB三通道图像,也可以为单通道灰度图像。还可以对所述的图像进行裁剪、缩放等处理,得到最终的图像训练数据集。
S902:对于所述训练数据集,电子设备交替进行所述卷积神经网络的正向传播过程和反向传播过程,以调整所述卷积神经网络的参数,直至所述卷积神经网络对应的损失函数收敛。
本申请实施例中,在模型训练过程中,电子设备通过多次迭代计算对待训练的卷积神经网络的权重进行更新,每次迭代计算都包含一次正向传播过程和一次反向传播过程,通过反向传播过程的梯度可以对所述卷积神经网络的参数进行更新。其中,正向传播是指按照神经网络从输入层到输出层的顺序,依次计算神经网络各层的中间特征,该中间特征可以为神经网络各层的输出值;反向传播是指按照神经网络从输出层到输入层的顺序,依次计算神经网络各层的中间特征以及损失函数对各参数的导数,该中间变量可以为神经网络各层的输出值。
本申请实施例中,在所述正向传播过程中,电子设备可以采用如图6所示的二值量化方法对所述卷积神经网络中的待量化数据进行二值量化,得到对应的二值神经网络,并基于所述二值神经网络进行所述正向传播过程。
需要说明的是,在本申请实施例中,可以仅对卷积神经网络的权重参数进行二值量化,也可以仅对卷积神经网络的中间特征进行二值量化,还可以既对卷积神经网络的权重参数进行二值量化,又对卷积神经网络的中间特征进行二值量化。根据实际的的应用,本申请实施例对二值量化的内容不作具体限定。
具体地,所述待量化数据包括所述卷积神经网络中的第一权重参数,所述第一权重参数表示所述卷积神经网络中的某个或某些权重参数,即所述第一权重参数可以是单个权重参数,也可以是多个权重参数,也可以是全部权重参数,本申请实施例对此不作具体限定。在本申请实施例中,为了方便说明,假定所述第一权重参数为所述卷积神经网络中各个卷积层中的全部权重参数。
也就是说,在所述正向传播过程中,电子设备可以采用如图6所示的二值量化方法,分别对所述卷积神经网络中各个卷积层中的权重参数w进行二值量化,得到对应的二值化权重参数wb。然后电子设备将二值量化得到的各个卷积层的二值化权重参数wb输入到待训练的卷积神经网络。电子设备可以利用二值量化得到的各个卷积层的二值化权重参数wb进行所述正向传播过程。电子设备对权重参数进行二值量化的具体内容可以参考图6所示的实施例的相关描述,本申请实施例在此不再赘述。
在上述过程中,仅对卷积神经网络的权重参数进行了二值量化,为了得到更彻底的二值神经网络,还可以在所述正向传播过程中,对所述卷积神经网络中的中间特征进行二值量化,使得所述卷积神经网络的输入数据都是经过二值化处理的。
具体地,所述待量化数据还包括所述卷积神经网络中的中间特征,所述中间特征可以是所述卷积神经网络中的某个或某些神经网络层的输入数据。例如,所述中间特征可以为所述卷积神经网络中各个卷积层的输入数据。
也就是说,在所述正向传播过程中,电子设备可以采用如图6所示的二值量化方法,分别对所述卷积神经网络中各个卷积层的中间特征a进行二值量化,得到对应的二值化中间特征ab。然后电子设备将二值量化得到的各个卷积层的二值化中间特征ab输入到待训练的卷积神经网络。电子设备可以利用二值量化得到的各个卷积层的二值化中间特征ab进行所述正向传播过程。电子设备对中间特征进行二值量化的具体内容可以参考图6所示的实施例的相关描述,本申请实施例在此不再赘述。
应理解,本申请实施例中二值量化得到的二值神经网络仍然可以使用轻量级的xnor位操作和popcount位操作分别代替浮点型的神经网络中的浮点乘法和累加操作,从而可以实现几十倍的推理加速和内存节省。
示例性地,电子设备对所述卷积神经网络中第i层卷积层中的第一权重参数w和中间特征a进行二值量化后,可以根据量化得到的二值化权重参数wb和二值化中间特征ab,计算所述第i层卷积层的卷积模型中的卷积运算,得到对应的卷积运算结果。
具体地,卷积运算过程如下:
定义ba∈{-1,+1},bw∈{-1,+1}
于是上述卷积运算可以重写为:
c=Conv(ba×sa+za,bw×sw+zw)
=saswConv(ba,bw)+sazwConv(ba,I)+swzaConv(I,bw)+zazw
=sasw(ba⊙bw)+sazw∑ba+swza∑bw+zazw
其中,⊙表示Hadamard乘积,表示对应位置元素相乘。于是上述卷积运算可以被拆分成四项相加,第一项可以使用xnor位操作和popcount位操作进行加速运算,第二项可以使用popcount位操作代替其中的累加运算,第三项和第四项在神经网络训练结束之后会被固定,在前向推理之前可以预先计算好,不消耗额外计算。
示例性地,图10示出了本申请一个实施例提供的位操作加速运算的示意图。电子设备在计算二值量化后的1比特权重参数与1比特中间特征的Hadamard乘积时,可以使用xnor位操作和popcount位操作进行加速运算。如图10所示,在计算最后一个特征值时,电子设备先将1比特权重参数与1比特中间特征中最后一个感受野内的特征数据进行xnor位操作,得到对应的运算结果,运算过程如下:
然后,电子设备对上述运算结果进行popcount位操作,得到最后一个特征值为-3。
应理解,如果使用本申请实施例提供的二值量化方法,在正向传播过程中进行卷积运算时,可以将卷积运算拆分成如上述的四项相加的形式,跟传统的二值量化方法有本质的不同,非常有助于侵权发现。
应理解,根据本申请实施例提供的二值化方式,对于卷积运算过程,通过简单的线性变换,仍然可以使用xnor位操作和popcount位操作对任意二值进行加速,增加的操作数和参数量相比于模型总计算量和参数量可忽略不计,但能够进一步减少二值量化得到的二值神经网络与全精度的神经网络之间的性能差距。
本申请实施例中,所述损失函数用于表示二值量化得到的所述二值神经网络的输出结果与输入数据的标签之间的相似度。例如,当输出结果与输入数据的标签之间的相似度较小时,损失函数的函数值较大;当输出结果与输入数据的标签之间的相似度较大时,损失函数的函数值较小。在所述反向传播过程中,电子设备可以基于所述损失函数,采用梯度下降算法调整所述待训练的卷积神经网络中的各个参数,使其可以正确学习该输入数据中的规律。
在一个实施例中,考虑到本申请实施例提供的二值量化方法可能会出现二值化下限值和二值化上限值均为正数的情况,那么传统的非线性函数的非线性作用就会被削弱,为了进一步增强网络的非线性/表达能力,本申请实施例采用Maxout函数作为所述卷积神经网络中的激活函数,以进一步增强信息流。Maxout函数表达式如下:
其中c表示通道的索引,和为可学习的缩放系数。如图11所示,传统的非线性函数PReLU函数只关注负半轴的非线性变化,而Maxout函数正负半轴都增加了可学习的参数,具有更强大的非线性能力,可以进一步增强网络的特征学习能力。
在实际应用中,只需对Maxout函数中的缩放系数和进行初始化,在卷积神经网络模型的训练过程中,缩放系数和即可随着损失函数进行更新。例如,可以分别以0.25和1来初始化负半轴的缩放系数和正半轴的缩放系数
具体地,在所述反向传播过程中,电子设备可以确定所述损失函数对所述Maxout函数中参数的第一梯度,并根据所述第一梯度对所述Maxout函数中的参数进行调整。其中,所述第一梯度为所述损失函数对所述卷积神经网络中的Maxout函数中的缩放系数或求一阶梯度得到的梯度值。电子设备根据所述第一梯度更新所述Maxout函数中的缩放系数或
需要说明的是,在一些实施例中,所述卷积神经网络也可以采用包括但不限于Sigmoid函数、Tanh函数以及PReLU函数等传统激活函数作为非线性函数,本申请实施例激活函数的类型不作限定。
具体地,在所述反向传播过程中,电子设备还可以基于所述第一梯度分别确定所述损失函数对各个所述权重参数的第二梯度,以及对与所述中间特征对应的量化参数的第三梯度。电子设备可以根据所述第二梯度对所述卷积神经网络中的各个所述权重参数(即浮点型的权重参数)进行调整,以及根据所述第三梯度对所述卷积神经网络中与所述中间特征对应的量化参数(即浮点型的量化参数)进行调整。
其中,所述第二梯度为所述损失函数对所述卷积神经网络中的各个权重参数w求一阶梯度得到的梯度值。具体地,在反向传播的梯度计算过程中,各个权重参数w的梯度对应如下:
其中表示损失函数,w表示权重参数。
其中,所述第三梯度为所述损失函数对所述卷积神经网络中的与所述中间特征对应的量化参数求一阶梯度得到的梯度值。具体地,在反向传播的梯度计算过程中,与所述中间特征对应的量化参数的梯度对应如下:
其中表示损失函数,s表示与所述中间特征对应的缩放系数,z表示与所述中间特征对应的偏移量。
需要说明的是,在模型训练过程中,电子设备需要保留卷积神经网络的每个神经网络层的权重参数。在所述反向传播过程中,电子设备是根据对应的梯度对卷积神经网络的每个神经网络层的权重参数进行更新的。
在实际应用中,由于卷积神经网络中的激活层位于卷积层之后,因此基于链式法则,所述损失函数对各个所述权重参数的第二梯度,以及对与所述中间特征对应的量化参数的第三梯度均可以基于对应的激活函数中参数的第一梯度进行计算得到,具体计算过程可以参考梯度下降算法的相关描述,本申请实施例在此不再赘述。
S903:电子设备将所述损失函数收敛时所述卷积神经网络对应的二值神经网络确定为训练得到的卷积神经网络。
本申请实施例中,待训练完成后,电子设备可以将最后一次正向传播过程中,进行二值量化得到的各个神经网络层的权重参数作为最后训练得到的各个神经网络层的权重参数,并将最后一次正向传播过程中,各个神经网络层中与所述中间特征对应的量化参数作为最后训练得到的与所述中间特征对应的量化参数,从而得到训练完成的二值神经网络。
应理解,本申请实施例中训练得到的二值神经网络可以部署在云产品、终端设备、监控设备等产品中,具体可以部署在相关设备的计算节点上,通过软件改造,能够显著降低算法的复杂度,从而实现对功耗、内存以及其他计算资源需求量的减少。
应理解,本申请实施例中使用的“第一”、“第二”、“目标”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。另外,为了简明和清楚,本申请多个附图中重复参考编号和/或字母。重复并不表明各种实施例和/或配置之间存在严格的限定关系。
下面对本申请实施例提供的方法的计算复杂度进行分析。
按照论文《XNOR-Net:ImageNet Classification Using Binary ConvolutionalNeural Networks》中的分析方式,可以确定DoReFa-Net和本申请实施例提供的二值神经网络的计算量(OPs)的计算公式如下:
其中,OPspre表示DoReFa-Net的计算量,BOPspre表示DoReFa-Net的二进制计算量,FLOPspre表示DoReFa-Net的全精度计算量。OPsadabin表示本申请实施例提供的二值神经网络的计算量,BOPsadabin表示本申请实施例提供的二值神经网络的二进制计算量,FLOPsadabin表示本申请实施例提供的二值神经网络的全精度计算量。ic、oc分别表示卷积的输入和输出通道数,h、w分别表示卷积核的长和宽,oh、ow分别表示输出特征图的长和宽。
类似地,还可以确定DoReFa-Net和本申请实施例提供的二值神经网络的参数量(Params)的计算公式如下:
Paramspre=ic×oc×w×h+32×oc
Paramsadabin=ic×oc×w×h+2×32×oc+2
其中,Paramspre表示DoReFa-Net的参数量,Paramsadabin表示本申请实施例提供的二值神经网络的参数量。ic、oc分别表示卷积的输入和输出通道数,h、w分别表示卷积核的长和宽,oh、ow分别表示输出特征图的长和宽。
假设超参数固定为ic=oc=256,h=w=3,ow=oh=14,于是可以得到如下表1所示的计算复杂度对比结果。
表1不同二值神经网络的计算复杂度对比结果
从表1中可以看出,与DoReFa-Net相比,本申请实施例提供的二值量化方法仅增加2.74%的操作数和1.37%的参数量,几乎可以忽略不计,并且理论上能够达到60.85倍的加速和31倍的内存节省。
将本申请实施例提供的二值神经网络与传统的二值神经网络BiReal-Net网络和ReCU网络分别应用于Bolt推理平台进行测速,可以得到如图12所示的Bolt测速结果对比图。其中,BiReal-Net表示应用在不同大小的神经网络模型时,BiReal-Net网络的模型推理时间及Top-1准确率;ReCU表示应用在不同大小的神经网络模型时,ReCU网络的模型推理时间及Top-1准确率;AdaBin表示应用在不同大小的神经网络模型时,本申请实施例中的二值神经网络的模型推理时间及Top-1准确率。从图12中可以看出,本申请实施例提供的二值量化方法在增加少量时延的前提下,显著提升了二值神经网络的准确度。
下面对本申请实施例提供的方法的性能进行分析。
将本申请实施例提供的二值量化方法与现有的二值量化方法分别应用于图像分类任务和目标检测任务,得到在图像分类数据集和目标检测数据集上的识别准确率,从而将本申请实施例提供的二值量化方法与现有的二值量化方法的性能进行对比分析。
具体地,将本申请实施例提供的二值量化方法与现有的二值量化方法分别应用于图像分类任务的公开数据集CIFAR-10上,可以得到如下表2所示的分类准确率对比结果:
表2各类二值量化方法在公开数据集CIFAR-10上的分类准确率
从表2中可以看出,对于图像分类任务,当权重参数保持为1bit,中间特征为1bit或32bit的情况下,本申请实施例提供的二值量化方法均具有最佳的分类准确率。
具体地,将本申请实施例提供的二值量化方法与现有的二值量化方法分别应用于图像分类任务的公开数据集ImageNet上,可以得到如下表3所示的分类准确率对比结果和图13所示的Top-1准确率对比结果。
表3各类二值量化方法在公开数据集ImageNet上的分类准确率
从表3中可以看出,对于图像分类任务,当权重参数为1bit,中间特征为1bit或32bit的情况下,本申请实施例提供的二值量化方法均具有最佳的Top-1准确率及Top-5准确率。
图13示出了在应用于不同大小的神经网络模型时,本申请实施例提供的二值神经网络与传统的二值神经网络的Top-1准确率对比图。从图13中可以看出,本申请实施例提供的二值量化方法在应用于不同大小的神经网络模型时,得到的二值神经网络均具有最佳的Top-1准确率。
具体地,将本申请实施例提供的二值量化方法与现有的二值量化方法分别应用于目标检测任务的单次多框检测器(Single Shot MultiBox Detector,SSD)模型,并应用于公开数据集VOC上,可以得到如下表4所示的目标检测准确率对比结果。
表4各类二值量化方法在SSD模型和公开数据集VOC上的目标检测准确率
从表4中可以看出,对于目标检测任务,本申请实施例提供的二值量化方法得到的二值神经网络的检测准确率不仅超过了通用的二值神经网络,也超过了专门针对目标检测领域优化的方案BiDet,表明本申请实施例提供的二值量化方法可以延伸到更复杂任务上。
由上述分析可知,本申请实施例提供的方法能够有效提升二值神经网络的精度,在多种不同任务(包括大规模图像分类任务和目标检测任务)上都取得了优异的性能。
此外,将本申请实施例提供的二值量化方法进行消融研究,从一个常用的二值神经网络(即将权重参数二值量化为{-α,+α},将中间特征二值量化为{-1,+1},并且使用PReLU函数作为激活函数的二值神经网络)开始,逐步增加采用本申请实施例提供的二值量化方法进行权重参数优化、中间特征自适应二值量化和Maxout技术,以及逐步增加Maxout函数中的比例因子,可以得到如下表5和表6所示的准确率对比结果:
表5本申请实施例的二值量化方法消融研究的准确率
表6比例因子消融研究的准确率
具体地,表5中{wb1,wb2}*表示对于权重参数也采用与中间特征相同的方法进行二值量化,得到对应的二值化权重{wb1,wb2}。从表5和表6中可以看出,本申请实施例提供的二值量化方法能够显著提升二值神经网络的表达能力,从而提高二值神经网络的准确度。
本申请实施例还提供一种二值量化装置,用于执行上述二值量化方法。具体的,如图14所示,所述二值量化装置1400可以包括:
第一获取模块1410,用于获取神经网络中的待量化数据;
第一确定模块1420,用于确定所述待量化数据对应的量化参数,所述量化参数包括缩放系数和偏移量;
第二确定模块1430,用于基于所述缩放系数和所述偏移量确定所述待量化数据对应的二值化上限值和二值化下限值;
量化模块1440,用于基于所述缩放系数和所述偏移量对所述待量化数据进行二值量化,以将所述待量化数据量化为所述二值化上限值或所述二值化下限值。
本申请实施例还提供一种神经网络的训练装置,用于执行上述神经网络的训练方法。具体的,如图15所示,所述神经网络的训练装置1500可以包括:
第二获取模块1510,用于获取待训练的神经网络及对应的训练数据集;
训练模块1520,用于对于所述训练数据集,交替进行所述神经网络的正向传播过程和反向传播过程,以调整所述神经网络的参数,直至所述神经网络对应的损失函数收敛;
其中,在所述正向传播过程中,采用上述实施例中图6所示的方法对所述神经网络中的待量化数据进行二值量化,得到对应的二值神经网络,并基于所述二值神经网络进行所述正向传播过程;
第三确定模块1530,用于将所述损失函数收敛时所述神经网络对应的二值神经网络确定为训练得到的神经网络。
在一些实施例中,所述神经网络采用Maxout函数作为激活函数;所述神经网络的训练装置1500还可以包括:
参数调整模块,用于在所述反向传播过程中,确定所述损失函数对所述Maxout函数中参数的第一梯度,并根据所述第一梯度对所述Maxout函数中的参数进行调整。
在一些实施例中,所述待量化数据包括所述神经网络中的各个权重参数和中间特征;所述参数调整模块还用于在所述反向传播过程中,基于所述第一梯度分别确定所述损失函数对各个所述权重参数的第二梯度,以及对与所述中间特征对应的量化参数的第三梯度;根据所述第二梯度对所述神经网络中的各个所述权重参数进行调整,以及根据所述第三梯度对所述神经网络中与所述中间特征对应的量化参数进行调整。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与相应方法实施例属于同一构思,其具体实现过程详见对应方法实施例,这里不再赘述。
本申请实施例还提供一种电子设备,包括:
存储器,用于存储由所述电子设备的一个或多个处理器执行的指令;
处理器,当所述处理器执行所述存储器中的所述指令时,可使得所述电子设备执行上述实施例中图6至图11所示的方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,该指令被处理器运行时,使得处理器执行上述实施例中图6至图11所示的方法。
本申请还提供一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得处理器执行上述实施例中图6至图11所示的方法。
本申请公开的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。包括但不局限于OpenCL、C语言、C++、Java等。而对于C++、Java之类语言,由于其会将存储进行转换,基于对于本申请实施例中的数据处理方法的应用会有些差异,本领域技术人员可以基于具体地高级语言进行变换,均不脱离本申请实施例的范围。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、磁光盘、只读存储器(Read-Only Memory,ROM)、光盘只读存储器(CD-ROMs)、随机存取存储器(Random Access Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (10)
1.一种二值量化方法,应用于电子设备,其特征在于,所述方法包括:
获取神经网络中的待量化数据;
确定所述待量化数据对应的量化参数,所述量化参数包括缩放系数和偏移量;
基于所述缩放系数和所述偏移量确定所述待量化数据对应的二值化上限值和二值化下限值;
基于所述缩放系数和所述偏移量对所述待量化数据进行二值量化,以将所述待量化数据量化为所述二值化上限值或所述二值化下限值。
2.根据权利要求1所述的方法,其特征在于,所述待量化数据为所述神经网络中的第一权重参数;
所述确定所述第一权重参数对应的量化参数包括:
基于所述神经网络中的各个权重参数的数据分布确定对应的均值和标准差;
将所述均值作为所述第一权重参数对应的偏移量;以及,
根据所述标准差确定所述第一权重参数对应的缩放系数。
3.根据权利要求1所述的方法,其特征在于,所述待量化数据为所述神经网络中的中间特征;并且,
作为待量化数据的所述中间特征对应的偏移量和缩放系数是从所述神经网络中获取的。
4.根据权利要求1所述的方法,其特征在于,所述二值化上限值为所述缩放系数和所述偏移量之和;以及,
所述二值化下限值为所述缩放系数的相反数与所述偏移量之和。
5.根据权利要求1所述的方法,其特征在于,所述基于所述缩放系数和所述偏移量对所述待量化数据进行二值量化包括:
计算所述待量化数据与所述偏移量之间的差值,并确定所述差值与所述缩放系数的比值;
将所述比值与预设量化阈值进行比较,得到比较结果;
根据所述比较结果将所述待量化数据转化为所述二值化上限值或所述二值化下限值。
6.一种神经网络的训练方法,应用于电子设备,其特征在于,所述方法包括:
获取待训练的神经网络及对应的训练数据集;
对于所述训练数据集,交替进行所述神经网络的正向传播过程和反向传播过程,以调整所述神经网络的参数,直至所述神经网络对应的损失函数收敛;
其中,在所述正向传播过程中,采用如权利要求1所述的方法对所述神经网络中的待量化数据进行二值量化,得到对应的二值神经网络,并基于所述二值神经网络进行所述正向传播过程;
将所述损失函数收敛时所述神经网络对应的二值神经网络确定为训练得到的神经网络。
7.根据权利要求6所述的方法,其特征在于,所述神经网络采用Maxout函数作为激活函数;
所述方法还包括:
在所述反向传播过程中,确定所述损失函数对所述Maxout函数中参数的第一梯度,并根据所述第一梯度对所述Maxout函数中的参数进行调整。
8.根据权利要求7所述的方法,其特征在于,所述待量化数据包括所述神经网络中的各个权重参数和中间特征;
所述方法还包括:
在所述反向传播过程中,基于所述第一梯度分别确定所述损失函数对各个所述权重参数的第二梯度,以及对与所述中间特征对应的量化参数的第三梯度;
根据所述第二梯度对所述神经网络中的各个所述权重参数进行调整,以及根据所述第三梯度对所述神经网络中与所述中间特征对应的量化参数进行调整。
9.一种电子设备,其特征在于,包括:
存储器,用于存储由所述电子设备的一个或多个处理器执行的指令;
处理器,当所述处理器执行所述存储器中的所述指令时,可使得所述电子设备执行权利要求1~5任一项所述的二值量化方法或权利要求6~8任一项所述的神经网络的训练方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,该指令在计算机上执行时使得计算机执行权利要求1~5任一项所述的二值量化方法或权利要求6~8任一项所述的神经网络的训练方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210836913.1A CN117474051A (zh) | 2022-07-15 | 2022-07-15 | 二值量化方法、神经网络的训练方法、设备以及存储介质 |
PCT/CN2023/101719 WO2024012171A1 (zh) | 2022-07-15 | 2023-06-21 | 二值量化方法、神经网络的训练方法、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210836913.1A CN117474051A (zh) | 2022-07-15 | 2022-07-15 | 二值量化方法、神经网络的训练方法、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117474051A true CN117474051A (zh) | 2024-01-30 |
Family
ID=89535497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210836913.1A Pending CN117474051A (zh) | 2022-07-15 | 2022-07-15 | 二值量化方法、神经网络的训练方法、设备以及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117474051A (zh) |
WO (1) | WO2024012171A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020243922A1 (en) * | 2019-06-05 | 2020-12-10 | Intel Corporation | Automatic machine learning policy network for parametric binary neural networks |
CN112686384B (zh) * | 2020-12-31 | 2024-08-27 | 南京大学 | 一种自适应比特位宽的神经网络量化方法及其装置 |
CN113191489B (zh) * | 2021-04-30 | 2023-04-18 | 华为技术有限公司 | 二值神经网络模型的训练方法、图像处理方法和装置 |
CN114283495B (zh) * | 2021-12-16 | 2024-05-28 | 北京航空航天大学 | 一种基于二值化神经网络的人体姿态估计方法 |
CN114444686A (zh) * | 2021-12-31 | 2022-05-06 | 浪潮(北京)电子信息产业有限公司 | 一种卷积神经网络的模型参数量化方法、装置及相关装置 |
-
2022
- 2022-07-15 CN CN202210836913.1A patent/CN117474051A/zh active Pending
-
2023
- 2023-06-21 WO PCT/CN2023/101719 patent/WO2024012171A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024012171A1 (zh) | 2024-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108304921B (zh) | 卷积神经网络的训练方法及图像处理方法、装置 | |
US11790212B2 (en) | Quantization-aware neural architecture search | |
US11604960B2 (en) | Differential bit width neural architecture search | |
CN113326764A (zh) | 训练图像识别模型和图像识别的方法和装置 | |
WO2023005386A1 (zh) | 模型训练方法和装置 | |
CN113515942A (zh) | 文本处理方法、装置、计算机设备及存储介质 | |
CN111709493B (zh) | 对象分类方法、训练方法、装置、设备及存储介质 | |
WO2022156434A1 (zh) | 用于生成文本的方法和装置 | |
WO2022042120A1 (zh) | 目标图像提取方法、神经网络训练方法及装置 | |
US20220051103A1 (en) | System and method for compressing convolutional neural networks | |
KR20210076691A (ko) | 프레임워크 간 뉴럴 네트워크의 학습을 검증하는 방법 및 장치 | |
CN112149699A (zh) | 用于生成模型的方法、装置和用于识别图像的方法、装置 | |
CN111401546B (zh) | 神经网络模型的训练方法及其介质和电子设备 | |
CN118097293A (zh) | 基于残差图卷积网络和自注意力的小样本数据分类方法及系统 | |
CN112307243A (zh) | 用于检索图像的方法和装置 | |
CN111915689B (zh) | 用于生成目标函数的方法、装置、电子设备和计算机可读介质 | |
KR20210141252A (ko) | 전자 장치 및 그 제어 방법 | |
CN117474051A (zh) | 二值量化方法、神经网络的训练方法、设备以及存储介质 | |
CN116957006A (zh) | 预测模型的训练方法、装置、设备、介质及程序产品 | |
CN111709784B (zh) | 用于生成用户留存时间的方法、装置、设备和介质 | |
CN113361677B (zh) | 神经网络模型的量化方法和装置 | |
CN114359811A (zh) | 数据鉴伪方法、装置、电子设备以及存储介质 | |
CN111814807B (zh) | 用于处理图像的方法、装置、电子设备和计算机可读介质 | |
US20230059976A1 (en) | Deep neural network (dnn) accelerator facilitating quantized inference | |
US20240028895A1 (en) | Switchable one-sided sparsity acceleration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |