本发明属于边缘计算、深度学习、强化学习领域,尤其涉及一种基于强化学习的神经架构搜索方法。
背景技术:
1、传统的工业控制系统通常需要将数据发送到集中式的服务器进行处理分析后,再将结果返回至设备端进行控制运行,这存在较高的数据传输延迟与数据隐私泄露的风险。边缘化、小型化的分布式设备可以提高整个控制系统的实时性和安全性,并且其通常采用通用的硬件平台和模块化设计,提高了系统的灵活性和可扩展性。深度神经网络作为一种端到端的大脑启发机器学习以一种简化的方式模仿了生物神经元的分层操作模式。人工神经网络(ann)的概念从20世纪50年代的第一个理论提出到最近深度学习的可观成果,取得了巨大的进步,将其应用于边缘设备可以使其具备自动提取特征及分析的能力。
2、然而,传统的神经网络模型由于过于庞大的架构参数,无法在边缘设备上高效地运行。并且在工业或机器人的应用领域中,往往需要实时的响应决策以及泛化能力,优化、精简后的神经网络结构可以在不存在大幅度性能下降的同时,提高模型的推理速度和响应时间。深度神经网络,尤其是卷积神经网络(cnn)的性能主要取决于模型结构的设置、训练过程以及数据特征选取。所有这些变量都是通过一组超参数进行控制的,并在很大程度上影响学习过程。为了实现深度神经网络的最优性能,这些超参数包括网络深度、学习率、层类型、每层神经元数量以及辍学率(dropout)等,都需要经过仔细调整。
3、在深度学习领域的快速发展中,神经网络结构的设计往往取决于人工经验和专业知识,这种方法往往无法充分探索网络结构空间的潜力,且限制了模型的性能和适用性,而更深入、更复杂的现代体系结构的出现进一步地增加了超参数的数量和类型。因此,对于专家的试错过程、调优步骤变得非常昂贵和繁重。此外,深度神经网络参数设置被认为是一个黑盒优化问题,因为架构、性能和学习任务之间的映射是未知的。在这种背景下,自动化设计方案是非常必要的,并引发了大量的研究。现有的技术方案主要有以下三类:
4、1)遗传进化算法。超参数优化的遗传算法策略是在一定规则(算子)的基础上修改一组候选解(种群),通过突变、交叉和选择的迭代过程,第一步初始化一组n个随机网络,以创建一个初级种群。第二步是引入适应度函数,通过每个网络的分类精度对其进行评分,并保留排名靠前的网络来构建下一代网络。进化过程一直持续到满足终止标准为止,终止标准通常定义为允许的最大迭代次数。yang等人(yang,zhaohui,et al."cars:continuousevolution for efficient neural architecture search."proceedings of the ieee/cvf conference on computer vision and pattern recognition.2020.)开发了一种高效的连续进化方法,通过超网络的遗传和继承来加速最优网络的生成。但是遗传算法通常需要大量的计算资源和时间来进行搜索和优化,特别是在复杂的神经网络架构空间中,其无法有效地搜索所有可能的架构。其次,神经网络架构参数的连续性和高纬度会导致遗传算法收敛速度慢或陷入局部最优解的困境。并且其无法考虑到神经架构搜索针对的深度神经网络隐藏的特定性质,例如结构层次、激活函数、连接方式等。
5、2)贝叶斯优化方法。贝叶斯优化是一种有效的黑箱优化算法,可以用来求解表达式未知的函数的全局最优解,因而在机器学习领域内的参数超自动调优问题上有着广泛的应用。由于大量的超参数和模型(如深度神经网络)的复杂性,在该种自动调优问题上直接对目标函数进行评估的成本非常高。因此,贝叶斯方法提出了目标函数的概率代理重构,其中d是一组过去的观测值。代理函数的评估成本比真正的目标函数要低得多。一些最常用的概率回归模型是高斯过程、随机森林和树状结构parzen估计器等。white等人(white,colin,willie neiswanger,and yash savani."bananas:bayesian optimization withneural architectures for neural architecture search."proceedings of the aaaiconference on artificial intelligence.vol.35.no.12.2021.)将神经架构搜索过程转化为最优路径问题利用贝叶斯优化方法进行了架构组件间的搭配优化。shi等人(shi,han,et al."bridging the gap between sample-based and one-shot neural architecturesearch with bonas."advances in neural information processing systems 33(2020):1808-1819.)利用图卷积网络预测器作为贝叶斯优化的替代模型,通过权重共享加速同时评估多个相关架构来加速nas的过程。但是,贝叶斯优化方法与遗传算法存在相同的一些问题。此外贝叶斯优化需要合适的先验知识和初始点,这对于神经架构搜索的新颖性是一定的挑战,而且贝叶斯优化通常适用于连续参数空间的优化,而神经架构搜索的空间通常包含离散选择。
6、3)基于学习的算法。基于学习的算法可以结合神经网络强大的非线性拟合能力以及可行空间的探索能力对于最优的深度神经网络架构进行设计。zheng等人(zheng,xiawu,et al."multinomial distribution learning for effective neural architecturesearch."proceedings of the ieee/cvf international conference on computervision.2019.)将搜索空间视为一个联合多项分布,通过在该分布中具有最高概率的操作获取最优网络结构。强化学习(reinforcement learning,rl)的灵感来自动物行为主义心理学,是一种由冲击响应或信号驱动的目标导向优化方法[7]。它通过与环境的交互学习以最大化累计奖励,可以自动发现适合于特定任务的高效网络结构,而无需人工干预或专家经验。目前较为主流的方法是通过强化学习来训练循环神经网络(rnn)生成卷积架构,或将cnn模型中的卷积池化等组成部分作为强化学习的动作空间进行训练。hsu等人(hsu,chi-hung,et al."monas:multi-objective neural architecture search usingreinforcement learning."arxiv preprint arxiv:1806.10332(2018).)利用强化学习对于多目标(精准性以及峰值损耗)的nas进行了探索。lyu等人(lyu,bo,et al."multiobjective reinforcement learning-based neural architecture search forefficient portrait parsing."ieee transactions on cybernetics 53.2(2021):1158-1169.)综合考虑了准确性、参数数量、flops(浮点运算数)和推理延迟,在不同的超参数配置下,搜索过程生成了一系列优秀的面向目标的架构。然而,基于学习的神经架构搜索方法,特别是多项分布学习,因其需要假设搜索空间为一个联合分布,在实践中可能会导致搜索空间的过度复杂化,并且其依赖于概率分布的随机性选择操作,可能导致在不同的搜索迭代或者不同的训练环境下最终选择的网络结构性能具备波动性,难以保持一致的性能表现。并且,lyu等人的方法虽然将神经架构搜索过程建模为了一个强化学习问题,但是无模型的强化学习算法缺乏对于任务模型的基本了解,使得其探索仅依靠试错的方式,存在着效率低、稳定性差的问题。并且其对于样本的依赖性较高使得需要大量的计算资源和时间用于对于样本的收集和验证。
技术实现思路
1、本发明的目的在于针对现有技术的不足,提供了一种基于强化学习的神经架构搜索方法。
2、本发明的目的是通过以下技术方案来实现的:一种基于强化学习的神经架构搜索方法,包括以下步骤:
3、(1)构建普通单元和简约单元用以生成神经架构搜索的模块化搜索空间,进行简化模型与计算生成;
4、(2)将强化学习算法作为神经架构搜索的搜索算法;在对神经网络结构进行搜索的过程中,基于数据集构建一个世界模型,用世界模型来实现训练数据的增强,并且构建一种类actor-critic的训练方式来实现策略网络的优化,如此过程周而复始,直至训练效果收敛;
5、(3)用强化学习训练到的策略网络产生的网络结构参数组来生成神经网络架构;对生成的网络参数进行随机初始化,并且用训练集数据对该网络进行训练直至收敛,并且在测试集中测试其性能。
6、进一步地,所述步骤(1)具体包括以下子步骤:
7、(1.1)构建普通模块用以确保输入与输出的尺寸相同,从而能够实现在保持相同的图像分辨率的情况下提取更高等级的特征;构建简约单元使得输出的图像的高度和宽度为输入的图像的一半,从而能够实现降低图像分辨率;二者均采取模块化序列化的生成方式,通过对两个隐含状态各自选择一项操作后输出;
8、(1.2)通过若干个基本单元和简约单元堆叠形成完整网络;基于步骤(1.1)构建的普通单元和简约单元进行设置;不同位置的基本单元或简约单元内部的块的数量运算方式各不相同;针对不同的数据集,训练任务,基本单元和简约单元的堆叠数量也各不相同;
9、(1.3)通过完整网络的构建,将神经架构搜索的全局空间转化为模块化的搜索空间。
10、进一步地,所述步骤(2)具体包括以下子步骤:
11、(2.1)将强化学习算法构建为神经架构搜索的搜索算法;将神经架构搜索问题视为一个强化学习问题,来学习得到一个策略网络能够产生最优的网络架构参数;将神经结构搜索空间中的结构参数设置为强化学习网络输出的动作;将神经结构搜索空间中产生的所有结构参数设置强化学习的状态;将搜索到的参数构建的神经网络设置在验证集的性能值作为强化学习的奖励;为了解决神经网络结构参数随结构总体超参数变化而变化的问题,设计采取循环神经网络作为强化学习算法的策略网络;
12、(2.2)训练世界模型神经网络:在步骤(2.1)中构建的强化学习问题中,为了提高强化学习搜索算法的训练速率,构建了一个世界模型;设计了一个神经网络来表征这个世界模型;设置世界模型网络的输入为网络结构参数,输出为预测的奖励;为了构建将世界模型神经网络进行训练的数据集,将策略网络输出的神经架构参数在验证集上测试得到奖励真值;通过将预测的奖励和真实的奖励比较来计算损失,通过将损失进行反向传播来对世界模型进行训练,使得训练后的世界模型神经网络能够更加准确地预测奖励,从而构造出大量想象的网络结构参数组和对应的奖励,以大幅提高训练效率;
13、(2.3)训练策略网络:结合步骤(2.2)所建立的世界模型,在步骤(2.1)转化的神经架构搜索马尔可夫过程的基础上,为了优化网络性能,设计了一个类actor critic的算法;该算法包含了一个动作网络和价值网络;将动作网络设置为策略网络,使得根据当前的网络结构参数组预测下一个最优的网络结构参数;将动作网络和价值网络以策略迭代的方式来进行协同优化;设置价值网络的优化目标为使得预计的累计折扣奖励最大,设置价值网络的优化目标为尽可能逼近状态价值的真值;为了解决状态价值的真值难以获得的问题,设计用多次世界模型网络在不同时间步的预测值结合的方式来估计状态价值;
14、(2.4)基于以上步骤(2.1)、步骤(2.2)和步骤(2.3),构建完整的一个基于模型的强化学习算法。
15、本发明的有益效果是:由于利用强化学习使得在神经架构搜索方面拥有更加优越的性能。本发明使用数据集建立了计算机视觉分类任务中结构参数与性能间的神经架构搜索世界模型,并通过模块化的搜索空间构建方法,再训练中表现出了更高的样本效率以及结果稳定性,并且在训练后期相较于lyu等人提出的无模型强化学习算法有着5-10倍的训练速度提升。
1.一种基于强化学习的神经架构搜索方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于强化学习的神经架构搜索方法,其特征在于,所述步骤(1)具体包括以下子步骤:
3.根据权利要求1所述的一种基于强化学习的神经架构搜索方法,其特征在于,所述步骤(2)具体包括以下子步骤:
