面向边缘计算的重参数神经网络架构搜索方法转让专利

申请号 : CN202110991876.7

文献号 : CN113435590B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张铭扬高丰汤志航杨涛郑欢欢王晓江郁善金

申请人 : 之江实验室

摘要 :

本发明公开了面向边缘计算的重参数神经网络架构搜索方法,包括如下步骤:步骤一:设计线性算子与多支路块结构;步骤二:通过堆叠多支路块结构构建超级网络;步骤三:通过基于梯度的一阶段搜索算法训练超级网络;步骤四:删除超级网络中多余的支路构建最佳子网络;步骤五:多分支的最佳子网络转化成单支路网络;步骤六:使用单支路网络完成任务推理。本发明用于搜索可进行重参数的神经网络结构,在保证推理精度的同时,确保了推理的实时性以及模型运算的高效率。

权利要求 :

1.面向边缘计算的重参数神经网络架构搜索方法,其特征在于包括如下步骤:S1,设计各个支路的算子以及搜索空间,为原始卷积设置支路,构成多分支块,用于提取不同视野下的图片特征;

S2,构建包含所有支路的超级网络,通过不断堆叠多分支块,构建支路的网络结构;

S3,通过离散神经网络架构搜索方法,在给定显存限制下,训练超级网络,包括如下步骤:

S31,给定显存最大限制C,初始化每条支路的结构参数α和权重参数θ;

S32,计算每条支路的重要性:    (1)

其中,Zi,j表示第i个多分支块中第j条支路的重要性,exp( )表示指数e,αi,j表示第i个多分支块中第j条支路的结构参数,ζi,j表示第i个多分支块中第j条支路的采样噪声,λi,j表示第i个多分支块中第j条支路的温度系数;

S33,计算每条支路是否激活:    (2)

其中Ri,j=αi,j+ζi,j,Rank(Ri,j)表示第i个多分支块中第j条支路在所有支路中的重要性排名,s表示排名阈值,通过调整s的大小来满足所述显存最大限制C,低于该排名阈值的支路不激活;

S34,获取训练数据,多分支块中的每条支路获取不同的图像特征,激活公式(2)中值为

1的支路,进行前向推理,之后计算预测的图像分类标签与真实的图像分类标签的损失函数L;

S35,通过反向传播,分别计算权重参数θ和激活参数Z在损失函数L上的梯度,所述激活参数Z是由Zi,j组成的向量,同时计算结构参数ɑ在logp(Z)上的梯度,p(ɑ)是结构参数ɑ经过如下公式概率化后的结果

    (3)

S36,根据对L的梯度,更新权重参数θ,同时根据如下公式更新结构参数ɑ:    (4)

其中EZp(Zi,j)表示在Z采样于p(Zi,j)概率分布下的期望,▽αi,j是第i个多分支块中第j~

条支路的结构参数α在logp(Z)上的梯度;

S37,回到S32,直至超级网络中的权重参数和结构参数训练到收敛;

S4,将训练后多余的支路从超级网络中去除,得到最佳子网络,根据公式(2)去除经过步骤3训练的超级网络中未激活的支路;

S5,将多支路的最佳子网络融合成单支路的最佳子网络;

S6,使用单支路的最佳子网络获取图像特征,进行实时推理,将融合后的单支路网络进行图像分类。

2.根据权利要求1所述的面向边缘计算的重参数神经网络架构搜索方法,其特征在于所述S5,通过重参数方法将多支路的最佳子网络融合成单支路的最佳子网络,包括如下步骤:

S51,将保留下来的每条支路中的卷积层和BN层权重参数进行重参数融合;

S52,将各支路重参数融合为与原始卷积相同尺度的卷积,再分别与原始卷积融合成一j

个卷积F ;

j

S53,将同一个多分支块中的多分支卷积F 融合成一个卷积。

3.根据权利要求2所述的面向边缘计算的重参数神经网络架构搜索方法,其特征在于所述S51中重参数融合公式如下    (5)

其中,γ表示BN层的缩放参数、μ表示BN层特征的均值、σ表示BN层特征的标准差、β表示BN层的平移参数,F’m,:,:,:和Fm,:,:,:分别表示融合后和融合前卷积层第m个输出通道的权重参数,b’m表示融合后卷积层第m个输出通道的偏置参数,下标中的:表示融合后或融合前卷积层的维度的所有元素。

4.根据权利要求2所述的面向边缘计算的重参数神经网络架构搜索方法,其特征在于所述S52中,先将各支路分别转换成与原始卷积相同的尺度,再将各支路转换后的卷积分别与原始卷积,根据如下的重参数公式,融合成一个卷积:    (6)

