一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

卷积神经网络权重调优方法、装置、存储介质和电子设备与流程

2022-11-16 10:40:47 来源:中国专利 TAG:


1.本技术涉及神经网络技术,特别涉及一种卷积神经网络权重调优方法、装置、存储介质和电子设备。


背景技术:

2.随着深度学习和神经网络技术的进步,卷积神经网络模型得到了越来越广泛的应用。
3.利用卷积神经网络实现的深度学习是机器学习领域的一种方法,通过搭建层级较深的神经网络,实现图像分类,目标检测,图像分割,机器翻译等任务。卷积神经网络的应用流程,通常分为训练与测试两个阶段。训练阶段使用大规模的数据对卷积神经网络进行训练,而测试阶段则将训练完毕的卷积神经网络应用于各类具体任务。
4.迁移学习是一种机器学习方法,就是把为任务a开发的模型(通常可以称为预训练的基网络)作为初始点,重新使用在为任务b开发模型的过程中;其主要思想是从相关领域(也称为源域)中迁移标注数据或者知识结构、完成或改进目标领域(也称为目标域)或任务的学习效果。迁移学习目前有这几种主流的方式:1)transfer learning:冻结预训练模型全部卷积层,只训练自己定制的全连接层;2)extract feature vector:先计算出预训练模型的卷积层对所有训练和测试数据的特征向量,然后抛开预训练模型,只训练自己定制的简配版全连接网络;3)fine-tune:冻结预训练模型的部分卷积层(通常是靠近输入的多数卷积层),训练剩下的卷积层(通常是靠近输出的部分卷积层)和全连接层。其中,源域是指有大量标注好带标签数据的领域,目标域是指有少量带标签数据的领域。
5.权重调优是一种迁移学习的策略,通过改变基网络中各指定层的学习率参数值,来研究如何将源域中学到的知识迁移到目标域中。目前,改变学习率参数(也称为学习权重)的方式主要是通过手工设置学习权重,一般包括学习权重递增策略和学习权重递减策略,但是这种方式需要依赖很多先验知识的指导,效率低,找到的学习率参数组合的效果依赖于先验知识的准确性,无法保证目标卷积神经网络的性能。


技术实现要素:

6.本技术提供一种卷积神经网络的权重调优方法、装置、存储介质和电子设备,能够不依赖任何先验知识找到迁移学习中的最优或局部最优学习率参数组,提高迁移学习的目标卷积神经网络的性能。
7.为实现上述目的,本技术采用如下技术方案:
8.一种卷积神经网络的权重调优方法,包括:
9.将第一卷积神经网络的各指定层对应的学习率参数组成学习率参数组,将所述学习率参数组作为遗传算法的个体,将所述学习率参数作为所述遗传算法的基因;
10.利用所述遗传算法依次对每一代的所有学习率参数组进行处理,直到满足遗传算法的优化终止条件,以确定用于通过训练所述第一卷积神经网络生成第二卷积神经网络的
最优学习率参数组;
11.其中,所述对每一代的所有学习率参数组进行处理,包括:
12.利用当前代的所有学习率参数组,在所述第一卷积神经网络基础上分别进行训练,生成与相应学习率参数组对应的所述第二卷积神经网络的网络模型,并对应各网络模型进行性能评估;将所述网络模型的性能评估结果作为相应学习率参数组的评价标准,确定当前最佳学习率参数组,判断是否满足所述优化终止条件,若满足所述优化终止条件,则将所述当前最佳学习率参数组作为所述最优学习率参数组,并将利用该学习率参数组训练得到的网络模型作为训练好的第二卷积神经网络;若不满足所述优化终止条件,则通过所述遗传算法确定下一代的所有学习率参数组。
13.较佳地,所述生成与相应学习率参数组对应的所述第二卷积神经网络的网络模型,并对应各网络模型进行性能评估,包括:
14.对于所述当前代的所有学习参数组,分别利用每个学习率参数组,在所述第一卷积神经网络的基础上,通过迁移学习的方式训练生成所述第二卷积神经网络,分别得到所述每个学习率参数组各自对应的网络模型;
15.对所述每个学习率参数组各自对应的网络模型分别进行性能评估,得到所述每个学习率参数组各自对应的网络模型的性能评估结果,作为所述每个学习率参数组的性能评估结果。
16.较佳地,所述判断是否满足所述优化终止条件,包括:
17.若所述当前最佳学习率参数组对应的性能评估结果优于预设的目标性能,或者,若所述遗传算法的迭代次数达到预设的第一最大迭代次数,则确定满足所述优化终止条件;否则,确定不满足所述优化终止条件;其中,每个学习率参数组对应的性能评估结果为相应学习率参数组对应的所述第二卷积神经网络的网络模型的性能评估结果。
18.较佳地,确定当前最佳学习率参数组及其对应的性能评估结果的方式,包括:
19.若所述当前代为第一代,则在第一代的所有学习率参数组中选择对应的性能评估结果最高的学习率参数组,作为所述当前最佳学习率参数组;
20.若所述当前代为非第一代,则在当前代的所有学习率参数组中,若任一学习率参数组对应的性能评估结果优于所述当前代之前的当前最佳学习率参数组对应的性能评估结果,则将所述任一学习率参数组作为最新的当前最佳学习率参数组,否则,所述当前最佳学习率参数组保持不变。
21.较佳地,所述通过所述遗传算法确定下一代的所有学习率参数组,包括:
22.对于当前代的每个学习率参数组中的各个学习率参数,判断是否发生变异,若是,则更新下一代的相应学习率参数,否则,确定下一代的相应学习率参数保持不变。
23.较佳地,所述更新下一代的相应学习率参数包括:
24.对于每个学习率参数组中的第i个学习率参数,将所述下一代的相应学习率参数更新为max(min(p[index[0]]k 0.5*(p[index[1]]
k-p[index[2]]k),up_bound),low_bound);其中,index[i]k=random.sample(range(np),3)表示从当前代的np个学习率参数组中随机抽取的三个学习率参数组中第i个学习率参数组的第k个学习率参数值,3≤np,low_bound为预设的学习率参数的最小值,up_bound为学习率参数的最大值。
[0025]
较佳地,在确定不满足所述优化终止条件后,该方法进一步包括:
[0026]
判断所述当前最佳学习率参数组中高于第一设定值的学习率参数的数目是否大于设定的门限值,若是,则增大学习率参数的最大值。
[0027]
较佳地,所述第一设定值为学习率参数取值区间的中点取值;和/或,
[0028]
所述设定的门限值为total_modules*high_value_ratio;其中,total_modules为所述第一卷积神经网络的卷积组的数量,high_value_ratio为所述当前代的所有学习率参数组合中对应最佳性能评估结果的学习率参数组合所包括的学习率参数大于第二设定值的比例。
[0029]
较佳地,所述在所述第一卷积神经网络基础上分别进行训练,生成与相应学习率参数组对应的所述第二卷积神经网络的网络模型,包括:
[0030]
在所述第一卷积神经网络基础上分别进行训练,当训练的迭代次数达到设定的第二最大迭代次数时,结束所述训练,将训练得到的网络模型作为与相应学习率参数组对应的所述第二卷积神经网络的网络模型。
[0031]
一种卷积神经网络的权重调优装置,包括:设定单元和遗传算法处理单元;
[0032]
所述设定单元,用于将第一卷积神经网络的各指定层对应的学习率参数组成学习率参数组,将所述学习率参数组作为遗传算法的个体,将所述学习率参数作为所述遗传算法的基因;
[0033]
所述遗传算法处理单元,用于利用所述遗传算法依次对每一代的所有学习率参数组进行处理,直到满足遗传算法的优化终止条件,以确定用于通过训练所述第一卷积神经网络生成第二卷积神经网络的最优学习率参数组;
[0034]
其中,在所述遗传算法处理单元中,所述对每一代的所有学习率参数组进行处理,包括:
[0035]
利用当前代的所有学习率参数组,在所述第一卷积神经网络基础上分别进行训练,生成与相应学习率参数组对应的所述第二卷积神经网络的网络模型,并对应各网络模型进行性能评估;将所述网络模型的性能评估结果作为相应学习率参数组的评价标准,确定当前最佳学习率参数组,判断是否满足所述优化终止条件,若满足所述优化终止条件,则将所述当前最佳学习率参数组作为所述最优学习率参数组,并将利用该学习率参数组训练得到的网络模型作为训练好的第二卷积神经网络;若不满足所述优化终止条件,则通过所述遗传算法确定下一代的所有学习率参数组。
[0036]
较佳地,在所述遗传算法处理单元中,所述生成与相应学习率参数组对应的所述第二卷积神经网络的网络模型,并对应各网络模型进行性能评估,包括:
[0037]
对于所述当前代的所有学习参数组,分别利用每个学习率参数组,在所述第一卷积神经网络的基础上,通过迁移学习的方式训练生成所述第二卷积神经网络,分别得到所述每个学习率参数组各自对应的网络模型;
[0038]
对所述每个学习率参数组各自对应的网络模型分别进行性能评估,得到所述每个学习率参数组各自对应的网络模型的性能评估结果,作为所述每个学习率参数组的性能评估结果。
[0039]
较佳地,在所述遗传算法处理单元中,所述判断是否满足所述优化终止条件,包括:
[0040]
若所述当前最佳学习率参数组对应的性能评估结果优于预设的目标性能,或者,
若所述遗传算法的迭代次数达到预设的第一最大迭代次数,则确定满足所述优化终止条件;否则,确定不满足所述优化终止条件。
[0041]
较佳地,在所述遗传算法处理单元中,所述确定当前最佳学习率参数组及其对应的性能评估结果,包括:
[0042]
若所述当前代为第一代,则在第一代的所有学习率参数组中选择对应的性能评估结果最高的学习率参数组,作为所述当前最佳学习率参数组;
[0043]
若所述当前代为非第一代,则在当前代的所有学习率参数组中,若任一学习率参数组对应的性能评估结果优于所述当前代之前的当前最佳学习率参数组对应的性能评估结果,则将所述任一学习率参数组作为最新的当前最佳学习率参数组,否则,所述当前最佳学习率参数组保持不变。
[0044]
较佳地,在所述遗传算法处理单元中,所述通过所述遗传算法确定下一代的所有学习率参数组,包括:
[0045]
对于当前代的每个学习率参数组中的各个学习率参数,判断是否发生变异,若是,则更新下一代的相应学习率参数,否则,确定下一代的相应学习率参数保持不变。
[0046]
较佳地,在所述遗传算法处理单元中,所述更新下一代的相应学习率参数包括:
[0047]
对于每个学习率参数组中的第i个学习率参数,将所述下一代的相应学习率参数更新为max(min(p[index[0]]k 0.5*(p[index[1]]
k-p[index[2]]k),up_bound),low_bound);其中,index[i]k=random.sample(range(np),3)表示从当前代的np个学习率参数组中随机抽取的三个学习率参数组中第i个学习率参数组的第k个学习率参数值,3≤np,low_bound为预设的学习率参数的最小值,up_bound为学习率参数的最大值。
[0048]
较佳地,在确定不满足所述优化终止条件后,所述遗传算法处理单元进一步用于判断所述当前最佳学习率参数组中高于第一设定值的学习率参数的数目是否大于设定的门限值,若是,则增大学习率参数的最大值。
[0049]
较佳地,所述第一设定值为学习率参数取值区间的中点取值;和/或,
[0050]
所述设定的门限值为total_modules*high_value_ratio;其中,total_modules为所述第一卷积神经网络的卷积组的数量,high_value_ratio为所述第一卷积神经网络中学习率参数大于第二设定值的比例。
[0051]
较佳地,在所述遗传算法处理单元中,所述在所述第一卷积神经网络基础上分别进行训练,生成与相应学习率参数组对应的所述第二卷积神经网络的网络模型,包括:
[0052]
在所述第一卷积神经网络基础上分别进行训练,当训练的迭代次数达到设定的第二最大迭代次数时,结束所述训练,将训练得到的网络模型作为与相应学习率参数组对应的所述第二卷积神经网络的网络模型。
[0053]
一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被处理器执行时可实现上述任一项所述的卷积神经网络权重调优方法。
[0054]
一种电子设备,该电子设备至少包括计算机可读存储介质,还包括处理器;
[0055]
所述处理器,用于从所述计算机可读存储介质中读取所述可执行指令,并执行所述指令以实现上述任一项所述的卷积神经网络权重调优方法。
[0056]
由上述技术方案可见,本技术中,将源域的第一卷积神经网络的各指定层对应的学习率参数组成学习率参数组,将学习率参数组作为遗传算法的个体,将学习率参数作为
遗传算法的基因;利用遗传算法寻优各学习率参数组成的学习率参数组,在寻优过程中,将利用各学习率参数组训练得到的第二卷积神经网络模型的性能评估结果作为相应学习率参数组的评价标准,进行寻优处理。上述学习率参数的寻优方式,可以不依赖任何先验知识,通过遗传算法在连续的搜索空间中不断更新并寻优学习率参数,从而提高目标卷积神经网络的性能。
[0057]
进一步的,在每次确定下一代学习率组合时,若当前最佳学习率参数组合中已经达到一定比例的学习率参数都更加靠近当前学习率参数组合的区间上限,那么还可以增大学习率参数的最大值,以在更大范围内寻优最优或局部最优学习率参数组合。这种处理方式与学习率参数区间固定(通常为0-1)的方式相比,能够找到更优的学习率参数组合,从而进一步提高目标卷积神经网络的性能。
附图说明
[0058]
图1为本技术中卷积神经网络的权重调优方法的基本流程示意图;
[0059]
图2为遗传算法的逻辑流程图;
[0060]
图3为本技术具体实施例中卷积神经网络的权重调优方法的具体流程示意图;
[0061]
图4为本技术中卷积神经网络的权重调优装置的基本结构示意图;
[0062]
图5为本技术提供的一种电子设备的基本结构示意图。
具体实施方式
[0063]
为了使本技术的目的、技术手段和优点更加清楚明白,以下结合附图对本技术做进一步详细说明。
[0064]
目前,权重调优(也就是寻优学习率参数组)常用的策略是冻结底层,放开网络高层。但是,也有文献通过实验表明,采用相反的策略也会取得好的效果。也即最优的学习率参数分布也可能是一种波动形式的。总之,在迁移学习中,并无一种共识策略来指导每一层的学习率参数应该如何设置。目前,改变学习率参数的方式主要是通过人工设置的方法(学习权重递增策略和学习权重递减策略),这种采取人工调节的方式,往往需要依赖文献实验结果的一种先验知识指导,然后通过大量实验去验证效果,这不仅会导致该种方法效率低下,费时费力,而且很难找到最优解。
[0065]
考虑到上述学习率参数设置方式存在的问题,本技术的基本思想在于:利用遗传算法进行迁移学习中的权重调优,从而得到迁移学习中的最优或局部最优学习率参数组合,提高目标卷积神经网络的性能。
[0066]
图1为本技术实施例中卷积神经网络的权重调优方法的基本流程示意图,如图1所示,该方法包括:
[0067]
步骤101,将第一卷积神经网络的各指定层对应的学习率参数组成学习率参数组,将学习率参数组作为遗传算法的个体,将学习率参数作为遗传算法的基因。
[0068]
本技术中将迁移学习中源域的卷积神经网络(也就是已经训练好的卷积神经网络)称为第一卷积神经网络。在该第一卷积神经网络的基础上,通过学习率参数的设置,训练生成适用于目标域的第二卷积神经网络,也就是目标卷积神经网络。
[0069]
基于上述设置,对应第一卷积神经网络的各个指定层对应设置学习率参数,所有
学习率参数组合在一起,组成学习率参数组。其中,指定层可以根据需要设置,通常为第二卷积神经网络需要从第一卷积神经网络学习的层,例如可以是所有的卷积层。将每个学习率参数作为遗传算法的基因,将学习率参数组作为遗传算法中的个体,这样就可以通过下面的步骤102利用遗传算法寻找最优的学习率参数组,以利用该最优学习率参数组,在第一卷积神经网络基础上,训练生成第二卷积神经网络。
[0070]
步骤102,利用遗传算法依次对每一代的所有学习率参数组进行处理,直到满足遗传算法的优化终止条件,以确定用于通过训练第一卷积神经网络生成第二卷积神经网络的最优学习率参数组。
[0071]
图2为遗传算法逻辑流程的示意图。在遗传算法中,每一代都有多个个体,个体中包括多个基因,对于每一代的个体,有些基因发生变异,更新为新的基因值,有些基因未发生变异,基因值不变(也就是将基因遗传给下一代),这些遗传或变异的基因再组成下一代的个体。
[0072]
在利用遗传算法进行学习率参数寻优时,依次对每一代的所有学习率参数组进行处理,并在每一代的处理后判断是否满足遗传算法的优化终止条件,直到某一代的学习率参数组满足优化终止条件时,结束遗传算法的处理。
[0073]
其中,对每一代的所有学习率参数组进行处理,具体可以包括:
[0074]
利用当前代的所有学习率参数组,在第一卷积神经网络基础上分别进行训练,生成与相应学习率参数组对应的第二卷积神经网络的网络模型,并对应各网络模型进行性能评估;将网络模型的性能评估结果作为相应学习率参数组的评价标准,确定当前最佳学习率参数组,判断是否满足所述优化终止条件,若满足优化终止条件,则将当前最佳学习率参数组作为最优学习率参数组,并将利用该学习率参数组训练得到的网络模型作为训练好的第二卷积神经网络;若不满足优化终止条件,则通过遗传算法确定下一代的所有学习率参数组。
[0075]
在上述处理中,将当前正在处理的一代学习率参数组称为当前代的学习率参数组。对于当前代的所有学习率参数组,以学习率参数组为单位,进行神经网络的训练。具体地,以学习率参数组a为例,将该学习率参数组a中的各个学习率参数对应设置给第一卷积神经网络的相应指定层,作为该层的学习率参数,然后,以该第一卷积神经网络为基础进行神经网络的训练,训练得到一个第二卷积神经网络,也可以称为第二卷积神经网络的一个网络模型(下面用网络模型b来表示),该网络模型b与学习率参数组a相对应;接下来,对该网络模型b进行性能评估,将性能评估结果作为学习率参数组a在遗传算法中的评价标准。对于每个学习率参数组的处理均与上述学习率参数组a的处理相同,这样就可以对应每个学习率参数组训练生成对应的网络模型,并得到该网络模型的性能评估结果作为相应学习率参数组的评价标准。在对当前代的所有学习率参数组都得到相应的网络模型及其性能评估结果后,确定当前最佳学习率参数组,并判断当前是否满足遗传算法的优化终止条件,若满足,则结束遗传算法的迭代,将当前最佳学习率参数组作为寻优结果,即最优学习率参数组;若不满足,则通过遗传算法确定下一代的所有学习率参数组,并继续对下一代的学习率参数组进行处理,直到满足遗传算法的优化终止条件。
[0076]
至此,图1所示的基本流程结束。由上述处理可见,通过将学习率参数作为遗传算法的基因,将学习率参数组作为遗传算法的个体,将学习率参数组的寻优处理通过遗传算
法来实现。这样,可以不依赖任何先验知识,通过遗传算法在连续的搜索空间中不断更新并寻优学习率参数,从而提高目标卷积神经网络的性能。
[0077]
下面通过具体实施例说明本技术中卷积神经网络的权重调优方法的具体实现。
[0078]
图3为本技术具体实施例中卷积神经网络权重调优方法的具体流程示意图。
[0079]
如图3所示,该方法包括:
[0080]
步骤301,采集并划分目标域的训练集和验证集。
[0081]
采集并划分目标域训练集、验证集,指在迁移学习所针对的目标任务场景,采集深度学习网络所需的训练数据、验证数据,并按照一定的比例划分;本实施例中将采集到的训练数据按照1:1划分为训练集和验证集。
[0082]
步骤302,初始化遗传算法的超参。
[0083]
遗传算法需要设置必要的超参数。本实施例中设置如下超参数:
[0084]
1、个体的基因数popu_element;
[0085]
如前所述,本技术中,学习率参数为遗传算法中的基因,学习率参数组为遗传算法的个体,那么个体的基因数popu_element也就是指学习率参数组中包含的学习率参数的数目,由于本技术中对应第一卷积神经网络的每个指定层设置一个学习率参数,因此,popu_element也就是指定层的数目,通常为可学习层的数目,例如,当为每个卷积层设置一个学习率参数时,那么popu_element就是卷积层的数目。
[0086]
2、第一卷积神经网络的卷积组的数量total_modules;
[0087]
这个超参数是一个可选的超参数,当学习率参数的最大值可以进行更新时,利用该超参数判断是否需要更新学习率参数的最大值。该超参数是针对本技术的场景引入的参数,不是传统的遗传算法的超参数,本实施例中,第一卷积神经网络通过残差模块来实现卷积层的跨层连接,因此,本实施例中卷积组的数量total_modules也就是残差模块的数量。
[0088]
3、基因发生变异的概率cr;
[0089]
在确定下一代学习率参数组时,根据遗传算法,某些基因(即学习率参数)可能会发生变异,概率cr用于控制基因发生变异的可能性。通常,可以根据实际需要预先设定一个固定的值。
[0090]
4、每一代个体的数目np;
[0091]
本技术中,对于不同代而言,个体数目np是相同的,如图2所示,可以实际需要进行设置。通常,第一卷积神经网络的规模越大,则每一代个体的数目np越多,从而能够更准确地找到最优学习率参数组。本实施例中,假定np为6。
[0092]
5、学习率参数可取的最大值和最小值;
[0093]
学习率参数可取的最大值(也可以称为学习率参数的最大值)和最小值(也可以称为学习率参数的最小值)也就限定了学习率参数的取值区间。本实施例中,学习率参数可取的最小值low_bound保持不变,一般可以取0;为能够找到更优的学习率参数,本实施例中设定学习率参数可取的最大值为可更新的,具体关于更新的处理将在后续步骤308进行详细描述。当然,考虑到处理能力和资源的限制或网络性能的要求,也可以将学习率参数可取的最大值设为固定值,简化处理,当然会一定程度上影响目标卷积神经网络的性能。
[0094]
6、遗传算法的最大迭代次数n
max

[0095]
遗传算法中,每一代个体的处理相当于一次迭代过程,通过设置最大迭代次数n
max
限制遗传算法的总代数。
[0096]
步骤303,设置卷积神经网络每次训练的迭代次数iteration_num。
[0097]
为保证使用不同学习率参数组进行卷积神经网络训练的公平性,在本技术的权重调优方法中,每次对于卷积神经网络的训练,都是迭代iteration_num次,然后就结束训练,也就是说,本技术中对于卷积神经网络进行训练时,不再使用损失函数作为训练结束条件,而是统一使用迭代次数iteration_num作为训练结束条件,这样对于不同的学习率参数组,同样都是经过iteration_num次迭代得到相应的网络模型,再对网络模型进行性能评估,这样能够保证性能评估结果进行比较时的公平性。iteration_num为一个预设的常量。
[0098]
前述步骤301~303的处理属于本实施例中权重调优方法的初始化处理,其中,三个步骤的前后顺序可以任意调整,或者也可以同时进行,本技术对此不作限定,在本实施例中仅以三个步骤的顺序执行为例进行说明。接下来,步骤304~308的处理属于遗传算法的运行部分,是循环对每一代学习率参数组进行的,下面将正在进行处理的一代学习率参数组称为当前代的学习率参数组,以对当前代学习率参数组进行的处理为例,进行详细介绍。
[0099]
步骤304,对于当前代的所有学习率参数组,分别利用每个学习率参数组,在第一卷积神经网络的基础上,通过迁移学习的方式训练生成第二卷积神经网络,分别得到每个学习率参数组各自对应的网络模型。
[0100]
本步骤是卷积神经网络的训练处理。其中,对应当前代的每一个学习率参数组,分别进行一次卷积神经网络的训练,生成与每个学习率参数组对应的第二卷积神经网络的网络模型。
[0101]
若当前代为遗传算法的第一代,那么首先需要计算第一代的所有学习率参数组的学习率参数取值,也就是学习率参数的初始值。
[0102]
本实施例中,在第一代的任意一个学习率参数组中,该学习率参数组的所有学习率参数值是相同的。对于第一代的第i个学习率参数组,其中的学习率参数的取值populationi可以按照下面式(1)进行计算:
[0103][0104]
若当前代不是遗传算法的第一代,那么当前代的学习率参数组中各学习率参数的取值是在上一代处理结束之后确定的,具体将在步骤308中进行介绍。
[0105]
在确定出当前代的所有学习率参数组中各个学习率参数的取值后,就可以逐个学习率参数组进行卷积神经网络的训练了。下面以学习率参数组x为例进行说明。
[0106]
将学习率参数组x中每个学习率参数对应设置给第一卷积神经网络的指定层,在该第一卷积神经网络的基础上,利用步骤301划分出的训练集进行卷积神经网络的训练,生成第二卷积神经网络的一个网络模型y。其中,进行卷积神经网络训练时,当训练的迭代次数达到步骤303设置的iteration_num时,结束训练,得到网络模型y,以保证对不同学习率参数组的公平性。该网络模型y与学习率参数组x对应。经过本步骤的处理,对于当前代的每个学习率参数组,都训练得到一个对应的网络模型。
[0107]
另外,这里需要说明的是,在每次从步骤308结束后返回本步骤的处理进行卷积神经网络的训练时,都是以第一卷积神经网络为基础重新开始训练。
[0108]
步骤305,对当前代的每个学习率参数组各自对应的网络模型,分别进行性能评
估,得到每个学习率参数组各自对应的网络模型的性能评估结果,作为相应学习率参数组的性能评估结果。
[0109]
经过步骤304的处理对于当前代的每个学习率参数组,都训练得到一个对应的网络模型。本实施例中每一代的np为6,那么就可以得到6个网络模型。对于这些得到的网络模型中的每一个,利用步骤301确定的测试集进行网络模型的性能评估,得到相应的性能评估结果。具体可以根据任务需求,自行选定用于进行性能评估的评价指标,例如:召回率recall、精确率precision、f1等。其中f1指标按照计算公式(2)计算,公式中precision指精确率,recall指召回率,精确率和召回率可以按照现有方式确定。
[0110][0111]
步骤306,根据当前代的所有学习率参数组的性能评估结果,确定当前最佳学习率参数组。
[0112]
本步骤也就是根据遗传算法确定当前最佳个体。具体地,若当前代为第一代,则在第一代的所有学习率参数组中选择对应的性能评估结果最高的学习率参数组,作为当前最佳学习率参数组;
[0113]
若当前代为非第一代,则可以在当前代的所有学习率参数组中,若某个学习率参数组a对应的性能评估结果优于最新的当前最佳学习率参数组对应的性能评估结果,则将学习率参数组a作为最新的当前最佳学习率参数组,否则,最新的当前最佳学习率参数组保持不变。当然实际应用中,可以采用不同的实现方式来确定当前最佳学习率参数组。例如,可以先在当前代的所有学习率参数组中选择性能评估结果最优的学习率参数组,将其性能评估结果与最新的当前最佳学习率参数组的性能评估结果进行比较,将其中更优的性能评估结果对应的学习率参数组作为最新的当前最佳学习率参数组;或者,也可以逐个将当前代的每个学习率参数组的性能评估结果与当前最新的学习率参数组进行比较,并从中选择更优的性能评估结果对应的学习率参数组作为最新的学习率参数组,直到当前代的所有学习率参数组都比较完成,就确定出当前最佳学习率参数组。
[0114]
步骤307,判断是否满足遗传算法的优化终止条件,若不满足,则执行步骤308,否则,执行步骤309。
[0115]
在对每一代的所有学习率参数组进行步骤304-306的处理后,通过本步骤判断是否结束遗传算法的迭代。
[0116]
具体判断是否满足优化终止条件的方式可以为:
[0117]
若当前最佳学习率参数组对应的性能评估结果f优于预设的目标性能f
target
,或者,若遗传算法的迭代次数达到预设的第一最大迭代次数n
max
,则确定满足遗传算法的优化终止条件;否则,确定不满足遗传算法的优化终止条件。其中,目标性能f
target
是预先设置的希望卷积神经网络能够达到的性能指标值。
[0118]
当确定不满足优化终止条件后,通过步骤308的处理利用遗传算法确定下一代学习率参数组的具体取值。
[0119]
当确定满足优化终止条件后,也就是结束遗传算法的迭代,通过步骤309确定出最优学习率参数。
[0120]
步骤308,利用遗传算法确定下一代学习率参数组和学习率参数的最大值。
[0121]
如前所述,在遗传算法中,在确定下一代个体和基因时,基因可能会发生变异,也就是本技术中的学习率参数可能需要更新取值。本步骤用于确定下一代的所有学习率参数组中各个学习率参数的具体取值。其中,对于每个学习率参数的具体取值确定方式都可以是相同的,这里以某个学习率参数组b中的第k个学习率参数为例进行说明。
[0122]
下一代的学习率参数组b中的第k个学习率参数的取值根据该学习率参数是否发生变异确定。具体地,如果该第k个学习率参数发生变异,则更新该学习率参数的取值,具体更新后的取值确定方式可以根据需要进行设置;如果该第k个学习率参数未发生变异,则该学习率参数的取值保持不变,即与当前代的对应学习率参数的取值相同。
[0123]
其中,学习率参数是否发生变异的确定方式可以为:判断对应学习率参数生成的随机数是否小于步骤302设定的变异概率cr,若是,则确定发生变异,否则确定不发生变异。
[0124]
本实施例中给出一种发生变异时更新学习率参数取值的方式,即根据下式(3)确定第k个学习率参数的取值trailk:
[0125][0126]
其中,index[i]k=random.sample(range(np),count),index[i]k表示从当前代的np个学习率参数组中随机抽取count个学习率参数组,其中第i个学习率参数组的第k个学习率参数值为index[i]k,count=3≤np,low_bound为预设的学习率参数的最小值,up_bound为学习率参数的最大值;random.random()表示对应第k个学习率参数生成的一个0-1之间的随机数。
[0127]
对于每个学习率参数都可以按照上述方式确定下一代的学习率参数取值。
[0128]
另外,为进一步选择出更优的学习率参数组合,可选地,本实施例在步骤308进一步确定是否更新学习率参数的最大值。
[0129]
具体地,在现有的权重调优方式中,学习率参数的区间是固定的。本实施例中,在每次确定下一代学习率组合时,若当前最佳学习率参数组合中已经达到一定比例的学习率参数都更加靠近当前学习率参数组合的区间上限,那么还可以增大学习率参数的最大值,以在更大范围内寻优最优学习率参数组合。
[0130]
更详细地,本实施例中,判断当前最佳学习率参数组中高于第一设定值的学习率参数的数目是否大于设定的门限值,若是,则增大学习率参数的最大值,否则,学习率参数的最大值保持不变。其中,第一设定值可以是学习率参数取值区间的中点取值,即(up_bound low_bound)/2.0,设定的门限值可以为total_modules*high_value_ratio,这里,total_modules为第一卷积神经网络的卷积组的数量,本实施例中为第一卷积神经网络中残差模块的数量,high_value_ratio为当前代的所有学习率参数组合中对应最佳性能评估结果的学习率参数组合所包括的学习率参数大于第二设定值的比例。
[0131]
通过本步骤的处理就可以得到下一代的所有学习率参数组的取值以及最新的学习率参数的最大值。接下来,返回步骤304进行遗传算法的下一次迭代处理。
[0132]
步骤309,将当前最佳学习率参数组作为最优学习率参数组,并将利用该学习率参数组训练得到的网络模型作为训练好的第二卷积神经网络。
[0133]
执行到本步骤时,遗传算法迭代结束,得到最优学习率参数组,那么通过步骤304训练得到的与该最优学习率参数组对应的网络模型也就是训练好的第二卷积神经网络。
[0134]
至此,图3所示的流程结束。通过上述本技术的处理,能够准确地找到迁移学习中的最优或局部最优学习率参数组,提高迁移学习的目标卷积神经网络的性能。进一步的,在每次确定下一代学习率组合时,若当前最佳学习率参数组合中已经达到一定比例的学习率参数都更加靠近当前学习率参数组合的区间上限,那么还可以增大学习率参数的最大值,以在更大范围内寻优最优或局部最优学习率参数组合。这种处理方式与学习率参数区间固定(通常为0-1)的方式相比,能够找到更优的学习率参数组合,从而进一步提高目标卷积神经网络的性能。
[0135]
上述即为本技术中卷积神经网络权重调优方法的具体实现。本技术还提供一种卷积神经网络的权重调优装置,可以用于实施上述权重调优方法。图4为本技术中卷积神经网络权重调优装置的基本结构示意图,如图4所示,该装置包括:设定单元和遗传算法处理单元。
[0136]
其中,设定单元,用于将第一卷积神经网络的各指定层对应的学习率参数组成学习率参数组,将所述学习率参数组作为遗传算法的个体,将所述学习率参数作为所述遗传算法的基因;
[0137]
遗传算法处理单元,用于利用所述遗传算法依次对每一代的所有学习率参数组进行处理,直到满足遗传算法的优化终止条件,以确定用于通过训练所述第一卷积神经网络生成第二卷积神经网络的最优学习率参数组;
[0138]
更详细地,在遗传算法处理单元中,对每一代的所有学习率参数组进行处理,具体可以包括:
[0139]
利用当前代的所有学习率参数组,在第一卷积神经网络基础上分别进行训练,生成与相应学习率参数组对应的第二卷积神经网络的网络模型,并对应各网络模型进行性能评估;将网络模型的性能评估结果作为相应学习率参数组的评价依据,确定当前最佳学习率参数组,判断是否满足优化终止条件,若满足优化终止条件,则将当前最佳学习率参数组作为最优学习率参数组,并将利用该学习率参数组训练得到的网络模型作为训练好的第二卷积神经网络;若不满足优化终止条件,则通过遗传算法确定下一代的所有学习率参数组。
[0140]
可选地,在遗传算法处理单元中,生成与相应学习率参数组对应的第二卷积神经网络的网络模型,并对应各网络模型进行性能评估,包括:
[0141]
对于当前代的所有学习参数组,分别利用每个学习率参数组,在第一卷积神经网络的基础上,通过迁移学习的方式训练生成第二卷积神经网络,分别得到每个学习率参数组各自对应的网络模型;
[0142]
对每个学习率参数组各自对应的网络模型分别进行性能评估,得到每个学习率参数组各自对应的网络模型的性能评估结果,作为每个学习率参数组的性能评估结果。
[0143]
可选地,在遗传算法处理单元中,判断是否满足优化终止条件的处理,具体可以包括:
[0144]
若当前最佳学习率参数组对应的性能评估结果优于预设的目标性能,或者,若所述遗传算法的迭代次数达到预设的第一最大迭代次数,则确定满足所述优化终止条件;否则,确定不满足所述优化终止条件;其中,每个学习率参数组对应的性能评估结果为相应学习率参数组对应的第二卷积神经网络的网络模型的性能评估结果。
[0145]
可选地,在遗传算法处理单元中,确定当前最佳学习率参数组及其对应的性能评
估结果的方式,具体可以包括:
[0146]
若当前代为第一代,则在第一代的所有学习率参数组中选择对应的性能评估结果最高的学习率参数组,作为当前最佳学习率参数组;
[0147]
若当前代为非第一代,则在当前代的所有学习率参数组中,若任一学习率参数组对应的性能评估结果优于当前最佳学习率参数组对应的性能评估结果,则将任一学习率参数组作为最新的当前最佳学习率参数组,否则,当前最佳学习率参数组保持不变。
[0148]
可选地,在遗传算法处理单元中,通过遗传算法确定下一代的所有学习率参数组的处理,具体可以包括:
[0149]
对于当前代的每个学习率参数组中的各个学习率参数,判断是否发生变异,若是,则更新下一代的相应学习率参数,否则,确定下一代的相应学习率参数保持不变。
[0150]
可选地,在遗传算法处理单元中,更新下一代的相应学习率参数的处理,具体可以包括:
[0151]
对于每个学习率参数组中的第i个学习率参数,将下一代的相应学习率参数更新为max(min(p[index[0]]k 0.5*(p[index[1]]
k-p[index[2]]k),up_bound),low_bound);其中,index[i]k=random.sample(range(np),3)表示从当前代的np个学习率参数组中随机抽取的三个学习率参数组中第i个学习率参数组的第k个学习率参数值,3≤np,low_bound为预设的学习率参数的最小值,up_bound为学习率参数的最大值。
[0152]
可选地,在确定不满足优化终止条件后,遗传算法处理单元进一步用于判断当前最佳学习率参数组中高于第一设定值的学习率参数的数目是否大于设定的门限值,若是,则增大学习率参数的最大值。
[0153]
可选地,第一设定值可以为学习率参数取值区间的中点取值;和/或,
[0154]
设定的门限值可以为total_modules*high_value_ratio;其中,total_modules可以为第一卷积神经网络的卷积组的数量,high_value_ratio可以为当前代的所有学习率参数组合中对应最佳性能评估结果的学习率参数组合所包括的学习率参数大于第二设定值的比例。
[0155]
可选地,在遗传算法处理单元中,在第一卷积神经网络基础上分别进行训练,生成与相应学习率参数组对应的第二卷积神经网络的网络模型的处理,具体可以包括:
[0156]
在第一卷积神经网络基础上分别进行训练,当训练的迭代次数达到设定的第二最大迭代次数时,结束训练,将训练得到的网络模型作为与相应学习率参数组对应的第二卷积神经网络的网络模型。
[0157]
本技术还提供一种计算机可读存储介质,该计算机可读存储介质存储指令,指令在由处理器执行时可执行如上所述实现卷积神经网络权重调优方法中的步骤。实际应用中,计算机可读介质可以是上述实施例各设备/装置/系统所包含的,也可以是单独存在,而未装配入该设备/装置/系统中。其中,在计算机可读存储介质中存储指令,其存储的指令在由处理器执行时可执行如上所述卷积神经网络权重调优方法中的步骤。
[0158]
根据本技术公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件,或者上述的任意合适的组合,但不用于限制本技术保护的
范围。在本技术公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0159]
图5为本技术还提供的一种电子设备。如图5所示,其示出了本技术实施例所涉及的电子设备的结构示意图,具体来讲:
[0160]
该电子设备可以包括一个或一个以上处理核心的处理器501、一个或一个以上计算机可读存储介质的存储器502以及存储在存储器上并可在处理器上运行的计算机程序。在执行所述存储器502的程序时,可以实现卷积神经网络的权重调优方法。
[0161]
具体的,实际应用中,该电子设备还可以包括电源503、输入输出单元504等部件。本领域技术人员可以理解,图5中示出的电子设备的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
[0162]
处理器501是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行服务器的各种功能和处理数据,从而对该电子设备进行整体监控。
[0163]
存储器502可用于存储软件程序以及模块,即上述计算机可读存储介质。处理器501通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。
[0164]
该电子设备还包括给各个部件供电的电源503,可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源503还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0165]
该电子设备还可包括输入输出单元504,该输入单元输出504可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。该输入单元输出504还可以用于显示由用户输入的信息或提供给用户的信息以及各种图像用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。
[0166]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献