当前位置: 首页 > 专利查询>谷歌公司专利>正文

使卷积神经网络的训练并行化制造技术

技术编号:14753041 阅读:189 留言:0更新日期:2017-03-02 10:08
用于训练卷积神经网络(CNN)的方法、系统和设备,包括在计算机存储介质上编码的计算机程序。所述系统包括多个工作器,其中,每个工作器被配置成维护所述CNN的卷积层中的每个卷积层的相应的副本以及所述CNN的全连接层中的每个全连接层的相应的不相交分区,其中,卷积层的每个副本包括所述卷积层中的节点中的全部,并且其中,全连接层的每个不相交分区包括所述全连接层的节点的一部分。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
本说明书涉及使卷积神经网络的训练并行化。卷积神经网络通常包括两种类型的神经网络层:卷积神经网络层和全连接神经网络层。卷积神经网络层具有稀疏连接性,其中卷积层中的每个节点从仅次最低神经网络层中的节点的子集接收输入。一些卷积神经网络层具有与该层中的其它节点共享权重的节点。然而,全连接层中的节点从次最低神经网络层中的每个节点接收输入。
技术实现思路
一般而言,本说明书描述用于在多个批量的训练样例上训练卷积神经网络(CNN)的技术。CNN由多个工作器(worker)训练。每个工作器被配置成维护CNN的卷积层中的每个卷积层的相应的副本以及CNN的全连接层中的每个全连接层的相应的不相交分区。卷积层的每个副本包括卷积层中的节点中的全部,并且全连接层的每个不相交分区包括全连接层的节点的一部分。每个工作器在指派给该工作器的批量的训练样例上训练由该工作器维护的卷积层副本,同时在多个批量的训练样例中的全部训练样例上训练由该工作器维护的全连接层分区。能够实现本说明书中所描述的主题的特定实施例以便实现以下优点中的一个或多个。通过在卷积神经网络的训练期间与全连接层不同地使卷积层并行化,能够通过利用两种类型的层的不同结构来高效地且迅速地训练网络。附加地,通过使中间通信与训练交叠,例如,通过与工作器处理其它训练样例的数据并行地从一个工作器向另一工作器发送激活数据、与工作器处理其它训练样例的数据并行地从一个工作器向另一工作器发送梯度数据或两者,能够减少训练时间并且能够减轻由于数据在训练卷积神经网络的工作器之间的传输而导致的训练延迟。在下面在附图和描述中阐述本说明书的主题的一个或多个实施例的细节。主题的其它特征、方面和优点从本描述、附图和权利要求书中将变得显而易见。附图说明图1是用于训练卷积神经网络(CNN)的示例系统的框图。图2是用于训练CNN的示例过程的流程图。图3是用于通过由工作器维护的全连接层分区来处理激活数据的示例过程的流程图。图4是用于通过由工作器维护的全连接层分区来反向传播梯度的示例过程的流程图。图5是用于在工作器之间传送激活数据和梯度数据的示例过程的流程图。图6是用于在工作器之间传送激活数据和梯度数据的另一示例过程的流程图。图7是用于在工作器之间传送激活数据和梯度数据的另一示例过程的流程图。各个附图中的相同的附图标记和名称指示相同的元件。具体实施方式图1是用于训练卷积神经网络(CNN)的示例系统150的框图。CNN包括神经网络层的序列,其中CNN的输入由序列中的最低层接收并且通过序列中的所有层来处理以从输入生成输出。例如,输入可以是图像并且输出可以是一组类别中的每个类别的分数的集合。针对给定类别而生成的分数表示所输入的图像包含属于该类别的对象的图像的可能性。CNN中的每个神经网络层包括节点集合。每个节点即从直接在序列中的神经网络层下面的层中的一个或多个节点接收输入,或者,如果所述层是序列中的最低层,则接收CNN的输入中的全部或一部分,并且从输入产生激活。由给定神经网络层中的节点所生成的激活然后作为输入被提供给序列中的次最高层中的节点,或者,如果所述层是序列中的最高层,则被视为CNN的输出。特别地,神经网络层的序列包括卷积神经网络层集合,卷积神经网络层集合后面有全连接神经网络层集合。通常,全连接层中的每个节点从序列中的次最低层中的每个节点接收输入并且依照针对该节点的权重集合从所接收到的输入产生激活。由给定全连接层中的每个节点所生成的激活被作为输入提供给序列中的次最高全连接层中的每个节点,或者,如果全连接层是序列中的最高层,则被视为CNN的输出。与全连接层不同,卷积层通常是稀疏连接的神经网络层。也就是说,卷积层中的每个节点从前面神经网络层中的节点的一部分(即,少于全部)接收输入,或者,如果卷积层是序列中的最低层,则接收CNN的输入的一部分,并且从输入产生激活。通常,卷积层具有通过依照针对每个节点的权重集合使接收到的输入卷积来产生激活。在一些情况下,卷积层中的节点可以被配置成共享权重。也就是说,所述层中的节点的一部分可能受约束以总是具有与所述层中的其它节点相同的权重值。一些CNN使其它类型的层散布在这些层的序列中。例如,其它层可以包括池化层,即,包括从序列中的次最低层中的节点的一部分接收输入并且通过池化所接收到的输入(例如,通过计算所接收到的输入的最大值或均值)来产生激活的节点。作为另一示例,其它层可以包括定标层,即,从序列中的次最低层接收输入并且对每个接收到的输入中的每个元素应用标量函数的层。因为这些其它层不具有在CNN的训练期间被修改的权重,所以它们在序列中的存在或不存在不影响在下面所描述的CNN训练技术。因此,为了描述的清楚起见在下面所描述的CNN将被描述为不包括这些其它类型的层。然而,本领域的普通技术人员将认识到其它类型的层可以被包括在CNN中,而不影响训练过程。系统150包括多个工作器,即工作器1100a、工作器2100b以及工作器3100c。每个工作器100a-100c可以是例如计算机、具有多个核心的计算机内的核心,或计算机内能够执行用于训练CNN的分区或副本的计算的其它硬件或软件。工作器100a-100c中的每个被配置成维护CNN的每个卷积层的相应的副本。在图1的示例中,每个工作器维护四个卷积层106a-106c、108a-108c、110a-110c以及112a-112c的副本。每个卷积层的每个副本是卷积层的单独实例,即,每个副本包括卷积层的节点中的全部。工作器100a-100c中的每个还被配置成维护CNN的全连接层中的每个的相应的分区。在图1的示例中,每个工作器维护CNN的第一全连接层的相应的分区114a-114c以及CNN的第二全连接层的相应的分区116a-116c。全连接层的每个分区包括该全连接层的节点的不相交分区。因此,共同地由工作器100a-100c维护的给定全连接层的分区组成该全连接层的单个实例,即,虽然每个分区包括给定层的节点的仅一部分,但是分区共同地包括该层的节点中的全部。工作器100a-100c在从训练数据102中选择的训练样例上训练CNN。例如,训练样例可以是已被分类为包括来自特定类别的对象的图像的图像。训练数据102包括多个批量的训练样例104a-104c,其中每个批量包括预定数目的训练样例。为了使用训练样例来训练CNN,每个工作器100a-100c被指派不同批量的训练样例并且执行神经网络训练技术以在训练数据上训练CNN。例如,训练技术可以是使用随机梯度下降(SGD)来使CNN的目标函数最小化或最大化的训练技术。在下面参考图3更详细地描述在具有多个工作器的系统中在一批训练数据上训练CNN。一旦每个工作器已对该工作器的指派批量执行了训练技术,每个工作器就能够被指派新批量的训练样例并且能够执行训练技术的附加迭代以在新批量上训练CNN,例如,以继续试图使目标函数最小化或最大化。图2是用于训练CNN的示例过程200的流程图。过程200能够由作为用于训练CNN的技术的一部分适当地编程的多个工作器的每个工作器(例如,图1的工作器100a-100c中的每个工作器)来执行。如上所述,每个工作器被配置成维护CNN的卷积层中的每个卷积层的相应的副本以及CNN的全连接层中的每个全连接层的相应的分本文档来自技高网...
使卷积神经网络的训练并行化

