掌桥专利:专业的专利平台
掌桥专利
首页

一种二值神经网络的构建方法

文献发布时间:2023-06-19 11:57:35


一种二值神经网络的构建方法

技术领域

本发明涉及人工智能的技术领域,更具体的,涉及一种二值神经网络的构建方法。

背景技术

随着深度学习理论的提出和数值计算设备的改进,卷积神经网络发展迅速,并被应用于计算机视觉和语音识别等多个领域,其在目标识别和检测方面具有高效、可靠的优点。

近年来,虚拟现实、增强现实和智能可穿戴设备也得到了快速的发展,人们开始探寻神经网络和便携式设备的结合方式。然而,基于卷积神经网络的识别系统需要大量的内存和计算能力,适用于昂贵的基于GPU的设备上,但不适用于如手机和嵌入式电子产品等便携式设备。例如,AlexNet有61M参数,执行1.5B的高精度操作对一个图像进行分类。对于更深层次的,例如VGG,这些参数甚至更高。然而目前所有的便携式设备都只能提供有限的计算能力,以及容量并不算大的片上存储。卷积神经网络在便携式设备上的移植变得越来越艰难。庞大的计算量采用浮点数作为操作数运行在轻量级芯片上,传统浮点神经网络的计算效率低、能耗大、速度慢,无疑已经超出便携式设备的能力范围,同时也很难达到比较好的实时效果。

现有技术中,如2019-07-30公开的专利,一种基于二值化深度神经网络的手写数字图像识别分类方法,公开号为CN110070119A,基于BinaryConnect二值化深度神经网络,并通过公式推导得出最优权重缩放因子α,将该因子α在前向传播过程中与权重W相乘,以达到增强网络表达能力、提高训练精度的目的,但不适用于便携式设备。

发明内容

本发明为克服目前基于卷积神经网络的识别系统需要大量的内存和计算能力,不适用于便携式设备的技术缺陷,提供一种二值神经网络的构建方法。

为解决上述技术问题,本发明的技术方案如下:

一种二值神经网络的构建方法,包括以下步骤:

S1:构建初始的神经网络;

S2:分别对所述神经网络的权重和输入数据进行二值化处理,得到二值化权重和二值化输入数据;

S3:根据二值化输入数据和二值化权重对所述神经网络进行训练,得到优化的神经网络;

S4:判断优化的神经网络的所有权重和输入数据是否全部收敛为+1或-1;

若是,则执行步骤S6;

若否,则执行步骤S5;

S5:更新神经网络的参数,得到新的二值化权重,并返回步骤S3;

S6:得到二值神经网络。

优选的,所述神经网络包括二值归一化层、二值激活层、二值卷积层和池化层。

优选的,所述神经网络的计算顺序依次为:二值归一化层、二值激活层、二值卷积层、池化层;

其中,在二值归一化层对输入数据进行标准化,使之均值为0,在二值卷积层后插入一个非二进制激活函数。

优选的,所述非二进制激活函数为ReLU函数。

优选的,在步骤S2中,利用二值矩阵B和第一尺度因子α∈R

优选的,通过以下步骤求得二值矩阵B和第一尺度因子α∈R

用I*W表示卷积层的操作,其中,I表示输入数据,W表示权重,维度是c*w*h,c表示通道数,w表示宽度,h表示高度,

令W贴近B时得到:

其中,

得到优化目标函数:

J(B,α)=||W-αB||

其中,nin()为取最小值函数,arg()为取自变量函数;

将优化目标函数展开为:

J(B,α)=α

其中,B是一个1*n的向量,取-1或者1,B

结合可得B的最优值计算公式:

B∈{+1,-1}

B

B的最优值即决定W的符号,

根据优化目标函数展开式对第一尺度因子α求导,从而得到α的最优值计算公式:

结合B

其中,α的最优值是W的每个元素的绝对值之和的均值,||W||表示l1范数。

优选的,在步骤S2中,利用β和H近似表示输入数据I,其中,β为第二尺度因子,H为二值卷积核,H∈{+1,-1}

期望得到β、H、α和B使得

I

优化表达式为:

其中,⊙表示点乘,

用Y表示IW,C表示HB,γ表示βα,得到

因此,得到C和γ的计算公式:

C

其中,|I

根据C和γ的计算公式求得β、H、α和B的最优值。

优选的,使用二值操作近似得到输入数据I和权重W的卷积结果:

其中,

通过对输入数据I在通道求绝对值的均值A,A和卷积核k卷积得到

K=A*k

其中,二维张量k中的每一个元素

优选的,在步骤S3中,对所述神经网络进行训练包括以下步骤:

S3.1:前向传播:使用二值化权重W≈αB进行前向传播;

其中,B为二值矩阵,α为第一尺度因子;

S3.2:反向传播:使用宽松化函数Htanh(x)对前向数据处理进行反向传播:

Htanh(x)=Clip(x,-1,1)=max(-1,min(1,x))

其中,x为前向数据。

