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

基于变长基因遗传算法的神经网络构建系统、方法及存储介质

文献发布时间:2023-06-19 11:02:01


基于变长基因遗传算法的神经网络构建系统、方法及存储介质

技术领域

本发明涉及计算机在深度学习中的网络结构搜索技术领域,尤其涉及一种基于变长基因遗传算法的神经网络构建系统、方法及存储介质。

背景技术

随着深度学习的发展,卷积神经网络(CNN)被广泛应用于计算机视觉任务。与标准神经网络相比,CNN的特征共享机制帮助CNN减少了需要学习的权重和变量数量,从而降低了网络的复杂性,提高了图像泛化能力。得力于医学和数据工程专家的巨大努力和精心设计的CNN,用于自动分析CT图像并预测COVID-19是否呈阳性已取得了重大进展,减轻了医学专业人员分析CT图像的负担。

尽管深度学习技术已得到了很好的发展,但是将其应用于COVID-19检测任务还存在这许多问题:

首先,由于缺乏选择超参数的明确规则,针对不同任务和数据集的神经网络架构需要被精心设计。与传统的机器学习方法相比,深度学习方法可以通过隐藏层很好地表示数据。更深的网络结构可以轻松地从原始数据中学习模式,并通过逐层提取来抽象表示数据,从而提高了任务的性能。但是,这种改进很快达到了上限。所以,超参数的选择和设置是一项十分复杂且耗时的任务,这阻碍了深度学习方法的快速应用。

其次,目前公开的COVID-19数据集很少,并且主要来源于中国。基于这些数据集设计的神经网络架构会带来模型偏差,导致不能准确应用于其他数据集上。第三,批归一化(Batch Normalization,BN)操作作为深度深度神经网络的最重要的组件之一,被广泛应用于深度神经网络架构中。目前,BN操作被应用于所有的隐藏层之后。这个关于现有使用BN组件的规则是否能完全发挥其优势,还是一个需要深入研究的问题。

发明内容

针对现有技术中的上述不足,本发明提供的基于变长基因遗传算法的神经网络构建系统、方法及存储介质降低了神经网络构建过程对数据集的依赖性。

为了达到上述发明目的,本发明采用的技术方案为:

第一方面,提供一种基于变长基因遗传算法的神经网络构建系统,其包括:

训练集生成模块,用于收集正常和COVID-19阳性病例肺部CT图像,并划分成训练集和测试集;

网络初始化模块,用于初始化初代种群,初代种群中包含所有CNN模型对应编码的染色体,并初始化最佳染色体的性能指标及对应染色体基因;

网络训练模块,用于采用训练集训练CNN模型,并采用测试集进行阳性病例检测,将检测正确度作为对应染色体的适应度值,并在最佳适应度值对应染色体的性能指标优于最佳染色体的性能指标时,采用其更新最佳染色体;

网络更新模块,用于根据染色体的适应度值,选取两条染色体进行交叉变异,重复交叉变异步骤设定次数,染色体的头部和尾部变异策略不同;

网络优化模块,用于初始化每条染色体的变异概率,在染色体变异概率小于其超参数时,判断染色体的长度是否小于长度阈值,若是,则在最佳染色体中选取连续基因片段插入染色体,否则在染色体中收缩多个连续基因片段;

网络选择模块,用于获取网络训练模块当前次训练完成后的设定阈值个最佳染色体,并将其与网络优化模块优化后的染色体进行合并作为子代种群;

迭代次数更新模块,用于子代种群生成后将迭代次数累加一次,判断迭代次数是否大于预设次数,若是,则进入网络生成模块,否则返回网络训练模块;

网络生成模块,用于解码子代种群中具有最佳性能指标的染色体的基因,获得最终的用于检测COVID-19CT图像的CNN神经网络。

进一步地,所述网络初始化模块包括:

参数获取模块,用于获取每条染色体对应CNN模型包括的卷积组件数量n

选择判断模块,用于随机选取池化组件或卷积组件作为基因顺次加入染色体的头部,并判断选取的组件是否为卷积组件,若是,进入第一执行模块,否则进入第一判断模块;

第一执行模块,用于将n

第一判断模块,判断染色体中的卷积组件和池化组件的数量是否均满足n

染色体尾部添加模块,用于在染色体的头部后面顺次加入n

第二方面,提供一种基于变长基因遗传算法的神经网络构建方法,其包括:

S1、收集正常和COVID-19阳性病例肺部CT图像,并划分成训练集和测试集;

S2、初始化初代种群,初代种群中包含所有CNN模型对应编码的染色体,并初始化最佳染色体的性能指标及对应染色体基因;

S3、采用训练集训练CNN模型,并采用测试集进行阳性病例检测,将检测正确度作为对应染色体的适应度值,并在最佳适应度值对应染色体的性能指标优于最佳染色体的性能指标时,采用其更新最佳染色体;

S4、根据染色体的适应度值,选取两条染色体进行交叉变异,重复交叉变异步骤设定次数,染色体的头部和尾部变异策略不同;

S5、初始化每条染色体的变异概率,在染色体变异概率小于其超参数时,判断染色体的长度是否小于长度阈值,若是,则在最佳染色体中选取连续基因片段插入染色体,否则在染色体中收缩多个连续基因片段;

S6、获取步骤S3在当前次训练完成后的设定阈值个最佳染色体,并将其与步骤S5优化后的染色体进行合并作为子代种群;

S7、子代种群生成后将迭代次数累加一次,判断迭代次数是否大于预设次数,若是,则进入步骤S8,否则返回步骤S3;

S8、解码子代种群中具有最佳性能指标的染色体的基因,获得最终的用于检测COVID-19CT图像的CNN神经网络。

第三方面,提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行基于变长基因遗传算法的神经网络构建方法中的步骤。

本发明的有益效果为:本方案在初始化初代种群和染色体交叉变异阶段基于可变长染色体思维,用以根据不同数据集搜索CNN的超参数(超参数是在训练时配置)。通过增长或收缩染色体,自动适应不同数据集的搜索空间,降低了对数据集质量的依赖,并且不需专家知识和精细的预处理减少了神经网络的冗余性并提高了算法的表现。

通过实验发现过多地使用BN组件会降低神经网络性能,本方案在初始化染色体阶段通过随机初始化BN组件,不同于在每个隐藏层后均使用BN组件,可以发现最佳使用BN组件的数量和位置。

本方案提供的神经网络构建系统及方法在用于关于COVID-19CT图像阳性病例检测任务中发现,构建方法不但可以自动地针对指定数据集的神经网络架构设计,与其他复杂深度网络相比,本方案所提出方法产生的网络在低质量和高噪声的COVID-19CT图像数据集上具有出色的表现。

附图说明

图1为基于变长基因遗传算法的神经网络构建系统的原理框图。

图2为基于变长基因遗传算法的神经网络构建方法的流程图。

图3为网络更新模进行一个可变长度染色体的交叉操作示例。

图4为网络优化模块进行染色体增长和收缩策略示例。

具体实施方式

下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

如图1所示,本方案提供的基于变长基因遗传算法的神经网络构建系统包括依次连接的训练集生成模块、网络初始化模块、网络训练模块、网络更新模块、网络优化模块、网络选择模块、迭代次数更新模块和网络生成模块。

其中,训练集生成模块用于收集正常和COVID-19阳性病例肺部CT图像,并划分成训练集和测试集;

网络初始化模块用于初始化初代种群,初代种群中包含所有CNN模型对应编码的染色体,并初始化最佳染色体的性能指标及对应染色体基因。本方案中的染色包括两部分,即头部和尾部,头部和尾部均可以包括多个基因片段。

在本发明的一个实施例中,网络初始化模块包括:

参数获取模块,用于获取每条染色体对应CNN模型包括的卷积组件数量n

选择判断模块,用于随机选取池化组件或卷积组件作为基因顺次加入染色体的头部,并判断选取的组件是否为卷积组件,若是,进入第一执行模块,否则进入第一判断模块。

第一执行模块,用于将n

第一判断模块,判断染色体中的卷积组件和池化组件的数量是否均满足n

此处需要说明的是,假设第一判断模块的判断结果是池化组件的数量上限已经满足预设数量,卷积组件还有3个没有添加至染色体中,后面返回选择判断模块时,直接选取卷积组件即可。

染色体尾部添加模块用于在染色体的头部后面顺次加入n

采用网络初始化模块对初代种群进行更新,相比于传统神经网络结构,可以不用在每个卷积层后面跟随一个BN组件,这样通过随机添加BN操作可以大幅提高神经网络的性能。

网络训练模块用于采用训练集训练CNN模型,并采用测试集进行阳性病例检测,将检测正确度作为对应染色体的适应度值,并在最佳适应度值对应染色体的性能指标优于最佳染色体的性能指标时,采用其更新最佳染色体。

网络更新模块用于根据染色体的适应度值,选取两条染色体进行交叉变异,重复交叉变异步骤设定次数,染色体的头部和尾部变异策略不同。

