首页 / 专利库 / 人工智能 / 语言建模 / 神经架构搜索的系统和方法

神经架构搜索的系统和方法

阅读:369发布:2020-05-14

专利汇可以提供神经架构搜索的系统和方法专利检索,专利查询,专利分析的服务。并且公开了一种神经架构搜索的计算机实现的方法。 实施例 可以提供用于执行 选定 任务的神经网络(100)。获得计算图(200),该计算图包括多个 节点 、边、以及与上述节点/边相关联的权重。计算图(200)包括计算图(200)的子图(301、302)形式的多个候选模型。顺序训练选定的子图,响应于训练更新与每个子图对应的权重。对于子图中与另一子图共享的每个权重,基于与该权重相关联的节点/边对另一子图的重要程度的指示控制(响应于训练该子图的)该权重的更新。,下面是神经架构搜索的系统和方法专利的具体信息内容。

1.一种神经架构搜索的计算机实现的方法,所述神经架构搜索用以提供用于执行选定任务的神经网络,所述方法包括:
(i)获得计算图,所述计算图包括:通过多条边连接的多个节点、以及用于缩放沿边提供到节点的输入数据的多个权重,其中,每个节点用于:
从经由边连接至所述节点的前一节点接收至少一项输入数据;
对所述输入数据执行运算以提供输出数据,其中,每项输入数据根据与所述节点和/或边关联的权重进行缩放;以及
经由边向所述图中的后一节点提供所述输出数据;
其中,所述计算图定义第一候选模型和第二候选模型,每个候选模型为所述计算图中的子图,所述子图具有从所述多个节点、所述多条边、以及关联的所述多个权重中选取的节点、边、以及权重,其中,一些选取的节点、边、以及权重在所述第一模型和所述第二模型间共享;
(ii)基于训练所述第一模型执行所述选定任务,更新所述第一模型的所述权重;
(iii)基于训练所述第二模型执行与所述第一模型相同的所述选定任务,更新所述第二模型的所述权重,其中,更新所述第二模型的所述权重包括更新在步骤(ii)中更新的在所述第一模型和所述第二模型间共享的一些权重,并且其中,更新共享的所述权重基于与所述权重关联的节点和/或边对训练后的所述第一候选模型的重要程度的指示进行控制;
(iv)识别所述神经网络的优选模型,所述优选模型包括从所述计算图选取的节点、边、以及关联的权重,其中,所述优选模型基于对所述第一训练候选模型和第二训练候选模型的分析确定;以及
(v)基于所述优选模型提供用于执行所述选定任务的神经网络。
2.根据权利要求1所述的方法,其中,用于执行所述选定任务的所述神经网络包括用于以下至少之一的神经网络:(i)自然语言处理、(ii)图像识别、(iii)物理系统的分类和/或建模、(iv)数据处理、以及(v)搜索结果生成。
3.根据任一前述权利要求所述的方法,其中,对于每个共享的权重,重要程度的所述指示使用基于关于所述权重的选择的损失函数的梯度或高阶导数的测量而确定,例如,重要程度的所述指示使用所述权重的费信息的指示而确定。
4.根据权利要求3所述的方法,其中,基于重要程度的指示控制共享的所述权重的更新包括基于所述测量的值缩放所述更新的幅度,例如,基于所述权重的所述费雪信息的值缩放所述更新的幅度。
5.根据权利要求4所述的方法,其中,训练所述第二候选模型包括使用训练损失函数进行训练,所述训练损失函数包括指示所述第二模型中的权重的所述测量的分量,例如,指示所述第二模型中的权重的所述费雪信息的分量。
6.根据权利要求5所述的方法,其中,所述训练损失函数包括用于抑制与所述第二模型中的任一所述权重相关联的梯度爆炸的缩放因子,例如,其中,所述缩放因子包括所述权重的范数。
7.根据任一前述权利要求所述的方法,其中,在训练所述第二模型之前,基于所述第一模型的训练后的权重初始化所述第二模型的所述权重。
8.根据任一前述权利要求所述的方法,其中,识别所述神经网络的所述优选模型包括使用具有基于(i)强化学习以及(ii)进化学习中的至少之一的策略的控制器对所述第一候选模型和所述第二候选模型进行分析。
9.根据权利要求8所述的方法,其中,识别所述优选模型包括:
基于使用验证数据集测试所述第一候选模型和所述第二候选模型,确定所述第一候选模型和所述第二候选模型中表现最佳的模型;
保持训练后的权重的值恒定,基于对所述最佳候选模型的分析更新所述控制器的所述策略;
用更新的所述策略操作所述控制器以获得对第三候选模型和第四候选模型的推荐,其中,一些节点、边、以及权重在所述第三模型和所述第四模型之间共享;
基于训练所述第三模型执行所述选定任务,更新所述第三模型的权重;
基于训练所述第四模型执行与所述第三模型相同的所述选定任务,更新所述第四模型的权重,其中,更新所述第四模型的所述权重包括更新在所述第三模型和所述第四模型之间共享的一些权重,并且其中,基于与所述权重关联的节点和/或边对训练后的所述第三候选模型的重要程度的指示,控制更新共享的所述权重;以及
基于对所述第三训练候选模型和第四训练候选模型的分析识别所述优选模型。
10.根据权利要求9所述的方法,其中,用不同的建议的候选模型重复权利要求9的步骤,直到以下至少之一:(i)达到时间阈值,以及(ii)最佳候选模型和后一建议候选模型之间的差异低于阈值差异。
11.根据权利要求10所述的方法,其中,来自权利要求9的步骤的最后一次迭代的所述表现最佳推荐候选模型用作用于执行所述选定任务的所述神经网络的所述模型架构。
12.根据任一前述权利要求所述的方法,其中,基于选择所述节点获得候选模型,基于所述选定任务以及所述节点在与所述选定任务相似的任务上的表现的指示来进行选择,例如,其中,所述节点包括以下至少之一:(i)神经元,以及(ii)神经元
13.根据权利要求8或其任一从属权利要求所述的方法,其中,操作所述控制器包括使用基于以下的奖励:(i)指示候选模型的拟合度的分量,以及(ii)指示所述候选模型的复杂度的分量;以及
可选地,其中,所述奖励的所述两个分量是分开的和/或被缩放以防止所述奖励为负。
14.根据任一前述权利要求所述的方法,其中,步骤(ii)、(iii)、和(iv)被重复选择的次数,其中,最初,在不基于与所述权重相关联的节点和/或边对训练后的所述第一候选模型的重要程度的指示控制权重的更新的情况下,重复步骤(ii)、(iii)、和(iv);以及然后重复步骤(ii)、(iii)、和(iv),同时在步骤(iii)中,基于与所述权重相关联的节点和/或边对训练后的所述第一候选模型的重要程度的指示控制权重的更新。
15.一种计算机程序产品,包括程序指令,所述程序指令用于对处理器编程以执行根据权利要求1至14中任一项所述的方法。

说明书全文

神经架构搜索的系统和方法

技术领域

[0001] 本公开涉及神经架构搜索领域。特别地,本公开涉及用于设计神经网络的系统和方法。

背景技术

[0002] 通过提供增强的计算能访问越来越多的适合的训练数据机器学习技术已获得越来越多的应用,可为许多技术问题提供改进的解决方案。特别地,作为一种为许多此类技术问题提供简洁有效的解决方案的方法,神经网络的使用已越来越普遍。
[0003] 神经网络通常具有包括多个互联神经元的结构。网络中的每个神经元被布置为接收输入数据,在提供某些输出数据之前,神经元对该接收数据进行缩放并对其执行函数。随后,该输出数据可以被馈入后续神经元,作为后续神经元的输入数据。然后,这些后续神经元同样可以在对数据执行进一步的函数之前对其进行缩放。可以对多个不同的神经元重复该过程,直到决定最后的输出。可以通过使用具有相应已知输出的输入数据对这些网络进行训练,其中,训练涉及对数据重复操作该网络以提供输出,并执行与该输出的比较。即,将一个输入数据的输出与该输入数据的已知输出进行比较。然后,可以基于上述比较的结果更新网络的权重(其影响输入数据的缩放),使得网络“学习”在被提供给定的输入数据时提供正确的输出。通过使用合适的训练数据重复许多次该过程,研究表明,神经网络具有很强的普适接近能力(例如,神经网络可以解决其被训练的问题)。
[0004] 神经网络存在大量不同的结构。例如,前馈神经网络(feedforward neural network)包括多层神经元。在前馈网络中,某一层中的神经元的输出被馈入下一层中的每个神经元,使得每个神经元从其上一层的神经元接收输入。神经网络的不同结构包括循环神经网络(recurrent neural network),在循环神经网络中,上一层的输入也可以作为输入数据被馈入下一层。网络的另一类型是残差网络(residual network),其具有与简单前馈网络相似的布置,除了该网络可以包括将从神经元或多层神经元的输出连接到除了下一层以外的层中的神经元的支(branch)。已经发现不同类型的网络对于解决某些类型的技术问题特别有效。因此,在设计神经网络时,基于网络旨在解决的问题选择一种网络类型可能会有所帮助。
[0005] 虽然神经网络类型的选择可能对网络执行选定任务的整体能力有重要影响,但组成神经元类型的选择也可能对网络执行选定任务的能力产生重大影响。例如,由神经元的第一选择组成的训练良好的网络的性能可能不如具有不同的、更好的神经元选择的训练较差的网络。由于网络的训练可能非常耗时,因此最初选择合适的神经元可以大大减少为提供令人满意地执行选定任务的神经网络所花费的时间和资源。除了提高训练神经网络的效率之外,选择合适的神经元结构的能力可能会在提供可以解决技术问题的神经网络与不能解决技术问题的神经网络之间产生差异。
[0006] 通过提供神经架构搜索系统和方法以提供用于解决选定技术问题或对选定技术问题作出贡献的神经网络,本公开的实施例可以解决这些和其他技术问题。发明内容
[0007] 本公开各方面在独立权利要求中阐述,可选的特征在从属权利要求中阐述。本发明的各方面可以相互结合提供,一个方面的特征可以应用于其他方面。
[0008] 在一个方面,提供了一种神经架构搜索的计算机实现的方法,该神经架构搜索用以提供用于执行选定任务的神经网络。该方法包括以下步骤:
[0009] i、获得计算图,该计算图包括:通过多条边连接的多个节点,其中,每个节点和/或边与多个权重中相应的一个权重相关联,并用于根据上述相应权重对提供给(例如,沿边)上述每个节点的输入数据进行缩放。每个节点用于:经由将上述每个节点连接至前一节点的边,从前一节点接收至少一项输入数据;对上述输入数据执行运算以提供输出数据,其中,每项输入数据根据与上述节点和/或边关联的相应权重进行缩放;以及经由边向上述图中的后一节点提供上述输出数据。上述计算图定义第一候选模型和第二候选模型,每个候选模型为上述计算图中的子图,上述子图具有从上述多个节点、上述多条边、以及关联的上述多个权重中选取的节点、边、以及权重,其中,一些选取的节点、边、以及权重在上述第一模型和上述第二模型间共享。例如,应当理解,第一候选模型和/或第二候选模型可以具有一些不在另一候选模型中的节点、边、和权重的选择,例如,并非所有的节点、边、以及权重都在这两个模型间共享。
[0010] ii、基于训练上述第一模型执行上述选定任务,更新上述第一模型的上述权重。
[0011] iii、基于训练上述第二模型执行与上述第一模型相同的上述选定任务,更新上述第二模型的上述权重。更新上述第二模型的上述权重包括更新在步骤(ii)中更新的在上述第一模型和上述第二模型间共享的一些权重。更新共享的上述权重基于与上述权重关联的节点和/或边对训练后的上述第一候选模型的重要程度的指示进行控制。例如,对于与对第一模型不重要的节点和/或边相关联的权重,对权重的更新可以比当关联的节点和边对第一模型更重要时的更大。
[0012] iv、识别上述神经网络的优选模型,上述优选模型包括从上述计算图选取的节点、边、以及关联的权重。上述优选模型基于对上述第一训练候选模型和第二训练候选模型的分析确定。
[0013] v、基于上述优选模型提供用于执行上述选定任务的神经网络。
[0014] 本公开实施例可以改进对用于执行选定任务的神经网络的优选模型的识别。基于重要程度的指示对共享权重的更新进行控制可以降低与第一模型的重要特征相关联的权重的更新幅度。例如,在训练第二模型时,对第一模型不太重要的权重可以比对第一模型较重要的权重改变得更多。然后,当识别神经网络的优选模型时,对第一和第二训练候选模型的分析可能更能代表该模型执行选定任务的能力。例如,第一模型的权重的改变可能小于其原本由于第一和第二候选模型的顺序训练而导致的改变。反过来,这可以更可靠地识别作为神经架构搜索的一部分的优选模型。因此,可以提供一种用于执行选定任务的改进的神经网络。
[0015] 用于执行选定任务的神经网络可以包括用于以下至少之一的神经网络:(i)自然语言处理、(ii)图像识别、(iii)物理系统的分类和/或建模、(iv)数据处理、以及(v)搜索结果生成。应当理解,神经网络的使用可以应用于任意数量的技术问题,例如,其可以有助于任意数量的技术问题的技术方案。例如,由本文所述的神经架构搜索方法提供的网络可以用于处理输入数据并提供基于其可控制技术操作的输出。
[0016] 基于上述权重的费信息(Fisher information)的指示可以确定重要程度的指示。可以为每个共享权重确定重要程度的指示;可以为所有权重确定重要程度的指示。基于重要程度的指示控制共享权重的更新可以包括基于该权重的费雪信息的值缩放上述更新的幅度。例如,可以基于给定权重的费雪信息来限制其最大可能的改变。重要程度的指示可以在训练候选模型时使用的损失函数中实现。
[0017] 可以基于识别与候选模型中的节点/边相关联的性能的损失确定重要程度的指示。例如,对于给定相应权重的重要程度的指示可以提供模型的性能对给定权重的概念性变化(notional change)的敏感程度的指示。权重的微小变化导致性能的大幅下降可能表明该权重非常重要。可以使用合适的损失函数表示模型的性能。重要程度的指示可以定义为对于该给定权重的损失函数的梯度的范数。方法可以包括确定每个权重的费雪信息。每个权重的费雪信息可基于该权重的费雪矩阵的对近似来确定。使用费雪信息可以很好地指示与权重相关联的重要程度的指示。
[0018] 训练上述第二候选模型包括使用训练损失函数进行训练,该训练损失函数包括指示第二模型中的权重的费雪信息的分量。该分量可以指示第二模型中的权重的费雪信息,例如,该分量指示第二模型中的(一些)权重对第一模型的重要程度。如果使用两个以上的候选模型,费雪信息的指示可以用于(在被采样的候选模型的一个批次中的)经过训练的所有其他候选模型。使用的损失函数可以包括以下项:
[0019]
[0020] 其中,θi表示每个权重, 表示权重θi的费雪信息,mj表示第j个候选模型, 表示该权重的最优值。
[0021] 损失函数可以包括用于抑制与第二模型中的任一权重相关联的梯度爆炸的缩放因子。缩放因子可以指示权重的幅度,例如,这可以抑制导致其幅度大幅增加的对该权重的任何改变。缩放因子可以包括权重的范数。例如,缩放因子项可以包括:
[0022]
[0023] 损失函数可以包括指示该模型的交叉熵(cross-entropy)的项。
[0024] 在训练第二模型之前,可以基于第一模型的训练后的权重初始化第二模型的权重。因为第一模型中作用良好的训练后的权重可能在第二模型中也作用良好,所以这可以减少训练每个单独模型的时间。例如,这些权重可以提供相比使用随机分配的权重更接近于第二模型的最优权重的起始点。
[0025] 识别神经网络的优选模型可以包括使用具有基于(i)强化学习以及(ii)进化学习中的至少之一的策略的控制器对第一候选模型和第二候选模型进行分析。控制器可以被布置为在计算图上执行强化学习分析和/或进化学习分析。例如,控制器自身可以包括神经网络,例如循环神经网络(recurrent neural network)。控制器可以包括长短期记忆(long short term memory,LSTM)网络。控制器可以包括多个控制器参数。控制器可以操作策略(例如,其可以基于在策略中阐述的功能执行选定操作)。控制器参数可以影响上述策略,使得修改上述参数可以修改策略进行的动作的结果。可以通过更新控制器参数对控制器进行训练。例如,可以建立控制器寻求最大化的奖励,例如,这可以是减少与控制器的基线平均值相关联的方差。
[0026] 可以训练控制器以例如从模型的节点的选择的子集和可能的子图中推荐候选模型。可以基于向控制器呈现候选模型子集中的优选模型的指示来更新(或训练)控制器。可以使用验证集对该优选模型的性能进行测试。随后,通过学习哪个模型先前工作良好,可以训练控制器以推荐更好的候选模型。为了训练控制器,可以通过更新控制器参数的值来更新控制器的策略。控制器可以提供一组推荐的候选模型,然后,这些模型被顺序训练,之后被分析以帮助识别优选模型。这一过程可以迭代进行。
[0027] 识别优选模型可以是一个迭代的过程,在这一过程中,获得多个候选模型,然后对其进行顺序训练,接着对其进行评估。基于对训练后的模型的评估(例如,分析),可以对控制器进行更新。然后,更新的控制器可以推荐后续的一组候选模型接着进行训练和评估。可以重复该过程,直到识别出优选模型。例如,识别优选模型可以包括:
[0028] i、基于使用验证数据集对第一候选模型和第二候选模型进行测试,确定这两个模型中表现最佳的模型。
[0029] ii、保持训练后的权重的值恒定,基于对上述最佳候选模型的分析更新控制器的策略。
[0030] iii、用更新的策略操作控制器以获得对第三候选模型和第四候选模型的推荐。一些节点、边、以及权重在第三模型和第四模型之间共享。
[0031] iv、基于训练第三模型执行选定任务,更新第三模型的权重。
[0032] v、基于训练第四模型执行与第三模型相同的选定任务,更新第四模型的权重。更新第四模型的权重包括更新在第三模型和第四模型之间共享的一些权重。基于与上述权重关联的节点和/或边对训练后的第三候选模型的重要程度的指示,控制对共享的权重的更新。
[0033] vi、基于对第三训练候选模型和第四训练候选模型的分析识别优选模型。
[0034] 可以用不同的推荐候选模型重复用于识别优选模型的这些步骤,直到满足以下至少之一:(i)达到时间阈值,以及(ii)最佳候选模型和后一推荐候选模型之间的差异低于阈值差异。例如,可以使用阈值数量的代(epoch),在该代之后,可以建立优选模型。控制器推荐的候选模型可以与控制器评估的上一模型进行比较。在两个模型之间的相似度高于某阈值时,迭代过程可以停止。来自上述步骤的最后一次迭代的表现最佳的推荐候选模型随后可以用作用于执行选定任务的神经网络的模型架构。提供神经网络可以包括提供具有与表现最佳的推荐候选的子图对应的架构的神经网络。该子图中的节点的权值可以被重新训练。例如,重新训练可以从在搜索过程中找到的权重开始,或者可以从一组随机权重开始。可以提供该训练后的神经网络作为用于执行选定任务的神经网络。
[0035] 训练后的权重的值可以不保持恒定。例如,可以同时对策略和权重进行更新。在这样的示例中,可以配置控制器使得对策略的更新和对权重的更新彼此独立。例如,对权重的更新可以基于使用训练数据集进行训练,而对策略的更新可以基于使用验证数据集对策略进行训练。
[0036] 当最小化损失函数时,可以引入停止标准。例如,这些可以抑制模型的过度训练,例如,对其训练数据集的训练过于具体,以至于模型难以将其概括为未看到的数据。停止标准可以包括使用验证数据集来识别模型在高于阈值平的单独数据集上的性能。例如,停止标准可以基于对模型的准确性的指示,例如,一旦高于某个阈值水平,可以认为该模型已被充分训练。
[0037] 每个候选模型可以被训练多次。可以训练第一候选模型和第二候选模型,然后对其进行分析。此后,这两个模型被再次训练,之后被再次分析。两个模型的后续训练可以包括更新在第一和第二模型之间共享的一些权值,并且其中,基于与上述权重相关联的节点和/或边对另一训练后的候选模型的重要程度的指示控制更新上述共享权重。在阈值数量的迭代之后可以推荐其他候选模型,或可以识别优选候选模型。例如,可以在多代训练每个模型。
[0038] 可以基于选择节点获得候选模型,基于上述选定任务以及节点在与选定任务相似的任务上的表现的指示来进行选择。该节点包括以下至少之一:(i)神经元,以及(ii)神经元。例如,如果节点包括神经元块,每个神经元块的内部工作可以在候选模型的训练期间保持恒定。当推荐和训练候选模型时,块的布置(例如,块之间的数量/顺序/权重)可以改变。可以使用神经元和神经元块的组合。例如,可以选择节点,使得模型包括先前在相似任务上表现良好的节点。这可以使在优选模型上的收敛更可靠。
[0039] 操作控制器包括使用基于以下的奖励:(i)指示候选模型的拟合度的分量,以及(ii)指示候选模型的复杂度的分量。奖励的两个分量是分开的和/或被缩放以防止该奖励为负。
[0040] 权重可以包括多个矩阵,这些矩阵提供用于在信息流过模型时缩放信息值的数值权重。该方法可以包括识别具有响应于训练的低变化率的权重。例如,二阶导数可以指示权值响应于训练没有太大的变化(例如,低于阈值水平的变化),这可以指示其接近最优值。可以对每个给定权重监控与成本函数相关联的梯度。这可以指示模型在该权重上的敏感度。权重用于缩放在节点之间通过的信息。权重可以施加于以下至少之一:每个节点和每条边。
在每条边施加权重可以使维度更容易管理。权重可以存储在边中。
[0041] 训练和分析候选模型可以是迭代过程,在该过程中,第一和第二候选模型被多次训练和分析。最初,可以在权重的每次更新不基于与该权重相关联的节点和/或边对训练后的第一候选模型的重要程度的指示的情况下进行第二候选模型的训练。然后,该迭代过程可以转至基于与该权重相关联的节点和/或边对训练后的第一候选模型的重要程度的指示控制权重的更新的情况下的迭代。这可以减少对较早训练的模型的任何偏差。
[0042] 本公开的各方面包括计算机程序产品,该计算机程序产品包括程序指令,该程序指令用于对处理器编程以执行本文描述的方法。附图说明
[0043] 现仅通过示例的方式参考附图描述一些实施例,其中:
[0044] 图1示出了示例前馈网络的示意图;
[0045] 图2示出了包括在第二层和第三层具有两个可能的节点选项的前馈网络的示例图的示意图;
[0046] 图3a示出了从图2所示的可用选项选取的示例前馈网络的示意图;
[0047] 图3b示出了从图2所示的可用选项选取的另一示例前馈网络的示意图;
[0048] 图4示出了神经架构搜索的示例方法的流程图
[0049] 图5a和图5b示出了使用传统交叉熵损失系统得到的结果和使用本公开的权重可塑性损失系统得到的结果之间的对比;
[0050] 图6a至图6f示出了使用传统交叉熵损失系统得到的结果和使用本公开的权重可塑性损失系统的得到的结果之间的对比。
[0051] 在附图中,相似的附图标记用于指示相似的要素。

具体实施方式

[0052] 本公开实施例涉及神经架构搜索的系统和方法。当面对必须提供用于执行选定任务的神经网络的任务时,神经架构搜索用于为这种神经网络识别优选模型。可以基于对多个候选模型的分析来识别优选模型。识别优选模型涉及提供由通过多条边连接的多个不同节点组成的计算图。可以认为计算图提供了多个子图(可以将子图视为“候选模型”)。每个子图都是计算图中的一些节点和边的选择。
[0053] 计算图包括多个权值,权值在信息流经网络(例如,在不同的节点之间流通)时对其进行缩放。可以在节点之间施加权值,使得在节点处接收的各项输入数据可以基于从其接收这些数据的前一节点进行缩放。可以识别多个不同的子图,并且这些不同子图中任意两个子图可以包括一些相同的节点和权重。识别的子图表示计算图中的节点和边的所有可能结构的子集。
[0054] 使用与选定任务相关联的训练数据对识别的子图进行顺序训练。子图的训练包括使用具有与其相关联的已知输出的各项训练数据操作该子图。对于每一项训练数据,将使用该输入数据操作子图的输出和与该项训练数据相关联的已知输出进行比较。通过比较这两个输出,可以基于这两个输出之间的差异修改子图的权值(例如,使得如果网络再次在该数据上进行操作,该网络将提供与已知输出对应的输出)。重复多次该过程,例如,一旦该子图执行选定任务的能力收敛,则该子图被确定为“已训练”。
[0055] 一旦训练了第一子图,随后即以几乎相同的方式训练第二子图。然而,本公开实施例对如何更新第二子图的权重进行了限制。第一子图和第二子图可以在其选择的节点和边(以及因此相关联的权重)中具有重叠。在第一子图中同样起作用的权重(以下称为“共享权重”)将已基于训练第一子图执行选定任务更新和完善了其值。当响应于训练而更新第二子图中与节点相关联的权重时,基于每个共享权重对第一子图的重要程度的指示控制该共享权重的更新。
[0056] 可以顺序地训练多个不同的子图,基于对训练后的子图的分析,可以识别神经网络的优选模型。在一些示例中,控制器(例如,强化学习控制器)可以用于评估训练后的子图,并用于基于对训练后的子图的评估的结果推荐其他子图进行采样。可以重复此过程,直到识别出优选模型。优选模型可以是任意子图,例如,计算图的节点和边(以及相关联的权重)的任意组合。基于该优选模型,可以提供用于执行上述任务的神经网络。
[0057] 通过基于权重对较早训练的子图的重要程度的指示来控制对于至少一个较早训练的识别的子图重要的权重的更新,实施例可以对神经架构搜索提供较少的时间依赖性偏差。例如,与对较早训练的子图重要的节点和边相关联的权重可能在响应于不同子图的后续训练时对其关联权重的改变不大。使用这些节点和边的模型可能非常适于提供用于执行选定任务的神经网络。通过控制与指示为重要的这些节点和边相关联的权重的更新,尽管后续模型被训练(因此会改变较早训练的模型中的一些节点),较早训练的模型也可以不丧失较好地执行任务的能力。因此,对训练后的候选模型的后续分析可以不偏向于较迟训练的模型。相反,这可以使较早训练的模型仍被看好(如果有关),因此其(例如,这些模型使用的权重和与将作为最后一个模型的候选模型共享的权重)可以在神经网络的最后架构中起作用,而之前其可能由于改变了重要权重而被忽略。因此,神经架构搜索的结果可以提供改进的神经网络以执行选定任务。
[0058] 现参考附图描述本公开的实施例。
[0059] 图1示出了简单的前馈神经网络100的示意图。应当理解,本公开应用于所有形式的神经网络,图1的网络100仅用做示出本公开的教导的简单示例。
[0060] 图1的前馈神经网络100具有四层:第一层10、第二层20、第三层30、以及第四层40。第一层10包括一个节点11。第二层20包括两个节点21和22,第三层30也具有两个节点31和
32。第四层40具有单个节点41。连接不同节点的边在图1中以箭头示出。例如,可见,一条边将节点11连接至21,另一条边将节点11连接至节点22。网络100包括多个权重θi,j,其中,每个θi,j表示应用于从节点j的输出接收的对节点i的输入的缩放因子。在每个节点处,缩放因子应用于到达该节点的每条边。应当理解,权重可以应用于每条边或每个节点。在下文中,权重被称为与某个节点相关联,但这不应认为是限制。相反,权重与某个节点相关联意味着该节点将处理已根据该权重缩放的输入数据。
[0061] 第一层10中的节点11用于接收输入。该输入可以是待由神经网络100处理的某些形式的数据。处理该数据可以使神经网络100提供输出。该输出可以基于如神经网络100执行的对该数据的分析。该输出可以提供对输入数据的内容的指示。例如,输入数据可以包括照片,该输出可以提供对该照片中示出的内容的指示。
[0062] 第一层10中的节点11用于基于在该节点11处指定的特定功能处理接收的输入数据。第一层10中的节点11被布置为随后将该处理数据提供至第二层20中的两个节点21、22中的每个节点。第二层20中的两个节点21、22中的每个节点用于随后基于对该节点21、22指定的特定功能以及应用于从第一层10中的节点11输出的该处理数据的缩放因子处理从第一层10接收到的数据。
[0063] 第二层20中的每个节点21、22用于随后输出其处理数据并将该数据提供至第三层30中的每个节点31、32。同样,第三层30中的两个节点31、32中的每个节点用于随后基于对该节点指定的特定功能和应用于该处理数据的缩放因子处理从第二层20接收的该数据。从图1可以看出,第三层30中的每个节点31、32从两个前一节点21、22(第二层20中的节点)接收输入数据,而不是从一个节点接收输入数据。第三层30中的每个节点31、32用于处理其输入数据并将其处理后的输出数据提供至第四层40中的节点41。第四层40中的节点41用于随后基于处理从第三层30接收的数据提供输出值,对该数据的处理基于对该节点41指定的特定功能以及应用于该处理数据的缩放因子来进行。
[0064] 应当理解,技术人员将知道网络100中的每个节点提供的功能类型的示例。影响神经网络执行其选定任务的因素有很多。例如,网络的大小和/或深度(例如,节点的数量和/或节点的层的数量)会影响神经网络的性能。对于图1,应当理解,该网络100的性能将取决于应用于网络100中的每个节点的权重θi,j和功能以及其他因素。本公开的实施例可以实现对网络的节点的改进选择,并因此可以实现提供改进的神经网络以执行选定任务。
[0065] 当确定为网络100选择哪些节点时,可以构建计算图。计算图包括由多条边连接的多个节点。每个节点用于从经由边连接到该节点的前一节点接收至少一项输入数据。每个节点被布置为通过对输入数据施加权重和对该加权的输入数据执行操作处理该输入数据,以提供输出数据。不同的节点可以执行不同的操作,例如,其可以具有不同的功能。该图包括与每个节点相关联的用于缩放该节点的输入数据的权重。每个节点用于经由边将其输出数据提供给图中的后一节点。计算图可以认为是定义了多个候选模型,每个候选模型是该计算图中的子图。每个子图由从多个节点和多条边的计算图的选取的节点和边、以及与选取的节点相关联的权重组成。一些节点及其相关联的权重在两个不同的子图中共享。
[0066] 每个候选模型可以包括固定的、选定的节点布置。选定架构(例如,节点布置)可以因不同的候选模型而异。在每个节点处提供的功能可以因不同的候选模型而异。在这些节点中的每个节点处,可以提供对于该节点的功能的多个选择。可以认为每个节点的选择表示聚集在图中的选定位置处(例如,在选定节点将会位于最终神经网络的区域中)的一系列候选节点。计算图可以包括对于一个集群中的每个候选节点到下一集群中的每个候选节点之间的连接的权重。
[0067] 图2示出了表示计算图200的功能图示的示意图。图2的图200与图1示出的神经网络100对应,图200具有四层,第一层和第四层每层具有一个节点,第二层和第三层每层具有两个节点。
[0068] 在图2的图200中,提供了两个候选节点21a、21b作为第二层20的第一节点21的候选。同样地,提供了两个候选节点22a、22b作为第二层20的第二节点22的候选。第三层30也是如此。提供了两个候选节点31a、31b作为第三层30的第一节点31的候选,并提供了两个候选节点32a、32b作为第三层30的第二节点32的候选。候选节点示出为方形,与图1相对应的节点示出为带虚线的圆形。
[0069] 图2的虚线示出了信息可以沿其流经网络的可能路线,例如,这些虚线示出了所有可能的边。应当理解,这些虚线中的一些将存在于每个模型中,并且存在的那些边的选择将取决于在选择的模型中存在的候选节点。注意,在图2的示例中,第三层30中的每个候选节点具有来自第二层20的4个不同的输入源,第四层40中的节点41也是如此。一旦创建了包括候选模型(子图)的计算图200,就可以识别优选候选模型。该优选候选模型可以是特定的子图(例如,可能为网络中的每个节点选择了候选节点)。该特定子图可以是在候选模型之一中识别的组合,或者可以是候选节点的新组合。
[0070] 为了识别优选候选模型,对计算图中包括的子图的子集中的每一候选模型进行训练。该过程以迭代的方式进行。例如,可以训练第一候选模型,然后,一旦将第一候选模型训练到某一阈值水平,随后可以训练第二候选模型。重复此过程,直到训练了选定次数候选模型为止(例如,子集中的所有候选模型)。如以下更详细所讨论,一旦训练了候选模型,具有训练策略的控制器可以分析计算图和训练后的模型,以帮助识别为神经网络选择的候选模型。
[0071] 应当理解,此处的神经网络示意图仅用于说明。对于图2中示出的计算图200,训练然后测试所有可能的子图组合、然后选择表现最佳的模型作为神经网络所基于的模型在计算上是可行的。然而,神经网络可能远大于此。因此,分析对于网络中的每个节点具有多个不同选择的大型神经网络可能拥有几乎无限数量的可能结构。为了从这种数量的结构中识别优选网络,仅会使用结构总数的子集,否则计算要求将不切实际。
[0072] 图3a和3b示出了神经网络的候选模型的两个示意图。图3a示出了候选模型301,其中选择了节点21a、22b、31a、和32b。图3b示出了候选模型302,其中选择了21a、22a、31a、和32a。现参考图3a和图3b描述候选模型的训练。
[0073] 候选模型具有一组选择的候选节点以及一组选择的权重θi,j。权重θi,j向模型中的每个点到点连接施加缩放因子。可以通过训练模型来“学习”模型中每个权重的缩放因子。
[0074] 例如,可以通过使用基于梯度的学习来学习权重。这涉及定义成本函数并将其最小化。可以通过遵循成本函数的梯度以使其最小化来实现成本函数的最小化。随机梯度下降(stochastic gradient descent)可以用作优化程序。可以使用梯度下降优化算法,该算法使用反向传播。为简洁起见,将不对此进行详细讨论。
[0075] 每个权重θi,j可以根据下式训练:
[0076]
[0077] 其中,t表示时间,α表示学习速率,Jm(θi,j(t))为在大小为m的训练数据的子集上计算的成本函数。例如,应当理解,表示梯度函数,例如导数。该训练基于数据集其中,xi为第i个输入数据,yi为与输入数据xi相关联的正确输出。在每
个时间步长,随机梯度下降算法更新权重,直到转换为止。
[0078] 给定一族密度模型(pmodel;θ),可以使用最大似然(例如,最大似然函数)训练传统神经网络。例如,应当理解,这些密度模型表示对于给定特定一组权重的模型的概率密度函数。即,基于例如下式训练神经网络以识别所谓的网络的“最优权重”
[0079]
[0080] 通过假设 并通过贝叶斯定理(Bayes’theorem),可以得到:
[0081] Pmodel;θ(yi,xi)=n-1pmodel;θ(yi,xi)
[0082] 最大似然估计器可以通过最小化下式来识别“最优权重”:
[0083]
[0084] 本公开实施例对训练过程进行了进一步约束。可以定义在训练中使用的修改的损失函数。在训练每个模型时,基于最小化该修改的损失函数计算权值的更新。对于选定权重,该修改的损失函数包括考虑了该选定权重在任何先前训练的模型中的重要程度的分量。由于不同的子图可以包括相同的节点(以及与该节点相关联的权重),因此已经针对前一模型进行了训练的权重可以作为后一模型的一部分进行训练。这可以从图3a和图3b看出。这两个图示出了图2的计算图200的两个可能的子图(模型)301、302。可以看出,两个子图301、302都包括节点11、21a、31a以及41。因此,两个模型(子图301、302)共享权重θ21a,11、θ31a,21a、和θ41,31a。
[0085] 在更新候选模型中的权重时,修改的损失函数可以考虑该权重(及其相关联的节点)在较早训练的模型中的重要程度。例如,这可以基于对于该权重(以及节点)的费雪信息(Fisher information)的指示。费雪信息可以提供节点针对模型的操作所拥有的信息量的指示。对于选定的权重,费雪信息提供了对于该权重的对数似然的曲率的指示。可以计算费雪信息矩阵。
[0086] 例如,对于待训练的选定子图(模型),可以获得对于该子图mi的交叉熵(cross-entropy)损失函数 可以定义交叉熵损失函数,使得最小化交叉熵似然提供了对于分类问题的最大似然。可以基于该子图的交叉熵损失函数顺序更新每个权重的费雪信息。上述更新可以基于交叉熵损失函数的导数进行。例如,可以针对每个权重计算涉及该选定子图的交叉熵损失函数的平方梯度(例如,对于所有的 计算 )。该平方梯度随后可以用于更新每个权重的费雪信息。例如,对于所有的f∈{1,...,|θ|},可以按j∈{1,...,n}的顺序将每个权重的费雪信息 更新为:
[0087]
[0088] 在每次模型训练之后,可以使用验证批(validation batch)计算费雪矩阵的更新,例如,基于先前训练的候选模型确定上述更新。
[0089] 例如,可以针对每个架构(子图)定义损失函数 该损失函数在下文中被称为权重可塑性损失函数(weight plasticity loss function)。该损失函数可以包括指示费雪信息的项,例如,指示每个权重的费雪信息的项。例如,对于每个权重,损失函数可以包括基于以下二者的分量:(i)权重的值和该权重的最优值之间的差异,以及(ii)该权重的费雪信息的指示,例如:
[0090]
[0091] 因此,最小化该权重可塑性损失函数可以至少部分基于最小化该分量。在每次模型训练后,可以重写最优权重
[0092] 每个权重的权重可塑性损失函数还可以包括对于该子图的交叉熵损失函数的指示。因此,该权重可塑性损失函数可以包括两项:
[0093]
[0094] 这两项之一和/或二者可以通过例如相应的超参数(hyperparameter)进行缩放。可以学习这样的超参数。可以控制这样的超参数以提供该方程的选定学习速率。
[0095] 在训练每个候选模型时,可以最小化权重可塑性损失函数。这可以减小候选模型中对其他候选模型较重要的权重的更新幅度。权重可塑性损失函数对对重要权重变化的最小化和对每个模型执行所选任务时的性能最小化进行平衡,因此在不牺牲较早训练的模型中在相同任务上的性能的前提下仍可以获得每个模型对于该任务的高性能。
[0096] 权重可塑性损失函数可以包括指示每个权重的模的项。例如,这可以基于模平方的值,例如,权重可塑性损失函数可以包括以下项:
[0097]
[0098] 这可以强制在子图上施加较低的权重。已经证明这提供了对于提供用于执行选定任务的神经网络的改进的性能。每个子图mj的权重可塑性损失函数可以定义为:
[0099]
[0100] 每个子图的训练可以基于当更新该子图的权重时最小化该函数。这三个分量中的每个分量可以根据超参数调节,以控制其相对贡献。可以学习这些超参数的值。
[0101] 费雪信息矩阵的更新可以被削减,例如,可以基于更新的选定阈值对其进行缩减。这有助于阻止与损失函数相关联的梯度爆炸。例如,可以基于相应权重的值缩放每个更新。
可以基于每个权重矩阵的范数缩放费雪信息矩阵的更新。例如,可以根据下式通过每个权重矩阵的范数削减费雪信息矩阵的更新:
[0102]
[0103] 可以调整参数α和β,例如,可以学习α和β。这些参数可以提供对控制模型的学习的约束程度。
[0104] 一旦基于训练更新了每个候选模型的权重,则可以执行对候选模型的分析。该分析可以包括使用验证集顺序评估不同候选模型的性能,例如,上述验证集是与训练数据集不同的数据集,从中可以确定该模型(在不可见数据上)执行选定任务的性能。可以选择性能最佳的模型。在一些示例中,性能最佳的模型可以看作是优选模型,可以提供基于该优选模型的神经网络。提供神经网络可以包括使用上述优选模型以及随机权重集合创建神经网络,然后训练该网络。
[0105] 图4示出了使用迭代方法的另一示例,该迭代方法使得控制器评估表现良好的训练后的候选模型,并学习这些候选模型,以及基于此推荐候选模型进行训练和评估。
[0106] 图4示出了提供用于执行选定任务的神经网络的方法400。在步骤410,获得计算图。这可以与上述相同。
[0107] 在步骤420,获得一组推荐的子图。最初,可以随机选择该组子图。然而随着循环迭代,将由控制器选择该组子图。还可以在最初由控制器选择该组子图。
[0108] 在步骤430,如上所述,以迭代方式训练这些子图中的每个子图。即,该训练使用训练数据并最小化权重可塑性损失函数,以使每个候选模型的权重基于这些权重对其他先前训练的候选模型的重要程度进行更新。
[0109] 在步骤440,每个候选模型完成训练。这些候选模型可能给予了有限的训练时间,例如,只是少量批。因此,每个候选可能比其过去更好,但并没有被完全训练。可以使用时间阈值或批阈值来控制每个模型接受训练的量。然后,这些模型在验证数据集上进行测试,以便识别出最优候选模型。该最优候选模型随后由控制器进行评估。该控制器可以使用强化学习算法或进化学习算法以基于最优候选模型的验证数据的结果更新其策略的参数。例如,控制器可以使用强化学习算法。
[0110] 强化学习算法使用由智能体(agent)指导的试错过程(trial  and errorprocess)。智能体可以在离散或连续时间内与其环境交互。在每个时间,从环境接收状态St=s,根据该状态,智能体产生动作At=a。该动作的选择通过控制器的策略完成,这是动作状态的概率分布。然后,智能体接收新的状态St+1和奖励Rt+1。目标最大化了某些形式的未来奖励。强化学习包括响应于接收到的奖励改变策略以及力求最大化未来奖励。为此,强化学习算法可以解决探索-利用(exploration-exploitation)权衡。例如,可以使用bandit算法。在神经架构搜索的背景下,这可以包括识别具有未知性能的节点的新的、未测试的组合/选择,以及坚持节点的已知组合/选择同时对该组合/选择进行小的改变。可以使用策略梯度方法(例如,基于损失函数的梯度的方法)学习控制器的策略的参数。
[0111] 策略梯度方法可以与适用于神经架构搜索的循环策略一起使用。可以通过T个动作a1,...,aT的序列定义架构(例如,子图)。每个动作可以定义诸如ReLU或softmax函数的一次运算(例如,节点的运算)。每个动作可以定义如何组成运算的指示(例如,定义运算的输入)。策略(例如,循环神经网络策略)可以用于顺序产生动作ai,直到达到表示架构完成的动作aT。状态ST可以被认为是神经网络的隐藏状态。策略可以定义为:
[0112]
[0113] 这是一种随机策略,其中,可以根据在所有可能动作的空间上的概率分布对动作进行采样。目标是最大化策略的期望奖励,其中:
[0114]
[0115] 其中,D定义了所有可能架构(子图)的集合, 是对架构a1,...,T进行采样的概率,R(a1,...,T)是采样的架构a1,...,T的验证困惑度(perplexity)的逆。使用该策略的参数θp可区分的假设,目的是找到策略的参数使得通过遵循以下梯度最大化L(θp):
[0116]
[0117] 实际上,这可以包括计算 为:
[0118]
[0119] 可以使用例如无偏差的蒙特卡洛估计(Monte Carlo estimate)计算该梯度。随机梯度下降可以用于例如按下式更新参数θp:
[0120]
[0121] 例如,可以使用算法REINFORCE。可以使用Boltzmann softmax方程,该方程将原始softmax中的指数除以随时间衰减的温度T。该温度(及其衰减)可用于最初有利于探索(例如,与利用相反)。
[0122] 当计算策略的奖励时,可以使用验证集(与用于更新权重的训练数据集不同)。这可以使策略能够选择普遍适用的模型(而不是那些对于训练数据集过于专业/过拟合的模型)。例如,可以在验证数据集(或其小批次(minibatch))上计算困惑度。
[0123] 在步骤450,可以更新控制器的策略。这可以基于上述方法。然后,更新后的策略可以选择/识别其认为更好的不同的子图。控制器可以用于推荐其他子图,该子图可以是控制器基于其更新的策略确定的、认为适于执行选定任务的子图。
[0124] 在步骤460,控制器可操作用于使用更新的策略为选定任务推荐子图。例如,控制器可以选择与该子图的一系列操作相对应的一组动作。控制器可以选择多个这样的子图。这些子图随后组成下一轮测试子图的候选模型。
[0125] 在一些示例中,控制器可以不推荐子图。步骤420到470可以在不推荐新子图的情况下循环,使得在步骤420获得的候选模型被训练若干次迭代。在训练这些候选模型的每次迭代期间,仍然可以基于训练模型的评估更新策略。在一些示例中,控制器可以不推荐子图,但可以仍然提供哪一训练子图的选择是优选子图的指示。例如,可以跳过步骤460。
[0126] 在步骤470,可以确定是否进行迭代(例如,重复步骤420到460)。例如,可以检查控制器推荐的子图以确定是否要进行迭代。在这个步骤中可以使用不同的标准确定是否保持迭代。推荐的子图可以在步骤420中用作获得的子图集合,并且可以使用这些新推荐的候选子图重复步骤420至460。通过对这一过程进行迭代,该方法可以更接近于获得用于执行选定任务的优选模型。
[0127] 可以应用标准以确定推荐的子图或来自先前候选模型集合的最优子图应该用作神经网络将用以执行选定任务的优选模型。例如,可以将推荐的候选模型和先前的最优候选模型进行比较。如果二者功能上非常相似,例如,具有高于某个阈值水平的架构相似度/包含阈值数量的相同神经元(例如,在网络中的相同位置中),则可以确定推荐的模型/先前的最优模型应当作为优选模型。如果控制器推荐了多个子图,则可以执行比较以查看这些子图中的任意子图是否在之前曾被控制器推荐。如果阈值数量的建议子图与先前的候选模型相同,则可以确定未发生有意义的变化,并且可以确定已达到阈值。另外和/或替代地,可以应用阈值时间限制或阈值次数的迭代,一旦达到该阈值,该方法就停止迭代。
[0128] 在步骤470,确定应停止迭代,该方法进行到步骤480。在步骤480,基于优选模型中的子图创建神经网络。
[0129] 在步骤490,训练该神经网络使得权重被更新至收敛,例如,从随机初始化开始。然后,提供该网络作为选定神经网络以执行选定任务。
[0130] 现参考图5和图6,其示出了使用本文所述方法获得的结果。附录I提供了使用本文所述的权重可塑性损失函数的统计证明。
[0131] 图5a和图5b示出了当顺序训练两个模型时的测试准确度的结果。这两个模型在手写数字识别数据集(MNIST)上测试。这两个模型为简单的前馈网络,模型1具有4层,模型2具有6层。在这两种情况下,训练第一模型直到收敛,从而获得对于模型1的最优权重模型1的最优权重包括与模型2共享的一些权重。然后在与模型1相同的数据集上对模型2进行训练。训练模型2包括更新共享的权重。图5a和图5b示出了这两个模型的测试准确度如何根据训练模型时使用的损失函数而变化。
[0132] 图5a示出了当使用交叉熵函数顺序训练两个模型时的结果,例如,通过获得最优权重的最大似然进行训练。从左上至右上的线条示出模型1在训练后的性能。这是一条平线,表明模型1所达到的性能保持在大约92%的测试准确度。该线示出模型1的性能作为基线。从左下至右上的线条示出当模型2被训练时的该模型的测试准确度。正如预期一样,模型2的测试准确度随着训练的增加而增加。可以看出,模型2在所示出的迭代次数上并没有达到收敛,但可以观察到模型2执行任务的能力大幅增长。
[0133] 图5a中的左上至右中的线条示出了模型2的训练(以及因此两个模型之间的共享权重的更新)如何影响模型1的测试准确度。可见,随着模型2的训练(以及共享权重的改变),模型1的性能下降。从图5a可以明显看出,模型1的性能大幅下降,因此对模型1的任何后续分析将表明模型1的表现不如其所能表现的好。由此可见,在500多次的训练中,模型1的测试准确度下降了近30%。
[0134] 图5b示出了当使用以下权重可塑性损失函数顺序训练两个模型时的结果:
[0135]
[0136] 其中,θs是在模型1和模型2间共享的权重, 是从第一子图(模型1)的第一次拟合得到的费雪近似共享的相应权重的对角元素。附录I提供了该形式的权重可塑性损失函数的统计证明。
[0137] 这些线使用与图5a中相同的标记。可见,训练后的模型1的性能以及训练中的模型2的性能与图5a中的大致相同。主要的差异在于训练模型2的同时的模型1的测试准确度。可见,顺序训练模型2仅造成模型1的测试准确度的非常微小的变化。第二优化(例如,模型2的训练)主要修改了具有低费雪信息的权重。这些权重被认为对于第一模型不太重要(例如,因为费雪信息指示对于每个特定权重的对数似然的曲率)。
[0138] 基于与权重相关联的节点和/或边对模型1的重要程度使用损失函数训练模型2,能够在训练后一模型的期间保持模型1的性能。通过对比图5a和图5b,可以看出在训练模型2的迭代500处的对模型1和模型2的分析将提供关于哪个模型具有更高测试准确度的指示。
通过使用权重可塑性损失函数进行训练,在训练模型2的同时保持了模型1的测试精确度。
[0139] 图6a至图6f示出了权重可塑性损失函数和交叉熵损失函数的使用之间的其他比较数据。使用的权重可塑性损失函数为:
[0140]
[0141] 每个权重的费雪信息按照下式进行更新:
[0142]
[0143] 费雪信息的更新被削减为:
[0144]
[0145] 对于图6a和图6b,α和β的值分别设置为1和100,每代(epoch)采样50个模型,每代10个批次(batch)。对于权重可塑性损失函数的使用,在第三代引入权重可塑性损失函数,并且在每代将费雪信息设为0。对于交叉熵损失函数的使用,在整个过程使用交叉熵损失函数。β值的增加对先前学习的权重施加更大的约束(例如,惩罚)。
[0146] 图6a示出了对于每个训练模型在以下性能之间的困惑度平均差:(i)在顺序训练所有50个模型后的模型的性能,以及(ii)当独立训练时的模型的性能。示出了在50代的平均差。困惑度提供了模型预测采样的良好程度的指示——低困惑度表示该模型进行了良好的预测。图6a还示出了±2标准差的误差条。从图6a可见,权重可塑性损失函数的使用(如在右边的两条线中较低的线以及两个误差条中较窄的误差条所示)减小了在已被顺序训练的模型和已被独立训练的模型之间的困惑度平均差。这显然是有益的。这意味着用于更新控制器的策略的模型是更可信的正确选择(例如,最优候选模型的选择不太可能因训练模型的顺序中的位置而有偏差)。
[0147] 图6b示出了在以下性能之间的困惑度最大差值:(i)在顺序训练所有50个模型后的模型的性能,以及(ii)当独立训练时的模型的性能。同样地,权重可塑性损失函数大幅减小了困惑度最大差值。另外,对于权重可塑性损失函数,该值的波动较小。这显示了使用权重可塑性损失函数的另一个明显的好处。
[0148] 图6c至图6f示出了分别设为70和10的α和β的值,每代70个模型,每模型训练15个批次。对于权重可塑性模型,权重的更新基于在第八代的权重可塑性损失函数,费雪信息矩阵在每三个代设为0。对于每个损失函数,使用每代2000步训练该策略,并且该策略不保持固定。使用强化学习算法REINFORCE作为具有待确定策略的控制器的一部分。
[0149] 图6c示出了针对所采取的策略步骤的数量绘制的模型的平均奖励。该策略旨在基于候选模型最大化奖励,因此更高的奖励值是有益的。从图6c中可以看出,使用权重可塑性损失函数时的平均奖励比使用交叉熵函数时的高得多。所示误差条表示0.5标准差。可见,权值塑性损失函数的平均奖励较高,并且该奖励的标准差较低。
[0150] 图6d示出了该策略的熵。策略的熵提供了对于该策略作出的预测的概率分布的不确定性的度量——熵越高,不确定性越高。从图6d可见,使用权重可塑性损失函数获得的该策略的熵远小于使用交叉熵损失函数获得的策略的熵。因此,使用权重可塑性损失函数可以提供更可靠的神经网络以执行选定任务。
[0151] 图6e和图6f示出了与图6a和6b相似的趋势,当将作为顺序的一部分训练的模型与独立训练的相应模型进行对比时,该差异在多个候选模型上的均值和标准差比使用交叉熵损失模型时的低得多。另外,从6e和6f明显可以看出,权重可塑性损失函数的使用是这种性能提高的原因。如上所述,仅到第八代才引入权重可塑性损失函数。在这一点之前,两个损失函数是相等的。从图6e和6f可见,权重可塑性损失函数性能的改善发生在第八时期之后。在这之前,两个损失函数表现相同。
[0152] 除了该经验数据表明由于使用了权重可塑性损失函数而改善了性能外,附录I还提供了选择权重可塑性损失函数的统计证明。
[0153] 本文的公开参考了神经网络的节点,神经网络中使用的功能(例如,激活函数)是众所周知的。这样的函数可以包括:ReLU、Tanh、Sigmoid、Softmax等。特别地,常用非线性函数。这些函数可以用于网络中的个体神经元。本公开的实施例涵盖作为个体神经元或神经元块的每个个体节点(如本文所述)。计算图可包括两者的组合。
[0154] 本公开实施例可以在节点处使用神经元块。每个神经元的块可以具有其自己的拓扑和内容。例如,一个块可以包括由选定的一组边连接的选定神经元的序列,具有与其相关联的固定权重。因为可以基于块在相似任务上的表现的先前知识选择这些块,所以使用神经元块可以改进神经架构搜索。这还可以降低需要作为方法的一部分训练的权重的数量,因为块内的权重可以保持固定。然后,神经架构搜索方法可以仅需要识别不同的块之间的边和权重,例如,与块被展开并且每个神经元需要边/权重时相比,更少的特征之间的边和权重。
[0155] 这样的示例可以称为具有块的神经架构搜索。可以使用控制器(例如与LTSM策略一起使用),该控制器对节点上的块进行采样并确定连接这些块的边。在一些示例中,块内部的权重可能不固定,例如,只选择分量神经元,但这些神经元之间的权重在训练期间可以被编辑。在这些示例中,应当理解,如果两个候选模型共享同一块,这两个候选模型将共享大量的权重(例如,这两个候选模型共享的块中的所有权重)。因此,使用权重可塑性损失函数可能会有在这种情况下的特定应用。
[0156] 可以将待由控制器最大化的奖励修改为包括考虑了候选模型复杂度的分量。例如,该奖励可以基于候选模型内的分量的数量。这可以是对基于候选模型的拟合度的奖励的补充,例如,模型的验证困惑度。应当理解,将基于候选模型的复杂性的分量引入奖励函数可以适用于本文描述的所有方法。
[0157] 例如,可以引入基于密度的奖励。该奖励可以用于支持具有较少权重的模型。模型的密度可以定义为:
[0158]
[0159] 其中,θmaximum是模型中可能包括的最大权重数。奖励可以基于该密度,例如,按照:
[0160]
[0161] 其中,a和b是待学习的超参数,validppl是验证困惑度,例如,模型在验证数据集上的表现的良好程度。奖励的两个分量可以是分开的(如上式所示),以防止奖励变为负。从而,使用该奖励可以识别表现良好并具有较少权重的模型。
[0162] 本文所述实施例包括迭代过程的使用,其中,在选出优选模型之前对候选模型进行多次训练。在一些示例中,可以对同一组候选模型进行多次训练,例如,该组候选模型可以在多个不同的批次训练。在控制器用于评估候选模型并更新其用于识别优选候选模型的策略的情况下,在重新训练一组模型然后用控制器重新评估该组模型之前,迭代过程可以包括对训练该组候选模型然后使用控制器评估该组模型以更新策略的多次重复。在一些示例中,响应于基于一组训练后的候选模型更新策略,控制器可以推荐新的候选模型用于测试。然而,应当理解,在一些示例中,可以不需要上述迭代过程。例如,对候选模型的顺序训练的单个操作可能足以识别优选模型。由于本文所描述的实施例使得顺序训练的模型能够被训练以使得任何更新的权重减少对先前训练的模型的损害,因此,对这些模型的一次顺序训练仍足以识别优选模型。
[0163] 应当理解,术语“子图”和“模型”可以互换使用。获得计算图可以认为是获得指示计算图的数据,例如矩阵的数组以及控制和缩放不同功能之间的信息流的操作。一个特定的子图(例如,节点的集合,通过包含权重的边连接)可以认为是候选模型。如果该候选模型被确定为优选候选模型,则该子图的特定架构可以用作神经网络的架构(例如,没有计算图中的其他节点和边)。
[0164] 应当理解,选定任务可以是多种选定任务中的任一任务。神经网络可以应用于许多技术问题。例如,选定任务包括:(i)自然语言处理、(ii)图像识别、(iii)物理系统的分类和/或建模、(iv)数据处理、以及(v)搜索结果生成。该列表不应被视为是限制性的,因为其中可以对输入数据进行处理以提供输出数据、基于其可以执行技术操作的任何实例可以受益于使用改进神经网络以处理上述数据。应当理解,本公开不局限于提供的任何类型的神经网络无关。本公开应用于其中使用权重作为该类型网络的神经架构搜索的一部分的任何网络,其中,权重可以在计算图中的不同节点之间共享。例如,合适的神经网络可以包括卷积神经网络、深度残差网络、胶囊网络、循环神经网络、多层感知机等。
[0165] 本文所述的神经网络(例如,用于执行选定任务的神经网络)可以包括循环神经网络,循环神经网络用于重要的序列到序列模型中的编码器。这些网络可以应用于翻译、客户流失检测、和电子邮件分类等领域。例如,改进的翻译神经网络可以识别句子中要翻译的关键短语。这可以使能够接收以第一语言或编码的文本字符串形式的输入数据的神经网络处理该输入数据,以提供以不同语言或编码的文本字符串形式的输出数据。在其他示例中,神经网络可以应用于图像识别系统。例如,在诸如机场的安检点,相机可以捕获个人的图像,神经网络可以被布置为分类/识别该个人。改进的神经网络架构可以提高这些神经网络识别照片中的个人的能力。
[0166] 应当理解,在分析训练的候选模型时可以使用任何合适类型的控制器/策略。虽然已经描述了强化学习法的使用,但是可以使用其他示例。例如,可以使用进化网络(以及相关联的神经进化方法)。在这样的示例中,在训练期间可以更新网络的拓扑及其权重(例如,网络架构可以进化)。权重也可以由子节点以受控方式继承,以便在适当的情况下将父权重应用于子节点。
[0167] 根据以上讨论应当理解,附图所示实施例仅是示意性的,并且包括可以如本文所述以及如权利要求所述生成、移除、或替换的特征。参考附图,将理解示意功能块图用于指示本文描述的系统和设备的功能。另外,处理功能还可以由电子装置支持的装置提供。然而,将认识到,功能不必以这种方式划分,并且不应被理解为暗示除以下描述和要求保护的硬件之外的任何特定硬件结构。附图中所示的一个或多个元件的功能可以进一步细分和/或分布在本公开的整个装置中。在一些实施例中,附图中示出的一个或多个元件的功能可以被集成到单个功能单元中。例如,权重已示出为应用于节点或边。这两个示例都不应被认为是限制性的,并且在每个图中,可以在任一位置处应用权重。
[0168] 如本领域技术人员将理解的,在本公开的上下文中,本文描述的每个示例可以以各种不同的方式来实现。本公开的任何方面的任何特征可以与本公开的任何其他方面组合。例如,方法方面可以与设备方面组合,并且可以在不使用特定类型的设备的方法中提供参考这些设备的特定元件的操作所描述的特征。另外,除非明确指出某些其他特征对其操作必不可少,否则每个实施例的每个特征都意在与结合其描述的特征分开。这些可分离的特征中的每一个可以与描述该特征的实施例的任何其他特征结合,或者与本文所述的任何其他实施例的任何其他特征或特征组合结合。此外,在不脱离本发明的情况下,也可以采用上面未描述的等同和修改。
[0169] 本文描述的方法的某些特征可以以硬件来实现,并且设备的一个或多个功能可以以方法步骤来实现。在本公开的上下文中还应理解,本文描述的方法不必以描述它们的顺序执行,也不必以在附图中描绘它们的顺序执行。因此,参考产品或设备描述的本公开的各方面也旨在被实现为方法,反之亦然。本文描述的方法可以以计算机程序、或以硬件、或其任何组合来实现。
[0170] 例如,每个节点可以包括用于接收输入信号、处理输入信号、以及提供输出信号信号处理单元。节点可以包括用于以下的电路:从经由边连接至节点的前一节点接收指示一项输入数据的至少一个输入信号,对上述输入数据执行操作以提供输出数据,可选地,根据与该节点相关联的权重对上述输入数据进行缩放;以及经由边向图中的后一节点提供指示输出数据的输出信号。边可以包括用于在节点之间传输信号的通信路径。例如,上述通信路径可以用于从前一节点接收输出信号,可选地,根据权重对该输出信号进行缩放,以及将该输出信号发送至后一节点。本地数据存储可以用于确定输出信号经由通信路径所发往的最终目的地。
[0171] 计算机程序包括软件中间件固件、及其任何组合。这样的程序可以被提供为信号或网络消息,并且可以被记录在计算机可读介质上,诸如可以以非暂时形式存储计算机程序的有形计算机可读介质。本文描述的方法和/或诸如节点和边的组件的功能可以在硬件中提供,上述硬件可以包括计算机、手持式设备、可编程处理器、通用处理器、专用集成电路(ASIC)、现场可编程阵列(FPGA)、和逻辑门阵列。
[0172] 在一些示例中,一个或多个存储元件可以存储用于实现本文描述的操作的数据和/或程序指令。本公开的实施例提供了包括程序指令的有形的、非暂时性的存储介质,该程序指令可用于对处理器进行编程以执行本文描述和/或要求保护的方法中的任何一个或多个方法和/或提供本文描述和/或要求保护的数据处理设备。
[0173] 在本公开的上下文中,本公开的其他示例和变形形式对于本领域技术人员将是显而易见的。
[0174] 附录I
[0175] 在此提供以上使用的权重可塑性损失函数的统计证明。
[0176] 考虑以下问题:(θ1,θ2,θs)为参数θ的不相交分区。 和 两个架构,其中D为数据集。假设参数θs由两个\模型共享。希望找到为 和
独立工作的参数(θ1,θ2,θs)。假设 和
θ2对于给定θs和数据集D条件独立。在这种假设下,寻求最大化给定参数集时的参数θ的后验概率
[0177] 引理1、给定前面描述的设置,
[0178]
[0179] 证明:使用贝叶斯定理,有
[0180]
[0181] 其中,在第三等式中使用条件独立性假设:
[0182] 现在导出等式(4.2)的分母
[0183] 引理2、假设:
[0184] ·先验分布服从正态分布
[0185] ·Card(θ1)+Card(θs)=p1+ps=p,
[0186] ·在最大似然估计 下评估的对数后验概率分布 (即,)的负Hessian被分为符合(θ1,θs)的4块:
[0187]
[0188] 有
[0189]
[0190] 其中
[0191] 证明:有
[0192]
[0193] 其中 使Hp(θ1,θs)=H(θ1,θs)+σ-2lp(θ1,θs)的负Hessian。使用lp(θ1,θs)在其最大似然估计 周围的泰勒扩展,有
[0194]
[0195] 因为它是根据最大似然估计进行评估的,故一阶导数为零。现将负Hessian分区为:
[0196]
[0197] 可得
[0198]
[0199] 定义 然后得到
[0200]
[0201] 其中,
[0202] 因此,
[0203]
[0204] 给定方程(4.4),可以证明引理2,因为
[0205]
[0206] 其中,安排了缩放比例,以便在均值z和协方差矩阵 的正态分布上进行积分,[0207] 遵循引理1和引理2,得到
[0208]
[0209] 其中,
[0210] 方程(4.5)仅依赖于第二模型 的对数似然。因此,从第一模型中学习的信息包含在条件后验概率 方程(4.5)右侧的最后
一项 必需保持模型 和 之间的相互作用。
[0211] 后验概率 是难解的。我们将其近似为以最大似然估计 为中心、以观测到的费雪信息的对角线为方差的高斯分布。后验分布的高斯近似来自于方程(4.3)中的二阶泰勒展开以及
[0212]
[0213] 其中, 为对数似然的负Hessian。因此,通过定义观测到的费雪信息I,
[0214] 我们假设先验分布的正态性。方程(4.5)的右侧中的第三项,即,logp(θ2,θs)代表l2正则化。
[0215] 使用费雪信息的对角近似,通过 直接得到H1s为零矩阵,使得Ω=Iss+σ-2Ip
[0216] 给定以上讨论,定义(力求最小化的)权重可塑性损失为
[0217]
[0218] 其中, 为从费雪近似共享的相应参数的对角元素,费雪近似从 的第一拟合获得,而 为交叉熵损失函数。(4.6)背后的直觉是,因为费雪信息表示相对于特定参数的对数似然的曲率,我们允许第二优化修改具有低费雪信息、因此对第一个模型不太重要的参数。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