1 2

其中TRANS表示对张量的转置操作,F 表示转换后的第j条支路的卷积,F 表示原始卷j j

积,D为输入通道数,K1、K2为卷积核尺寸,F 表示第j条支路对应的融合后的卷积,bm表示融1

合后卷积层第m个输出通道的偏置,bd表示转换后的第j条支路的卷积第d个输入通道的偏

2 2

置,bd表示原始卷积第d个输入通道的偏置,Fm,d,u,v表示原始卷积第m个输入通道、第d个输出通道下,卷积核第u行第v列的权重。

5.根据权利要求2所述的面向边缘计算的重参数神经网络架构搜索方法,其特征在于所述S52中的支路卷积通过补零操作,将尺度转换成于原始卷积相同。

6.根据权利要求2所述的面向边缘计算的重参数神经网络架构搜索方法,其特征在于所述S53中多个卷积融合成一个卷积的重参数公式如下    (7)

‘ 

其中N为支路数量,b  为融合后的偏置。

7.根据权利要求1所述的面向边缘计算的重参数神经网络架构搜索方法,其特征在于所述S31中的初始化后,先进行对支路的随机采样,并只更新权重参数θ,再进行支路的重要性采样,并更新结构参数ɑ和权重参数θ,最后进行支路的重要性采样,并固定结构参数ɑ,只更新权重参数θ。

8.根据权利要求1所述的面向边缘计算的重参数神经网络架构搜索方法,其特征在于所述S32中的采样噪声,是服从均值为0、方差为1的Logistics分布,log(‑log(u1))‑log(‑log(u2)),其中u1和u2都是ui~U(0,1),表示ui服从0到1的均匀分布。

9.根据权利要求1所述的面向边缘计算的重参数神经网络架构搜索方法,其特征在于所述S1中的原始卷积为原始K×K卷积,其支路有6条分别为:1×1卷积、1×K卷积、K×1卷积、1×1‑K×K卷积、1×1‑AVG卷积以及捷径short cut。

10.根据权利要求1所述的面向边缘计算的重参数神经网络架构搜索方法,其特征在于所述S1中,每条支路的算子后,添加批量归一化BN操作,将每条支路的输出结果,按元素相加,并进行非线性操作,结合起来作为当前多分支块的输出。

说明书 :

面向边缘计算的重参数神经网络架构搜索方法

技术领域

[0001] 本发明涉及神经网络架构搜索技术领域,尤其是涉及面向边缘计算的重参数神经网络架构搜索方法。

背景技术

[0002] 神经网络架构搜索是近年来机器学习领域中的研究热门,这种技术包括对搜索算子和空间的设计,搜索算法的设计等。目前,神经网络架构搜索技术可用于自动化的设计各
种大小的神经网络模型,避免人工进行复杂的参数调整。其中,最具潜力的应用之一在设计
轻量化的神经网络模型,提高神经网络在移动设备上的应用能力。
[0003] 在移动设备中,神经网络推理的实时性和准确性是两大要考虑的因素。在早期人工设计的轻量化神经网络模型中,Howard等人提出了MobileNet,该神经网络是单支路的结
构,通过1×1的点卷积和3×3的深度分离卷积交替运算大大降低了网络的参数量,从而提
升了推理速度(Howard, A.G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., 
Weyand, T., Andreetto, M., Adam, H.: Mobilenets: Efficient convolutional 
neural networks for mobile vision applications. In ArXiv abs/1704.04861, 
2017.)。但是由于该模型是单支路结构,很难得到较高的准确性。同时,在人工设计轻量化
模型时,许多工作往往把网络的参数量或浮点数运算量作为衡量模型快慢的指标。然而类
似跳跃连接等无参数且低浮点数运算的操作仍会导致推理速度变慢。
[0004] 为了缓解深度单支路结构网络准确性低和多支路网络结构推理慢的问题,Ding等人提出了利用结构重参数技术训练神经网络,即在网络训练时网络为多分支结构,而在网
络推理时网络为单支路结构(Xiaohan Ding and Xiangyu Zhang and Ningning Ma and 
Jungong Han and Guiguang Ding and Jian Sun.: RepVGG: Making VGG‑style 
ConvNets Great Again. In CVPR, 2021)。此外,大多数的深度学习推理框架都对3×3卷
积有优化,因此全部都由3×3组成的单支路结构可以获得非常快的推理速度。
[0005] 虽然RepVGG系列模型已经大大提高了模型的实际推理速度,但因为支路的结构是人为固定的,所以网络模型的准确性仍有非常大的提升空间。此外,过多的支路会导致训练
网络模型需要的显存空间大大增加。因此,如何高效的通过重参数技术提升模型性能成为
时下需要解决的问题。