实施时,本方案优选网络更新模块包括:

归一化模块,用于对染色体的适应度值归一化处理,并将归一化值作为选择概率;

交叉变异模块,根据选择概率选取两条染色体,在染色体头部随机位置产生交叉点,并交换交叉点前面的基因片段及染色体尾部相同位置上的基因。

如图3所示,结合图3对染色体的交叉过程进行说明,图3中第一排是未交叉前的染色体,第二排是在两条被选择的染色体的头部片段的随机位置产生交叉点,之后对交叉点前面的片段进行交换,而交叉点后面的片段保持不变,对于尾部片段,相同位置上的基因分别交换位置,交换后的两条染色体如图3中第三排所示。

即图3示出的示例中,父代染色体被分为头部片段和尾部片段两个部分。头部片段由卷积组件、BN组件、池化组件构成。尾部片段由全连接组件构成。头部片段和尾部片段采用不同的交叉策略。对于头部片段,首先随机在父代染色体中随机位置产生交叉点,交叉点前的基因片段互换位置。对于尾部片段,相同位置的全连接组件互换位置。

网络优化模块,用于初始化每条染色体的变异概率,在染色体变异概率小于其超参数时,判断染色体的长度是否小于长度阈值,若是,则在最佳染色体中选取连续基因片段插入染色体,否则在染色体中收缩多个连续基因片段;

由于随机生成的交叉点,生成的子代染色体可能拥有过多或过少的基因。拥有过多基因的染色体对应解码的神经网络层数过深,这会导致模型的过拟合并浪费大量计算资源。拥有过少基因的染色体对应解码的神经网络层数太少,这会导致对应的模型不能很好地完成复杂任务。

对此本申请设计了如下结果的网络优化模块,其能够自动适应不同数据集的搜索空间,降低了对数据集质量的依赖。

在本发明的一个实施例中,所述网络优化模块包括:

参数配置模块,用于获取长度阈值及每条染色体对应的超参数,并初始化每条染色体的变异概率;

第二判断模块,用于在染色体变异概率小于其超参数时,判断染色体的长度是否小于长度阈值,若是,进入染色体增长模块,否则进入染色体缩短模块;

染色体增长模块,用于计算当前染色体i需要增长的设定个数n

染色体缩短模块,用于生成一个以染色体长度L

对概率p

如图4所示,其中第一排为过长和过短染色体的示意图,之后采用染色体增长模块和染色体缩短模块对需要增长的长度和缩短长度进行计算;图4的第二排中的第一条染色体为最佳适应度染色体,并从中随机选取一个连续片段插入需要增长染色体中;计算出需要缩短的长度后,在收缩点后面选取连续片段进行移除,增长和缩短后的染色体示意如图4中的第三排。

具体地,图4中长度阈值设置为6,当前最佳适应度染色体头部片段长度为10。过长染色体的头部片段长度为18,过短染色体的头部片段长度为5。若满足变异条件,过长染色体和过短染色体将分别进行收缩和增长策略。对于过长的染色体,在染色体头部片段随机产生一个收缩点,并通过正太分布获得一个收缩长度=7,收缩点后的连续7个基因将被移除。对于过短的染色体,在染色体的头部片段随机产生一个增长点,并在最佳适应度染色体头部片段中的随机选择6个连续基因的基因片段插入到增长点后。

网络选择模块,用于获取网络训练模块当前次训练完成后的设定阈值个最佳染色体,并将其与网络优化模块优化后的染色体进行合并作为子代种群;

迭代次数更新模块,用于子代种群生成后将迭代次数累加一次,判断迭代次数是否大于预设次数,若是,则进入网络生成模块,否则返回网络训练模块;

网络生成模块,用于解码子代种群中具有最佳性能指标的染色体的基因,获得最终的用于检测COVID-19CT图像的CNN神经网络。

参考图2,图2示出了基于变长基因遗传算法的神经网络构建方法的流程图,如图2所示,该方法包括步骤S1至步骤S8。

在步骤S1中,收集正常和COVID-19阳性病例肺部CT图像,并划分成训练集和测试集;

在步骤S2中,初始化初代种群,初代种群中包含所有CNN模型对应编码的染色体,并初始化最佳染色体的性能指标及对应染色体基因;

在本发明的一个实施例中,所述步骤S2进一步包括:

S21、获取每条染色体对应CNN模型包括的卷积组件数量n