优选的,在步骤S5中,通过对二值化前的权重进行更新得到新的权重W

与现有技术相比,本发明技术方案的有益效果是:

本发明提供了一种二值神经网络的构建方法,通过将权重和输入数据二值化,实现有效的卷积操作,减小内存占用,降低功耗,减小面向深度学习的硬件的开销,可以在小内存和没有GPU的便携式设备中实现实时推算,能够获得与标准网络相似的分类精度,同时能够提高效率。

附图说明

图1为本发明的技术方案实施流程图;

图2为本发明中所述二值神经网络的应用示意图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

如图1所示,一种二值神经网络的构建方法,包括以下步骤:

S1:构建初始的神经网络;

S2:分别对所述神经网络的权重和输入数据进行二值化处理,得到二值化权重和二值化输入数据;

S3:根据二值化输入数据和二值化权重对所述神经网络进行训练,得到优化的神经网络;

S4:判断优化的神经网络的所有权重和输入数据是否全部收敛为+1或-1;

在实际实施时,如权重是一组(3,-2,2,0.5)(2,3,4,-0.5),一次训练处理一行数据(1,-1,1,1)(2,3,4,-0.5),最后训练好的权重是(1,-1,1,1)(1,1,1,-1);

若是,则执行步骤S6;

若否,则执行步骤S5;

S5:更新神经网络的参数,得到新的二值化权重,并返回步骤S3;

S6:得到二值神经网络。

实施例2

更具体的,所述神经网络包括二值归一化层、二值激活层、二值卷积层和池化层。

在具体实施过程中,所述神经网络内的32位浮点数乘加运算可以被1位二值同或计算操作代替,将权重和输入值都用二值来表示,也即是说权重的值要么为-1,要么为1。在神经网络的前向传播和反向传播中一直遵循这个规则。

更具体的,所述神经网络的计算顺序依次为:二值归一化层、二值激活层、二值卷积层、池化层;

其中,在二值归一化层对输入数据进行标准化,使之均值为0,在二值卷积层后插入一个非二进制激活函数。

在具体实施过程中,如果直接把输入数据转化成-1或+1,再进行操作会丢失许多信息。为了减少二值化带来的信息损失,把二值归一化层放到二值激活层前确保了数据保持零均值,阈值为零可以减少量化误差。

更具体的,所述非二进制激活函数为ReLU函数。

更具体的,在步骤S2中,利用二值矩阵B和第一尺度因子α∈R

更具体的,通过以下步骤求得二值矩阵B和第一尺度因子α∈R

用I*W表示卷积层的操作,其中,I表示输入数据,W表示权重,维度是c*w*h,c表示通道数,w表示宽度,h表示高度,

令W贴近B时得到:

其中,

得到优化目标函数:

J(B,α)=||W-αB||

其中,min()为取最小值函数,arg()为取自变量函数;

将优化目标函数展开为:

J(B,α)=α

其中,B是一个1*n的向量,取-1或者1,B

结合可得B的最优值计算公式:

B∈{+1,-1}

B

B的最优值即决定W的符号,

根据优化目标函数展开式对第一尺度因子α求导,从而得到α的最优值计算公式:

结合B

其中,α的最优值是W的每个元素的绝对值之和的均值,||W||表示l1范数。

在具体实施过程中,通过上述步骤得到二值化权重sign(W)。

更具体的,在步骤S2中,利用β和H近似表示输入数据I,其中,β为第二尺度因子,H为二值卷积核,H∈{+1,-1}

期望得到β、H、α和B使得

I

优化表达式为:

其中,⊙表示点乘,

用Y表示IW,C表示HB,γ表示βα,得到

因此,得到C和γ的计算公式:

C

其中,|I

根据C和γ的计算公式求得β、H、α和B的最优值。

在具体实施过程中,通过上述步骤得到二值化输入数据sign(I)。

更具体的,使用二值操作近似得到输入数据I和权重W的卷积结果:

其中,

通过对输入数据I在通道求绝对值的均值A,A和卷积核k卷积得到

K=A*k

其中,二维张量k中的每一个元素

更具体的,在步骤S3中,对所述神经网络进行训练包括以下步骤:

S3.1:前向传播:使用二值化权重W≈αB进行前向传播;

其中,B为二值矩阵,α为第一尺度因子;

S3.2:反向传播:使用宽松化函数Htanh(x)对前向数据处理进行反向传播:

Htanh(x)=Clip(x,-1,1)=max(-1,min(1,x))

其中,x为前向数据。

更具体的,在步骤S5中,通过对二值化前的权重进行更新得到新的权重W

实施例3

如图2所示,通过python语言配置好参数建立相应API将训练好的二值神经网络存储,并将二值神经网络配置成便携式设备端可接受参数,实现便携式设备对二值神经网络的存储及运用。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

相关技术
  • 一种二值神经网络的构建方法
  • 一种适用于嵌入式平台的二值化卷积神经网络的构建方法
技术分类

06120113115683