CN114118357A - 计算机视觉神经网络中替换激活函数的重训练方法及系统 - Google Patents
计算机视觉神经网络中替换激活函数的重训练方法及系统 Download PDFInfo
- Publication number
- CN114118357A CN114118357A CN202111191968.3A CN202111191968A CN114118357A CN 114118357 A CN114118357 A CN 114118357A CN 202111191968 A CN202111191968 A CN 202111191968A CN 114118357 A CN114118357 A CN 114118357A
- Authority
- CN
- China
- Prior art keywords
- training
- optimizer
- learning rate
- model
- stage
- 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
Images
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/045—Combinations of 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/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/08—Learning methods
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
技术领域
本发明涉及计算机视觉神经网络技术领域,具体地,涉及一种计算机视觉神经网络中替换激活函数的重训练方法及系统。
背景技术
计算机视觉神经网络(Computer Vision Neural Network)是人工智能中的代表技术。它接收输入的2D图片、3D点云帧、2D视频帧流、3D点云帧流、双目摄像头输入流等视觉数据信息,通过一系列的线性运算与非线性运算,输出使用者指定任务的预测结果。使用者可指定的任务包括但不限于图片分类、图片目标检测、图片语义分割、3D目标检测、3D语义分割,单目动态检测,单目深度预测,图片风格迁移等。
通常,计算机视觉神经网络的构建是通过堆叠一系列的特征提取模块再加上预测头而成,或者通过“编码器-解码器(Encoder-Decoder)”的方式构成。但是无论哪一种,其核心构成模块始终为卷积模块。卷积模块的输入为“输入特征图(Feature Map)”,输出为“输出特征图”,输入特征图经过卷积模块后,图像的特征会被卷积核提取并且深层抽象至输出特征图上。经过多个这样的卷积模块堆叠提取特征,送入预测头后,预测头根据抽象语义信息可以进行预测。
上述的卷积模块通常由三部分构成:①线性运算部分;②特征图归一化部分;③非线性运算部分。本发明讨论的范畴也限定在这样构成范式的卷积模块中,这样的三段式卷积模块中的每个部分可能为以下具体的“算子\层\节点”构成。
1、线性运算部分:
a)矩阵乘运算(Matrix Multiply);
b)全连接运算(Full Connect);
c)卷积运算(Convolution),包括普通卷积、空洞卷积、转置卷积等各种变体;
2、特征图归一化部分:
a)批量归一化(Batch Normalization);
b)层归一化(Layer Normalization);
c)实例归一化(Instance Normalization);
d)组归一化(Group Normalization);
3、非线性运算部分:
a)线性整流函数(Rectified Linear Unit,ReLU);
b)Sigmoid激活函数;
c)Swish激活函数;
d)其它常见的激活函数等。
典型的现实例子为ResNet-50,它的每一个卷积模块的构成可以被枚举为以下两种组合方式:
1、卷积运算,批量归一化,线性整流函数(记作Conv-BN-ReLU);
2、全连接运算,批量归一化,线性整流函数(记作FC-BN-ReLU)。
整个ResNet就由这样的模块进行堆叠连接构成,各个模块内的卷积参数略有改变,整个网络可以提取出图片的高层抽象语义后进行类别预测。而其它的计算机视觉神经网络亦是类似的,通过选择不同的线性运算、归一化运算、非线性运算进行组合,通过对卷积核本身的参数改变,通过不同的堆叠与连接方式,最终构成了多种多样的网络结构。
而计算机视觉神经网络需要经过“训练(Train)”才能具备完成指定任务的能力。通常而言,训练计算机视觉神经网络的最常用方法为“有监督训练”,即通过给定“输入-标签”对,由神经网络接收输入,经过内部计算,产生神经网络的“预测输出”,该“预测输出”与标签进行比对,通过一定的计算方式得到“误差”,最后通过“反向传播”回传误差,更新网络中每个参数\权重(Weight)。
根据任务本身的复杂性、网络的复杂程度、数据集本身的复杂程度,训练一个神经网络的计算量消耗各异,但是总的来说,上述的训练过程需要重复极多次才能收权重达到“收敛”状态。在完成最终训练后,我们可以称该神经网络的“权重(Weight)”为“已训练权重”,或者说,权重已“收敛”。我们可以直接把这样的权重原封不动地载入对应神经网络结构中,进行其它任务或者数据集的训练,这时,被载入的权重可以被称为“预训练权重”,它特指该权重在某个数据集下已被训练至收敛状态。
而对网络进行训练这一过程,至少在以下情况下是切实需要的:
1.对原模型中的某部分结构进行精简、扩大、修改等改动性的动作;
2.不更改原模型任何结构,但对已训练好的原模型更改任务领域,例如从对“泛式的图像分类任务”切换至“对某种大类别物体的子类分类任务,例如对狗的品种进行分类”。
而本发明涉及的“激活函数替换”则是满足上述情况1,即对神经网络本身的结构进行了修改。而对模型本身结构进行修改的目的存在多种多样,例如为了替换预测头来完成不同的任务,又例如为了提升模型推理速度而精简网络部分层等。但是总而言之,对模型本身的结构进行修改后,神经网络的原始权重便不再适用,需要再次经过训练来达到收敛状态。紧接着的下文将讨论如何把替换了激活函数的神经网络训练至收敛的两种传统方式。
技术一:从头训练(Train From Scratch):
从头训练的方式为最直接的训练方式,它是指,给定一个神经网络,其权重通过某种带有一定特性的方式随机初始化,再给定数据集,通过一定的训练策略(训练策略包括优化器选择、学习率衰减、权重衰减以及若干正则化手段),使得神经网络权重收敛。这其中,可训练的参数通常包括以下三类:①线性运算部分参数,即卷积核参数、全连接层参数、矩阵乘法中的权重矩阵参数;②归一化层参数,例如批量归一化中的“均值参数”和“方差参数”;③其它的线性计算参数,例如进行回归任务时的乘法系数参数等。
下方给出过程的伪代码表示。
通过上述的方法,在替换的激活函数合理并且训练方案合理的前提下,可以把网络的权重训练至收敛状态。
技术二:载入预训练权重整网训练:
载入预训练权重再进行整网训练则是一个更被实际采用的训练范式。通常而言,应用人员不见得会完全新构建一个计算机视觉神经网络,而是把一个现有的计算机视觉神经网络的“骨架结构(Backbone)”配合上自己任务需要的预测头进行使用,亦或是会对原网络的骨架结构进行部分的修改以在“精度”和“性能”之间取得更倾向的效果。而对于这样构建出来的计算机视觉神经网络,采用从头训练显然不是一个明智的选择,而更为广泛采用的训练方案则是:对于没有修改的部分载入先前已训练好的预训练权重,被修改的部分以某种随机初始化方式初始化。然后,可选择地固定或不固定未修改部分的权重,对网络进行训练,使其最终达到收敛状态。
下方给出过程的伪代码表示。
通过上述的方法,在替换的激活函数合理并且训练方案合理的前提下,可以比从头训练更快更容易地把网络的权重训练至收敛状态。
上述两种技术存在以下缺点:
1.从头训练消耗计算资源过大。对于现阶段流行的若干种网络,如果想完全从头开始训练,都是需要消耗大量的计算资源才有可能把网络训练至收敛状态。并且,由于训练效果和模型本身结构、训练时选择的相关超参数方案(优化器、学习率策略、正则化策略、输入数据前处理策略、输出预测后处理策略等)严重耦合,想要获得达到预期效果的权重往往又需要经过多次的完整训练才有可能得到。这对于应用人员而言,如果想只简单地替换掉激活函数来获得精度提升或性能提升,是显然成本过高的;
2.载入预训练权重训练的效果与训练方式、模型本身仍然存在强烈耦合,且可能出现权重无法训练至收敛的情况,尽管从预训练权重去训练一个激活函数被替换的网络会更容易和耗时更短一些,但是它确实仍然存在着训练方案和训练效果、模型本身结构强耦合的事实,例如对于两个不同的网络(例如ResNet-50和VGG-16),使其处理相同任务,且采用同样的激活函数替换策略和同样的训练方案,两者可能得到完全不同的效果。这意味着应用人员每想替换一个网络的激活函数,就需要单独地为其设计一套训练方案。此外,在一些情况下,如果通过预训练权重进行训练,并且若是对网络全部的激活函数进行了替换,那么可能存在无法训练至收敛的情况。例如对于EfficientDet-3中,把所有的Swish激活函数替换为ReLU后,以预训练权重作为起点进行训练,通过若干种常规训练方式尝试后,都无法把替换后的模型训练回原模型结构下-5mAP内的精度。
公开号为CN107644252A的发明专利,公开了一种多机制混合的递归神经网络模型压缩方法,方法包括:A、循环矩阵约束:将递归神经网络中部分参数矩阵限制为循环矩阵,并更新后向梯度传播算法使网络可以进行循环矩阵的批量训练;B、前向激活函数近似:前向运算时将非线性的激活函数替换为硬件友好的线性函数,后向梯度更新过程保持不变;C、混合量化:根据递归神经网络中不同参数对误差可容忍度的差异,针对不同参数采用不同的量化机制;D、二次训练机制:将网络模型的训练分为初始训练和重训练两个阶段,每个阶段侧重不同的模型压缩方法,很好地避免了不同模型压缩方法间的相互影响,最大程度上减少了模型压缩方法带来的精度损失。
发明内容
针对现有技术中的缺陷,本发明提供一种计算机视觉神经网络中替换激活函数的重训练方法及系统。
根据本发明提供的一种计算机视觉神经网络中替换激活函数的重训练方法及系统,所述方案如下:
第一方面,提供了一种计算机视觉神经网络中替换激活函数的重训练方法,所述方法包括:
单阶段的替换训练方法范式或两阶段的替换训练方法范式;
所述单阶段的替换训练方法范式或所述两阶段的替换训练方法范式包括:指定训练方案参数后启动训练程序,再给出替换激活函数后的模型权重文件。
优选的,所述单阶段的替换训练方法范式:指定好训练方案参数后启动训练程序,到程序结束后直接给出替换激活函数后的,接近于原模型精度的权重文件。
优选的,所述单阶段的替换训练方法范式具体包括:
步骤S1.1:确定优化器,优化器的选择能够直接根据原始模型所采用的优化器,或是通用的SGD优化器或AdamW优化器;
步骤S1.2:标定优化器超参数,在对模型替换激活函数前,以原始模型作为被训练模型,探索一个稳定的学习率优化器超参数,使得模型在训练迭代中能够维持精度;
步骤S1.3:分离归一化层可训练参数与模型其它的可训练参数;
步骤S1.4:为两类权重设置两种不同的学习率调度策略;
步骤S1.5:开始训练,直至训练达到预定的损失值\精度\Epoch。
优选的,所述步骤S1.2具体方式包括:
步骤S1.2.1:在选定优化器后,以0学习率和0权重衰减进行训练,记录前若干次迭代后的损失值均值;
步骤S1.2.2:按照步骤S1.2.1完全相同的数据送入顺序,数据随机预处理方式,设定一个非零的学习率、权重衰减参数以及其它优化器相关的超参数,进行训练,记录相同步数次迭代后的损失值均值;
步骤S1.2.3:若步骤S1.2.2的损失值均值相较于步骤S1.2.1的损失均值的差值达到一定阈值,那么终止该步骤,并且标定现在的优化器超参数为优化器超参数集合A;
若未达到阈值,那么根据现阶段的优化器超参数本身选择是否调整,然后重复步骤S1.2.2,直到优化器超参数中的学习率已经达到较大的数值或者步骤S1.2.2的损失值超过阈值。
优选的,所述步骤S1.3包括:通过编写模型权重过滤器,把模型中的归一化层的可训练参数的引用放入至某种数据结构中,同时把其它的可训练参数放至另一个同种类的数据结构中,使得优化器以两种更新策略对这两部分权重进行更新。
优选的,所述步骤S1.4中为两类权重设置两种不同的学习率调度策略,设置原则包括:
步骤S1.4.1:在训练中的绝大多数时间段内,归一化层可训练参数的学习率需要大于其它可训练参数的学习率,并且维持这个学习率进行训练,其学习率最大值应该为优化器产参数集合A中学习率的若干倍;
步骤S1.4.2:在训练中的末期时间段,归一化层可训练参数的学习率开始降低,直至与其它可训练参数的学习率平齐;
步骤S1.4.3:其它可训练参数的学习率在训练的初始至中期阶段置为0,直至末期再逐步调整至优化器产参数集合A中学习率,亦能够一直保持零学习率直至训练结束。
优选的,所述两阶段的替换训练方法范式:整个训练过程分两步完成,首先指定好第一次的训练方案参数后启动训练程序,到程序结束后给出初步替换激活函数后的模型权重文件;
紧接着开始第二阶段的训练,载入上一步得到的权重文件,指定新的训练方案参数,启动训练程序,到程序结束后给出最终的替换激活函数后的模型权重文件。
优选的,所述两阶段的替换训练方法范式具体包括:
步骤S2.1:确定优化器,优化器的选择能够直接根据原始模型所采用的优化器,或是通用的SGD优化器或AdamW优化器;
步骤S2.2:标定优化器超参数,在对模型替换激活函数前,以原始模型作为被训练模型,探索一个稳定的学习率优化器超参数,使得模型在训练迭代中能够维持精度;
步骤S2.3:分离归一化层可训练参数与模型其它的可训练参数;
步骤S2.4:为两类权重设置两种不同的学习率调度策略;
步骤S2.5:开始第一阶段的训练,直至训练达到预定的损失值\精度\Epoch,存出第一阶段的权重;
步骤S2.6:重新初始化模型与优化器,载入步骤S2.5得到的权重,为优化器设置步骤S2.2得到的优化器产参数集合A,应用至全体可训练参数上;
步骤S2.7:开始训练,直至训练达到预定的损失值\精度\Epoch。
优选的,所述步骤S2.4中为两类权重设置两种不同的学习率调度策略,设置原则包括:
步骤S2.4.1:对于归一化层可训练参数的学习率以优化器产参数集合A中学习率的若干倍进行训练,在训练初期进行Warm-Up,随后维持住最大学习率进行训练,或通过分步学习率的方式调整学习率,但原则上维持最大学习率训练第一阶段的总训练步数的70%以上;
步骤S2.4.2:对于其它可训练参数的学习率置零。
第二方面,提供了一种计算机视觉神经网络中替换激活函数的重训练系统,所述系统包括:
单阶段的替换训练方法范式或两阶段的替换训练方法范式;
所述单阶段的替换训练方法范式或所述两阶段的替换训练方法范式包括:指定训练方案参数后启动训练程序,再给出替换激活函数后的模型权重文件。
与现有技术相比,本发明具有如下的有益效果:
1、通过提出分离训练归一化层与其它层参数的核心理念,使得对网络激活函数的替换探索实践成为低成本的活动,有利于研究人员与应用人员更快速地进行模型设计探索与模型部署测试等;
2、通过提出专用的激活函数替换后重训练范式,使得研究人员与部署人员在进行这样的重训练时具有明确的训练策略指导,不再需要大规模地进行调参实验,依据本发明所给出的方案范式,仅需在小范围内进行简单调参即可,极大地降低了传统方法下(重)训练网络时因为超参数可选空间过大而造成的不确定性与训练困难问题;
3、更具体的,通过本发明所提出的训练方案范式,在将一些激活函数较复杂的神经网络部署至边缘设备,或者为了在部署时取得极致性能时,依据本发明所提出的激活函数替换训练策略,能够以较小的时间代价与硬件资源代价、以及轻微的精度损失代价,稳定地将原始的激活函数替换至对于硬件负担最小的ReLU激活函数,从而提升网络的运行速度。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为ReLU函数与(标准)Swish函数的响应图;
图2为方法的流程总结示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明实施例提供了一种计算机视觉神经网络中替换激活函数的重训练方法,在计算机视觉神经网络中,输入数据的语义提取与抽象往往都是通过卷积核完成的,在深度神经网络流行的前夕下的神经网络如AlexNet,它们的组成结构里是并没有“特征图归一化”这样的网络层的。而最为流行的“特征图归一化层”,即Batch Normalization(BN),是在2015年时才被提出的,自此之后,神经网络的构建才会把“特征图归一化”这样的层作为标准的构建范式。这其实说明了,神经网络对于输入数据的语义提取能力是最大化依赖于其网络中卷积核的,也就是说,对于特征归一化层,不管它是BN、GN、LN、InstanceNormalization等,它们实质上不对特征提取有影响,或者说影响远小于卷积核本身。而各种归一化层对特征图进行的变换实质上是在对特征图进行数据分布的调整,使得不同数据在经过归一化层后能够具有较为规整且统一的数值分布。
因此,当对网络进行激活函数替换时,特征图经过替换前后激活函数的输出可以被看做是两个具有不同数值分布的输出,尤其当替换的激活函数对是具有类似的响应曲线时。参照图1所示,给出的ReLU激活函数的响应曲线与标准的Swish激活函数(y=x*sigmoid(x))的响应曲线,我们可以直观地感受到,特征图经过两个激活函数后,两者最大的差别会是数值分布的改变。
特征图经过Swish函数后,会相较于经过ReLU函数有更低的均值,同时方差会发生改变,但是两者都是做到了对负值部分的极大抑制,对正值部分的不抑制或极少抑制。本发明思想在于“先只训练归一化层,再训练整个模型”,由于经过相似的激活函数替换后,特征图最大的改变在于其数值分布的改变,而数值分布又是受上一层归一化层的影响,或者说上一层的归一化层决定了激活函数前的特征图数值分布,因此,实质上只需要对归一化层进行重训练,使其参数被调整,能够补偿激活函数替换前后的数值分布改变,使得经过替换后的激活函数后,输出特征图的数值分布仍然变化不大,使得可以被后层的卷积核有效地提取特征。
一种计算机视觉神经网络中替换激活函数的重训练方法,为了解决现有的通过载入预训练权重的训练方案无法面向激活函数替换有一个稳定的训练方案范式,而无法保证重训练效果的问题。本发明适用性良好,表现稳定,可以被广泛应用至神经网络被应用人员部署至各种设备时,应用人员为性能或精度进行取舍而替换激活函数后的重训练上。参照图2所示,该方法核心在于“对卷积核可训练权重和归一化层可训练权重进行分离训练”,具体包括单阶段的替换训练方法范式和两阶段的替换训练方法范式。
其中,单阶段的替换训练方法范式:整个训练过程单次完成,指定好训练方案参数后启动训练程序,到程序结束后直接给出替换激活函数后的,接近于原模型精度的权重文件。
单阶段的替换训练方法范式具体包括:
步骤S1.1:确定优化器,优化器的选择能够直接根据原始模型所采用的优化器,或是通用的SGD优化器或AdamW优化器等;
步骤S1.2:标定优化器(训练)超参数,在对模型替换激活函数前,即以原始模型作为被训练模型,探索一个稳定的学习率优化器(训练)超参数,使得模型在训练迭代中能够维持精度。具体方法分为:
步骤S1.2.1:在选定优化器后,以0学习率和0权重衰减(如果存在)来进行训练,记录前若干次迭代(例如一千次,取决于数据集本身的大小)后的损失值均值。
步骤S1.2.2:按照步骤S1.2.1完全相同的数据送入顺序,数据随机预处理方式,设定一个非零但较小的学习率和权重衰减参数以及其它优化器相关的超参数(如果存在),进行训练,记录相同步数次迭代后的损失值均值。
步骤S1.2.3:若步骤S1.2.2的损失值均值相较于步骤S1.2.1的损失均值的差值达到一定阈值(例如但不限于1%),那么终止该步骤,并且标定现在的优化器超参数为“优化器超参数集合A”。
若未达到阈值,那么根据现阶段的优化器超参数本身选择是否调整,例如可以选择继续增大学习率,然后重复步骤S1.2.2,直到优化器超参数中的学习率已经达到较大的数值或者步骤S1.2.2的损失值超过阈值。
步骤S1.3:分离归一化层可训练参数与模型其它的可训练参数。通过编写简单的模型权重过滤器,把模型中的归一化层的可训练参数的引用放入至某种数据结构中(例如但不限于python中的filter),同时把其它的可训练参数放至另一个同种类的数据结构中,使得优化器以两种更新策略对这两部分权重进行更新。
步骤S1.4:为两类权重设置两种不同的学习率调度策略(learning ratescheduler),其设置原则为:
步骤S1.4.1:在训练中的绝大多数时间段内,归一化层可训练参数的学习率需要大于其它可训练参数的学习率,并且维持这个学习率进行训练,其学习率最大值应该为“优化器产参数集合A”中学习率的若干倍(例如但不限于10倍、100倍、1000倍等);
步骤S1.4.2:在训练中的末期时间段,归一化层可训练参数的学习率开始降低,直至与其它可训练参数的学习率平齐;
步骤S1.4.3:其它可训练参数的学习率可以在训练的初始至中期阶段置为0,直至末期再逐步调整至“优化器产参数集合A”中学习率,亦可以一直保持零学习率直至训练结束。
步骤S1.5:开始训练,直至训练达到预定的损失值\精度\Epoch。
此处给出一种具体且切实可行的设计方案。
针对EfficientDet-3,替换其中所有的Swish为ReLU,选择SGD优化器,对归一化层可训练参数的学习率以Warm-Up的调度策略,设置最大学习率1e-4,设置预热(Warm)1个Epoch;对其它可训练参数设置零学习率,总共经历7个Epoch,可以将替换后的模型精度训练至与原精度相差3mAP内。
其次,两阶段的替换训练方法范式:整个训练过程分两步完成,首先指定好第一次的训练方案参数后启动训练程序,到程序结束后给出初步替换激活函数后的模型权重文件;紧接着开始第二阶段的训练,载入上一步得到的权重文件,指定新的训练方案参数,启动训练程序,到程序结束后给出最终的替换激活函数后的模型权重文件。
两阶段的替换训练方法范式相较于单阶段的替换训练方法范式,在前三步上具有完全相同的步骤,仅从第四步开始出现差异,具体包括:
步骤S2.1:确定优化器,优化器的选择能够直接根据原始模型所采用的优化器,或是通用的SGD优化器或AdamW优化器;
步骤S2.2:标定优化器超参数,在对模型替换激活函数前,以原始模型作为被训练模型,探索一个稳定的学习率优化器超参数,使得模型在训练迭代中能够维持精度;
步骤S2.3:分离归一化层可训练参数与模型其它的可训练参数;
步骤S2.4:为两类权重设置两种不同的学习率调度策略(learning ratescheduler);设置原则包括:
步骤S2.4.1:对于归一化层可训练参数的学习率以优化器产参数集合A中学习率的若干倍进行训练,在训练初期进行Warm-Up,随后维持住最大学习率进行训练,或通过分步学习率的方式调整学习率,但原则上维持最大学习率训练第一阶段的总训练步数的70%以上;
步骤S2.4.2:对于其它可训练参数的学习率置零。
步骤S2.5:开始第一阶段的训练,直至训练达到预定的损失值\精度\Epoch,存出第一阶段的权重;
步骤S2.6:重新初始化模型与优化器,载入步骤S2.5得到的权重,为优化器设置步骤S2.2得到的“优化器产参数集合A”,应用至全体可训练参数上;
步骤S2.7:开始训练,直至训练达到预定的损失值\精度\Epoch。
此处给出一种具体且切实可行的设计方案。
针对EfficientDet-3,替换其中所有的Swish为ReLU,选择SGD优化器,对归一化层可训练参数的学习率以Warm-Up的调度策略,设置最大学习率1e-4,设置预热(Warm)1个Epoch;对其它可训练参数设置零学习率,总共经历7个Epoch,存出第一阶段的权重。在第二阶段,载入先前的权重,针对全体可训练参数设置学习率为1e-5,设置预热1个Epoch,共经过5个Epoch后可以使得替换后模型达到与原始模型精度相差2mAP内的效果。
该方法适用范畴为:
1、所适用的主体为“计算机视觉神经网络模型”;
2、对主体的修改被限定为“替换模型中部分或所有激活函数,激活函数的替换可以是单向的,也可以是组合的”,这意味着,对模型中任意位置的卷积模块的激活函数替换至任意其它的激活函数,都是在发明所声明的范畴内的。例如对于如下构成的网络“Conv-BN-ReLU①-Convㄱ-BN–ReLU②”,在以下替换方式下都所属于本发明的范畴内的。
a)①②全部替换至另一个激活函数,例如两者被替换为Swish以追求更高的精度;
b)①②全部被替换至多个不同的激活函数,例如①被替换为Swish,而②被替换为Leaky ReLU;
c)①②部分被替换至另一个激活函数,例如只有②被替换为Swish;
d)模型中部分激活函数被替换至多个不同的激活函数。
综上,本发明实施例提供了一种计算机视觉神经网络中替换激活函数的重训练方法及系统,其中,两阶段的训练方法范式的优势在于,由于训练分成两步完成,两个阶段可以定制的训练策略更加多样,且在第一阶段完成后相当于训练拥有了一次“保存点”,第二阶段的训练可以不断地在“保存点”上进行试错,最终达到更好的效果。单阶段的替换训练方法范式的优势在于其耗时和计算资源消耗更少。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种计算机视觉神经网络中替换激活函数的重训练方法,其特征在于,包括:单阶段的替换训练方法范式或两阶段的替换训练方法范式;
所述单阶段的替换训练方法范式或所述两阶段的替换训练方法范式包括:指定训练方案参数后启动训练程序,再给出替换激活函数后的模型权重文件。
2.根据权利要求1所述的计算机视觉神经网络中替换激活函数的重训练方法,其特征在于,所述单阶段的替换训练方法范式:指定好训练方案参数后启动训练程序,到程序结束后直接给出替换激活函数后的,接近于原模型精度的权重文件。
3.根据权利要求2所述的计算机视觉神经网络中替换激活函数的重训练方法,其特征在于,所述单阶段的替换训练方法范式具体包括:
步骤S1.1:确定优化器,优化器的选择能够直接根据原始模型所采用的优化器,或是通用的SGD优化器或AdamW优化器;
步骤S1.2:标定优化器超参数,在对模型替换激活函数前,以原始模型作为被训练模型,探索一个稳定的学习率优化器超参数,使得模型在训练迭代中能够维持精度;
步骤S1.3:分离归一化层可训练参数与模型其它的可训练参数;
步骤S1.4:为两类权重设置两种不同的学习率调度策略;
步骤S1.5:开始训练,直至训练达到预定的损失值\精度\Epoch。
4.根据权利要求2所述的计算机视觉神经网络中替换激活函数的重训练方法,其特征在于,所述步骤S1.2具体方式包括:
步骤S1.2.1:在选定优化器后,以0学习率和0权重衰减进行训练,记录前若干次迭代后的损失值均值;
步骤S1.2.2:按照步骤S1.2.1完全相同的数据送入顺序,数据随机预处理方式,设定一个非零的学习率、权重衰减参数以及其它优化器相关的超参数,进行训练,记录相同步数次迭代后的损失值均值;
步骤S1.2.3:若步骤S1.2.2的损失值均值相较于步骤S1.2.1的损失均值的差值达到一定阈值,那么终止该步骤,并且标定现在的优化器超参数为优化器超参数集合A;
若未达到阈值,那么根据现阶段的优化器超参数本身选择是否调整,然后重复步骤S1.2.2,直到优化器超参数中的学习率已经达到较大的数值或者步骤S1.2.2的损失值超过阈值。
5.根据权利要求2所述的计算机视觉神经网络中替换激活函数的重训练方法,其特征在于,所述步骤S1.3包括:通过编写模型权重过滤器,把模型中的归一化层的可训练参数的引用放入至某种数据结构中,同时把其它的可训练参数放至另一个同种类的数据结构中,使得优化器以两种更新策略对这两部分权重进行更新。
6.根据权利要求2所述的计算机视觉神经网络中替换激活函数的重训练方法,其特征在于,所述步骤S1.4中为两类权重设置两种不同的学习率调度策略,设置原则包括:
步骤S1.4.1:在训练中的绝大多数时间段内,归一化层可训练参数的学习率需要大于其它可训练参数的学习率,并且维持这个学习率进行训练,其学习率最大值应该为优化器产参数集合A中学习率的若干倍;
步骤S1.4.2:在训练中的末期时间段,归一化层可训练参数的学习率开始降低,直至与其它可训练参数的学习率平齐;
步骤S1.4.3:其它可训练参数的学习率在训练的初始至中期阶段置为0,直至末期再逐步调整至优化器产参数集合A中学习率,亦能够一直保持零学习率直至训练结束。
7.根据权利要求1所述的计算机视觉神经网络中替换激活函数的重训练方法,其特征在于,所述两阶段的替换训练方法范式:整个训练过程分两步完成,首先指定好第一次的训练方案参数后启动训练程序,到程序结束后给出初步替换激活函数后的模型权重文件;
紧接着开始第二阶段的训练,载入上一步得到的权重文件,指定新的训练方案参数,启动训练程序,到程序结束后给出最终的替换激活函数后的模型权重文件。
8.根据权利要求7所述的计算机视觉神经网络中替换激活函数的重训练方法,其特征在于,所述两阶段的替换训练方法范式具体包括:
步骤S2.1:确定优化器,优化器的选择能够直接根据原始模型所采用的优化器,或是通用的SGD优化器或AdamW优化器;
步骤S2.2:标定优化器超参数,在对模型替换激活函数前,以原始模型作为被训练模型,探索一个稳定的学习率优化器超参数,使得模型在训练迭代中能够维持精度;
步骤S2.3:分离归一化层可训练参数与模型其它的可训练参数;
步骤S2.4:为两类权重设置两种不同的学习率调度策略;
步骤S2.5:开始第一阶段的训练,直至训练达到预定的损失值\精度\Epoch,存出第一阶段的权重;
步骤S2.6:重新初始化模型与优化器,载入步骤S2.5得到的权重,为优化器设置步骤S2.2得到的优化器产参数集合A,应用至全体可训练参数上;
步骤S2.7:开始训练,直至训练达到预定的损失值\精度\Epoch。
9.根据权利要求8所述的计算机视觉神经网络中替换激活函数的重训练方法,其特征在于,所述步骤S2.4中为两类权重设置两种不同的学习率调度策略,设置原则包括:
步骤S2.4.1:对于归一化层可训练参数的学习率以优化器产参数集合A中学习率的若干倍进行训练,在训练初期进行Warm-Up,随后维持住最大学习率进行训练,或通过分步学习率的方式调整学习率,但原则上维持最大学习率训练第一阶段的总训练步数的70%以上;
步骤S2.4.2:对于其它可训练参数的学习率置零。
10.一种计算机视觉神经网络中替换激活函数的重训练系统,其特征在于,包括:
单阶段的替换训练方法范式或两阶段的替换训练方法范式;
所述单阶段的替换训练方法范式或所述两阶段的替换训练方法范式包括:指定训练方案参数后启动训练程序,再给出替换激活函数后的模型权重文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111191968.3A CN114118357A (zh) | 2021-10-13 | 2021-10-13 | 计算机视觉神经网络中替换激活函数的重训练方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111191968.3A CN114118357A (zh) | 2021-10-13 | 2021-10-13 | 计算机视觉神经网络中替换激活函数的重训练方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114118357A true CN114118357A (zh) | 2022-03-01 |
Family
ID=80375825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111191968.3A Pending CN114118357A (zh) | 2021-10-13 | 2021-10-13 | 计算机视觉神经网络中替换激活函数的重训练方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114118357A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116824281A (zh) * | 2023-08-30 | 2023-09-29 | 浙江大学 | 一种隐私保护的图像分类方法及装置 |
-
2021
- 2021-10-13 CN CN202111191968.3A patent/CN114118357A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116824281A (zh) * | 2023-08-30 | 2023-09-29 | 浙江大学 | 一种隐私保护的图像分类方法及装置 |
CN116824281B (zh) * | 2023-08-30 | 2023-11-14 | 浙江大学 | 一种隐私保护的图像分类方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11941523B2 (en) | Stochastic gradient boosting for deep neural networks | |
CN110892417B (zh) | 具有学习教练的异步代理以及在不降低性能的情况下在结构上修改深度神经网络 | |
Gast et al. | Lightweight probabilistic deep networks | |
US20190050734A1 (en) | Compression method of deep neural networks | |
CN109992779B (zh) | 一种基于cnn的情感分析方法、装置、设备及存储介质 | |
US20170344881A1 (en) | Information processing apparatus using multi-layer neural network and method therefor | |
CN107729999A (zh) | 考虑矩阵相关性的深度神经网络压缩方法 | |
CN109389207A (zh) | 一种自适应神经网络学习方法及神经网络系统 | |
CN108846413B (zh) | 一种基于全局语义一致网络的零样本学习方法 | |
CN110929610A (zh) | 基于cnn模型和迁移学习的植物病害识别方法及系统 | |
CN108985457B (zh) | 一种受优化算法启发的深度神经网络结构设计方法 | |
EP3991102A1 (en) | Pruning and/or quantizing machine learning predictors | |
CN110866113A (zh) | 基于稀疏自注意力机制微调伯特模型的文本分类方法 | |
CN116051388A (zh) | 经由语言请求的自动照片编辑 | |
CN113609337A (zh) | 图神经网络的预训练方法、训练方法、装置、设备及介质 | |
Pietron et al. | Retrain or not retrain?-efficient pruning methods of deep cnn networks | |
CN112950505B (zh) | 一种基于生成对抗网络的图像处理方法、系统和介质 | |
US20230267307A1 (en) | Systems and Methods for Generation of Machine-Learned Multitask Models | |
WO2021158830A1 (en) | Rounding mechanisms for post-training quantization | |
Shang et al. | Channel-recurrent autoencoding for image modeling | |
CN113361707A (zh) | 一种模型压缩方法、系统及计算机可读介质 | |
CN114118357A (zh) | 计算机视觉神经网络中替换激活函数的重训练方法及系统 | |
CN114819091A (zh) | 基于自适应任务权重的多任务网络模型训练方法及系统 | |
CN115599918B (zh) | 一种基于图增强的互学习文本分类方法及系统 | |
CN115495579A (zh) | 5g通信助理文本分类的方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |