一种面向目标检测的高效进化神经网络架构搜索方法与流程

专利检索2022-05-11  15



1.本发明属于数字图像处理技术领域,特别涉及一种面向目标检测的高效进化神经网络架构搜索方法


背景技术:

2.目标检测网络中通常需要利用主干网络对图像进行特征提取。常用的主干网络大多是基于图像分类任务设计,如vggnet,resnet,googlenet。图像分类任务目标为识别该图片中包含的目标,将不同的图片,划分到不同的类别。
3.目标检测需要首先对目标对象定位,之后判断当前目标对象的类别信息。因此,直接使用基于图像分类任务所设计的神经网络作为主干网络对于目标检测任务可能不是最优解。此外,主干网络通常需要在大型数据集上进行预训练。然而传统的神经网络架构搜索技术需要从搜索空间采样神经网络,接着从头训练其权重,进而评估其性能,对于大型数据集来说计算成本巨大。


技术实现要素:

4.本发明的目的是解决上述现有技术中存在的问题,提供一种面向目标检测的高效进化神经网络架构搜索方法。通过使用本发明的方法,可以高效的为目标检测任务设计主干网络。
5.为解决上述技术问题,本发明提供一种面向目标检测的高效进化神经网络架构搜索方法,其特征在于:包括以下步骤:
6.步骤s1,给定带有标签的图像分类数据集,将该数据集划分为训练数据集c
train
,验证数据集c
val
和测试数据集c
test
;给定带有标签的目标检测数据集,将该数据集划分为训练数据集d
train
,验证数据集d
val
和测试数据集d
test

7.步骤s2,种群初始化,初始种群中包含m个个体,每个个体包含输入层,封装数个计算模块,并以全连接层为输出层,m个个体共同组成一个超网络,所述m为大于1的自然数;
8.步骤s3,对种群中的个体进行多次随机重复采样,利用训练数据集c
train
对采样的个体进行训练,并为每个个体保留训练权值,所述c
train
遍历完毕之后,超网络获得权值wa;
9.步骤s4,所有个体从超网络中继承训练得到的相关权值,基于验证集c
val
评估个体性能,并记录最优个体基于验证集c
val
损失值
10.步骤s5,重复步骤(2)-(4),直到超网络模型收敛;
11.步骤s6,为每一个个体融合特征金字塔网络(featurepyramidnetworks,fpn),每个个体成为一个目标检测模型,利用d
train
,对所有个体的权值进行微调,直到超网络模型收敛,并保存超网络最优权值
12.步骤s7,利用map值作为适应度函数,对每个个体进行适应度评估;
13.步骤s8,采用轮盘赌选择数个个体,组成父代种群;
14.步骤s9,采用交叉算子对父代种群中的个体进行两两交叉,得到m个新个体,组成子代种群;
15.步骤s10,基于验证数据集d
val
,子代个体继承超网络权值计算子代种群中每个个体的适应度值;
16.步骤s11,将子代种群和父代种群中的个体合并,根据个体的适应度值,利用环境选择,选出m个新个体,组成下一代种群,并反馈至步骤(8),直到达到预设的进化代数,并输出适应度值最优的个体,作为最优的主干网络结构。
17.优选地,步骤s31,对种群中的个体进行多次随机重复采样,即每一个mini-batch随机从初始种群中采样一个个体,个体wi被采样的概率为:
[0018][0019]
其中,m为种群中的个体总数,即对每个个体为均匀采样。
[0020]
步骤s32,利用训练数据集对采样个体进行训练,并保存优化权值w
*
(a),优化目标为最小化神经网络架构a基于验证集c
val
的损失值目标函数为:
[0021][0022][0023]
其中,a为搜索空间,即超网络,a为采样到的神经网络架构,w为未优化权值,神经网络架构a通过训练数据集训练,通过最小化训练集c
train
损失值得到优化后的权值w
*
(a)。
[0024]
优选地,步骤s41,全部c
train
遍历完毕之后,利用训练得到的相关权值评估训练后的个体c
val
上的表现,并记录最优个体基于损失值此处的损失函数为交叉熵损失函数。计算公式为:
[0025][0026][0027]
其中,wa为超网络a经过训练优化后的权值,为神经网络架构a基于验证集c
val
的损失值,此处的优化目标为找到值最小的神经网络架构,并记录损失值,以此判断超网络是否收敛。
[0028]
优选地,步骤s61,为每一个个体融合特征金字塔网络(featurepyramidnetworks,fpn),利用d
train
,对所有个体的权值进行微调。微调方法为:
[0029]
步骤s62,对种群中的个体进行多次随机重复采样,利用训练数据集d
train
对采样的个体进行训练,并为每个个体更新并保留训练权值,优化目标为最小化验证集d
val
的损失值计算公式如下:
[0030]
[0031][0032]
其中,w
p
(w)
*
为神经网络架构a基于训练集c
train
优化完成的权 值,w
*
(a)为神经网络架构a通过最小化验证集d
val
损失值优化完成 的权值。
[0033]
优选地,步骤s71,计算种群中每个个体的map值,作为适应度 值f(xi),其中,i=(1,2,3,
……
,m);
[0034]
优选地,步骤s81,计算父代种群中,任一个体遗传到下一代的 概率p(xi),公式为:
[0035][0036]
优选地,步骤s82,计算任一个体的累积概率,公式为:
[0037][0038]
优选地,步骤s83,在区间[0,1]中随机产生一个随机数,并 将该随机数对应至任一种群中的任一个体,利用所述随机数在该 区间内的位置确定该个体选出的次数。
[0039]
优选地,采用单点交叉算子,对父代种群中的个体进行两两交 叉,包括以下步骤:
[0040]
优选地,步骤s91,将两个个个体的计算模块对齐,随机选择 一个交叉点,将交叉点之后的计算模块交换。
[0041]
与现有技术相比,上述申请具有如下优点或者有益效果:本发明 依靠进化算法机制中的初始种群,建立超网络搜索空间,并通过基于 超网络的神经网络架构搜索技术,为特定的目标检测问题自适应的构 建主干网络,使得主干网络的特征提取能力更好。此外,本发明通过 超网络建立神经网络架构的搜索空间,并利用大型图像分类数据集对 超网络进行预训练,之后利用进化算法作为搜索策略,在已经预训练 完成的超网络中搜索最优的主干网络,避免了每个个体都要利用图像 分类数据集做预训练,进而节省了大量的计算成本,提高了搜索效率。
附图说明
[0042]
图1是本发明的一个神经网络架构示意图。
[0043]
图2是本发明的一个计算模块编码和解码示意图。
[0044]
图3是本发明的一个计算节点示意图。
[0045]
图4是本发明的交叉算子示意图。
[0046]
具体实施方式
[0047]
本发明结合具体实施例,并参照附图,进一步详细说明。
[0048]
实施例:为了达到上述目的,本技术提供了一种面向目标检测的 高效进化神经网络架构搜索方法,包括以下步骤:
[0049]
步骤s1,给定带有标签的图像分类数据集imagenet,将该数据 集划分为训练数据
集c
train
,验证数据集c
val
和测试数据集c
test
;给定 带有标签的目标检测数据集coco,将该数据集划分为训练数据集 d
train
,验证数据集d
val
和测试数据集d
test

[0050]
步骤s2,种群初始化,初始种群中包含m个个体,每个个体包 含输入层,封装数个计算模块,并以全连接层为输出层,每个个体为 一个神经网络,m个个体共同组成一个超网络,所述m为大于1的自 然数;所述的输入层为卷积核为3的卷积层。
[0051]
如图1所示,共包含三种计算模块。如图2所示,每个计算模块 包含2个输入节点,1个输出节点8个计算节点。输入节点用于接收 前继计算模块的输出,输出节点为concat节点,为当前计算模块的 输出,当前计算模块中,如果某些计算节点的输出没用作为其他计算 节点的输入,则所述计算节点的输出将通过concat操作沿着深度方 向拼接到一起,作为该计算模块的输出。
[0052]
如图3所示,每个计算节点包含有两个输入,两个神经网络操作。 每一个计算节点仅可以将其前继节点的输出作为该节点的输入。可选 的神经网络操作为:卷积核为3的深度可分离卷积层,卷积核为5的 深度可分离卷积层,最大池化层,平均池化层,卷积核为3的空洞卷 积,卷积核为5的空洞卷积。
[0053]
因此,一个计算节点可以用一个4位向量(x1,x2,o1,o2)进行 编码,其中,x1,x2分别表示该计算节点的两个输入:输入1和输入 2,o1,o2表示该阶段节点包含的两个神经网络操作,两个神经网络的 操作的输出相加之后,作为该计算节点的输出。
[0054]
步骤s3,对种群中的个体进行多次随机重复采样,利用训练数 据集c
train
对采样的个体进行训练,并为每个个体保留训练权值,所 述c
train
遍历完毕之后,超网络获得权值wa;
[0055]
步骤s31,对种群中的个体进行多次随机重复采样,即每一个 mini-batch随机从初始种群中采样一个个体,个体wi被采样的概 率为:
[0056][0057]
其中,m为种群中的个体总数,即对每个个体为均匀采样。
[0058]
步骤s32,利用训练数据集对采样个体进行训练,并保存优化权值 w
*
(a),优化目标为最小化神经网络架构a基于验证集c
val
的损失 值目标函数为:
[0059][0060][0061]
其中,a为搜索空间,即超网络,a为采样到的神经网络架构,w为 未优化权值,神经网络架构a通过训练数据集训练,通过最小化 训练集c
train
损失值得到优化后的权值w
*
(a)。
[0062]
步骤s4,所有个体从超网络中继承训练得到的相关权值,基于 验证集c
val
评估个体性能,并记录最优个体基于验证集c
val
损失值
[0063]
步骤s41,全部c
train
遍历完毕之后,利用训练得到的相关权值评 估训练后的个体c
val
上的表现,并记录最优个体基于损失值此处的损失函数为交叉熵损失函数。计算公式为:
[0064][0065][0066]
其中,wa为超网络a经过训练优化后的权值,为神经网络架 构a基于验证集c
val
的损失值,此处的优化目标为找到值最小的 神经网络架构,并记录损失值,以此判断超网络是否收敛。
[0067]
步骤s5,重复步骤(2)-(4),直到超网络模型收敛;
[0068]
步骤s6,为每一个个体融合特征金字塔网络(feature pyramidnetworks,fpn),因此,每个个体成为一个目标检测模型。在融合 fpn网络时,默认采用一组卷积核为1的卷积层,降低通道数,匹配 fpn网络。首先对计算模块3进行1
×
1卷积,降低通道数得到p7, 然后通过依次进行2倍最近邻上采样得到p6,p5,p4,p3,p2,其 中,p6,p5,p4,p3,p2层的特征图需要与对应的计算模块特征图 的长宽相同,以便进行逐元素相加。上采样完成之后,由fpn网络融 合各层次图像特征信息,即融合分辨率高但语义信息不足的浅层特征 和语义信息丰富但分辨率低的深层特征。其中,在p3-p7层,每一层 都有9个anchor,定义anchor的大小为:32
×
32,64
×
64,128
×
128,256
×
256,512
×
512,比例设置为1∶2,1∶1,2∶1。fpn网络输出 的预测值包含有预测值(dets)包含有物体类别、边框位置的4位回 归向量(x,y,w,h)、该物体的得分,由分类层,回归层产生。标 签值(gts)中包含物体类别、边框位置的4位真值向量。对每一个 anchor,都对应一个n维的一位有效编码(one-hot)向量,n为物 体类别数,对于分类层来说,每个anchor都要n个类别,即一个n 维向量,表示每一类的概率,基于one-hot编码,选择概率值最高的 设置为1,其余n-1类设置为0。此外,每个anchor的4位回归向量 (x,y,w,h)由回归层输出,用于预测anchor和它相对应的标签 框位置的偏移量。分类层和回归层参数不共享。
[0069]
利用d
train
,对所有个体的权值进行微调,直到超网络模型收敛, 并保存超网络最优权值微调方法为:
[0070]
步骤s62,对种群中的个体进行多次随机重复采样,利用训练数据 集d
train
对采样的个体进行训练,并为每个个体更新并保留训练权 值,优化目标为最小化验证集d
val
的损失值计算公式如下:
[0071][0072][0073]
其中,w
p
(w)
*
为神经网络架构a基于训练集c
train
优化完成的权 值,w
*
(a)为神经网络架构a通过最小化验证集d
val
损失值优化完成 的权值
[0074]
步骤s7,利用map值作为适应度函数,对每个个体进行适应度 评估;
[0075]
步骤s71,计算种群中每个个体的map值,作为适应度值f(xi),其 中,i=(1,2,3,
……
,m);
[0076]
步骤s8,采用轮盘赌选择数个个体,组成父代种群;
[0077]
步骤s81,计算父代种群中,任一个体遗传到下一代的概率p(xi),
[0078]
公式为:
[0079][0080]
步骤s82,计算任一个体的累积概率,公式为:
[0081][0082]
步骤s83,在区间[0,1]中随机产生一个随机数,并将该随机数对 应至任一种群中的任一个体,利用所述随机数在该区间内的位置 确定该个体选出的次数。
[0083]
步骤s9,采用交叉算子对父代种群中的个体进行两两交叉,得 到m个新个体,组成子代种群;采用单点交叉算子,对父代种群中的 个体进行两两交叉,包括以下步骤:
[0084]
步骤s91,将两个个个体的计算模块对齐,随机选择一个交叉点, 将交叉点之后的计算模块交换。
[0085]
步骤s10,基于验证数据集d
val
,子代个体继承超网络权值计算子代种群中每个个体的适应度值;
[0086]
步骤s11,将子代种群和父代种群中的个体合并,根据个体的适 应度值,利用环境选择,选出m个新个体,选择方法为,根据适应度 值将种群中的个体排序,将排名前m的m个个体选出,作为下一代种 群,并反馈至步骤(8),直到达到预设的进化代数,并输出适应度值 最优的个体,作为最优的主干网络结构。
转载请注明原文地址:https://win.8miu.com/read-1057882.html

最新回复(0)