发明内容

[0006] 为解决现有技术的不足,出一种易实现、适用性高的,可搜索出部署在边缘计算情况下的重参数神经网络模型,实现保证网络高精度的同时,提高实时检测速度的目的,本发
明采用如下的技术方案:
[0007] 面向边缘计算的重参数神经网络架构搜索方法,包括如下步骤:
[0008] S1,设计各个支路的算子以及搜索空间,为了加强K×K卷积提取特征的能力,每个原始K×K卷积设置支路,包括其他尺度的卷积和捷径short cut,构成多分支块,用于提取
不同视野下的图片特征;
[0009] S2,构建包含所有支路的超级网络,借鉴VGG网络中的直筒设计,通过不断堆叠K×K卷积的多分支块,构建一个单支路冗余的网络结构;
[0010] S3,通过离散神经网络架构搜索方法,在给定显存限制下,训练超级网络,包括如下步骤:
[0011] S31,给定显存最大限制C,初始化每条支路的结构参数ɑ和权重参数θ;
[0012] S32,计算每条支路的重要性:
[0013]     (1)
[0014] 其中,Zi,j表示第i个多分支块中第j条支路的重要性,exp( )表示指数e,αi,j表示第i个多分支块中第j条支路的结构参数,ζi,j表示第i个多分支块中第j条支路的采样噪声,
λi,j表示第i个多分支块中第j条支路的温度系数,在此处其初始值为1;
[0015] S33,计算每条支路是否激活:
[0016]     (2)
[0017] 其中Ri,j=αi,j+ζi,j,Rank(Ri,j)表示第i个多分支块中第j条支路在所有支路中的重要性排名,s表示排名阈值,通过调整s的大小来满足所述显存最大限制C,低于该排名阈值
的支路不激活;
[0018] S34,获取一批训练数据,多分支块中的每条支路获取不同的图像特征,激活公式(2)中值为1的支路,进行前向推理,之后计算预测的图像分类标签与真实的图像分类标签
的损失函数L(交叉熵);
[0019] S35,通过反向传播,分别计算权重参数θ和激活参数Z在损失函数L上的梯度,所述激活参数Z是由Zi,j组成的向量,同时计算结构参数ɑ在logp(Z)上的梯度,Z是离散后的ɑ,p
(ɑ)是结构参数ɑ经过如下公式概率化后的结果
[0020]     (3)
[0021] S36,根据对L的梯度,更新权重参数θ,同时根据如下公式更新结构参数ɑ(当不是随机采样时,根据如下公式计算结构参数ɑ的梯度)
[0022]     (4)
[0023] 其中EZp(Zi,j)表示在Z采样于p(Zi,j)概率分布下的期望,▽αi,j 是第i个多分支块~
中第j条支路的结构参数α在logp(Z)上的梯度;
[0024] S37,回到S32,直至超级网络中的权重参数和结构参数训练到收敛;
[0025] S4,将训练后多余的支路从超级网络中去除,得到最佳子网络,根据公式(2)去除经过步骤3训练的超级网络中未激活的支路,剩余支路的权重参数直接从超级网络中继承,
不需要重新训练或者微调;
[0026] S5,将多支路的最佳子网络融合成单支路的最佳子网络;
[0027] S6,使用单支路的最佳子网络获取图像特征,进行实时推理,将融合后的单支路网络进行图像分类,融合前和融合后的网络在准确性上无任何差别,但大大降低了网络的参
数量和推理时间。
[0028] 进一步地,所述S5,通过重参数方法将多支路的最佳子网络融合成单支路的最佳子网络,包括如下步骤:
[0029] S51,将保留下来的每条支路中的卷积层和BN层权重参数进行重参数融合;
[0030] S52,将各支路重参数融合为与原始卷积相同尺度的卷积,再分别与原始K×K卷积j
融合成一个卷积F ;
[0031] S53,将同一个多分支块中的多分支K×K卷积Fj融合成一个K×K卷积。
[0032] 进一步地,所述S51中重参数融合公式如下
[0033]     (5)
[0034] 其中,γ表示BN层的缩放参数、μ表示BN层特征的均值、σ表示BN层特征的标准差、β表示BN层的平移参数,F’m,:,:,:和Fm,:,:,:分别表示融合后和融合前卷积层第m个输出通道的
权重参数,b’m和bm分别表示融合后和融合前卷积层第m个输出通道的偏置参数,下标中的:
表示该维度的所有元素。
[0035] 进一步地,所述S52中,先将各支路分别转换成与原始K×K卷积相同的尺度,再将各支路转换后的K×K卷积分别与原始K×K卷积,根据如下的重参数公式,融合成一个K×K
卷积:
[0036]     (6)
[0037] 其中TRANS表示对张量的转置操作,F1表示转换后的第j条支路的K×K卷积,F2表示j
原始K×K卷积,D为输入通道数,K1、K2为卷积核尺寸,F 表示第j条支路对应的融合后的K×K
j 1
卷积,b m表示融合后卷积层第m个输出通道的偏置,bd表示转换后的第j条支路的K×K卷积
2 2
第d个输入通道的偏置,bd表示原始K×K卷积第d个输入通道的偏置,F m,d,u,v表示原始K×K
卷积第m个输入通道、第d个输出通道下,卷积核第u行第v列的权重。
[0038] 进一步地,所述S52中的支路卷积1×1卷积、1×K卷积、K×1卷积、1×1‑AVG和short cut通过补零操作,将尺度转换成于原始K×K卷积相同。
[0039] 进一步地,所述S53中多个卷积融合成一个卷积的重参数公式如下
[0040]     (7)
[0041] 其中N为支路数量,bj为融合后的偏置。
[0042] 进一步地,所述S31中的初始化后,先进行对支路的随机采样,并只更新权重参数θ,再进行支路的重要性采样,并更新结构参数ɑ和权重参数θ,最后进行支路的重要性采样,
并固定结构参数ɑ,只更新权重参数θ。
[0043] 进一步地,所述S32中的采样噪声,是服从均值为0、方差为1的Logistics分布,log(‑log(u1))‑log(‑log(u2)),其中u1和u2都是ui~U(0,1),表示ui服从0到1的均匀分布。
[0044] 进一步地,所述S1中的原始卷积为原始K×K卷积,其支路有6条,其算子分别为:1×1卷积、1×K卷积、K×1卷积、1×1‑K×K卷积、1×1‑AVG卷积以及捷径short cut。
[0045] 进一步地,所述S1中,多支路结构虽然可以强化网络提取特征的能力,但是会极大的降低网络推理速度,为了使用重参数技术提高推理速度,每条支路的算子都必须是线性
的且之后都不加非线性操作,而是采用一个带缩放和平移的BN层,使得每个算子的结果有
一定的非线性变换,为了进一步增强网络的非线性能力,当前块的输出会经过一个ReLU层
进行非线性变换,即每条支路的算子后,添加批量归一化BN(Batch Normalization)操作,
将每条支路的输出结果,按元素相加,并进行非线性操作(ReLU),结合起来作为当前多分支
块的输出。
[0046] 本发明的优势和有益效果在于:
[0047] 本申请大大提升了利用重参数技巧训练网络时的训练效率以及网络准确性,即减少了神经网络训练的计算量和存储量,同时训练后的模型能有更优秀的性能;且在训练完
成后,可以将多分支结构网络无任何损失的转化为单分支网络,减少了网络推理时的参数
量和推理时间。

