神经网络架构搜索装置和方法及计算机可读记录介质

文档序号:1429267 发布日期:2020-03-17 浏览:9次 >En<

阅读说明:本技术 神经网络架构搜索装置和方法及计算机可读记录介质 (Neural network architecture search apparatus and method, and computer-readable recording medium ) 是由 孙利 汪留安 孙俊 于 2018-09-10 设计创作,主要内容包括:公开了一种神经网络架构搜索装置和方法及计算机可读记录介质。神经网络架构搜索方法包括:限定作为描述神经网络架构的架构参数的集合的搜索空间;基于控制单元的参数,对搜索空间中的架构参数进行采样,以生成至少一个子神经网络架构;计算类间损失和中心损失,通过使包括类间损失和中心损失的损失函数最小来对每个子神经网络架构进行训练;计算分类精度和特征分布得分,并且基于分类精度和特征分布得分计算每个子神经网络架构的奖励得分;以及调整步骤,将奖励得分反馈到控制单元,并使得朝向奖励得分更大的方向调整控制单元的参数,其中,迭代地进行控制步骤、训练步骤、奖励计算步骤以及调整步骤中的处理,直到满足预定迭代终止条件为止。(Disclosed are a neural network architecture search apparatus and method, and a computer-readable recording medium. The neural network architecture searching method comprises the following steps: defining a search space that is a set of architecture parameters describing a neural network architecture; sampling architecture parameters in the search space based on the parameters of the control unit to generate at least one sub-neural network architecture; computing inter-class losses and central losses, each sub-neural network architecture being trained by minimizing a loss function comprising the inter-class losses and the central losses; calculating a classification accuracy and a feature distribution score, and calculating a reward score for each sub-neural network architecture based on the classification accuracy and the feature distribution score; and an adjusting step of feeding back the bonus score to the control unit and adjusting the parameter of the control unit in a direction in which the bonus score is larger, wherein the processes in the control step, the training step, the bonus calculating step, and the adjusting step are iteratively performed until a predetermined iteration termination condition is satisfied.)

神经网络架构搜索装置和方法及计算机可读记录介质

技术领域

本公开涉及信息处理领域,具体涉及一种神经网络架构搜索装置和方法及计算机可读记录介质。

背景技术

当前,由于卷积神经网络的发展,已经解决了闭集识别问题。然而,在真实的应用场景中,广泛存在开集识别问题。例如,面部识别和对象识别是典型的开集识别问题。在开集识别问题中,存在多个已知类,但是也存在许多未知类。开集识别要求比在正常闭集识别任务中使用的神经网络更通用的神经网络。因此,期望寻找一种容易且有效的方式来构建用于开集识别问题的神经网络。

发明内容

在下文中给出了关于本公开的简要概述,以便提供关于本公开的某些方面的基本理解。但是,应当理解,这个概述并不是关于本公开的穷举性概述。它并不是意图用来确定本公开的关键性部分或重要部分,也不是意图用来限定本公开的范围。其目的仅仅是以简化的形式给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。

鉴于以上问题,本公开的目的是提供能够解决现有技术中的一个或多个缺点的神经网络架构搜索装置和方法以及分类装置和方法。

根据本公开的一方面,提供了一种神经网络架构搜索装置,所述装置包括:神经网络架构的搜索空间限定单元,被配置成限定作为描述神经网络架构的架构参数的集合的搜索空间;控制单元,被配置成基于所述控制单元的参数,对所述搜索空间中的架构参数进行采样,以生成至少一个子神经网络架构;训练单元,被配置成利用训练集中的所有样本,针对所述至少一个子神经网络架构中的每个子神经网络架构,计算表明不同类别的样本的特征之间的分离程度的类间损失和表明属于同一类别的样本的特征之间的聚集程度的中心损失,通过使包括所述类间损失和所述中心损失的损失函数最小来对每个子神经网络架构进行训练;奖励计算单元,被配置成利用验证集中的所有样本,针对经训练的每个子神经网络架构,分别计算分类精度和表明属于同一类别的样本的特征之间的紧致程度的特征分布得分,并且基于每个子神经网络架构的所述分类精度和所述特征分布得分计算该子神经网络架构的奖励得分,以及调整单元,被配置成将所述奖励得分反馈到所述控制单元,并使得朝向所述至少一个子神经网络架构的所述奖励得分更大的方向调整所述控制单元的所述参数,其中,迭代地进行所述控制单元、所述训练单元、所述奖励计算单元以及所述调整单元中的处理,直到满足预定迭代终止条件为止。

根据本公开的另一方面,提供了一种神经网络架构搜索方法,所述方法包括:神经网络架构的搜索空间限定步骤,限定作为描述神经网络架构的架构参数的集合的搜索空间;控制步骤,基于控制单元的参数,对所述搜索空间中的架构参数进行采样,以生成至少一个子神经网络架构;训练步骤,利用训练集中的所有样本,针对所述至少一个子神经网络架构中的每个子神经网络架构,计算表明不同类别的样本的特征之间的分离程度的类间损失和表明属于同一类别的样本的特征之间的聚集程度的中心损失,通过使包括所述类间损失和所述中心损失的损失函数最小来对每个子神经网络架构进行训练;奖励计算步骤,利用验证集中的所有样本,针对经训练的每个子神经网络架构分别计算分类精度和表明属于同一类别的样本的特征之间的紧致程度的特征分布得分,并且基于每个子神经网络架构的所述分类精度和所述特征分布得分计算该子神经网络架构的奖励得分,以及调整步骤,将所述奖励得分反馈到所述控制单元,并使得朝向所述至少一个子神经网络架构的所述奖励得分更大的方向调整所述控制单元的所述参数,其中,迭代地进行所述控制步骤、所述训练步骤、所述奖励计算步骤以及所述调整步骤中的处理,直到满足预定迭代终止条件为止。。

根据本公开的又一方面,提供了一种记录有程序的计算机可读记录介质,所述程序用于使得计算机执行以下步骤:神经网络架构的搜索空间限定步骤,限定作为描述神经网络架构的架构参数的集合的搜索空间;控制步骤,基于控制单元的参数,对所述搜索空间中的架构参数进行采样,以生成至少一个子神经网络架构;训练步骤,利用训练集中的所有样本,针对所述至少一个子神经网络架构中的每个子神经网络架构,计算表明不同类别的样本的特征之间的分离程度的类间损失和表明属于同一类别的样本的特征之间的聚集程度的中心损失,通过使包括所述类间损失和所述中心损失的损失函数最小来对每个子神经网络架构进行训练;奖励计算步骤,利用验证集中的所有样本,针对经训练的每个子神经网络架构分别计算分类精度和表明属于同一类别的样本的特征之间的紧致程度的特征分布得分,并且基于每个子神经网络架构的所述分类精度和所述特征分布得分计算该子神经网络架构的奖励得分,以及调整步骤,将所述奖励得分反馈到所述控制单元,并使得朝向所述至少一个子神经网络架构的所述奖励得分更大的方向调整所述控制单元的所述参数,其中,迭代地进行所述控制步骤、所述训练步骤、所述奖励计算步骤以及所述调整步骤中的处理,直到满足预定迭代终止条件为止。

根据本公开的其它方面,还提供了用于实现上述根据本公开的方法的计算机程序代码和计算机程序产品。

在下面的说明书部分中给出本公开实施例的其它方面,其中,详细说明用于充分地公开本公开实施例的优选实施例,而不对其施加限定。

附图说明

本公开可以通过参考下文中结合附图所给出的详细描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的详细说明一起包含在本说明书中并形成说明书的一部分,用来进一步举例说明本公开的优选实施例和解释本公开的原理和优点。其中:

图1是示出根据本公开实施例的神经网络架构搜索装置的功能配置示例的框图;

图2示出了根据本公开实施例的神经网络架构的示例的图;

图3a至3c是示出根据本公开实施例的基于循环神经网络RNN的控制单元对搜索空间中的架构参数进行采样的示例的图;

图4是示出根据本公开实施例的块单元的结构的示例的图;

图5是示出根据本公开实施例的神经网络架构搜索方法的流程示例的流程图;以及

图6是示出作为本公开实施例中可采用的个人计算机的示例结构的框图。

具体实施方式

在下文中将结合附图对本公开的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。

在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本公开,在附图中仅仅示出了与根据本公开的方案密切相关的设备结构和/或处理步骤,而省略了与本公开关系不大的其它细节。

下面结合附图详细说明根据本公开的实施例。

首先,将参照图1描述本公开实施例的神经网络架构搜索装置100的功能框图。图1是示出根据本公开实施例的神经网络架构搜索装置100的功能配置示例的框图。如图1所示,根据本公开实施例的神经网络架构搜索装置100包括神经网络架构的搜索空间限定单元102、控制单元104、训练单元106、奖励计算单元108、以及调整单元110。

神经网络架构的搜索空间限定单元102被配置成限定作为描述神经网络架构的架构参数的集合的搜索空间。

神经网络架构可以用描述该神经网络的架构参数来表示。以最简单的只有卷积层的卷积神经网络为例,每个卷积层的参数有5个:卷积核数目、卷积核高度、卷积核宽度、卷积核stride高度、以及卷积核stride宽度。那么,每个卷积层就可以用上述五元组来表示。

根据本公开实施例的神经网络架构的搜索空间限定单元102被配置成限定搜索空间,即限定描述神经网络架构的架构参数的全集。架构参数的全集确定下来才可以从全集中寻找最优的神经网络架构。作为示例,可以根据经验限定神经网络架构的架构参数的全集。另外,还可以根据真实面部识别数据库、对象识别数据库等来限定神经网络架构的架构参数的全集。

控制单元104可以被配置成基于控制单元104的参数,对搜索空间中的架构参数进行采样,以生成至少一个子神经网络架构。

如果用θ表示控制单元104的当前参数,则控制单元104以参数θ对搜索空间中的架构参数进行采样,以生成至少一个子神经网络架构。其中,采样得到的子网络架构的数目可根据实际情况预先设定。

训练单元106可以被配置成利用训练集中的所有样本,针对至少一个子神经网络架构中的每个子神经网络架构,计算表明不同类别的样本的特征之间的分离程度的类间损失和表明属于同一类别的样本的特征之间的聚集程度的中心损失,通过使包括类间损失和中心损失的损失函数最小来对每个子神经网络架构进行训练。

作为示例,样本的特征可以是样本的特征向量。可以利用本领域常用的方式获得样本的特征,在此不再累述。

作为示例,在训练单元106中,可以基于训练集中的每个样本的特征计算softmax损失来作为每个子神经网络架构的类间损失Ls。除了softmax损失之外,本领域技术人员还可以容易想到类间损失的其他计算方式,在此不再累述。为了使得不同类之间的差异尽量大,即,尽可能地将不同类别的特征分开,在对子神经网络架构进行训练时,要使得类间损失尽量小。

针对诸如面部图像识别、对象识别等的开集识别问题,本公开实施例还针对训练集中的所有样本,针对每个子神经网络架构,计算表明属于同一类别的样本的特征之间的聚集程度的中心损失Lc。作为示例,中心损失可以基于每个样本的特征与该样本所属的类的中心特征之间的距离来计算。为了使得属于同一个类的样本的特征的差异小,即为了使来自同一类的特征更聚集,在对子神经网络架构进行训练时,要使得中心损失尽量小。

根据本公开实施例的损失函数L可以表示为:

L=Ls+ηLc (1)

在表达式(1)中,η是超参数,其可以决定在损失函数L中,类间损失Ls和中心损失Lc中的哪个损失起主导作用,可以根据经验确定η。

训练单元106以使损失函数L最小作为目标来对每个子神经网络架构进行训练,从而能够确定每个子神经网络的架构参数的值,即,得到经训练的每个子神经网络架构。

由于训练单元106基于类间损失和中心损失两者对每个子神经网络架构进行训练,因此,在使得属于不同类的样本的特征更分离的同时,使得属于同一类的样本的特征更聚集。这样,有助于在开集识别问题中,更容易地判断待测试图像是属于已知类别还是属于未知类别。

奖励计算单元108可以被配置成利用验证集中的所有样本,针对经训练的每个子神经网络架构,分别计算分类精度和表明属于同一类别的样本的特征之间的紧致程度的特征分布得分,并且基于每个子神经网络架构的分类精度和特征分布得分计算该子神经网络架构的奖励得分。

优选地,特征分布得分是基于表明属于同一类别的样本的特征之间的聚集程度的中心损失而计算得到的,以及分类精度是基于表明不同类别的样本的特征之间的分离程度的类间损失而计算得到的。

假设用ω表示经训练的一个子神经网络架构的参数(即,该一个子神经网络架构的架构参数的值),将该一个子神经网络架构的分类精度表示为Acc_s(ω),以及将其特征分布得分表示为Fd_c(ω)。奖励计算单元108利用验证集中的所有样本,针对该一个子神经网络架构计算类间损失Ls,并基于计算出的类间损失Ls来计算分类精度Acc_s(ω)。因此,分类精度Acc_s(ω)可以表明对属于不同类别的样本进行分类的分类精度。另外,奖励计算单元108利用验证集中的所有样本,针对该一个子神经网络架构计算中心损失Lc,并基于计算出的中心损失Lc来计算特征分布得分Fd_c(ω)。因此,特征分布得分Fd_c(ω)可以表明属于同一类别的样本的特征之间的紧致程度。

定义该一个子神经网络架构的奖励得分R(ω)为:

R(ω)=Acc_s(ω)+ρFd_c(ω) (2)

在表达式(2)中,ρ为超参数。作为示例,可以根据经验确定ρ,从而保证分类精度Acc_s(ω)和特征分布得分Fd_c(ω)在同一个数量级上,并且ρ可以决定在奖励得分R(ω)中,分类精度Acc_s(ω)和特征分布得分Fd_c(ω)中的哪个起主导作用。

由于奖励计算单元108基于分类精度和特征分布得分两者计算奖励得分,因此,奖励得分不仅能表示分类精度,而且还能表示属于同一类别的样本的特征之间的紧致程度。

调整单元110可以被配置成将奖励得分反馈到控制单元,并使得朝向所述至少一个子神经网络架构的奖励得分更大的方向调整控制单元的参数。

对于在控制单元104的参数为θ时,采样得到的至少一个子神经网络架构,基于每个子神经网络架构的奖励得分而得到一组奖励得分,将该一组奖励得分表示为R’(ω)。EP(θ)[R’(ω)]表示R’(ω)的期望,我们的目的是在某种优化策略P(θ)下,调整控制单元104的参数θ,使得R’(ω)的期望值最大。作为示例,在采样仅得到单个子网络架构的情况下,我们的目的是在某种优化策略P(θ)下,调整控制单元104的参数θ,使得所述单个子网络架构的奖励得分最大。

作为示例,可以使用增强学习中常用的优化策略来进行优化。例如可以使用近端策略优化(Proximal Policy Optimization)或者梯度策略优化。

作为示例,使得朝向所述至少一个子神经网络架构的一组奖励得分的期望值更大的方向,调整控制单元104的参数θ。作为示例,可以基于所述一组奖励得分和控制单元104的当前参数θ,生成控制单元104的调整后的参数。

如上所述,奖励得分不仅能表示分类精度,而且还能表示属于同一类别的样本的特征之间的紧致程度。由于根据本公开实施例的调整单元110根据上述奖励得分来调整控制单元的参数、使得控制单元基于其调整后的参数能够采样出使得奖励得分更大的子神经网络架构,因此,针对开集识别问题,可以搜索出更适合该开集的神经网络架构。

在根据本公开实施例的神经网络架构搜索装置100中,迭代地进行控制单元104、训练单元106、奖励计算单元108以及调整单元110中的处理,直到满足预定迭代终止条件为止。

作为示例,在后续的每轮迭代中,控制单元104根据其调整后的参数,重新对搜索空间中的架构参数进行采样,以重新生成至少一个子神经网络架构。训练单元106对重新生成的每个子神经网络架构进行训练,奖励计算单元108计算经训练的每个子神经网络架构的奖励得分,调整单元110再将奖励得分反馈到控制单元104,并使得朝向所述至少一个子神经网络架构的一组奖励得分更大的方向再调整104控制单元的参数。

作为示例,迭代终止条件是所述至少一个子神经网络架构的性能足够好(例如,所述至少一个子神经网络架构的所述一组奖励得分满足预定条件)或者达到最大迭代次数。

综上,根据本公开实施例的神经网络架构搜索装置100通过迭代地进行控制单元104、训练单元106、奖励计算单元108以及调整单元110中的处理,能够针对某一个实际的开集识别问题,利用已经具备的部分监督数据(训练集中的样本和验证集的样本),自动搜索出一个适合该开集的神经网络架构,从而能够容易且有效地为开集识别问题构建具有更强的通用性的神经网络架构。

优选地,为了更好的解决开集识别问题,使得能够自动搜索出一个更适合该开集的神经网络架构,神经网络架构的搜索空间限定单元102可以被配置成针对开集识别限定搜索空间。

优选地,神经网络架构的搜索空间限定单元102可以被配置成将神经网络架构限定为包括串行布置的预定数量的用于对样本的特征进行变换的块单元和所述预定数量的用于对样本的特征进行整合的特征整合层,其中,在每个块单元之后布置一个所述特征整合层,并且神经网络架构的搜索空间限定单元102可以被配置成预先限定所述预定数量的特征整合层中的每个特征整合层的结构,以及控制单元104可以被配置成对搜索空间中的架构参数进行采样,以形成所述预定数量的块单元中的每个块单元,从而生成所述至少一个子神经网络架构中的每个子神经网络架构。

作为示例,可以根据真实面部识别数据库、对象识别数据库等来限定神经网络架构。

作为示例,特征整合层可以是卷积层。

图2示出了根据本公开实施例的神经网络架构的示例的图。神经网络架构的搜索空间限定单元102预先将N个特征整合层中的每个特征整合层的结构限定为卷积层。如图2所示,神经网络架构具有一个特征提取层(即,卷积层Conv 0),该特征提取层用于提取输入的图像的特征。此外,神经网络架构具有串行布置的N个块单元(块单元1、…、块单元N)和N个特征整合层(即,卷积层Conv 1、…、Conv N),其中,在每个块单元之后布置一个特征整合层,N是大于或等于1的整数。

每个块单元可以包括由若干操作的任意组合而组成的M个层,每个块单元用于通过其包括的操作而对图像的特征进行变换等处理。其中,M可以根据待处理的任务的复杂度而预先确定,M是大于或等于1的整数。将通过根据本公开实施例的神经网络架构搜索装置100进行的搜索(具体地,控制单元104基于其参数对搜索空间中的架构参数进行的采样)确定N个块单元的具体结构,即确定N个块单元具体包括哪些操作。在通过搜索确定了N个块单元的结构之后,就可以得到一个具体的神经网络架构(更具体地,经采样得到的子神经网络架构)。

优选地,架构参数的集合包括3x3卷积核、5x5卷积核、3x3深度可分离卷积、5x5深度可分离卷积、3x3最大池化、3x3平均池化、恒等残差跳过、恒等残差不跳过的任意组合。作为示例,上述3x3卷积核、5x5卷积核、3x3深度可分离卷积、5x5深度可分离卷积、3x3最大池化、3x3平均池化、恒等残差跳过、恒等残差不跳过的任意组合均可以作为上述N个块单元中每层所包括的操作。上述架构参数的集合更适合于解决开集识别问题。

架构参数的集合不限于上述操作。作为示例,架构参数的集合还可以包括1x1卷积核、7x7卷积核、1x1深度可分离卷积、7x7深度可分离卷积、1x1最大池化、5x5最大池化、1x1平均池化、5x5平均池化等等。

优选地,控制单元可以包括循环神经网络RNN。可以基于奖励得分和包括RNN的控制单元的当前参数,生成包括RNN的控制单元的调整后的参数。

经采样得到子神经网络架构的数目与该RNN的长度输入维度有关。在下文中,为了清楚,将包括RNN的控制单元104称为基于RNN的控制单元104。

图3a至3c是示出根据本公开实施例的基于RNN的控制单元104对搜索空间中的架构参数进行采样的示例的图。

在以下描述中,为了方便表示,用Sep 5x5表示5x5深度可分离卷积,用skip表示恒等残差跳过,用Conv 1x1表示1x1卷积核,用Conv 5x5表示5x5卷积核,用No skip表示恒等残差不跳过,用Max pool表示最大池化。

从图3a可以看出,基于RNN的控制单元104的参数,第一步RNN采样得到的操作是sep 5x5,它的基本结构如图3b所示,将其标记为图3a中的“1”。

从图3a可以看出,根据RNN第一步采样得到的值和RNN第二步采样的参数可以得到第二步的操作是skip,它的基本结构如图3c所示,将其标记为图3a中的“2”。

接下来,得到图3a的RNN第三步的操作是Conv 5x5,其中,Conv 5x5的输入是图3a中的“1”和“2”的结合(在图3a中,用圆圈中的“1,2”来示意性地示出)。

图3a的RNN采样的第四步的操作是no skip,不需要操作,也不标记。

图3a的RNN采样的第五步的操作是max pool,依次标记为“4”(图中已省略)。

根据如图3a所示的基于RNN的控制单元104对搜索空间中的架构参数进行的采样,可以得到如图4所示的块单元的具体结构。图4是示出根据本公开实施例的块单元的结构的示例的图。如图4所示,在块单元中,包括操作Conv 1x1、Sep 5x5、Conv 5x5以及Max pool。

将所得到的块单元的具体结构填入根据图2所示的神经网络架构中的块单元,就可以生成一个子神经网络架构,即得到根据本公开实施例的神经网络架构的一个具体结构(更具体地,经采样得到的子神经网络架构)。每个块单元的结构可以不同。作为示例,假设N个块单元的结构相同,将如图4所示的块单元的具体结构填入根据图2所示的神经网络架构中的每个块单元,就可以生成一个子神经网络架构。

优选地,在迭代终止时所得到的所述至少一个子神经网络架构用于开集识别。作为示例,在迭代终止时所得到的所述至少一个子神经网络架构可用于诸如面部图像识别、对象识别等的开集识别。

与上述神经网络架构搜索装置实施例相对应地,本公开还提供了以下神经网络架构搜索方法的实施例。

图5是示出根据本公开实施例的神经网络架构搜索方法500的流程示例的流程图。

如图5所示,根据本公开实施例的神经网络架构搜索方法500包括神经网络架构的搜索空间限定步骤S502、控制步骤S504、训练步骤S506、奖励计算步骤S508、以及调整步骤S510。

在神经网络架构的搜索空间限定步骤S502中,限定作为描述神经网络架构的架构参数的集合的搜索空间。

神经网络架构可以用描述该神经网络的架构参数来表示。作为示例,可以根据经验限定神经网络架构的架构参数的全集。另外,还可以根据真实面部识别数据库、对象识别数据库等来限定神经网络架构的架构参数的全集。

在控制步骤S504中,基于控制单元的参数,对搜索空间中的架构参数进行采样,以生成至少一个子神经网络架构。其中,采样得到的子网络架构的数目可根据实际情况预先设定。

在训练步骤S506中,利用训练集中的所有样本,针对至少一个子神经网络架构中的每个子神经网络架构,计算表明不同类别的样本的特征之间的分离程度的类间损失和表明属于同一类别的样本的特征之间的聚集程度的中心损失,通过使包括类间损失和中心损失的损失函数最小来对每个子神经网络架构进行训练。

作为示例,样本的特征可以是样本的特征向量。

有关计算类间损失和中心损失的具体示例可以参见以上装置实施例中相应部分例如关于训练单元106的描述,在此不再重复。

由于在训练步骤S506中,基于类间损失和中心损失两者对每个子神经网络架构进行训练,因此,在使得属于不同类的样本的特征更分离的同时,使得属于同一类的样本的特征更聚集。这样,有助于在开集识别问题中,更容易地判断待测试图像是属于已知类别还是属于未知类别。

在奖励计算步骤S508中,利用验证集中的所有样本,针对经训练的每个子神经网络架构,分别计算分类精度和表明属于同一类别的样本的特征之间的紧致程度的特征分布得分,并且基于每个子神经网络架构的分类精度和特征分布得分计算该子神经网络架构的奖励得分。

优选地,特征分布得分是基于表明属于同一类别的样本的特征之间的聚集程度的中心损失而计算得到的,以及分类精度是基于表明不同类别的样本的特征之间的分离程度的类间损失而计算得到的。

有关计算分类精度、特征分布得分以及奖励得分的具体示例可以参见以上装置实施例中相应部分例如关于奖励计算单元108的描述,在此不再重复。

由于在奖励计算步骤S508中,基于分类精度和特征分布得分两者计算奖励得分,因此,奖励得分不仅能表示分类精度,而且还能表示属于同一类别的样本的特征之间的紧致程度。

在调整步骤S510中,将奖励得分反馈到控制单元,并使得朝向所述至少一个子神经网络架构的奖励得分更大的方向调整控制单元的参数。

有关使得朝向所述至少一个子神经网络架构的奖励得分更大的方向调整控制单元的参数的具体示例可以参见以上装置实施例中相应部分例如关于调整单元110的描述,在此不再重复。

如上所述,奖励得分不仅能表示分类精度,而且还能表示属于同一类别的样本的特征之间的紧致程度。由于在调整步骤S510中,根据上述奖励得分来调整控制单元的参数、使得控制单元基于其调整后的参数能够采样出使得奖励得分更大的子神经网络架构,因此,针对开集识别问题,可以搜索出更适合该开集的神经网络架构。

在根据本公开实施例的神经网络架构搜索方法500中,迭代地进行控制步骤S504、训练步骤S506、奖励计算步骤S508、以及调整步骤S510中的处理,直到满足预定迭代终止条件为止。

有关迭代处理的具体示例可以参见以上装置实施例中相应部分的描述,在此不再重复。

综上,根据本公开实施例的神经网络架构搜索方法500通过迭代地进行控制步骤S504、训练步骤S506、奖励计算步骤S508、以及调整步骤S510的处理,能够针对某一个实际的开集识别问题,利用已经具备的部分监督数据(训练集中的样本和验证集的样本),自动搜索出一个适合该开集的神经网络架构,从而能够容易且有效地为开集识别问题构建具有更强的通用性的神经网络架构。

优选地,为了更好的解决开集识别问题,使得能够自动搜索出一个更适合该开集的神经网络架构,在神经网络架构的搜索空间限定步骤S502中,针对开集识别限定搜索空间。

优选地,在神经网络架构的搜索空间限定步骤S502中,将神经网络架构限定为包括串行布置的预定数量的用于对样本的特征进行变换的块单元和所述预定数量的用于对样本的特征进行整合的特征整合层,其中,在每个块单元之后布置一个所述特征整合层,并且在神经网络架构的搜索空间限定步骤S502中,预先限定所述预定数量的特征整合层中的每个特征整合层的结构,以及在控制步骤S504中,基于控制单元的参数,对搜索空间中的架构参数进行采样,以形成所述预定数量的块单元中的每个块单元,从而生成所述至少一个子神经网络架构中的每个子神经网络架构。

作为示例,可以根据真实面部识别数据库、对象识别数据库等来限定神经网络架构。

有关块单元和神经网络架构的具体示例可以参见以上装置实施例中相应部分例如图2以及图3a至3c的描述,在此不再重复。

优选地,架构参数的集合包括3x3卷积核、5x5卷积核、3x3深度可分离卷积、5x5深度可分离卷积、3x3最大池化、3x3平均池化、恒等残差跳过、恒等残差不跳过的任意组合。作为示例,上述3x3卷积核、5x5卷积核、3x3深度可分离卷积、5x5深度可分离卷积、3x3最大池化、3x3平均池化、恒等残差跳过、恒等残差不跳过的任意组合均可以作为块单元中每层所包括的操作。

架构参数的集合不限于上述操作。作为示例,架构参数的集合还可以包括1x1卷积核、7x7卷积核、1x1深度可分离卷积、7x7深度可分离卷积、1x1最大池化、5x5最大池化、1x1平均池化、5x5平均池化等等。

优选地,在迭代终止时所得到的所述至少一个子神经网络架构用于开集识别。作为示例,在迭代终止时所得到的所述至少一个子神经网络架构可用于诸如面部图像识别、对象识别等的开集识别。

应指出,尽管以上描述了根据本公开实施例的神经网络架构搜索装置的功能配置,但是这仅是示例而非限制,并且本领域技术人员可根据本公开的原理对以上实施例进行修改,例如可对各个实施例中的功能模块进行添加、删除或者组合等,并且这样的修改均落入本公开的范围内。

此外,还应指出,这里的装置实施例是与上述方法实施例相对应的,因此在装置实施例中未详细描述的内容可参见方法实施例中相应部分的描述,在此不再重复描述。

此外,本公开还提供了存储介质和程序产品。根据本公开实施例的存储介质和程序产品中的机器可执行的指令可以被配置成执行上述神经网络架构搜索方法,因此在此未详细描述的内容可参考先前相应部分的描述,在此不再重复进行描述。

相应地,用于承载上述包括机器可执行的指令的程序产品的存储介质也包括在本发明的公开中。该存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。

相应地,用于承载上述包括机器可执行的指令的程序产品的存储介质也包括在本发明的公开中。该存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。

另外,还应该指出的是,上述系列处理和装置也可以通过软件和/或固件实现。在通过软件和/或固件实现的情况下,从存储介质或网络向具有专用硬件结构的计算机,例如图6所示的通用个人计算机600安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等等。

在图6中,中央处理单元(CPU)601根据只读存储器(ROM)602中存储的程序或从存储部分608加载到随机存取存储器(RAM)603的程序执行各种处理。在RAM 603中,也根据需要存储当CPU 601执行各种处理等时所需的数据。

CPU 601、ROM 602和RAM 603经由总线604彼此连接。输入/输出接口605也连接到总线604。

下述部件连接到输入/输出接口605:输入部分606,包括键盘、鼠标等;输出部分607,包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等;存储部分608,包括硬盘等;和通信部分609,包括网络接口卡比如LAN卡、调制解调器等。通信部分609经由网络比如因特网执行通信处理。

根据需要,驱动器610也连接到输入/输出接口605。可拆卸介质611比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器610上,使得从中读出的计算机程序根据需要被安装到存储部分608中。

在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质611安装构成软件的程序。

本领域的技术人员应当理解,这种存储介质不局限于图6所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质611。可拆卸介质611的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 602、存储部分608中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。

以上参照附图描述了本公开的优选实施例,但是本公开当然不限于以上示例。本领域技术人员可在所附权利要求的范围内得到各种变更和修改,并且应理解这些变更和修改自然将落入本公开的技术范围内。

例如,在以上实施例中包括在一个单元中的多个功能可以由分开的装置来实现。替选地,在以上实施例中由多个单元实现的多个功能可分别由分开的装置来实现。另外,以上功能之一可由多个单元来实现。无需说,这样的配置包括在本公开的技术范围内。

在该说明书中,流程图中所描述的步骤不仅包括以所述顺序按时间序列执行的处理,而且包括并行地或单独地而不是必须按时间序列执行的处理。此外,甚至在按时间序列处理的步骤中,无需说,也可以适当地改变该顺序。

另外,根据本公开的技术还可以如下进行配置。

附记1.一种神经网络架构搜索装置,包括:

神经网络架构的搜索空间限定单元,被配置成限定作为描述神经网络架构的架构参数的集合的搜索空间;

控制单元,被配置成基于所述控制单元的参数,对所述搜索空间中的架构参数进行采样,以生成至少一个子神经网络架构;

训练单元,被配置成利用训练集中的所有样本,针对所述至少一个子神经网络架构中的每个子神经网络架构,计算表明不同类别的样本的特征之间的分离程度的类间损失和表明属于同一类别的样本的特征之间的聚集程度的中心损失,通过使包括所述类间损失和所述中心损失的损失函数最小来对每个子神经网络架构进行训练;

奖励计算单元,被配置成利用验证集中的所有样本,针对经训练的每个子神经网络架构,分别计算分类精度和表明属于同一类别的样本的特征之间的紧致程度的特征分布得分,并且基于每个子神经网络架构的所述分类精度和所述特征分布得分计算该子神经网络架构的奖励得分,以及

调整单元,被配置成将所述奖励得分反馈到所述控制单元,并使得朝向所述至少一个子神经网络架构的所述奖励得分更大的方向调整所述控制单元的所述参数,

其中,迭代地进行所述控制单元、所述训练单元、所述奖励计算单元以及所述调整单元中的处理,直到满足预定迭代终止条件为止。

附记2.根据附记1所述的神经网络架构搜索装置,其中,所述神经网络架构的搜索空间限定单元被配置成针对开集识别限定所述搜索空间。

附记3.根据附记2所述的神经网络架构搜索装置,其中,

所述神经网络架构的搜索空间限定单元被配置成将所述神经网络架构限定为包括串行布置的预定数量的用于对样本的特征进行变换的块单元和所述预定数量的用于对样本的特征进行整合的特征整合层,其中,在每个块单元之后布置一个所述特征整合层,并且被配置成预先限定所述预定数量的特征整合层中的每个特征整合层的结构,以及

所述控制单元被配置成对所述搜索空间中的架构参数进行采样,以形成所述预定数量的块单元中的每个块单元,从而生成所述至少一个子神经网络架构中的每个子神经网络架构。

附记4.根据附记1所述的神经网络架构搜索装置,其中,

所述特征分布得分是基于表明属于同一类别的样本的特征之间的聚集程度的中心损失而计算得到的;以及

所述分类精度是基于表明不同类别的样本的特征之间的分离程度的类间损失而计算得到的。

