神经网络结构搜索方法、装置、计算机设备和存储介质
技术领域
本申请涉及人工智能
技术领域
,特别是涉及一种神经网络结构搜索方法、装置、计算机设备和存储介质。背景技术
随着人工智能技术的发展,神经网络结构的设计,正在从手工设计转型为机器自动设计。通过神经网络结构搜索(Neural Architecture Search,NAS),可以帮助开发人员自动搜索出最优的神经网络结构。
传统技术中,神经网络结构搜索通常是在离散空间上搜索,而在离散空间上搜索属于黑箱优化问题,收敛速度比较慢,导致神经网络结构搜索的效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高神经网络结构搜索效率的神经网络结构搜索方法、装置、计算机设备和存储介质。
一种神经网络结构搜索方法,其特征在于,所述方法包括:
获取训练神经网络结构;
将所述训练神经网络结构输入图神经网络中,得到所述训练神经网络结构对应的离散结构特征;
将所述离散结构特征输入至编码网络,通过所述编码网络将所述离散结构特征编码为对应的连续结构特征;
根据所述连续结构特征及解码网络进行解码,得到重构神经网络结构;
基于所述训练神经网络结构和所述重构神经网络结构之间的重构损失,训练所述图神经网络、所述编码网络及所述解码网络,直至满足训练停止条件时,得到目标编码网络及目标解码网络,将所述目标编码网络对应的隐空间确定为目标搜索空间;
根据目标搜索策略从所述目标搜索空间进行搜索得到目标结构特征,通过所述目标解码网络解码所述目标结构特征得到目标神经网络结构。
一种神经网络结构搜索方法装置,其特征在于,所述装置包括:
训练数据获取模块,用于获取训练神经网络结构;
离散编码模块,用于将所述训练神经网络结构输入图神经网络中,得到所述训练神经网络结构对应的离散结构特征;
连续编码模块,用于将所述离散结构特征输入至编码网络,通过所述编码网络将所述离散结构特征编码为对应的连续结构特征;
解码模板,用于根据所述连续结构特征及解码网络进行解码,得到重构神经网络结构;
训练模块,用于基于所述训练神经网络结构和所述重构神经网络结构之间的重构损失,训练所述图神经网络、所述编码网络及所述解码网络,直至满足训练停止条件时,得到目标编码网络及目标解码网络,将所述目标编码网络对应的隐空间确定为目标搜索空间;
搜索模块,用于根据目标搜索策略从所述目标搜索空间进行搜索得到目标结构特征,通过所述目标解码网络解码所述目标结构特征得到目标神经网络结构。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取训练神经网络结构;
将所述训练神经网络结构输入图神经网络中,得到所述训练神经网络结构对应的离散结构特征;
将所述离散结构特征输入至编码网络,通过所述编码网络将所述离散结构特征编码为对应的连续结构特征;
根据所述连续结构特征及解码网络进行解码,得到重构神经网络结构;
基于所述训练神经网络结构和所述重构神经网络结构之间的重构损失,训练所述图神经网络、所述编码网络及所述解码网络,直至满足训练停止条件时,得到目标编码网络及目标解码网络,将所述目标编码网络对应的隐空间确定为目标搜索空间;
根据目标搜索策略从所述目标搜索空间进行搜索得到目标结构特征,通过所述目标解码网络解码所述目标结构特征得到目标神经网络结构。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取训练神经网络结构;
将所述训练神经网络结构输入图神经网络中,得到所述训练神经网络结构对应的离散结构特征;
将所述离散结构特征输入至编码网络,通过所述编码网络将所述离散结构特征编码为对应的连续结构特征;
根据所述连续结构特征及解码网络进行解码,得到重构神经网络结构;
基于所述训练神经网络结构和所述重构神经网络结构之间的重构损失,训练所述图神经网络、所述编码网络及所述解码网络,直至满足训练停止条件时,得到目标编码网络及目标解码网络,将所述目标编码网络对应的隐空间确定为目标搜索空间;
根据目标搜索策略从所述目标搜索空间进行搜索得到目标结构特征,通过所述目标解码网络解码所述目标结构特征得到目标神经网络结构。
上述神经网络结构搜索方法、装置、计算机设备和存储介质,通过将训练神经网络结构输入图神经网络中,通过图神经网络可以有效地抽取训练神经网络的结构信息,得到训练神经网络结构对应的离散结构特征,通过将离散结构特征输入至编码网络,通过编码网络可以将离散结构特征编码为连续结构特征,从而构造了连续搜索空间,根据连续结构特征及解码网络进行解码重构,得到重构神经网络结构,最后基于训练神经网络结构和重构神经网络结构之间的重构损失,训练图神经网络、编码网络及解码网络,直至满足训练停止条件时,得到目标编码网络及目标解码网络,由于目标编码网络和目标解码网络是基于重构损失训练得到的,那么目标编码网络可以很好地学习到训练神经网络的结构特征,而目标解码网络可以准确地将从目标搜索空间中结构特征解码重构得到目标神经网络结构,因此可以将目标编码网络的隐空间确定为目标搜索空间,由于该目标搜索空间为连续空间,在该连续空间中进行搜索相较于在离散空间中进行搜索更加容易收敛,从而提高了神经网络结构搜索效率。
附图说明
图1为一个实施例中神经网络结构搜索方法的流程示意图;
图2为另一个实施例中神经网络结构搜索方法的流程示意图;
图2A为一个实施例中训练过程的示意图;
图2B为一个实施例中训练神经网络结构的示意图;
图2C为一个实施例中对图2B中的训练神经网络结构进行重构得到的重构神经网络结构示意图;
图3为一个实施例中从目标搜索空间进行搜索得到目标结构特征的流程示意图;
图4为一个具体的实施例中神经网络结构搜索方法的架构图;
图5为一个实施例中神经网络结构搜索装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
自然语言处理(Nature Language processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。
本申请实施例提供的方案涉及人工智能的机器学习等技术,具体通过如下实施例进行说明:
在一个实施例中,如图1所示,提供了一种神经网络结构搜索方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤102,获取训练神经网络结构。
其中,训练神经网络指的是训练数据集中给出的神经网络的结构信息。神经网络的结构信息包括:1)网络拓扑结构,如层数、层连接关系等;2)层的类型,如卷积层、池化层、全连接层、激活层等;3)层内部的超参数,如卷积层中卷积核数量、通道数、步长等。
具体地,终端可以从训练数据集中获取到神经网络结构信息,将获取到的神经网络结构信息作为训练神经网络结构。
在一个实施例中,训练数据集可以是终端预先保存在本地的数据集。在另一个实施例中,终端可以通过网络等方式从其他计算机设备,例如服务器,获取训练数据集。
在一个具体的实施例中,训练数据集可以是现有的数据集,例如NAS-Bench-101、NAS-Bench-201等等。
可以理解的是,在不同的任务场景下,获取的训练神经网络结构类型是不相同的,例如,当需要为计算机视觉中的图像识别任务搜索合适的神经网络结构时,则选取的训练神经网络结构为用于图像识别的神经网络结构,而在其他的任务场景下,用到的神经网络结构与图像识别任务肯定是不相同的,那么需要选择与其他任务场景对应类型的神经网络结构来进行学习,因此需要重新选择与该任务场景对应类型的神经网络结构作为训练神经网络结构。
步骤104,将训练神经网络结构输入图神经网络中,得到训练神经网络结构对应的离散结构特征。
其中,图神经网络(Graph Neural Networks,GNN)指的是用于处理图数据的神经网络。训练神经网络结构对应的离散结构特征指的是用离散的形式表示神经网络的结构特征。
具体地,神经网络结构可以看成是一个有向无环图(Directed Acyclic Graph,DAG),神经网络的每一层为DAG中的一个节点,层与层之间的连接关系为DAG中的连边,那么可以通过图神经网络对神经网络结构进行特征提取。终端在获取到训练神经网络结构后,可以将训练神经网络结构输入图神经网络中,通过图神经网络抽取训练神经网络DAG中的网络拓扑结构和节点内容信息,从输入节点开始依次对DAG中所有节点进行编码,每个节点的编码综合使用了所有前置节点(即通过有向边连入当前节点的前置节点)的编码信息(网络拓扑结构信息)、当前节点类型(节点内容信息),对后续节点递归的进行编码表示,由于神经网络是有向无环图,最终会得到输出节点的编码。由于输出节点的编码包含了真个训练神经网络DAG的拓扑结构信息、节点信息,因此将输出节点的编码作为整个网络的编码表示。同时不同的神经网络的结构特征表示之间是离散分布的,因此得到的训练神经网络编码表示为离散表达。
举例说明,某个训练神经网络为三层神经网络,对应三个节点X1、X2、X3,其拓扑结构为:X1→X2→X3,X1→X3。使用图神经网络对该训练神经网络进行编码,使用聚合函数A将所有前置节点的编码表达进行聚合,使用更新函数U结合前置节点表示、当前节点类型对当前节点进行编码。使用图神经网络对该训练神经网络进行表达,有如下步骤:1)X1无前置节点,只需考虑其节点类型T1,则X1表示为X1=U(T1,0;2)X2前置节点为X1,X2节点类型为T2,X2表示为X2=U(T2,A(X1));3)X3前置节点为X1、X2,X3节点类型为T3,因此X3表示为X3=U(T3,A(X1,X2))。
在一个实施例中,在将训练神经网络结构输入图神经网络中之前,需要对图神经网络进行初始化操作,包括确定图神经网络的模型结构信息以及模型参数。在一个具体的实施例中,图神经网络可以为卷积神经网络。由于卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成,则这里需要确定图神经网络包括哪些层(例如,卷积层,池化层,等等),层与层之间的连接顺序关系,以及每个层都包括哪些参数(例如,权重、偏置项、卷积的步长)等等。
在一个具体的实施例中,图神经网络包括两个部分:1)聚合函数A,用于综合所有前置节点编码表示,使用门控总和(gated sum)进行拟合该聚合函数A;2)更新函数U,用于根据节点类型、前置节点表达给出当前节点表示,使用门控循环单元(gated recurrentunit,GRU)拟合该更新函数U。该图神经网络使用训练神经网络结构的网络拓扑结构信息、所有节点信息作为输入,来得到的离散结构特征,具体表示如下:
hv=U(Tv,A({hu:u→v}))
其中,hv为v节点的特征表示,hu为u节点的特征表示,u节点为v节点的前置节点。可以看出,A网络聚合了v节点的入边信息以及前置节点的特征表示;U网络根据v节点的节点类型更新v节点的特征表示。Tv为节点类型(即层类型)的向量表示,如(0,0,1,0,0)代表共有五种层类型,该层属于第三个层类型,例如卷积层。
进一步,可以初始化图神经网络的网络参数。实践中,可以将图神经网络的各个网络参数用一些不同的小随机数进行初始化。“小随机数”用来保证网络不会因权值过大而进入饱和状态,从而导致训练失败,“不同”用来保证网络可以正常地学习。
步骤106,将离散结构特征输入至编码网络,通过编码网络将离散结构特征编码为对应的连续结构特征。
其中,编码网络指的是用于编码的机器学习模块,编码指的是将信息从一种形式或格式转换为另一种形式或格式的过程。连续结构特征指的是该特征在隐空间中表现为连续概率分布的形式。可以理解的是,连续结构特征所在的隐空间为连续空间。
具体地,终端将得到的离散结构特征输入至编码网络后,编码网络对离散结构特征进行编码,得到连续结构特征,此时,编码器对应的隐空间为连续空间。
在一个具体的实施例中,编码网络可以为变分自编码器(Variational auto-encoder,VAE)的编码部分。变分自编码器作为深度生成模型的一种形式,是由Kingma等人于2014年提出的基于变分贝叶斯(Variational Bayes,VB)推断的生成式网络结构。与传统的自编码器通过数值的方式描述隐空间不同,它以概率的方式描述对隐空间的观察。
步骤108,将离散结构特征输入至编码网络,通过编码网络将离散结构特征编码为对应的连续结构特征。
其中,解码网络指的是用于解码的机器学习模块,解码是编码的逆过程,解码将通过另一种形式进行表达的数据还原到原来的形式或者格式,重构出与原来数据的形式或格式相同的数据。
具体地,终端可以基于连续结构特征并通过解码网络进行解码重构得到重构神经网络结构。
在一个实施例中,终端可以从连续结构特征中进行采样,将采样得到的样本点输入解码网络,通过解码网络进行解码重构,得到重构神经网络。
在另一个实施例中,由于连续结构特征是隐空间中的连续概率分布,那么终端还可以对该连续概率分布计算均值,将计算结果输入解码网络,通过解码网络解码重构得到重构神经网络结构。
步骤110,基于训练神经网络结构和重构神经网络结构之间的重构损失,训练图神经网络、编码网络及解码网络,直至满足训练停止条件时,得到目标编码网络及目标解码网络,将目标编码网络对应的隐空间确定为目标搜索空间。
其中,重构损失与重构神经网络结构和训练神经网络结构之间的差异相关,重构神经网络结构与训练神经网络结构之间的差异越小,重构损失越小,那么得到的重构神经网络也就越接近训练神经网络。训练停止条件包括但不限于是训练时长超过预设时间阈值、训练次数超过预设次数、重构损失小于预设阈值等等。
在一个实施例中,训练神经网络结构和重构神经网络结构之间的重构损失可以是神经网络隐藏层的重构损失;在另一个实施例中,训练神经网络结构和重构神经网络结构之间的重构损失也可以是神经网络连边的重构损失;在其他实施例中,训练神经网络结构和重构神经网络结构之间的重构损失还可以是神经网络隐藏层的重构损失和神经网络连边的重构损失的累加值。
具体地,终端基于训练神经网络结构和重构神经网络结构之间的差异,确定训练神经网络结构和重构神经网络结构之间的重构损失,根据该重构损失反向传播调整图神经网络、编码网络及解码网络的网络参数,直至满足训练停止条件时结束训练,得到训练好的目标编码网络、目标解码网络及目标图神经网络,此时由于目标编码网络的网络参数已确定,那么目标编码网络对应的隐空间便也确定好了,可以将该隐空间确定为目标搜索空间,基于该目标搜索空间可以进行神经网络结构的搜索。
步骤112,根据目标搜索策略从目标搜索空间进行搜索得到目标结构特征,通过目标解码网络解码目标结构特征得到目标神经网络结构。
其中,目标搜索策略指的是搜索神经网络结构的搜索策略。根据搜索需求的不同,可定义不同的目标搜索策略。例如,在对搜索效率要求较高的需求下,该搜索策略可以是在目标搜索空间中进行随机搜索。
在一个实施例中,目标搜索策略指的是搜索最优神经网络结构的搜索策略。根据需要搜索的最优神经网络结构的评价指标不同,可以有不同的目标搜索策略。比如,最优神经网络可以是模型复杂度最低的神经网络,那么目标搜索策略便是以最小化模型复杂度进行搜索。再比如,最优神经网络还可以是泛化性能最大的神经网络,那么目标搜索策略便是以最大化泛化性能进行搜索。目标结构特征指的是目标搜索策略下搜索到的最优神经网络结构的结构特征。
具体地,终端可以根据目标搜索策略在目标搜索空间中进行迭代搜索,直至搜索到最优神经网络结构的结构特征,作为目标结构特征。将搜索到的目标结构特征输入已训练的目标解码网络,由于目标解码网络是基于重构损失训练得到的,那么便可以准确地重构出目标结构特征对应的神经网络结构,得到目标神经网络结构。得到的目标神经网络结构可用于当前场景下的机器学习任务,例如,当前场景下的训练神经网络结构是用于活体检测的神经网络结构,则得到的目标神经网络结构可用于活体检测。
在一个实施例中,在目标搜索空间中进行搜索时,终端可以首先在目标搜索空间中采样样本点,然后基于该样本点采用梯度方法,迭代搜索与目标搜索策略对应的神经网络结构特征,直至得到目标结构特征。
上述神经网络结构搜索方法中,通过将训练神经网络结构输入图神经网络中,通过图神经网络可以有效地抽取训练神经网络的结构信息,得到训练神经网络结构对应的离散结构特征,通过将离散结构特征输入至编码网络,通过编码网络可以将离散结构特征编码为连续结构特征,从而构造了连续搜索空间,根据连续结构特征及解码网络进行解码重构,得到重构神经网络结构,最后基于训练神经网络结构和重构神经网络结构之间的重构损失,训练图神经网络、编码网络及解码网络,直至满足训练停止条件时,得到目标编码网络及目标解码网络,由于目标编码网络和目标解码网络是基于重构损失训练得到的,那么目标编码网络可以很好地学习到训练神经网络的结构特征,而目标解码网络可以准确地将从目标搜索空间中结构特征解码重构得到目标神经网络结构,因此可以将目标编码网络的隐空间确定为目标搜索空间,由于该目标搜索空间为连续空间,在该连续空间中进行搜索相较于在离散空间中进行搜索更加容易收敛,从而提高了神经网络结构搜索效率。
在一个实施例中,在基于训练神经网络结构和重构神经网络结构之间的重构损失,训练图神经网络、编码网络及解码网络之前,该神经网络结构搜索方法还包括:获取训练神经网络结构对应的至少一个评价指标标签值;根据训练神经网络结构对应的连续结构特征及各个评价指标预测网络进行预测,分别得到各个评价指标预测网络对应的评价指标训练值;分别根据各个评价指标标签值和各自对应的评价指标训练值,确定各个评价指标标签值对应的评价指标损失;各个评价指标损失用于训练得到各自对应的目标评价指标预测网络。
其中,评价指标指的是用于评价神经网络结构优劣的指标。评价指标包括但不限于泛化性能、模型复杂度、资源约束度等等。其中,泛化性能指的是神经网络在未知数据上的表现性能,泛化性能例如可以是模型准确率,模型准确率用于描述搜索到的神经网络结构在对应的机器学习任务下的准确程度,例如,用于图像分类的神经网络结构的模型准确率,其对应的模型准确率描述的是该神经网络结构用于图像分类任务时的分类准确程度。模型复杂度用于表征模型结构的复杂程度,例如可以是参数量、训练时间。
评价指标标签值指的是训练数据集中训练神经网络的评价指标的相应数值,该数值在训练过程中作为训练神经网络的训练标签,也就是训练神经网络的期望输出值。评价指标预测网络指的是用于对未知的神经网络结构的评价指标值进行预测的网络。在一个实施例中,评价指标标签值包括模型复杂度、泛化性能中的至少一种。
可以理解的是,根据对神经网络结构的搜索策略不同,评价指标可以是一个或者多个,不同的评价指标对应不同的评价指标预测网络,那么相应地,评价指标预测网络也可是一个或者多个。比如,评价指标为模型复杂度时,其对应的评价指标预测网络为模型复杂度预测网络,用于对神经网络结构的模型复杂度进行预测;再比如,评价指标为泛化性能时,其对应的评价指标预测网络为泛化性能预测网络,用于对神经网络结构的泛化性能进行预测。
具体地,为了使得评价指标预测网络能够准确地对搜索到的神经网络结构的评价指标值进行预测,终端需要对评价指标预测网络进行训练。本申请中,由于是在编码网络对应的隐空间中进行搜索,最终评价指标预测网络需要对该隐空间中的神经网络结构特征对应的评价指标进行预测,那么在训练的过程中,终端可以基于该隐空间进行训练,终端根据该训练神经网络编码至隐空间中得到的连续结构特征及各个评价指标预测网络进行预测,得到各个评价指标预测网络对应的评价指标值,该评价指标值是在训练过程中输出的真实数值,因此称为评价指标训练值。而训练评价指标预测网络的目的就是为了让评价指标预测网络输出的真实数值去拟合该评价指标预测网络对应的期望输出值,在拟合的过程中可以基于根据该评价指标预测网络对应的期望输出值(即评价指标标签值)与真实输出值(即评价指标训练值)之间的差异确定的评价指标损失去调整该评价指标预测网络的参数,也就说是,根据各个评价指标预测网络对应的期望输出值(即评价指标标签值)与真实输出值(即评价指标训练值)之间的差异确定的各个评价指标损失是用于训练得到各自对应的目标评价指标预测网络的,这里的目标评价指标预测网络指的是训练完成时得到的评价指标预测网络。
在一个实施例中,终端根据该训练神经网络编码至隐空间中得到的连续结构特征及各个评价指标预测网络进行预测,得到各个评价指标预测网络对应的评价指标值,具体可以是:终端在该连续结构特征中进行采样,将采样结果分别输入至各个评价指标预测网络,通过各个评价指标预测网络对该采样结果预测各自对应的评价指标值。
在另一个实施例中,终端根据该训练神经网络编码至隐空间中得到的连续结构特征及各个评价指标预测网络进行预测,得到各个评价指标预测网络对应的评价指标值,具体可以是:终端对该连续结构特征计算均值,将计算结果分别输入至各个评价指标预测网络,通过各个评价指标预测网络对该计算结果预测各自对应的评价指标值。
在一个具体的实施例中,为了强化突出期望输出值与真实输出值之间的差异与评价指标损失的正相关性,可以将期望输出值与真实输出值之间的平方损失作为评价指标损失。
在一个实施例中,如图2所示,提供了一种神经网络结构搜索方法,包括以下步骤202-步骤216:
步骤202,获取训练神经网络结构。
步骤204,将训练神经网络结构输入图神经网络中,得到训练神经网络结构对应的离散结构特征。
步骤206,将离散结构特征输入至编码网络,通过编码网络将离散结构特征编码为对应的连续结构特征。
步骤208,根据连续结构特征及解码网络进行解码,得到重构神经网络结构。
步骤210,获取训练神经网络结构对应的至少一个评价指标标签值。
步骤212,根据训练神经网络结构对应的连续结构特征及各个评价指标预测网络进行预测,分别得到各个评价指标预测网络对应的评价指标训练值。
步骤214,分别根据各个评价指标标签值和各自对应的评价指标训练值,确定各个评价指标标签值对应的评价指标损失。
关于步骤202-步骤214可参考上文实施例中的描述,本申请在此不赘述。
步骤216,基于训练神经网络结构和重构神经网络结构之间的重构损失、各个评价指标损失,联合训练图神经网络、各个评价指标预测网络、编码网络及解码网络,直至满足训练停止条件时,得到目标评价指标预测网络、目标编码网络及目标解码网络。
可以理解,为了达到在连续搜索空间中搜索最优神经网络结构的目的,需要训练图神经网络、编码网络、解码网络和至少一个评价指标预测网络,那么可以构建联合训练这几个网络的有监督训练损失函数,根据该有监督训练损失函数联合训练图神经网络、编码网络、解码网络和至少一个评价指标预测网络,从而可以提高训练效率。
具体来说,终端可以基于训练神经网络结构和重构神经网络结构之间的重构损失、各个评价指标损失构建有监督训练损失函数,然后基于该有监督训练损失函数联合训练图神经网络、各个评价指标预测网络、编码网络及解码网络,训练的过程也就是对图神经网络、各个评价指标预测网络、编码网络及解码网络的网络参数进行调整的过程,直至满足训练停止条件时结束训练,此时,图神经网络、各个评价指标预测网络、编码网络及解码网络的网络参数都已经确定,那么可以将此时的图神经网络、各个评价指标预测网络、编码网络及解码网络确定为目标评价指标预测网络、目标编码网络及目标解码网络。
如图2A所示,为一个具体的实施例中训练过程的示意图。在该实施例中,将图神经网络和编码网络统一称为编码网络。参考图2A,终端首先将训练神经网络结构输入编码网络中,通过编码网络将训练神经网络结构编码为隐空间中的连续结构特征,然后基于该连续结构特征进行采样,将采样结果输入评价指标预测网络,从而评价指标预测网络可以对训练神经网络结构的评价指标进行拟合,而解码网络将连续结构特征还原得到具体的神经网络结构,即重构神经网络结构。
参考图2B所示,为一个实施例中训练神经网络结构的示意图。在该实施例中,训练神经网络结构具体包括一个输入层、五个卷积层、一个3x3的最大池化层以及一个输出层,其中五个卷积层自上而下依次为5x5的深度可分离卷积层(depthwise separableconvolution)、3x3的深度可分离卷积层、3x3的普通卷积层、3x3的普通卷积层以及3x3的深度可分离卷积层。
参考图2C所示,为一个实施例中对图2B中的训练神经网络结构进行重构得到的重构神经网络结构示意图。该重构神经网络结构具体包括一个输入层、四个卷积层、一个3x3的平均池化层、一个3x3的最大池化层以及一个输出层,其中四个卷积层自上而下依次为5x5的深度可分离卷积层、5x5的普通卷积层、3x3的深度可分离卷积层以及、3x3的普通卷积层。
可以理解的是,图2B、图2C所示的神经网络结构仅仅为示例,在具体地应用中,根据应用场景的需求选取不同结构的训练神经网络结构,并重构出相应的重构神经网络结构。
可以理解的是,在其他实施例中,终端可以先基于训练神经网络结构和重构神经网络结构之间的重构损失,训练图神经网络、编码网络及解码网络,在训练得到目标图神经网络、目标编码网络及目标解码网络后,固定这三个网络的参数,然后再基于训练样本集训练评价指标预测网络。具体地,终端可以将训练样本集中的训练神经网络结构输入目标图神经网络中,得到对应的离散结构特征,然后将得到的离散结构特征输入目标编码网络,通过目标编码网络进行编码得到对应的连续结构特征,根据得到的连续结构特征及评价指标预测网络中,得到真实输出值,基于真实输出值与期望输出值之间的差异确定评价指标损失,基于该损失反向传播调整评价指标预测网络的模型参数,直至满足训练停止条件时结束训练,得到目标评价指标预测网络。
上述实施例中,通过训练评价指标预测网络,在模型搜索阶段,可以基于评价指标预测网络对搜索到的神经网络结构进行预测,从而可以搜索到评价指标最优化的神经网络结构。
在一个实施例中,如图3所示,根据目标搜索策略从目标搜索空间进行搜索得到目标结构特征,包括:
步骤302,在目标搜索空间中进行采样,得到样本点。
在一个实施例中,终端可以在目标搜索空间中进行随机采样,得到样本点。
在另一个实施例中,编码网络为变分自编码器的编码网络,解码网络为变分自编码器的解码网络,终端在进行采样时,可从变分自编码器的先验分布中进行采样,得到样本点,由于变分自编码器的特殊构造,变分自编码的先验分布为标准正态分布,终端从该标准正态分布中进行采样,可以减小搜索范围,进一步提高搜索效率。
步骤304,以样本点为起始点搜索神经网络结构特征。
步骤306,将搜索到的神经网络结构特征输入已训练的各个目标评价指标预测网络中,得到各个目标评价指标预测网络各自对应的评价指标预测值。
步骤308,根据各个评价指标预测值及目标搜索策略,得到综合评价值。
具体地,终端从样本点出发开始搜索神经网络结构,将搜索到的神经网络结构特征输入已训练的各个目标评价指标预测网络中,通过各个目标评价指标预测网络对搜索到的神经网络结构特征进行预测得到各个目标评价指标预测网络各自对应的评价指标预测值,然后终端就可以根据目标搜索策略对各个评价指标预测值进行运算,得到综合评价值,该综合评价值用于综合评价搜索到的神经网络结构的优劣。
可以理解的是,当评价指标只有一个时,对应的评价指标预测网络也只有一个,最终得到的神经网络结构的评价指标预测值也就只有一个,此时,该评价指标预测值也就是综合评价值。
在一个实施例中,评价指标标签值包括模型复杂度和泛化性能,其中,模型复杂度对应的已训练的目标评价指标预测网络为目标模型复杂度预测网络,而泛化性能对应的已训练的评价指标预测网络为目标泛化性能预测网络,那么终端在目标搜索空间中进行搜索时,可以将搜索到的神经网络结构特征分别输入目标模型复杂度预测网络和目标泛化性能预测网络,通过目标模型复杂度预测网络对搜索到的神经网络结构特征的模型复杂度进行预测,得到对应的模型复杂度预测值,通过目标泛化性能预测网络对搜索到的神经网络结构特征的泛化性能进行预测,得到泛化性能预测值。
步骤310,沿最优化综合评价值的方向迭代搜索神经网络结构特征,直至得到目标结构特征。
具体地,终端可以从样本起始点出发并采用梯度方法沿最优化综合评价值的方向迭代搜索神经网络结构特征,直至得到目标结构特征。梯度方法可以为梯度上升或梯度下降,根据目标搜索策略进行确定。最优化可以是最小化综合评价值或者最大化综合评价值,具体根据目标搜索策略进行确定。可以理解的是,在其他实施例中,还可以采用其他方法对综合平均值进行优化,本申请在此不做限制。
在一个实施例中,目标搜索策略是最大化泛化性能同时降低模型复杂度,那么终端可以在得到泛化性能预测值和模型复杂度预测值之后,将泛化性能预测值减去模型复杂度预测值,得到综合评价值,然后采用梯度上升方法沿最大化综合评价值的方向迭代搜索神经网络结构特征,直至得到目标结构特征。具体公式如下:
其中,f(s)为综合评价值,fperf(s)为泛化性能预测值,fcomp(s)为模型复杂度预测值。本实施例中,通过对综合评价值进行优化,可以搜索到兼具优良泛化性能、较低模型复杂度的神经网络结构。
在另一个实施例中,目标搜索策略是最小化模型复杂度同时提升泛化性能,那么终端可以在得到泛化性能预测值和模型复杂度预测值之后,将模型复杂度预测值减去泛化性能预测值,得到综合评价值,然后采用梯度下降方法沿最小化综合评价值的方向迭代搜索神经网络结构特征,直至得到目标结构特征。本实施例中,通过对综合评价值进行优化,可以搜索到模型复杂度低同时泛化性能优良的神经网络结构。
在一个实施例中,基于训练神经网络结构和重构神经网络结构之间的重构损失,训练图神经网络、编码网络及解码网络,包括:根据训练神经网络结构的隐藏层结构和重构神经网络结构的隐藏层结构确定隐藏层的重构损失;基于隐藏层的重构损失,训练图神经网络、编码网络及解码网络。
具体地,终端参照如下公式确定隐藏层的重构损失:
其中,Ln是隐藏层的重构损失,Ti代表训练神经网络结构第i层的层类型,例如可以是(0,0,1,0,0),Ti'代表重构神经网络结构第i层的层类型,CE代表用交叉熵(cross-entropy)来衡量训练神经网络结构第i层的层类型与重构神经网络结构第i层的层类型之间的差异。
具体地,终端在计算得到隐藏层的重构损失后,可基于该隐藏层的重构损失反向传播调整图神经网络、编码网络及解码网络的网络参数。
在一个实施例中,在基于隐藏层的重构损失,训练图神经网络、编码网络及解码网络之前,上述方法还包括:根据训练神经网络结构的连边和重构神经网络结构的连边确定连边的重构损失;基于隐藏层的重构损失,训练图神经网络、编码网络及解码网络,包括:基于隐藏层的重构损失及连边的重构损失,训练图神经网络、编码网络及解码网络。
具体地,终端参照如下公式连边的重构损失:
其中,Le是连边的重构损失,Ei代表训练神经网络结构第i个节点的所有连边类型,例如可以是(1,1,0,0,0,1),Ei'代表重构神经网络结构第i个节点的连边类型,CE代表用交叉熵(cross-entropy)来衡量训练神经网络结构第i个节点的连边类型与重构神经网络结构第i个节点的连边类型之间的差异。
具体地,终端在计算得到隐藏层的重构损失及连边的重构损失后,叠加这两个损失,得到损失和,基于该损失和反向传播调整图神经网络、编码网络及解码网络的网络参数。
可以理解的是,在其他一些实施例中,终端可以在计算得到连边的重构损失后,基于连边的重构损失反向传播调整图神经网络、编码网络及解码网络的网络参数。
在一个实施例中,编码网络为变分自编码器的编码网络,解码网络为变分自编码器的解码网络:基于训练神经网络结构和重构神经网络结构之间的重构损失,训练图神经网络、编码网络及解码网络,包括:基于相对熵及训练神经网络结构和重构神经网络结构之间的重构损失,训练图神经网络、编码网络及解码网络。
其中,相对熵(relative entropy),又被称为Kullback-Leibler散度(Kullback-Leibler divergence,KL散度)或信息散度(information divergence),是两个概率分布(probability distribution)间差异的非对称性度量。
具体地,由于变分自编码器编码得到的是连续概率分布,而在实践中期望变分自编码器得到的连续概率分布为标准正态分布,因为在标准正态分布下,均值为0、方差为1,这样得到的隐空间连续性更好。为了使变分自编码器的分布拟合标准正态分布,在训练时,可以根据重构损失和正则化项来构建损失函数,重构项倾向于使编码解码方案尽可能地具有高性能,而正则化项通过使编码网络返回的分布接近标准正态分布,来规范隐空间的组织。具体在本实施例中,该重构损失为训练神经网络结构和重构神经网络结构之间的重构损失,而该正则化项为返回的分布与标准高斯之间的KL散度。
在一个具体的实施例中,终端在进行训练时,可以基于KL散度以及该重构损失构建损失函数,基于该损失函数进行训练,调整图神经网络、编码网络及解码网络的网络参数,在训练的过程中采用梯度下降方法对该损失函数进行优化,优化目标为最小化该损失函数。
上述实施例中,通过采用变分自编码作为编码网络和解码网络,在训练的过程中,基于相对熵和重构损失来进行训练,不仅使得得到的编码网络和解码网络具有高性能,而且得到的隐空间具有很好的连续性,从而使得搜索过程中更加容易收敛,进一步提高搜索效率。
在一个具体的实施例中,本申请实施例提供的神经网络结构搜索方法用到的网络架构如图4所示。参考图4,该网络架构包括编码器,预测器,解码器,隐空间:其中,编码器使用图神经网络(GNN)对训练神经网络结构进行表示,将训练神经网络的结构信息使用离散形式进行表示,使用变分自编码器(VAE)的编码部分(即编码网络)将神经网络结构的离散表达(即离散结构特征)映射到合适的隐空间中,需要在训练过程中最小化KL散度对解码器(即解码网络)进行学习;预测器包括泛化性能预测器(即泛化性能预测网络)、模型复杂度预测器(即模型复杂度预测网络)两个回归模型,分别用于拟合神经网络结构连续表达(即连续结构特征)与对应泛化性能、对应模型复杂度的潜在关系,在模型搜索阶段通过对预测器使用最优化算法,得到最优神经网络的连续表达;解码器采用变分自编码器(VAE)的解码器部分将连续空间中的结构特征解码成神经网络结构,在训练过程中需要最小化解码后神经网络结构与训练神经网络之间的重构误差,在模型搜索阶段用于解码出搜索到的神经网络结构特征。通过该网络架构可以构造连续搜索空间进行神经网络结构搜索,最终获得兼具优良泛化性能、较低模型复杂度的神经网络结构。
在一个具体的实施例中,提供了一种神经网络结构搜索方法,包括以下步骤:
一、训练过程,包括以下步骤
1、获取训练神经网络结构及训练神经网络结构对应的模型复杂度标签值和泛化性能标签值;
2、将训练神经网络结构输入图神经网络中,得到训练神经网络结构对应的离散结构特征;
3、将离散结构特征输入至变分自编码器的编码部分,通过编码部分将离散结构特征编码至连续可微特征空间中的连续表达;
4、从连续表达中进行采样,将采样得到的样本点输入至变分自编码器的解码部分,得到重构神经网络结构;
5、根据训练神经网络结构的隐藏层结构和重构神经网络结构的隐藏层结构确定隐藏层的重构损失;
6、根据训练神经网络结构的连边和重构神经网络结构的连边确定连边的重构损失;
7、将采样得到的样本点输入分别输入泛化性能预测器和模型复杂度预测器,得到泛化性能训练值和模型复杂度训练值;
8、根据模型复杂度标签值和模型复杂度训练值之间的差值的平方,确定模型复杂度损失;,
9、根据泛化性能标签值和泛化性能训练值之间的差值的平方,确定泛化性能损失;
10、根据隐藏层的重构损失、连边的重构损失、模型复杂度损失、泛化性能损失及相对熵(KL散度)构建联合训练图神经网络、变分自编码器的编码部分、变分自编码器的解码部分、泛化性能预测器和模型复杂度预测器的损失函数,采用梯度下降方法以最小化该损失函数为目标进行训练,调整图神经网络、变分自编码器的编码部分、变分自编码器的解码部分、泛化性能预测器和模型复杂度预测器的网络参数,直至训练过程收敛,得到目标图神经网络、目标变分自编码器、目标泛化性能预测网络和目标模型复杂度预测网络。训练过程中,泛化性能预测器和模型复杂度预测器在连续可微特征空间中对训练神经网络结构的连续表达进行拟合。
其中,损失函数如下所示:
其中,φ、θ分别为编码网络、解码网络的参数,y为泛化性能训练值,z为模型复杂度训练值。
二、搜索过程,具体包括以下步骤:
11、将目标变分自编码器对应的连续可微特征空间确定为目标搜索空间,在目标搜索空间中基于变分自编码器的先验分布进行采样,得到样本点;
12、以样本点为起始点搜索神经网络结构特征,在搜索的过程中,将搜索到的神经网络结构特征输入已训练的目标泛化性能预测器和目标模型复杂度预测器中,得到泛化性能预测值及模型复杂度预测值,根据得到的泛化性能预测值及模型复杂度预测值对优化目标进行优化,其中优化目标为最大化泛化性能同时降低模型复杂度,优化方法可采用梯度上升方法,优化目标具体如下;
其中,fperf(s)为泛化性能预测值,fcomp(s)为模型复杂度预测值。
15、当优化目标达到最小值时,将搜索到的神经网络结构确定为目标结构特征,将该目标结构特征输入目标解码网络,通过目标解码网络解码该目标结构特征得到目标神经网络结构。
本实施例中,通过将训练神经网络结构输入图神经网络中构造离散结构特征,能够有效地抽取训练神经网络中的结构信息;通过使用变分自编码器,本实施例中能够将神经网络结构映射到连续搜索空间中;通过在连续可微特征空间中使用梯度方法优化各个图神经网络、变分自编码器的编码部分、变分自编码器的解码部分、泛化性能预测器及模型复杂度预测器,本实施例提供的神经网络结构搜索方法在训练阶段具有较高的训练效率;通过同时拟合神经网络的泛化性能、模型复杂度,本实施例中提供的神经网络结构搜索方法在搜索阶段搜索到的神经网络兼具优良泛化性能、较低的模型复杂度。
本申请实施例提供的神经网络结构搜索方法在实际应用的整体效果如下表1所示:
表1
由上表可以看出,在相同的数据集中选取训练样本的情况下,本申请实施例提供的神经网络结构搜索方法与其他方法相比,在训练时间、泛化性能、搜索到的模型的复杂度上均取得优良结果。
本申请还提供一种应用场景,该应用场景应用上述的神经网络结构搜索方法。具体地,该神经网络结构搜索方法在该应用场景的应用如下:
在该应用场景中需要为计算机视觉中的图像分类任务选取合适的深度学习模型网络架构,图像分类任务例如可以是对商品图像进行分类、对包含人脸的图像进行性别分类等等。在该应用场景中,首先从NAS-Bench-101数据集中选取用于图像分类的神经网络结构作为训练神经网络结构,将选取的神经网络结构对应的参数量以及模型准确率作为评价指标预测网络的训练标签,在进行神经网络结构搜索时,首先将用于图像分类的神经网络结构输入图神经网络中,得到对应的离散结构特征,然后通过变分自编码的编码部分将离散结构特征编码至连续空间,得到连续概率分布,从该连续概率分布中进行采样,将样本点输入变分自编码器的解码部分,通过该解码部分解码重构得到重构神经网络结构,根据该重构神经网络结构的隐藏层结构和选取的训练神经网络结构的隐藏层结构确定隐藏层的重构损失,根据训练神经网络结构的连边和重构神经网络结构的连边确定连边的重构损失,同时将该样本点输入至泛化性能预测器及模型复杂度预测器,通过泛化性能预测器得到准确度预测值,通过模型复杂度预测器得到模型参数量预测值,然后叠加KL散度、隐藏层的重构损失、连边的重构损失、准确度预测值与训练标签中的模型准确率之间的平方损失、模型参数量预测值与训练标签中的参数量之间的平方损失得到综合损失,基于该综合损失联合训练图神器网络、变分自编码的编码部分、变分自编码器的解码部分、泛化性能预测器及模型复杂度预测器,在训练过程中采用梯度下降方法以最小化该综合损失为目标调整以上各个网络的参数,直至训练过程收敛,得到训练好的图神经网络、变分自编码、泛化性能预测器及模型复杂度预测器,接下来就可以基于训练好的几个网络进行搜索了,具体来说,首先在变分自编码器的先验分布中进行采样,从采样得到的样本点出发,使用梯度上升方法迭代搜索神经网络结构,将搜索到的神经网络结构特征输入已训练的泛化性能预测器及模型复杂度预测器,得到该搜索到的神经网络结构特征的参数量预测值及模型准确度预测值,直至模型准确度预测值减去参数量预测值得到的值最大时,将搜索到的神经网络结构特征确定为目标结构特征,通过已训练的变分自编码器的解码网络对该目标结构特征进行解码重构,就可以得到神经网络结构,该神经网络结构可用于图像分类任务。
以对商品图片进行分类为例,分类的类别例如可以是服装类、生鲜类、饮食类、洗护用品类等等,在进行图像分类任务时,首先需要获取已标注的商品图像数据,将这些已标注的商品图像作为训练样本图像,将对应的类别标签作为训练标签对该神经网络进行有监督训练,训练好后,就可以对未知分类的商品图像进行分类。在实际应用中,通过对商品图像进行分类,可以为用户推荐同种类型的商品。
本申请还提供一种应用场景,该应用场景应用上述的神经网络结构搜索方法。具体地,该神经网络结构搜索方法在该应用场景的应用如下:
在该应用场景中需要为自然语言处理中的文本分类任务选取合适的深度学习模型网络架构,文本分类任务例如可以是新闻分类、情感分类、舆情观点分类、垃圾邮件分类等等。在该应用场景中,首先从ENAS-CIFAR-10数据集中选取用于文本分类的神经网络结构作为训练神经网络结构,将选取的神经网络结构对应的训练时间以及模型准确率作为评价指标预测网络的训练标签,在进行神经网络结构搜索时,首先将用于文本分类的神经网络结构输入图神经网络中,得到对应的离散结构特征,然后通过变分自编码的编码部分将离散结构特征编码至连续空间,得到连续概率分布,从该连续概率分布中进行采样,将样本点输入变分自编码器的解码部分,通过该解码部分解码重构得到重构神经网络结构,根据该重构神经网络结构的隐藏层结构和选取的训练神经网络结构的隐藏层结构确定隐藏层的重构损失,根据训练神经网络结构的连边和重构神经网络结构的连边确定连边的重构损失,同时将该样本点输入至泛化性能预测器及模型复杂度预测器,通过泛化性能预测器得到准确度预测值,通过模型复杂度预测器得到模型训练时间预测值,然后叠加KL散度、隐藏层的重构损失、连边的重构损失、准确度预测值与训练标签中的模型准确率之间的平方损失、模型训练时间预测值与训练标签中的训练时间之间的平方损失得到综合损失,基于该综合损失联合训练图神器网络、变分自编码的编码部分、变分自编码器的解码部分、泛化性能预测器及模型复杂度预测器,在训练过程中采用梯度下降方法以最小化该综合损失为目标调整以上各个网络的参数,直至训练过程收敛,得到训练好的图神经网络、变分自编码、泛化性能预测器及模型复杂度预测器,接下来就可以基于训练好的几个网络进行搜索了,具体来说,首先在变分自编码器的先验分布中进行采样,从采样得到的样本点出发,使用梯度上升方法迭代搜索神经网络结构,将搜索到的神经网络结构特征输入已训练的泛化性能预测器及模型复杂度预测器,得到该搜索到的神经网络结构特征的训练时间预测值及模型准确度预测值,直至模型准确度预测值减去训练时间预测值得到的值最大时,将搜索到的神经网络结构特征确定为目标结构特征,通过已训练的变分自编码器的解码网络对该目标结构特征进行解码重构,就可以得到神经网络结构,该神经网络结构可用于文本分类任务。
以新闻分类为例,分类的类别例如可以是国际性新闻、国内性新闻、地方性新闻,在进行文本分类任务时,首先通过获取已标注的新闻文本,将这些已标注的新闻文本作为训练样本,将对应的类别标签作为训练标签对该神经网络进行训练,训练好后,就可以对未知分类的新闻文本进行分类。在实际应用中,通过对新闻进行分类,可以基于用于经常浏览的新闻的文本类型为用户推送相同类型的新闻。
应该理解的是,虽然图1、图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1、图3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种神经网络结构搜索装置500,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:训练数据获取模块502、离散编码模块504、连续编码模块506、解码模板508、训练模块510和搜索模块512,其中:
训练数据获取模块502,用于获取训练神经网络结构;
离散编码模块504,用于将训练神经网络结构输入图神经网络中,得到训练神经网络结构对应的离散结构特征;
连续编码模块506,用于将离散结构特征输入至编码网络,通过编码网络将离散结构特征编码为对应的连续结构特征;
解码模板508,用于根据连续结构特征及解码网络进行解码,得到重构神经网络结构;
训练模块510,用于基于训练神经网络结构和重构神经网络结构之间的重构损失,训练图神经网络、编码网络及解码网络,直至满足训练停止条件时,得到目标编码网络及目标解码网络,将目标编码网络对应的隐空间确定为目标搜索空间;
搜索模块512,用于根据目标搜索策略从目标搜索空间进行搜索得到目标结构特征,通过目标解码网络解码目标结构特征得到目标神经网络结构。
上述神经网络结构搜索装置,通过将训练神经网络结构输入图神经网络中,通过图神经网络可以有效地抽取训练神经网络的结构信息,得到训练神经网络结构对应的离散结构特征,通过将离散结构特征输入至编码网络,通过编码网络可以将离散结构特征编码为连续结构特征,从而构造了连续搜索空间,根据连续结构特征及解码网络进行解码重构,得到重构神经网络结构,最后基于训练神经网络结构和重构神经网络结构之间的重构损失,训练图神经网络、编码网络及解码网络,直至满足训练停止条件时,得到目标编码网络及目标解码网络,由于目标编码网络和目标解码网络是基于重构损失训练得到的,那么目标编码网络可以很好地学习到训练神经网络的结构特征,而目标解码网络可以准确地将从目标搜索空间中结构特征解码重构得到目标神经网络结构,因此可以将目标编码网络的隐空间确定为目标搜索空间,由于该目标搜索空间为连续空间,在该连续空间中进行搜索相较于在离散空间中进行搜索更加容易收敛,从而提高了神经网络结构搜索效率。
在一个实施例中,上述装置还包括:评价指标输入模块,用于获取训练神经网络结构对应的至少一个评价指标标签值;根据训练神经网络结构对应的连续结构特征及各个评价指标预测网络进行预测,分别得到各个评价指标预测网络对应的评价指标训练值;分别根据各个评价指标标签值和各自对应的评价指标训练值,确定各个评价指标标签值对应的评价指标损失;各个评价指标损失用于训练得到各自对应的目标评价指标预测网络。
在一个实施例中,上述训练模块510还用于:基于训练神经网络结构和重构神经网络结构之间的重构损失、各个评价指标损失,联合训练图神经网络、各个评价指标预测网络、编码网络及解码网络,直至满足训练停止条件时,得到目标评价指标预测网络、目标编码网络及目标解码网络。
在一个实施例中,搜索模块512还用于在目标搜索空间中进行采样,得到样本点;以样本点为起始点搜索神经网络结构特征;将搜索到的神经网络结构特征输入已训练的各个目标评价指标预测网络中,得到各个目标评价指标预测网络各自对应的评价指标预测值;根据各个评价指标预测值及目标搜索策略,得到综合评价值;沿最优化综合评价值的方向迭代搜索神经网络结构特征,直至得到目标结构特征。
在一个实施例中,至少一个评价指标标签值包括模型复杂度、泛化性能中的至少一种。
在一个实施例中,评价指标标签值包括模型复杂度和泛化性能;搜索模块512还用于将搜索到的神经网络结构特征分别输入目标模型复杂度预测网络和目标泛化性能预测网络,得到泛化性能预测值及模型复杂度预测值;将泛化性能预测值减去模型复杂度预测值,得到综合评价值;沿最大化综合评价值的方向迭代搜索神经网络结构特征,直至得到目标结构特征。
在一个实施例中,评价指标标签值包括模型复杂度和泛化性能;搜索模块512还用于将搜索到的神经网络结构特征分别输入目标模型复杂度预测网络和目标泛化性能预测网络,得到泛化性能预测值及模型复杂度预测值;将模型复杂度预测值减去泛化性能预测值,得到综合评价值;沿最小化综合评价值的方向迭代搜索神经网络结构特征,直至得到目标结构特征。
在一个实施例中,训练模块510还用于根据训练神经网络结构的隐藏层结构和重构神经网络结构的隐藏层结构确定隐藏层的重构损失;基于隐藏层的重构损失,训练图神经网络、编码网络及解码网络。
在一个实施例中,训练模块510还用于根据训练神经网络结构的连边和重构神经网络结构的连边确定连边的重构损失;基于隐藏层的重构损失及连边的重构损失,训练图神经网络、编码网络及解码网络。
在一个实施例中,搜索模块512还用于在变分自编码器的先验分布中进行采样,得到样本点。
在一个实施例中,编码网络为变分自编码器的编码网络,解码网络为变分自编码器的解码网络:训练模块510还用于基于相对熵及训练神经网络结构和重构神经网络结构之间的重构损失,训练图神经网络、编码网络及解码网络。
在一个实施例中,解码模板508还用于根据连续结构特征进行采样,得到采样结构特征;将采样结构特征输入解码网络,得到重构神经网络结构。
关于神经网络结构搜索装置的具体限定可以参见上文中对于神经网络结构搜索方法的限定,在此不再赘述。上述神经网络结构搜索装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种神经网络结构搜索方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。