S22、随机选取池化组件或卷积组件作为基因顺次加入染色体的头部,并判断选取的组件是否为卷积组件,若是,进入步骤S23,否则进入步骤S24;

S23、将n

S24、判断染色体中的卷积组件和池化组件的数量是否均满足n

S25、在染色体的头部后面顺次加入n

在步骤S3中,采用训练集训练CNN模型,并采用测试集进行阳性病例检测,将检测正确度作为对应染色体的适应度值,并在最佳适应度值对应染色体的性能指标优于最佳染色体的性能指标时,采用其更新最佳染色体;

在步骤S4中,根据染色体的适应度值,选取两条染色体进行交叉变异,重复交叉变异步骤设定次数,染色体的头部和尾部变异策略不同;

在本方案中,会预设需要产生的子代染色体数量A,需要通过交叉变异生成的子染色体数量M。随后,将会按概率选择两条父代染色体,交叉变异后生成两条子代染色体,重复以上操作M/2次即可生成M条子代染色体,其余A-M条子代为当前代的精英染色体(当前次训练完成后的设定阈值个最佳染色体)。

其中步骤S4可以具体包括如下两步:

对染色体的适应度值归一化处理,并将归一化值作为选择概率;

根据选择概率选取两条染色体,在染色体头部随机位置产生交叉点,并交换交叉点前面的基因片段及染色体尾部相同位置上的基因。

在步骤S5中,初始化每条染色体的变异概率,在染色体变异概率小于其超参数时,判断染色体的长度是否小于长度阈值,若是,则在最佳染色体中选取连续基因片段插入染色体,否则在染色体中收缩多个连续基因片段。

实施时,本方案优选所述步骤S5包括:

S51、获取长度阈值及每条染色体对应的超参数,并初始化每条染色体的变异概率;

S52、在染色体变异概率小于其超参数时,判断染色体的长度是否小于长度阈值,若是,进入步骤S53,否则进入步骤S54;

S53、计算当前染色体i需要增长的设定个数n

S54、生成一个以染色体长度L

对概率p

在步骤S6中,获取步骤S3在当前次训练完成后的设定阈值个最佳染色体,并将其与步骤S5优化后的染色体进行合并作为子代种群;

在步骤S7中,子代种群生成后将迭代次数累加一次,判断迭代次数是否大于预设次数,若是,则进入步骤S8,否则返回步骤S3;

在步骤S8中,解码子代种群中具有最佳性能指标的染色体的基因,获得最终的用于检测COVID-19CT图像的CNN神经网络。

本方案还提供了一种存储介质,存储介质存储有多条指令,指令适于处理器进行加载,以执行基于变长基因遗传算法的神经网络构建方法中的步骤。

下面结合对比实验对本方案提供的构建系统和构建方法的效果进行说明:

本试验例采用7个传统神经网络、一个本申请结构和2种变种结构进行对比试验,试验时除了模型结构不同外,其余实验环境均相同,其中实验硬件为2块GPU的GX200Ti;在模型训练阶段,训练的Epochs设置为20,优化器选择为Adam优化器,学习率设置为1e-4,批大小设置为16。

实验均采用的COVID-19数据集,训练集包括88张COVID-19阳性CT图像和231张阴性CT图像,测试集包括173张COVID-19阳性CT图像,168张阴性CT图像。

本申请结构:通过本方案的构建系统及方法构建而成的神经网络结构;变种1:在原始结构中补齐所有传统神经网络卷积层后缺失的BN操作;变种2:去除原始结构中所有卷积层后的BN操作,10种神经网络结构参见表1。

表1

将本方案在随机初始化权重和预训练权重两种策略(随机初始化权重采用Kaiming初始化策略产生随机的初始化权重,随后在COVID-19数据集上进行模型训练,训练Epochs设置为20;预训练权重策略则是首先ImageNet数据集上训练50个Epochs获得预训练权重,随后在COVID-19数据集上进行模型训练,训练Epochs设置为20。)中构建的神经网络与经典的7个神经网络结构处理COVID-19阳性检测任务的性能进行了对比:

本方案得到神经网络处理COVID-19阳性检测任务时,性能在随机初始化权重和预训练权重两种权重中,均得到了有竞争性的表现;

通过原始结构、变种1和变种2对比发现,BN操作的确可以提升神经网络的表现,但是过多使用BN操作会降低神经网络的性能。

相关技术
  • 基于变长基因遗传算法的神经网络构建系统、方法及存储介质
  • 变长基因遗传算法的神经网络构建系统、方法及存储介质
技术分类

06120112773136