附记5.根据附记1所述的神经网络架构搜索装置,其中,所述架构参数的集合包括3x3卷积核、5x5卷积核、3x3深度可分离卷积、5x5深度可分离卷积、3x3最大池化、3x3平均池化、恒等残差跳过、恒等残差不跳过的任意组合。

附记6.根据附记1所述的神经网络架构搜索装置,其中,在迭代终止时所得到的所述至少一个子神经网络架构用于开集识别。

附记7.根据附记1所述的神经网络架构搜索装置,其中,所述控制单元包括循环神经网络。

附记8.一种神经网络架构搜索方法,包括:

神经网络架构的搜索空间限定步骤,限定作为描述神经网络架构的架构参数的集合的搜索空间;

控制步骤,基于控制单元的参数,对所述搜索空间中的架构参数进行采样,以生成至少一个子神经网络架构;

训练步骤,利用训练集中的所有样本,针对所述至少一个子神经网络架构中的每个子神经网络架构,计算表明不同类别的样本的特征之间的分离程度的类间损失和表明属于同一类别的样本的特征之间的聚集程度的中心损失,通过使包括所述类间损失和所述中心损失的损失函数最小来对每个子神经网络架构进行训练;

奖励计算步骤,利用验证集中的所有样本,针对经训练的每个子神经网络架构分别计算分类精度和表明属于同一类别的样本的特征之间的紧致程度的特征分布得分,并且基于每个子神经网络架构的所述分类精度和所述特征分布得分计算该子神经网络架构的奖励得分,以及

调整步骤,将所述奖励得分反馈到所述控制单元,并使得朝向所述至少一个子神经网络架构的所述奖励得分更大的方向调整所述控制单元的所述参数,

其中,迭代地进行所述控制步骤、所述训练步骤、所述奖励计算步骤以及所述调整步骤中的处理,直到满足预定迭代终止条件为止。

附记9.根据附记8所述的神经网络架构搜索方法,其中,在所述神经网络架构的搜索空间限定步骤中,针对开集识别限定所述搜索空间。

附记10.根据附记9所述的神经网络架构搜索方法,其中,

在所述神经网络架构的搜索空间限定步骤中,将所述神经网络架构限定为包括串行布置的预定数量的用于对样本的特征进行变换的块单元和所述预定数量的用于对样本的特征进行整合的特征整合层,其中,在每个块单元之后布置一个所述特征整合层,并且在所述神经网络架构的搜索空间限定步骤中,预先限定所述预定数量的特征整合层中的每个特征整合层的结构,以及

在所述控制步骤中,基于所述控制单元的参数,对所述搜索空间中的架构参数进行采样,以形成所述预定数量的块单元中的每个块单元,从而生成所述至少一个子神经网络架构中的每个子神经网络架构。

附记11.根据附记8所述的神经网络架构搜索方法,其中,

所述特征分布得分是基于表明属于同一类别的样本的特征之间的聚集程度的中心损失而计算得到的;以及

所述分类精度是基于表明不同类别的样本的特征之间的分离程度的类间损失而计算得到的。

附记12.根据附记8所述的神经网络架构搜索方法,其中,所述架构参数的集合包括3x3卷积核、5x5卷积核、3x3深度可分离卷积、5x5深度可分离卷积、3x3最大池化、3x3平均池化、恒等残差跳过、恒等残差不跳过的任意组合。

附记13.根据附记8所述的神经网络架构搜索方法,其中,在迭代终止时所得到的所述至少一个子神经网络架构用于开集识别。

附记14.一种记录有程序的计算机可读记录介质,所述程序用于使得计算机执行以下步骤:

神经网络架构的搜索空间限定步骤,限定作为描述神经网络架构的架构参数的集合的搜索空间;

控制步骤,基于控制单元的参数,对所述搜索空间中的架构参数进行采样,以生成至少一个子神经网络架构;

训练步骤,利用训练集中的所有样本,针对所述至少一个子神经网络架构中的每个子神经网络架构,计算表明不同类别的样本的特征之间的分离程度的类间损失和表明属于同一类别的样本的特征之间的聚集程度的中心损失,通过使包括所述类间损失和所述中心损失的损失函数最小来对每个子神经网络架构进行训练;

奖励计算步骤,利用验证集中的所有样本,针对经训练的每个子神经网络架构分别计算分类精度和表明属于同一类别的样本的特征之间的紧致程度的特征分布得分,并且基于每个子神经网络架构的所述分类精度和所述特征分布得分计算该子神经网络架构的奖励得分,以及

调整步骤,将所述奖励得分反馈到所述控制单元,并使得朝向所述至少一个子神经网络架构的所述奖励得分更大的方向调整所述控制单元的所述参数,

其中,迭代地进行所述控制步骤、所述训练步骤、所述奖励计算步骤以及所述调整步骤中的处理,直到满足预定迭代终止条件为止。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:操作搜索框架系统的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!