附图说明

[0048] 图1是本发明中搜索算子和多支路块的结构图。
[0049] 图2是本发明中超级网络训练阶段的流程图。
[0050] 图3是本发明中多支路融合为单支路的方案图。
[0051] 图4是本发明中剩余支路构成的超级网络结构图。

具体实施方式

[0052] 以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
[0053] 本发明首先构建一个多支路块作为搜索空间,该多支路块可以通过重参数技术融合为单支路,该多支路块由1×1卷积、1×K卷积、K×1卷积、1×1‑K×K卷积、1×1‑AVG卷积
以及short cut组成。通过堆叠多支路块构建一个超级网络,该超级网络包含了所有子网络
结构。之后训练超级网络,并且在训练过程中渐近式的为每个块搜索出最佳的支路结构,不
同块的支路结构可以不同。在训练的开始,每次迭代过程中每条支路都有一定概率被采样。
采样到的支路会更新其权重参数和结构参数(采样概率)。随着训练的深入,无用的支路被
采样到的次数会慢慢变少直至完全不采样。在训练结束后,不再被采样的支路会被去除,而
剩下的支路则根据重参数技术融合为一条支路,提升网络的推理速度。
[0054] 具体地,本实施例涉及一种面向边缘计算的重参数神经网络架构搜索方法,包括如下步骤:
[0055] 步骤1:搜索算子与多支路块结构设计,如图1所示;
[0056] 步骤1‑1:不同核尺寸的卷积可以提取不同视野下的图片特征,因此每条支路都采用了不同卷积核大小的卷积或者平均池化算子,ResNet系列网络中使用的跳跃连接(short 
cut)可以被看作是一种权重参数永远是1的1×1卷积,此处卷积核尺寸K=3,被设计的6条支
路算子分别为:1×1卷积、1×3卷积、3×1卷积、1×1‑3×3卷积、1×1‑AVG卷积以及short 
cut,所有支路的最终结果通过元素相加结合起来作为当前块的输出;
[0057] 步骤1‑2:多支路结构虽然可以强化网络提取特征的能力,但是会极大的降低网络推理速度,为了使用重参数技术提高推理速度,每条支路的算子都必须是线性的且之后都
不加非线性操作,而是采用一个带缩放和平移的BN层使得每个算子的结果有一定的非线性
变换,为了进一步增强网络的非线性能力,当前块的输出会经过一个ReLU层进行非线性变
换。
[0058] 步骤2:构建超级网络;
[0059] 步骤2‑1:借鉴许多人工设计的网络经验,不断堆叠步骤1中设计的多分支块,形成一个支路冗余的超级网络,此处构建的超级网络包含22个多分支块,每个块的输出通道数
分别为48、48、48、96、96、96、96、192、192、192、192、192、192、192、192、192、192、192、192、
192、192、1280,第1、2、4、8、22个多分支块中每个算子的步长为2,用于对图像进行下采样,
网络输出的特征图最后会经过一个全局平均池化层,再由一个输入是1280维,输出是1000
维的全连接层输出每个分类的值。
[0060] 步骤3:在ImageNet‑1K数据集上训练构建好的超级网络,训练流程图如图2所示;
[0061] 步骤3‑1:初始化超级网络的权重参数θ和结构参数α,训练超参数设置为:权重参数优化器为带动量的SGD,初始学习率为0.1,动量为0.9,权重衰减为0.0001,每次迭代都通
过CosineAnnealingLR进行学习率衰减,结构参数优化器为Adam,初始学习率为0.0001,
betas为(0.5, 0.999),不进行权重衰减,训练的batch size为256,超级网络总共训练
120epochs,前15epochs进行随机采样并只更新权重参数,中间50epochs进行结构参数和权
重参数的更新,最后55epochs固定结构只更新权重参数,在本次实施过程中支路总数量C设
置为75,即给定显存最大限制C为75;
[0062] 步骤3‑2:如果进行随机采样,则每条支路都有50%概率被激活,如果不是随机采样,则根据公式(1)计算每条支路的重要性,再根据公式(2)把重要性高于0.5的支路激活;
[0063] 步骤3‑3:获取一批训练数据,用被激活的支路进行前向推理,计算损失函数,此处损失函数采用交叉熵,并通过反向传播计算权重参数θ的梯度,如果不是随机采样,则需要
根据公式(4)计算结构参数α的梯度;
[0064] 步骤3‑4:用SGD优化器更新权重参数θ,用Adam优化器更新结构参数α;
[0065] 步骤3‑5:如果训练没有结束则返回步骤3‑2,如果训练结束则输出训练完成的超级网络。
[0066] 步骤4:将训练完的超级网络中不激活的支路删除,保留剩余支路以及对应的权重参数,剩余支路构成的超级网络结构如图4所示,在测试集上对超级网络进行测试,获得
72.96% top‑1正确率,每一批图片需要的推理时间为0.68秒。
[0067] 步骤5:将超级网络中每个块的支路进行合并,合并示意图如图3所示;
[0068] 步骤5‑1:把每个算子之后的BN层根据公式(5)和算子进行合并;
[0069] 步骤5‑2:把1×1卷积、1×3卷积、3×1卷积、AVG和short cut通过补零转换成3×3卷积,再把每条支路的3×3卷积和原始的3×3卷积根据公式(6)进行合并。
[0070] 步骤6:将融合后的单支路模型在测试集上进行图像分类,测试设备为Intel Core i7 CPU,模型的正确率、推理速度、参数量以及浮点数计算量如表1所示,与单支路训练模型
相比,本专利方法训练的模型拥有与其一样的推理速度和模型大小,但是正确率却远远高
于单支路训练模型,此外,与多支路推理模型相比,本专利方法由于能将多支路融合为单支
路,因此能在不损失任何性能的情况下,大大降低模型参数量和计算量。
[0071] 方法 Top1正确率(%)推理速度(s)参数量(M)浮点数计算量(G)单支路训练单支路推理 69.12 0.26 6 2
多支路训练多支路推理 72.96 0.68 23 14
多支路训练单支路推理(本专利方法) 72.96 0.26 6 2
[0072] 表1模型推理结果比较表
[0073] 以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例
所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修
改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。