【技术保护点】
一种用于在多个批量的训练样例上训练卷积神经网络的系统,所述卷积神经网络具有多个层,所述多个层被布置成从最低到最高的序列,所述序列包括一个或多个卷积层,所述一个或多个卷积层后面跟随有一个或多个全连接层,每个卷积层和每个全连接层包括相应的多个节点,所述系统包括:多个工作器,其中,每个工作器被配置成维护每个所述卷积层的相应副本以及每个所述全连接层的相应的不相交分区,其中,卷积层的每个副本包括所述卷积层中的全部节点,其中,全连接层的每个不相交分区包括所述全连接层的一部分所述节点,并且其中,每个工作器被配置成执行操作,所述操作包括:接收指派给所述工作器的批量的训练样例,其中,所述批量的训练样例被指派为使得每个工作器接收所述多个批量中的相应批量;在指派给所述工作器的所述批量的训练样例上,训练由所述工作器维护的所述卷积层副本;以及在所述多个批量的训练样例的每个上,训练由所述工作器维护的所述全连接层分区。

【技术特征摘要】
【国外来华专利技术】2014.04.11 US 61/978,7341.一种用于在多个批量的训练样例上训练卷积神经网络的系统,所述卷积神经网络具有多个层,所述多个层被布置成从最低到最高的序列,所述序列包括一个或多个卷积层,所述一个或多个卷积层后面跟随有一个或多个全连接层,每个卷积层和每个全连接层包括相应的多个节点,所述系统包括:多个工作器,其中,每个工作器被配置成维护每个所述卷积层的相应副本以及每个所述全连接层的相应的不相交分区,其中,卷积层的每个副本包括所述卷积层中的全部节点,其中,全连接层的每个不相交分区包括所述全连接层的一部分所述节点,并且其中,每个工作器被配置成执行操作,所述操作包括:接收指派给所述工作器的批量的训练样例,其中,所述批量的训练样例被指派为使得每个工作器接收所述多个批量中的相应批量;在指派给所述工作器的所述批量的训练样例上,训练由所述工作器维护的所述卷积层副本;以及在所述多个批量的训练样例的每个上,训练由所述工作器维护的所述全连接层分区。2.根据权利要求1所述的系统,其中,在指派给所述工作器的所述批量的训练样例上训练由所述工作器维护的所述卷积层副本包括:通过由所述工作器维护的所述卷积层副本中的全部卷积层副本来处理所述批量的训练样例,以针对被指派给所述工作器的所述批量中的每个训练样例计算相应的卷积激活;针对被指派给所述工作器的所述批量中的每个所述训练样例,获得由所述工作器维护的最高全连接层副本的梯度数据;以及通过由所述工作器维护的剩余卷积层副本,来反向传播所述最高全连接层副本梯度数据。3.根据权利要求2所述的系统,其中,在所述多个批量的训练样例的每个上训练由所述工作器维护的所述全连接层分区包括:针对所述多个批量中的全部批量中的每个所述训练样例,获得相应的卷积数据,针对每个所述训练样例的所述卷积数据包括所述训练样例的卷积激活;通过由所述工作器维护的最低全连接层的分区来处理所述卷积数据,以针对相对应的训练样例来生成自己的初始全连接层分区激活;将所述自己的初始全连接层分区激活发送到所述多个工作器中的其它工作器;从所述多个工作器中的其它工作器接收其它初始全连接层分区激活;对于由所述工作器维护的每个其它全连接层分区:通过所述全连接层分区来处理由所述工作器维护的次最低全连接层分区的自己的分区激活数据和其它分区激活数据,以生成所述全连接层分区的自己的分区激活数据,将所述全连接层分区的所述自己的分区激活数据发送到所述多个工作器中的其它工作器,以及从所述多个工作器中的其它工作器接收所述全连接层分区的其它分区激活数据;接收每个所述训练样例的自己的最高全连接层分区梯度数据;将所述自己的最高全连接层分区梯度数据发送到所述多个工作器中的其它工作器;从所述多个工作器中的其它工作器接收其它最高全连接层分区梯度数据;以及对于由所述工作器维护的每个其它全连接层分区:通过所述全连接层部分来反向传播由所述工作器维护的次最高全连接层分区的自己的分区梯度数据和其它分区梯度数据,以生成所述全连接层分区的自己的梯度分区数据,将所述全连接层分区的所述自己的分区梯度数据发送到所述多个工作器中的其它工作器,以及从所述多个工作器中的其它工作器接收所述全连接层分区的其它分区梯度数据。4.根据权利要求3所述的系统,其中,针对指派给所述工作器的所述批量中的每个所述训练样例获得由所述工作器维护的最高全连接层副本的梯度数据包括:针对每个训练样例,计算由所述工作器维护的一部分所述最高卷积层副本的自己的梯度数据;将自己的最高全连接层副本梯度部分数据发送到所述多个工作器中的其它工作器;以及从所述多个工作器中的其它工作器接收其它最高全连接层副本梯度部分。5.根据权利要求4所述的系统,其中,针对所述多个批量中的全部批量中的每个所述训练样例获得相应的卷积数据包括:将自己的卷积数据发送到所述多个工作器中的其它工作器,所述自己的卷积数据包括针对指派给所述工作器的训练样例的相应的卷积激活;以及从所述多个工作器中的其它工作器接收其它卷积数据,所述其它卷积数据包括指派给其它工作器的其它训练样例的相应的卷积激活。6.根据权利要求5所述的系统,其中,将自己的卷积数据发送到其它工作器包括:将指派给所述工作器的所述批量中的每个训练样例的自己的卷积数据发送到所述多个工作器中的每个其它工作器,并且其中,接收其它卷积数据包括:接收所述多个批量中的每个其它批量中的每个其它训练样例的其它卷积数据。7.根据权利要求6所述的系统,其中,将自己的最高全连接层副本梯度部分数据发送到其它工作器包括:将所述多个批量中每个其它批量中的其它训练样例的自己的最高全连接层副本梯度部分数据发送到所述训练样例被指派到的所述工作器,并且其中,从所述多个工作器中的其它工作器接收其它最高全连接层副本梯度部分数据包括:从每个其它工作器接收在被指派给所述工作器的所述批量中的每个训练样例的其它最高全连接层副本梯度部分数据。8.根据权利要求5所述的系统,其中,将自己的卷积数据发送到其它工作器包括:将指派给所述工作器的所述批量中的每个训练样例的自己的卷积数据发送到所述多个工作器中的每个其它工作器,并且其中,接收其它卷积数据包括:与处理所述自己的卷积数据并行地接收被指派给特定其它工作器的批量中的每个其它训练样例的其它卷积数据。9.根据权利要求8所述的系统,其中,从所述多个工作器中的其它工作器接收其它最高全连接层副本梯度部分数据包括:从每个其它工作器接收指派给所述工作器的所述批量中的每个训练样例的其它最高全连接层副本梯度部分数据,并且其中,处理所述其它卷积数据包括:与接收所述其它最高全连接层副本梯度部分数据并行地处理指派给所述特定其它工作器的所述批量中的每个其它训练样例的所述其它卷积数据。10.根据权利要求5所述的系统,其中,将自己的卷积数据发送到其它工作器包括:将指派给所述工作器的所述批量中的预定数目的训练样例的自己的卷积数据发送到所述多个工作器中的每个其它工作器,并且其中,接收其它卷积数据包括:接收所述多个批量中的每个其它批量中的所述预定数目的训练样例的其它卷积数据。11.根据权利要求10所述的系统,其中,处理所述自己的卷积数据和所述其它卷积数据包括:与发送被指派给所述工作器的所述批量中的另一预定数目的训练样例的自己的卷积数据并且接收所述多个批量中的每个其它批量中的...

【专利技术属性】
技术研发人员:亚历山大·克里热夫斯基
申请(专利权)人:谷歌公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1