CN111783932A - 训练神经网络的方法和装置 - Google Patents

训练神经网络的方法和装置 Download PDF

Info

Publication number
CN111783932A
CN111783932A CN201910267854.9A CN201910267854A CN111783932A CN 111783932 A CN111783932 A CN 111783932A CN 201910267854 A CN201910267854 A CN 201910267854A CN 111783932 A CN111783932 A CN 111783932A
Authority
CN
China
Prior art keywords
neural network
training
trained
loss function
training device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910267854.9A
Other languages
English (en)
Inventor
徐晨
李榕
王坚
黄凌晨
王俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910267854.9A priority Critical patent/CN111783932A/zh
Priority to PCT/CN2020/079808 priority patent/WO2020199914A1/zh
Publication of CN111783932A publication Critical patent/CN111783932A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Feedback Control In General (AREA)

Abstract

本申请提供了一种训练神经网络的方法和装置。该方法包括:控制装置将待训练的神经网络拆分为多个子网络,并将该多个子网络部署在多个训练装置上进行训练。由于规模较大的待训练的神经网络被拆分为多个规模较小的子网络,因此,存储空间较小的训练装置也能够存储至少一个子网络,从而可以利用多个存储空间较小的训练装置训练规模较大的神经网络。上述方法尤其适用于存储能力有限的终端设备。

Description

训练神经网络的方法和装置
技术领域
本申请涉及人工智能(artificial intelligence,AI)领域,尤其涉及一种训练神经网络的方法和装置。
背景技术
AI技术将对未来移动通信网络技术的演进产生重要的推动作用。神经网络(neural network,NN)是AI技术的基础,其在网络层(如网络优化,移动性管理,资源分配等)和物理层(如信道编译码,信道预测、接收机等)等方面有广泛的应用前景。
在物理层的应用中,例如在极化(polar)码的应用中,将会涉及到维度非常大的输入数据或输出数据。通常情况下,在神经网络的隐藏层的数量大于输入数据或输出数据的维度的情况下,神经网络才能学习到输入数据或输出数据的特性,所以应用于物理层的神经网络往往具有比较多的参数,这对训练加速硬件的存储能力要求较高,如何利用存储空间较小的训练加速硬件训练较大规模的神经网络是当前亟需解决的问题。
发明内容
本申请提供了一种训练神经网络的方法和装置,通过将待训练的神经网络拆分为多个子网络,并将该多个子网络部署在多个训练装置上,从而能够利用存储空间较小的训练装置训练较大规模的神经网络。
第一方面,提供了一种训练神经网络的方法,包括:获取待训练的神经网络;向第一训练装置发送第一神经网络,第一神经网络为待训练的神经网络的子网络,第一训练装置用于训练第一神经网络;向第二训练装置发送第二神经网络,第二神经网络为待训练的神经网络的子网络,第二训练装置用于训练第二神经网络;从目标训练装置接收待训练的神经网络的输出值,目标训练装置为训练装置集合中包含待训练的神经网络的输出层的训练装置,训练装置集合包括第一训练装置和第二训练装置;根据待训练的神经网络的输出值确定待训练的神经网络的损失函数;向目标训练装置发送损失函数或者损失函数对应的梯度。
控制装置将待训练的神经网络拆分为多个子网络,每个子网络包含的参数较少,因此,存储空间较小的训练装置也能够存储至少一个子网络,从而可以利用多个存储空间较小的训练装置训练规模较大的神经网络(即,包含较多参数的神经网络),上述方法尤其适用于存储能力有限的终端设备。
可选地,第一神经网络与第二神经网络属于待训练的神经网络的不同层。
上述方案即按照深度划分待训练的神经网络,由于不同的子网络包含一个或多个完整的神经网络层,将多个子网络进行串联处理即可,无需改变待训练的神经网络的架构,因此,该方案具有简单易实施的特点,能够减小控制装置在划分待训练的神经网络时的负载。
可选地,第二神经网络包括待训练的神经网络的输出层,从目标训练装置接收待训练的神经网络的输出值,包括:从第二训练装置接收待训练的神经网络的输出值;向目标训练装置发送损失函数或者损失函数对应的梯度,包括:向第二训练装置发送损失函数。
由于第二神经网络包含待训练的神经网络的输出层,因此,第二神经网络为与控制装置直接连接的子网络。控制装置从第二神经网络接收待训练的神经网络的输出值,并根据该输出值计算出待训练的神经网络的损失函数,充分利用了控制装置能够进行复杂运算(计算损失函数)的特点,使得训练装置能够专注于大量的简易运算(神经网络的训练过程)。
可选地,第一神经网络与第二神经网络属于待训练的神经网络的相同层。
上述方案即按照宽度划分待训练的神经网络,由于待训练的神经网络的一个层被拆分为多个子网络,因此,需要将多个子网络进行并联处理,并且,需要通过全连接层将多个并联的子网络的输出值进行合并处理。相比于按照深度划分待训练的神经网络的方案,按照宽度划分待训练的神经网络虽然需要增加一个全连接层,但是,由于各个子网络能够并行更新参数,因此,按照宽度划分进行训练能够提高神经网络的训练效率。
可选地,第一神经网络和第二神经网络包括待训练的神经网络的输出层,从目标训练装置接收待训练的神经网络的输出值,包括:从第一训练装置接收第一输出值,第一输出值为第一神经网络的输出值;从第二训练装置接收第二输出值,第二输出值为第二神经网络的输出值;根据待训练的神经网络的输出值确定待训练的神经网络的损失函数,包括:通过全连接层处理第一输出值和第二输出值,得到待训练的神经网络的损失函数;向目标训练装置发送损失函数或者损失函数对应的梯度,包括:向第一训练装置和第二训练装置发送损失函数对应的梯度。
由于第一神经网络和第二神经网络包含待训练的神经网络的输出层,因此,第一神经网络和第二神经网络为与控制装置直接连接的子网络。控制装置从第二神经网络接收待训练的神经网络的输出值,并根据该输出值计算出待训练的神经网络的损失函数,充分利用了控制装置能够进行复杂运算(计算损失函数)的特点,使得训练装置能够专注于大量的简易运算(神经网络的训练过程)。
第二方面,本申请还提供了一种训练神经网络的方法,该方法应用于第一训练装置,包括:从控制装置接收第一神经网络,第一神经网络为待训练的神经网络的一个子网络,且第一神经网络不包含待训练的神经网络的输出层;训练第一神经网络;向控制装置发送训练完成的第一神经网络。
待训练的神经网络被拆分为多个子网络,每个子网络包含的参数较少,因此,存储空间较小的训练装置也能够存储至少一个子网络,从而可以利用多个存储空间较小的训练装置训练规模较大的神经网络(即,包含较多参数的神经网络),上述方法尤其适用于存储能力有限的终端设备。
可选地,训练第一神经网络,包括:向第二训练装置发送第一神经网络的输出值,第一神经网络的输出值用于确定待训练的神经网络的损失函数;从第二训练装置接收第一梯度,第一梯度为第二训练装置中的第二神经网络的输入层的梯度,第二神经网络为待训练的神经网络的另一个子网络,第一梯度为基于损失函数确定的梯度;根据第一梯度训练第一神经网络。
由于多个子网络之间为串联关系,第一训练装置基于接收到的梯度直接进行反向传播计算即可,无需对梯度进行额外的处理,因此,该方案具有简单易实施的特点。
可选地,所述方法还包括:根据训练参数是否满足终止条件确定第一神经网络是否完成训练。
可选地,所述训练参数包括训练轮数、训练时间和误码率中的至少一种,根据训练参数是否满足终止条件确定第一神经网络是否完成训练,包括:
当待训练的神经网络的损失函数的值小于或等于损失函数阈值时,确定第二神经网络完成训练;和/或,
当训练轮数大于或等于轮数阈值时,确定第一神经网络完成训练;和/或,
当训练时间大于或等于时间阈值时,确定第一神经网络完成训练;和/或,
当误码率小于或等于误码率阈值时,确定第一神经网络完成训练。
通过不同的训练参数是否满足终止条件确定神经网络是否完成训练,能够根据实际情况灵活训练神经网络。例如,当训练装置负担较重时,控制装置可以设定较少的训练轮数或者较短的训练时间或者较大的误码率;当训练装置负担较轻时,控制装置可以设定较多的训练轮数或者较长的训练时间或者较小的误码率。从而提高了训练神经网络的灵活性。
第三方面,本申请还提供了一种训练神经网络的方法,该方法应用于第二训练装置,包括:从控制装置接收第二神经网络,第二神经网络为待训练的神经网络的一个子网络,且第二神经网络包含待训练的神经网络的输出层;训练第二神经网络;向控制装置发送训练完成的第二神经网络。
待训练的神经网络被拆分为多个子网络,每个子网络包含的参数较少,因此,存储空间较小的训练装置也能够存储至少一个子网络,从而可以利用多个存储空间较小的训练装置训练规模较大的神经网络(即,包含较多参数的神经网络),上述方法尤其适用于存储能力有限的终端设备。
可选地,所述方法还包括:向控制装置发送第二神经网络的输出值,第二神经网络的输出值用于确定待训练的神经网络的损失函数;从控制装置接收损失函数或者损失函数对应的梯度;根据损失函数或者损失函数对应的梯度确定第二神经网络的输入层的梯度。
可选地,所述方法还包括:向第一训练装置发送所述第二神经网络的输入层的梯度,该梯度用于第一训练装置中的第一神经网络的训练,其中,第二神经网络的输入层与第一神经网络的输出层相连,第一神经网络为待训练的神经网络的另一个子网络。
若第二训练装置与第一训练装置为串联关系,则第二训练装置还需要向第一训练装置发送第二神经网络的输入层的梯度,以便于第一训练装置利用该第二神经网络的输入层的梯度计算第一神经网络的各层的梯度,并更新第一神经网络的参数。
可选地,训练所述第二神经网络,包括:根据训练参数是否满足终止条件确定第二神经网络是否完成训练。
可选地,所述训练参数包括训练轮数、训练时间、所述待训练的神经网络的损失函数和误码率中的至少一种,
根据训练参数是否满足终止条件确定第二神经网络是否完成训练,包括:
当训练轮数大于或等于轮数阈值时,确定第二神经网络完成训练;和/或,
当训练时间大于或等于时间阈值时,确定第二神经网络完成训练;和/或,
当损失函数的值小于或等于损失函数阈值时,确定第二神经网络完成训练;和/或,
当误码率小于或等于误码率阈值时,确定第二神经网络完成训练。
通过不同的训练参数是否满足终止条件确定神经网络是否完成训练,能够根据实际情况灵活训练神经网络。例如,当训练装置负担较重时,控制装置可以设定较少的训练轮数或者较短的训练时间或者较大的误码率;当训练装置负担较轻时,控制装置可以设定较多的训练轮数或者较长的训练时间或者较小的误码率。从而提高了训练神经网络的灵活性。
第四方面,本申请提供了一种控制装置,该装置可以实现上述第一方面所涉及的方法所对应的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元或模块。
在一种可能的设计中,该装置包括处理器,该处理器被配置为支持该装置执行上述第一方面所涉及的方法。该装置还可以包括存储器,该存储器用于与处理器耦合,其保存有程序和数据。可选地,该装置还包括通信接口,该通信接口用于支持该装置与神经网络训练装置之间的通信。其中,所述通信接口可以包括集成收发功能的电路。
第五方面,本申请提供了一种训练装置,该装置可以实现上述第二方面或第三方面所涉及的方法所对应的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元或模块。
在一种可能的设计中,该装置包括处理器,该处理器被配置为支持该装置执行上述第二方面或第三方面所涉及的方法。该装置还可以包括存储器,该存储器用于与处理器耦合,其保存有程序和数据。可选地,该装置还包括通信接口,该通信接口用于支持该装置与控制装置和/或其它神经网络训练装置之间的通信。其中,所述通信接口可以包括集成收发功能的电路。
第六方面,本申请提供了一种神经网络训练系统,包括至少一个第四方面所述的控制装置和至少两个第五方面所述的训练装置。
第七方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质中存储了计算机程序,该计算机程序被处理器执行时,使得处理器执行第一方面所述的方法。
第八方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质中存储了计算机程序,该计算机程序被处理器执行时,使得处理器执行第二方面或第三方面所述的方法。
第九方面,本申请提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码被处理器运行时,使得处理器执行第一方面所述的方法。
第十方面,本申请提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码被处理器运行时,使得处理器执行第二方面或第三方面所述的方法。
第十一方面,本申请提供了一种芯片,该芯片包括:处理器和通信接口。该处理器例如是核(core),该核可以包括至少一种执行单元(execution unit),该执行单元例如是算术逻辑单元(arithmetic and logic unit,ALU);该通信接口可以是输入/输出接口、管脚或电路等;该处理器执行存储器中存储的程序代码,以使该芯片执行第一方面所述的方法。该存储器可以是位于该芯片内部的存储单元(例如,寄存器、缓存等),也可以是位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
第十二方面,本申请还提供了一种芯片,该芯片包括:处理器和通信接口。该处理器例如是流式多处理器(streaming multiprocessor),该流式多处理器可以包括至少一种执行单元(execution unit),该执行单元例如是统一计算设备架构(compute unifieddevice architecture,CUDA);该通信接口可以是输入/输出接口、管脚或电路等;该处理器执行存储器中存储的程序代码,以使该芯片执行第二方面或第三方面所述的方法。该存储器可以是位于该芯片内部的存储单元(例如,寄存器、缓存等),也可以是位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
附图说明
图1是一种适用于本申请的全连接神经网络的示意图;
图2是一种基于损失函数更新神经网络参数的方法的示意图;
图3是计算损失函数的梯度的方法的示意图;
图4是本申请提供的一种神经网络训练系统的示意图;
图5是本申请提供的一种训练神经网络的方法的示意图;
图6是本申请提供的一种基于深度划分的神经网络的训练方法的示意图;
图7是本申请提供的一种基于宽度划分的神经网络的训练方法的示意图;
图8是本申请提供的一种训练神经网络的装置的示意图;
图9是本申请提供的另一种训练神经网络的装置的示意图;
图10是本申请提供的再一种训练神经网络的装置的示意图。
具体实施方式
为了便于理解本申请的技术方案,首先对本申请所涉及的概念做简要介绍。
神经网络也可以称为人工神经网络(artificial neural network,ANN),隐藏层数量较多的神经网络称为深度神经网络。神经网络中的每一层的工作可以用数学表达式
Figure BDA0002017420080000051
来描述。从物理层面看,神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中,操作1、2、3的由
Figure BDA0002017420080000052
完成,操作4由+b完成,操作5则由a()来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合。其中,w是权重向量,该向量中的每一个值表示该层神经网络中的一个神经元的权重值。该w决定着上文所述的输入空间到输出空间的空间变换,即每一层的w控制着如何变换空间。训练神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵(由很多层的w形成的权重矩阵)。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
因为希望神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较神经网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量。在第一次更新之前通常会有初始化的过程,即为神经网络中的各个层预先配置参数。在训练的过程中,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objectivefunction),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个输出值的过程。
损失函数通常是多变量函数,而梯度可以反映变量发生变化时损失函数的输出值的变化速率,梯度的绝对值越大,损失函数的输出值的变化率越大,可以计算更新不同参数时损失函数的梯度,沿着梯度下降最快的方向不断更新参数,尽快缩小损失函数的输出值。
下面以全连接神经网络为例,对本申请中的训练方法进行简要介绍。
全连接神经网络又叫多层感知器(multilayer perceptron,MLP)。如图1所示,一个MLP包含一个输入层(左侧),一个输出层(右侧),及多个隐藏层(中间),每层包含数个节点,称为神经元。其中相邻两层的神经元间两两相连。
考虑相邻两层的神经元,下一层的神经元的输出h为所有与之相连的上一层神经元x的加权和经过激活函数(即,上文所述的“a”)处理后的值。用矩阵可以表示为
h=f(wx+b)
其中w为权重向量,b为偏置向量,f为激活函数。则MLP的输出可以递归表达为
y=fn(wnfn-1(...)+bn)
可以将MLP理解为一个从输入数据集合到输出数据集合的映射关系。而通常MLP都是随机初始化的,用已有数据从随机的w和b得到这个映射关系的过程被称为MLP的训练。
可以采用损失函数对MLP的输出结果进行评价,并通过反向传播,通过梯度下降的方法即能迭代优化w和b直到损失函数达到最小值,
可以通过前向传播(forward propagation)计算获取MLP的损失函数。即,将前一层的输出结果输入后一层,直至得到MLP的输出层的输出结果,将该结果与目标值进行比较,获得MLP的损失函数。在得到前向传播计算的损失函数后,基于损失函数进行反向传播(back propagation)计算,以求得各层的梯度,沿着梯度下降最快的方向调整w和b,直到损失函数达到最小值。
梯度下降的过程可以表示为:
Figure BDA0002017420080000061
其中,θ为待优化参数(如w和b),L为损失函数,η为学习率,用于控制梯度下降的步长,步长如图2中的箭头所示。
可以使用求偏导的链式法则进行反向传播计算,即,前一层参数的梯度可以由后一层参数的梯度递推计算得到,如图3所示,链式法则可以表达为:
Figure BDA0002017420080000062
其中wij为节点j连接节点i的权重,si为节点i上输入的加权和。
由于神经网络的训练是一个计算量相对较大但计算类型相对简单的计算过程,故一般会采用图形处理器(graphics processing unit,GPU)等硬件来加速训练的过程。但是由于GPU显存有限,对于一个较大的神经网络,可能需要多个GPU才能部署整个神经网络
图4是一种适用于本申请的训练系统的示意图。
该训练系统包括一个控制装置和至少两个训练装置,控制装置与每个训练装置之间能够互相通信,可选地,不同训练装置之间也可以相互通信。
该控制装置例如是中央处理器(central processing unit,CPU),上述训练装置例如是GPU,训练装置还可以是张量处理器(tensor processing unit,TPU)或CPU或其它类型的计算单元。本申请对控制装置和训练装置的具体类型不作限定。
此外,控制装置和至少两个训练装置可以集成在一个芯片上,例如,集成在系统级芯片(system on chip,SoC)上。控制装置和至少两个训练装置也可以集成在不同的芯片上。
图5示出了本申请提供的一种训练神经网络的方法。该方法500可以应用于图4所示的训练系统,其中,控制装置获取待训练的神经网络后,执行下行步骤。
S510,向第一训练装置发送第一神经网络,第一神经网络为待训练的神经网络的子网络,第一训练装置用于训练第一神经网络。
S520,向第二训练装置发送第二神经网络,第二神经网络为待训练的神经网络的子网络,且第二神经网络与第一神经网络相异,第二训练装置用于训练第二神经网络。
控制装置可以按深度将待训练的神经网络划分为第一神经网络和第二神经网络,也可以按宽度将待训练的神经网络划分为第一神经网络和第二神经网络,第一神经网络与第二神经网络可以相同(即,包含相同的参数),也可以不同(即,包含不同的参数),本申请对第一神经网络和第二神经网络的具体形式不作限定。应理解,即使第一神经网络和第二神经网络包含相同的参数,由于该两个神经网络为待训练的神经网络的两个子网络,即,该两个神经网络属于待训练的神经网络的不同部分,因此,该两个神经网络仍然属于两个不同的神经网络。下文将详细描述这两种划分方法以及对应的训练方法。此外,将待训练的神经网络划分为两个子网络仅是举例说明,还可以将待训练的神经网络划分为更多个子网络。
由图1可知,神经网络由多个参数组成,因此,控制装置向第一训练装置发送第一神经网络可以被解释为:控制装置向第一训练装置发送组成第一神经网络的参数以及指示这些参数的连接关系的信息。类似地,控制装置向第二训练装置发送第二神经网络可以被解释为:控制装置向第二训练装置发送组成第二神经网络的参数以及指示这些参数的连接关系的信息。
第一训练装置和第二训练装置分别收到各自的神经网络之后,即可分别执行以下步骤。
S530,训练所述第一神经网络。
S540,训练所述第二神经网络。
下面,将根据待训练的神经网络的划分方法分别描述训练第一神经网络和第二神经网络的方法。
方法一,按深度划分。
如图6所示,待训练的神经网络有4层,将前两层划分为第一神经网络,将后两层划分为第二神经网络。上述划分方式仅是举例说明,还可以将待训练的神经网络划分为其它类型的子网络,每个子网络包括待训练的神经网络的至少一层参数。
CPU即控制装置,GPU0即第一训练装置,GPU1为第二训练装置。GPU0输入训练样本,通过第一神经网络处理该训练样本,并将训练样本的处理结果发送至GPU1。GPU1通过第二神经网络处理GPU0的输出结果,并得到第二神经网络的输出结果,将第二神经网络的输出结果发送至CPU,由CPU根据该输出结果计算出待训练的神经网络的损失函数(L)。
以极化码译码器的训练过程为例,训练样本可以是:对数似然比和码字,或者,对数似然比和真实信息。即,神经网络的输入为对数似然比,神经网络的输出为码字的估计或真实信息的估计。损失函数则为码字的估计和码字之间的差异,或者,损失函数则为信息的估计和真实信息之间的差异。
对于信道预测器的训练过程,训练样本可以是:历史信道数据和未来信道数据。即,神经网络的输入为历史信道数据,神经网络的输出为预测的未来信道数据。损失函数则为预测的未来信道和真实的未来信道之间的差异。
对于资源调度器的训练过程,训练样本可以是:目前系统的状态和最优的调度策略。即,神经网络的输入为系统的状态信息,如:目前可调度的时频资源,需要调度的用户,用户的服务质量(quality of service,QoS)等级;神经网络的输出为预计的调度策略。损失函数为预计调度策略和最优调度策略之间的差异。
上述有关训练样本的描述适用于本申请的所有实施例。此外,由于上述优选训练样本的描述仅是举例说明,由于本申请的方法广泛适用于包括无线通信、车联网、计算机、深度学习、模式识别、云计算等涉及人工智能的领域,训练样本可以根据具体应用进行设计。
每个训练装置上部署有优化器,各个优化器用于计算各个训练装置上部署的神经网络的梯度,其中,优化器1的输入信息为整个待训练的神经网络的损失函数,优化器0的输入信息为优化器1输出的梯度。图6中的梯度1表示第二神经网络的各个层的梯度,梯度0表示第一神经网络的各个层的梯度。
本申请的各个实施例中的优化器可以是软件模块(例如,程序代码),也可以是硬件模块(例如,逻辑电路)。以图6为例,优化器1可以通过公式g4=f(l,θ4,N)确定待优化参数θ4(第二神经网络的输出层的参数)的梯度g4。其中,f为激活函数,l为损失函数,N为第二神经网络的拓扑结构。优化器1还可以通过公式g3=f(g4,θ3,N)确定待优化参数θ3(第二神经网络的输入层的参数)的梯度g3
优化器0可以通过公式g2=f(g3,θ2,N′)确定待优化参数θ2(第一神经网络的输出层的参数)的梯度g2。其中,N′为第一神经网络的拓扑结构。优化器0可以通过公式g1=f(g2,θ1,N′)确定待优化参数θ1(第一神经网络的输入层的参数)的梯度g1
在反向传播计算过程中,训练装置计算各层的梯度并根据各层的梯度更新各层的参数。例如,GPU1根据损失函数(L)计算出第四层的梯度
Figure BDA0002017420080000081
随后根据
Figure BDA0002017420080000082
计算第三层的梯度
Figure BDA0002017420080000083
随后将
Figure BDA0002017420080000084
发送至GPU0。GPU0根据
Figure BDA0002017420080000085
计算第二层的梯度
Figure BDA0002017420080000086
随后根据
Figure BDA0002017420080000087
计算第一层的梯度
Figure BDA0002017420080000088
其中,第一层为待训练的神经网络的输入层,第二层和第三层为待训练的神经网络的隐藏层,第四层为待训练的神经网络的输出层。θ4~θ1表示各层的参数,θ4~θ1的更新可以在各个参数对应的GPU完成梯度计算后进行,也可以在所有的GPU完成梯度计算后进行。
GPU0完成参数更新后,通过参数更新后的第一神经网络对训练样本进行处理,并将训练样本的处理结果发送至GPU1。GPU1通过参数更新后的第二神经网络处理GPU0的输出结果,并得到输出结果,将该输出结果发送至CPU。CPU根据该输出结果再次计算损失函数,若损失函数不满足要求,则可以将该损失函数发送至GPU1,重复前述参数更新的步骤,继续进行训练;若损失函数满足要求,则可以停止训练。
此外,CPU或者GPU0还可以根据训练参数是否满足终止条件确定第一神经网络是否完成训练。上述训练参数包括训练轮数、训练时间和误码率中的至少一种,
例如,当训练轮数大于或等于轮数阈值时,CPU或者GPU0确定第一神经网络完成训练;当训练时间大于或等于时间阈值时,确定第一神经网络完成训练;当误码率小于或等于误码率阈值时,确定第一神经网络完成训练。
CPU或者GPU0可以根据损失函数、训练轮数、训练时间和误码率中的一种参数满足终止条件停止训练第一神经网络,CPU或者GPU0也可以在损失函数、训练轮数、训练时间和误码率中的多种参数满足终止条件时停止训练第一神经网络。
类似地,CPU或者GPU1可以根据损失函数、训练轮数、训练时间和误码率中的一种参数满足终止条件停止训练第二神经网络,CPU或者GPU1也可以在损失函数、训练轮数、训练时间和误码率中的多种参数满足终止条件时停止训练第二神经网络。
通过不同的训练参数是否满足终止条件确定神经网络是否完成训练,能够根据实际情况灵活训练神经网络。例如,当CPU或者训练装置负担较重时,CPU可以设定较少的训练轮数或者较短的训练时间或者较大的误码率;当CPU或者训练装置负担较轻时,CPU可以设定较多的训练轮数或者较长的训练时间或者较小的误码率。从而提高了训练神经网络的灵活性。
此外,按照深度划分无需改变待训练的神经网络的架构,具有简单易实施的特点,能够减小控制装置在划分待训练的神经网络时的负载。
方法二,按宽度划分。
方法二可以按照如下所示的内容进行划分。若GPU的个数为M,待训练的神经网络共有N层,每一层的宽度为wi,i∈[0,N),即,每一层包含wi个参数。每个GPU可以部署N层神经网络,每一层的宽度为vi,j,i∈[0,N),j∈[0,M),且满足
Figure BDA0002017420080000091
另外,全连接层的宽度为wN-1
如图7所示,待训练的神经网络有4层,该4层的宽度分别为8,16,16和12,即,第一层包含8个参数,第二层包含16个参数,第三层包含16个参数,第四层包含12个参数。其中,第一层为待训练的神经网络的输入层,第二层和第三层为待训练的神经网络的隐藏层,第四层为待训练的神经网络的输出层。
可以将每层参数平均划分为两组参数,第一神经网络包含其中的一组参数,第二神经网络包含另外一组参数,则第一神经网络的宽度和第二神经网络的宽度均为4,8,8和6。上述划分方式仅是举例说明,还可以不按照均分的方式对每层参数进行划分。待训练的神经网络划分完成后,还需要再CPU中部署一个全连接层,全连接层的宽度与第一神经网络的输入层的宽度和第二神经网络的输出层的宽度之和相同,在图7所示的神经网络中,该全连接层的宽度为12。
GPU0和GPU1分别输入训练样本,GPU0通过第一神经网络处理该训练样本,并将第一神经网络的输出值(即,第一输出值)发送至CPU;GPU1通过第二神经网络处理该训练样本,并将第二神经网络的输出值(即,第二输出值)发送至CPU。CPU通过全连接层处理第一输出值和第二输出值,得到待训练的神经网络的输出值,并基于该输出值确定待训练的神经网络的损失函数。随后,根据该损失函数确定全连接层的梯度,并分别向GPU0和GPU1发送全连接层的梯度,以便于GPU0确定第一神经网络的梯度以及GPU1确定第二神经网络的梯度。
图7中,GPU0和GPU1输入的训练样本可以相同,也可以不同,本申请对此不作限定。可选地,GPU0和GPU1输入相同或相近的训练样本,该方案能够提高待训练的神经网络的训练效果。
CPU和每个训练装置上均部署有优化器,各个优化器用于计算各个训练装置上部署的神经网络的梯度,其中,CPU上的优化器用于计算全连接层的梯度,GPU0上的优化器0用于计算第一神经网络的各层的梯度,GPU1上的优化器1用于计算第二神经网络的各层的梯度。图7中,梯度表示损失函数的梯度,梯度1表示第二神经网络的各个层的梯度,梯度0表示第一神经网络的各个层的梯度。
在反向传播计算过程中,训练装置计算各层的梯度并根据各层的梯度更新各层的参数。例如,CPU根据损失函数(L)计算出全连接层的梯度
Figure BDA0002017420080000101
其中,θfc为全连接层的参数。GPU0收到该梯度之后,根据该梯度依次计算出第一神经网络的四个层的梯度
Figure BDA0002017420080000102
GPU1收到该梯度之后,根据该梯度依次计算出第二神经网络的四个层的梯度
Figure BDA0002017420080000103
θ4~θ1表示第一神经网络各层的参数,θ4′~θ0′表示第二神经网络各层的参数,GPU0和GPU1可以并行计算各层的梯度并更新各自的参数。
GPU0完成参数更新后,通过参数更新后的第一神经网络对训练样本进行处理,并将输出值发送至CPU。GPU1完成参数更新后,通过参数更新后的第二神经网络对训练样本进行处理,并将输出值发送至CPU。CPU根据该两个输出值再次计算损失函数,若损失函数不满足要求,则可以重复前述参数更新的步骤,继续进行训练;若损失函数满足要求,则可以停止训练。
此外,CPU或者GPU0还可以根据训练参数是否满足终止条件确定第一神经网络是否完成训练。上述训练参数包括训练轮数、训练时间和误码率中的至少一种,
例如,当训练轮数大于或等于轮数阈值时,CPU或者GPU0确定第一神经网络完成训练;当训练时间大于或等于时间阈值时,确定第一神经网络完成训练;当误码率小于或等于误码率阈值时,确定第一神经网络完成训练。
CPU或者GPU0可以根据损失函数、训练轮数、训练时间和误码率中的一种参数满足终止条件停止训练第一神经网络,CPU或者GPU0也可以在损失函数、训练轮数、训练时间和误码率中的多种参数满足终止条件时停止训练第一神经网络。
类似地,CPU或者GPU1可以根据损失函数、训练轮数、训练时间和误码率中的一种参数满足终止条件停止训练第二神经网络,CPU或者GPU1也可以在损失函数、训练轮数、训练时间和误码率中的多种参数满足终止条件时停止训练第二神经网络。
通过不同的训练参数是否满足终止条件确定神经网络是否完成训练,能够根据实际情况灵活训练神经网络。例如,当CPU或者训练装置负担较重时,CPU可以设定较少的训练轮数或者较短的训练时间或者较大的误码率;当CPU或者训练装置负担较轻时,CPU可以设定较多的训练轮数或者较长的训练时间或者较小的误码率。从而提高了训练神经网络的灵活性。
此外,按照宽度划分需要改变待训练的神经网络的架构,即,增加了一个全连接层。由于各个子网络能够并行更新参数,因此,按照宽度划分进行训练能够提高神经网络的训练效率。
第一神经网络和第二神经网络训练完成后,第一训练装置和第二训练装置可以分别执行下述步骤。
S550,第一训练装置向控制装置发送训练完成的第一神经网络。
S560,第二训练装置向控制装置发送训练完成的第二神经网络。
第一训练装置向控制装置发送训练完成的第一神经网络可以被解释为:第一训练装置向控制装置发送第一神经网络更新后的参数以及指示这些参数的连接关系的信息。类似地,第二训练装置向控制装置发送训练完成的第二神经网络可以被解释为:第二训练装置向控制装置发送第二神经网络更新后的参数以及指示这些参数的连接关系的信息。
控制装置获取训练完成的第一神经网络和训练完成的第二神经网络之后,可以将该两个神经网络进行合并处理,得到训练完成的神经网络。
由于每个训练装置存储待训练的神经网络的部分参数,因此,存储空间较小的训练装置在应用上述方法后也能够完成大规模神经网络的训练,上述方法尤其适用于存储能力有限的终端设备。
表1示出了分别采用上文所述的两种划分方法进行训练所需的时间。其中,待训练的神经网络为深度为10,宽度为1024的全连接神经网络。
表1
Figure BDA0002017420080000111
由表1可知,采用方法一和方法二进行训练,对每个显卡的显存需求明显降低,此外,采用方法二进行训练的效率也显著提升。
上文详细介绍了本申请提供的训练神经网络的方法的示例。下面,将详细介绍本申请提供的实现上述方法的装置。可以理解的是,训练神经网络的装置为了实现训练神经网络的方法中的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请可以根据上述方法示例对训练神经网络的装置进行功能单元的划分,例如,可以将各个功能划分为各个功能单元,也可以将两个或两个以上的功能集成在一个功能单元中。例如,训练神经网络的装置可包括用于执行上述方法示例中确定动作的处理单元、用于实现上述方法示例中接收动作的接收单元和用于实现上述方法示例中发送动作的发送单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图8示出了本申请提供的一种训练神经网络的装置的结构示意图。训练神经网络的装置800可用于实现上述方法实施例中描述的方法。该通信装置800可以是芯片、网络设备或终端设备。
训练神经网络的装置800包括一个或多个处理器801,该一个或多个处理器801可支持训练神经网络的装置800实现图5所对应方法实施例中的方法。处理器801可以是通用处理器或者专用处理器。例如,处理器801可以是CPU。CPU可以用于对训练装置(例如,GPU)进行控制,执行软件程序,处理软件程序的数据。训练神经网络的装置800还可以包括通信接口805,用以实现信号的输入(接收)和输出(发送)。
例如,若训练神经网络的装置800为芯片,通信接口805可以是该芯片的输入和/或输出电路,该芯片可以作为终端设备或网络设备或其它无线通信设备的组成部分。
训练神经网络的装置800中可以包括一个或多个存储器802,其上存有程序804,程序804可被处理器801运行,生成指令803,使得处理器801根据指令803执行上述方法实施例中描述的方法。可选地,存储器802中还可以存储有数据。可选地,处理器801还可以读取存储器802中存储的数据(例如,待训练的神经网络),该数据可以与程序804存储在相同的存储地址,该数据也可以与程序804存储在不同的存储地址。
处理器801和存储器802可以单独设置,也可以集成在一起,例如,集成在单板或者SoC上。
在一种可能的设计中,处理器801用于控制通信接口805执行:
获取待训练的神经网络;
向第一训练装置发送第一神经网络,第一神经网络为待训练的神经网络的子网络,第一训练装置用于训练第一神经网络;
向第二训练装置发送第二神经网络,第二神经网络为待训练的神经网络的子网络,第二训练装置用于训练第二神经网络;
从目标训练装置接收待训练的神经网络的输出值,目标训练装置为训练装置集合中包含待训练的神经网络的输出层的训练装置,训练装置集合包括第一训练装置和第二训练装置;
处理器801用于执行:根据待训练的神经网络的输出值确定待训练的神经网络的损失函数;
处理器801还用于控制通信接口805执行:向目标训练装置发送损失函数或者损失函数对应的梯度。
可选地,第一神经网络与第二神经网络属于待训练的神经网络的不同层,第二神经网络包括待训练的神经网络的输出层,处理器801还用于控制通信接口805执行:
从第二训练装置接收待训练的神经网络的输出值;
向第二训练装置发送损失函数。
可选地,第一神经网络与第二神经网络属于待训练的神经网络的相同层,第一神经网络和第二神经网络包括待训练的神经网络的输出层,处理器801还用于控制通信接口805执行:
从第一训练装置接收第一输出值,第一输出值为第一神经网络的输出值;
从第二训练装置接收第二输出值,第二输出值为第二神经网络的输出值;
处理器801还用于执行:通过全连接层处理第一输出值和第二输出值,得到待训练的神经网络的损失函数;
处理器801还用于控制通信接口805执行:向第一训练装置和第二训练装置发送损失函数对应的梯度。
在另一种可能的设计中,处理器801用于控制通信接口805执行:
从控制装置接收第一神经网络,第一神经网络为待训练的神经网络的一个子网络,且第一神经网络不包含待训练的神经网络的输出层;
处理器801用于执行:训练第一神经网络;
处理器801还用于控制通信接口805执行:向控制装置发送训练完成的第一神经网络。
可选地,处理器801还用于控制通信接口805执行:
向第二训练装置发送第一神经网络的输出值,第一神经网络的输出值用于确定待训练的神经网络的损失函数;
从第二训练装置接收第一梯度,第一梯度为第二训练装置中的第二神经网络的输入层的梯度,第二神经网络为待训练的神经网络的另一个子网络,第一梯度为基于损失函数确定的梯度;
处理器801还用于执行:根据第一梯度训练第一神经网络。
可选地,处理器801还用于执行:根据训练参数是否满足终止条件确定第一神经网络是否完成训练。
在另一种可能的设计中,处理器801用于控制通信接口805执行:
从控制装置接收第二神经网络,第二神经网络为待训练的神经网络的一个子网络,且第二神经网络包含待训练的神经网络的输出层;
处理器801用于执行:训练第二神经网络;
处理器801还用于控制通信接口805执行:向控制装置发送训练完成的第二神经网络。
可选地,处理器801还用于控制通信接口805执行:
向控制装置发送第二神经网络的输出值,第二神经网络的输出值用于确定待训练的神经网络的损失函数;
从控制装置接收损失函数或者损失函数对应的梯度;
处理器801还用于执行:根据损失函数或者损失函数对应的梯度确定第二神经网络的输入层的梯度。
可选地,处理器801还用于控制通信接口805执行:
向第一训练装置发送所述第二神经网络的输入层的梯度,该梯度用于第一训练装置中的第一神经网络的训练,其中,第二神经网络的输入层与第一神经网络的输出层相连,第一神经网络为待训练的神经网络的另一个子网络。
可选地,处理器801还用于执行:
根据训练参数是否满足终止条件确定第二神经网络是否完成训练。
应理解,方法实施例的各步骤可以通过处理器801中的硬件形式的逻辑电路或者软件形式的指令完成。处理器801还可以是数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件,例如,分立门、晶体管逻辑器件或分立硬件组件。
本申请还提供了一种计算机程序产品,该计算机程序产品被处理器801执行时实现本申请中任一方法实施例所述的方法。
该计算机程序产品可以存储在存储器802中,例如是程序804,程序804经过预处理、编译、汇编和链接等处理过程最终被转换为能够被处理器801执行的可执行目标文件。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现本申请中任一方法实施例所述的方法。该计算机程序可以是高级语言程序,也可以是可执行目标程序。
该计算机可读存储介质例如是存储器802。存储器802可以是易失性存储器或非易失性存储器,或者,存储器802可以同时包括易失性存储器和非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmableROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(randomaccess memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamicRAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
如前所述,本申请的方法广泛适用于包括无线通信、车联网、计算机、深度学习、模式识别、云计算等涉及人工智能的领域,这里用无线通信的装置例子进行说明。这里的无线通信包括第五代(the fifth generation,5G)移动通信系统、无线保真(wireless-fidelity,WiFi)、卫星通信等各类已有的通信方式以及未来可能的各种通信方式,主要涉及终端设备和网络设备两个方面。
在装置800为终端设备中的芯片的情况下,图9示出了本申请提供的一种终端设备的结构示意图。终端设备900可实现上述方法实施例中训练神经网络的功能。为了便于说明,图9仅示出了终端设备900的主要部件。
如图9所示,终端设备900包括处理器、存储器、控制电路、天线以及输入输出装置。其中,处理器901主要用于对通信协议以及通信数据进行处理,以及用于对终端设备900进行控制。例如,处理器901通过天线和控制电路接收通过极化码编码的信息。处理器901还用于读取存储器904中存储的待训练的神经网络,并将其拆分为至少两个子网络,分别发送至处理器902和处理器903。处理器902和处理器903用于训练待训练的神经网络被拆分后的子网络。处理器901、处理器902和处理器903可以是图8所示的装置,此外,处理器901、处理器902和处理器903可以被称为神经网络训练系统,包含该三个处理器的终端设备900也可以被称为神经网络训练系统。
存储器904主要用于存储程序和数据,例如,存储器904存储上述方法实施例中的待训练的神经网络。控制电路主要用于基带信号与射频信号的转换以及对射频信号的处理。控制电路和天线一起也可以叫做收发器,主要用于收发电磁波形式的射频信号。输入输出装置例如是触摸屏或键盘,主要用于接收用户输入的数据以及对用户输出数据。
终端设备900开机后,处理器901可以读取存储器904中的程序,解释并执行该程序所包含的指令,处理程序中的数据。当需要通过天线发送信息时,处理器901对待发送的信息进行基带处理后,输出基带信号至射频电路,射频电路将基带信号进行射频处理后得到射频信号,并将射频信号通过天线以电磁波的形式向外发送。当承载信息的电磁波(即,射频信号)到达终端设备900时,射频电路通过天线接收到射频信号,将射频信号转换为基带信号,并将基带信号输出至处理器,处理器901将基带信号转换为信息并对该信息进行处理。
本领域技术人员可以理解,为了便于说明,图9仅示出了一个存储器和三个处理器。在实际的终端设备中,可以存在更多的存储器和处理器。存储器也可以称为存储介质或者存储设备等,本申请对此不做限定。
作为一种可选的实现方式,图9中的处理器901可以集成基带处理器和CPU的功能,本领域技术人员可以理解,基带处理器和CPU也可以是相互独立的处理器,通过总线等技术互联。本领域技术人员可以理解,终端设备900可以包括多个基带处理器以适应不同的网络制式,终端设备900可以包括多个CPU以增强其处理能力,终端设备900的各个部件可以通过各种总线连接。基带处理器也可以被称为基带处理电路或者基带处理芯片。对通信协议以及通信数据进行处理的功能可以内置在处理器中,也可以以程序的形式存储在存储器904中,由处理器901执行存储器904中的程序以实现基带处理功能。
在通信装置800为网络设备中的芯片的情况下,图10是本申请提供的一种网络设备的结构示意图,该网络设备例如可以为基站。如图10所示,该基站可实现上述方法实施例中训练神经网络的功能。基站1000可包括一个或多个射频单元,如远端射频单元(remoteradio unit,RRU)1001和至少一个基带单元(baseband unit,BBU)1002。其中,BBU1002可以包括分布式单元(distributed unit,DU),也可以包括DU和集中单元(central unit,CU)。
RRU1001可以称为收发单元、收发机、收发电路或者收发器,其可以包括至少一个天线10011和射频单元10012。RRU1001主要用于射频信号的收发以及射频信号与基带信号的转换,例如用于支持基站实现发送功能和接收功能。BBU1002主要用于进行基带处理,对基站进行控制等。RRU1001与BBU1002可以是物理上设置在一起的,也可以物理上分离设置的,即分布式基站。
BBU1002也可以称为处理单元,主要用于完成基带处理功能,如信道编码,复用,调制,扩频等等。例如,BBU1002可以用于控制基站执行上述方法实施例中的操作流程。
BBU1002可以由一个或多个单板构成,多个单板可以共同支持单一接入制式的无线接入网,也可以分别支持不同接入制式的无线接入网。BBU1002还包括处理器10021和存储器10024,存储器10024用于存储必要的指令和数据。例如,存储器10021存储上述方法实施例中的待训练的神经网络。处理器10021用于控制基站进行必要的动作,例如,处理器通过天线和控制电路接收通过极化码编码的信息。处理器10021还用于读取存储器10024中存储的待训练的神经网络,并将其拆分为至少两个子网络,分别发送至处理器10022和处理器10023。处理器10022和处理器10023用于训练待训练的神经网络被拆分后的子网络。处理器1001、处理器1002和处理器1003可以是图8所示的装置,此外,处理器1001、处理器1002和处理器1003处理器10021、处理器10022和处理器10023可以被称为神经网络训练系统,包含该三个处理器的网络设备1000也可以被称为神经网络训练系统。
处理器10021和存储器10024可以服务于一个或多个单板。也就是说,可以每个单板上单独设置存储器和处理器。也可以是多个单板共用相同的存储器和处理器。此外每个单板上还可以设置有必要的电路。
本领域技术人员可以理解,为了便于说明,图10仅示出了一个存储器和三个处理器。在实际的网络设备中,可以存在更多的存储器和处理器。存储器也可以称为存储介质或者存储设备等,本申请对此不做限定。
此外,图10所示的基站仅是一个示例,适用于本申请的网络设备还可以是有源天线系统(active antenna system,AAS)中的有源天线单元(active antenna unit,AAU)。
本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例的一些特征可以忽略,或不执行。以上所描述的装置实施例仅仅是示意性的,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统。另外,各单元之间的耦合或各个组件之间的耦合可以是直接耦合,也可以是间接耦合,上述耦合包括电的、机械的或其它形式的连接。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
总之,以上所述仅为本申请技术方案的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (35)

1.一种训练神经网络的方法,其特征在于,包括:
获取待训练的神经网络;
向第一训练装置发送第一神经网络,所述第一神经网络为所述待训练的神经网络的子网络,所述第一训练装置用于训练所述第一神经网络;
向第二训练装置发送第二神经网络,所述第二神经网络为所述待训练的神经网络的子网络,且所述第二神经网络与所述第一神经网络相异,所述第二训练装置用于训练所述第二神经网络;
从目标训练装置接收所述待训练的神经网络的输出值,所述目标训练装置为训练装置集合中包含所述待训练的神经网络的输出层的训练装置,所述训练装置集合包括所述第一训练装置和所述第二训练装置;
根据所述待训练的神经网络的输出值确定所述待训练的神经网络的损失函数;
向所述目标训练装置发送所述损失函数或者所述损失函数对应的梯度。
2.根据权利要求1所述的方法,其特征在于,所述第一神经网络与所述第二神经网络属于所述待训练的神经网络的不同层。
3.根据权利要求2所述的方法,其特征在于,所述第二神经网络包括所述待训练的神经网络的输出层,
所述从目标训练装置接收所述待训练的神经网络的输出值,包括:
从所述第二训练装置接收所述待训练的神经网络的输出值;
所述向所述目标训练装置发送所述损失函数或者所述损失函数对应的梯度,包括:
向所述第二训练装置发送所述损失函数。
4.根据权利要求1所述的方法,其特征在于,所述第一神经网络与所述第二神经网络属于所述待训练的神经网络的相同层。
5.根据权利要求4所述的方法,其特征在于,
所述从目标训练装置接收所述待训练的神经网络的输出值,包括:
从所述第一训练装置接收第一输出值,所述第一输出值为所述第一神经网络的输出值;
从所述第二训练装置接收第二输出值,所述第二输出值为所述第二神经网络的输出值;
所述根据所述待训练的神经网络的输出值确定所述待训练的神经网络的损失函数,包括:
通过全连接层处理所述第一输出值和所述第二输出值,得到所述待训练的神经网络的损失函数;
所述向所述目标训练装置发送所述损失函数或者所述损失函数对应的梯度,包括:
向所述第一训练装置和所述第二训练装置发送所述损失函数对应的梯度。
6.一种训练神经网络的方法,其特征在于,所述方法应用于第一训练装置,所述方法包括:
从控制装置接收第一神经网络,所述第一神经网络为待训练的神经网络的一个子网络,且所述第一神经网络不包含所述待训练的神经网络的输出层;
训练所述第一神经网络;
向所述控制装置发送训练完成的所述第一神经网络。
7.根据权利要求6所述的方法,其特征在于,所述训练所述第一神经网络,包括:
向第二训练装置发送所述第一神经网络的输出值,所述第一神经网络的输出值用于确定所述待训练的神经网络的损失函数;
从所述第二训练装置接收第一梯度,所述第一梯度为所述第二训练装置中的第二神经网络的输入层的梯度,所述第二神经网络为所述待训练的神经网络的另一个子网络,所述第一梯度为基于所述损失函数确定的梯度;
根据所述第一梯度训练所述第一神经网络。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
根据训练参数是否满足终止条件确定所述第一神经网络是否完成训练。
9.根据权利要求8所述的方法,其特征在于,所述训练参数包括训练轮数、训练时间和误码率中的至少一种,
所述根据训练参数是否满足终止条件确定所述第一神经网络是否完成训练,包括:
当所述待训练的神经网络的损失函数的值小于或等于损失函数阈值时,确定所述第二神经网络完成训练;和/或,
当所述训练轮数大于或等于轮数阈值时,确定所述第一神经网络完成训练;和/或,
当所述训练时间大于或等于时间阈值时,确定所述第一神经网络完成训练;和/或,
当所述误码率小于或等于误码率阈值时,确定所述第一神经网络完成训练。
10.一种训练神经网络的方法,其特征在于,所述方法应用于第二训练装置,包括:
从控制装置接收第二神经网络,所述第二神经网络为待训练的神经网络的一个子网络,且所述第二神经网络包含所述待训练的神经网络的输出层;
训练所述第二神经网络;
向所述控制装置发送训练完成的所述第二神经网络。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
向所述控制装置发送所述第二神经网络的输出值,所述第二神经网络的输出值用于确定所述待训练的神经网络的损失函数;
从所述控制装置接收所述损失函数或者所述损失函数对应的梯度;
根据所述损失函数或者所述损失函数对应的梯度确定所述第二神经网络的输入层的梯度。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
向第一训练装置发送所述第二神经网络的输入层的梯度,所述梯度用于所述第一训练装置中的第一神经网络的训练,其中,所述第二神经网络的输入层与所述第一神经网络的输出层相连,所述第一神经网络为所述待训练的神经网络的另一个子网络。
13.根据权利要求10至12中任一项所述的方法,其特征在于,所述训练所述第二神经网络,包括:
根据训练参数是否满足终止条件确定所述第二神经网络是否完成训练。
14.根据权利要求13所述的方法,其特征在于,所述训练参数包括训练轮数、训练时间、所述待训练的神经网络的损失函数和误码率中的至少一种,
所述根据训练参数是否满足终止条件确定所述第二神经网络是否完成训练,包括:
当所述训练轮数大于或等于轮数阈值时,确定所述第二神经网络完成训练;和/或,
当所述训练时间大于或等于时间阈值时,确定所述第二神经网络完成训练;和/或,
当所述损失函数的值小于或等于损失函数阈值时,确定所述第二神经网络完成训练;和/或,
当所述误码率小于或等于误码率阈值时,确定所述第二神经网络完成训练。
15.一种训练神经网络的装置,其特征在于,包括处理单元和通信接口,
所述处理单元用于控制所述通信接口执行:
获取待训练的神经网络;
向第一训练装置发送第一神经网络,所述第一神经网络为所述待训练的神经网络的子网络,所述第一训练装置用于训练所述第一神经网络;
向第二训练装置发送第二神经网络,所述第二神经网络为所述待训练的神经网络的子网络,且所述第二神经网络与所述第一神经网络相异,所述第二训练装置用于训练所述第二神经网络;
从目标训练装置接收所述待训练的神经网络的输出值,所述目标训练装置为训练装置集合中包含所述待训练的神经网络的输出层的训练装置,所述训练装置集合包括所述第一训练装置和所述第二训练装置;
所述处理单元还用于执行:
根据所述待训练的神经网络的输出值确定所述待训练的神经网络的损失函数;
所述处理单元还用于控制所述通信接口执行:
向所述目标训练装置发送所述损失函数或者所述损失函数对应的梯度。
16.根据权利要求15所述的装置,其特征在于,所述第一神经网络与所述第二神经网络属于所述待训练的神经网络的不同层。
17.根据权利要求16所述的装置,其特征在于,所述第二神经网络包括所述待训练的神经网络的输出层,
所述处理单元具体用于控制所述通信接口执行:
从所述第二训练装置接收所述待训练的神经网络的输出值;
向所述第二训练装置发送所述损失函数。
18.根据权利要求15所述的装置,其特征在于,所述第一神经网络与所述第二神经网络属于所述待训练的神经网络的相同层。
19.根据权利要求18所述的装置,其特征在于,
所述处理单元具体用于控制所述通信接口执行:
从所述第一训练装置接收第一输出值,所述第一输出值为所述第一神经网络的输出值;
从所述第二训练装置接收第二输出值,所述第二输出值为所述第二神经网络的输出值;
所述处理单元具体用于:
通过全连接层处理所述第一输出值和所述第二输出值,得到所述待训练的神经网络的损失函数;
所述处理单元具体用于控制所述通信接口执行:
向所述第一训练装置和所述第二训练装置发送所述损失函数对应的梯度。
20.一种训练神经网络的装置,其特征在于,处理单元和通信接口,
所述处理单元用于控制所述通信接口执行:
从控制装置接收第一神经网络,所述第一神经网络为待训练的神经网络的一个子网络,且所述第一神经网络不包含所述待训练的神经网络的输出层;
所述处理单元还用于执行:
训练所述第一神经网络;
所述处理单元还用于控制所述通信接口执行:
向所述控制装置发送训练完成的所述第一神经网络。
21.根据权利要求20所述的装置,其特征在于,
所述处理单元具体用于控制所述通信接口执行:
向第二训练装置发送所述第一神经网络的输出值,所述第一神经网络的输出值用于确定所述待训练的神经网络的损失函数;
从所述第二训练装置接收第一梯度,所述第一梯度为所述第二训练装置中的第二神经网络的输入层的梯度,所述第二神经网络为所述待训练的神经网络的另一个子网络,所述第一梯度为基于所述损失函数确定的梯度;
所述处理单元具体用于执行:
根据所述第一梯度训练所述第一神经网络。
22.根据权利要求20或21所述的装置,其特征在于,所述处理单元还用于执行:
根据训练参数是否满足终止条件确定所述第一神经网络是否完成训练。
23.根据权利要求22所述的装置,其特征在于,所述训练参数包括训练轮数、训练时间和误码率中的至少一种,
所述处理单元具体用于执行:
当所述待训练的神经网络的损失函数的值小于或等于损失函数阈值时,确定所述第二神经网络完成训练;和/或,
当所述训练轮数大于或等于轮数阈值时,确定所述第一神经网络完成训练;和/或,
当所述训练时间大于或等于时间阈值时,确定所述第一神经网络完成训练;和/或,
当所述误码率小于或等于误码率阈值时,确定所述第一神经网络完成训练。
24.一种训练神经网络的装置,其特征在于,处理单元和通信接口,,
所述处理单元用于控制所述通信接口执行:
从控制装置接收第二神经网络,所述第二神经网络为待训练的神经网络的一个子网络,且所述第二神经网络包含所述待训练的神经网络的输出层;
所述处理单元还用于执行:
训练所述第二神经网络;
所述处理单元还用于控制所述通信接口执行:
向所述控制装置发送训练完成的所述第二神经网络。
25.根据权利要求24所述的装置,其特征在于,
所述处理单元具体用于控制所述通信接口执行:
向所述控制装置发送所述第二神经网络的输出值,所述第二神经网络的输出值用于确定所述待训练的神经网络的损失函数;
从所述控制装置接收所述损失函数或者所述损失函数对应的梯度;
所述处理单元具体用于执行:
根据所述损失函数或者所述损失函数对应的梯度确定所述第二神经网络的输入层的梯度。
26.根据权利要求25所述的装置,其特征在于,所述处理单元还用于控制所述通信接口执行:
向第一训练装置发送所述第二神经网络的输入层的梯度,所述梯度用于所述第一训练装置中的第一神经网络的训练,其中,所述第二神经网络的输入层与所述第一神经网络的输出层相连,所述第一神经网络为所述待训练的神经网络的另一个子网络。
27.根据权利要求24至26中任一项所述的装置,其特征在于,所述处理单元还用于执行:
根据训练参数是否满足终止条件确定所述第二神经网络是否完成训练。
28.根据权利要求27所述的装置,其特征在于,所述训练参数包括训练轮数、训练时间、所述待训练的神经网络的损失函数和误码率中的至少一种,
所述处理单元具体用于执行:
当所述训练轮数大于或等于轮数阈值时,确定所述第二神经网络完成训练;和/或,
当所述训练时间大于或等于时间阈值时,确定所述第二神经网络完成训练;和/或,
当所述损失函数的值小于或等于损失函数阈值时,确定所述第二神经网络完成训练;和/或,
当所述误码率小于或等于误码率阈值时,确定所述第二神经网络完成训练。
29.一种训练神经网络的装置,其特征在于,包括处理器和接口电路,所述接口电路用于接收来自所述控制装置之外的其它装置的信号并传输至所述处理器,或将来自所述处理器的信号发送给所述控制装置之外的其它装置,所述处理器通过逻辑电路或执行代码指令用于实现如权利要求1至5中任一项所述的方法。
30.根据权利要求29所述的装置,其特征在于,所述装置还包括存储器,所述存储器用于存储被所述代码指令。
31.一种训练神经网络的装置,其特征在于,包括处理器和接口电路,所述接口电路用于接收来自所述控制装置之外的其它装置的信号并传输至所述处理器,或将来自所述处理器的信号发送给所述控制装置之外的其它装置,所述处理器通过逻辑电路或执行代码指令用于实现如权利要求6至9中任一项或权利要求10至14中任一项所述的方法。
32.根据权利要求31所述的装置,其特征在于,所述装置还包括存储器,所述存储器用于存储被所述代码指令。
33.一种训练神经网络的系统,其特征在于,包括:
如权利要求15至19中任一项所述的装置、如权利要求20至23中任一项所述的装置以及如权利要求24至28中任一项所述的装置;或者,
如权利要求29或30所述的装置以及至少一个如权利要求31或32所述的装置。
34.一种计算机可读存储介质,其特征在于,所述存储介质中存储有程序或指令,当所述程序或指令被运行时,实现如权利要求1至5中任一项所述的方法。
35.一种计算机可读存储介质,其特征在于,所述存储介质中存储有程序或指令,当所述程序或指令被运行时,实现如权利要求6至9中任一项或权利要求10至14中任一项所述的方法。
CN201910267854.9A 2019-04-03 2019-04-03 训练神经网络的方法和装置 Pending CN111783932A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910267854.9A CN111783932A (zh) 2019-04-03 2019-04-03 训练神经网络的方法和装置
PCT/CN2020/079808 WO2020199914A1 (zh) 2019-04-03 2020-03-18 训练神经网络的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910267854.9A CN111783932A (zh) 2019-04-03 2019-04-03 训练神经网络的方法和装置

Publications (1)

Publication Number Publication Date
CN111783932A true CN111783932A (zh) 2020-10-16

Family

ID=72664695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910267854.9A Pending CN111783932A (zh) 2019-04-03 2019-04-03 训练神经网络的方法和装置

Country Status (2)

Country Link
CN (1) CN111783932A (zh)
WO (1) WO2020199914A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114356540A (zh) * 2021-10-30 2022-04-15 腾讯科技(深圳)有限公司 一种参数更新方法、装置、电子设备和存储介质
CN116362334A (zh) * 2021-12-22 2023-06-30 华为技术有限公司 智能模型的训练方法和装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104143327A (zh) * 2013-07-10 2014-11-12 腾讯科技(深圳)有限公司 一种声学模型训练方法和装置
CN106297774A (zh) * 2015-05-29 2017-01-04 中国科学院声学研究所 一种神经网络声学模型的分布式并行训练方法及系统
US20170133006A1 (en) * 2015-11-06 2017-05-11 Samsung Electronics Co., Ltd. Neural network training apparatus and method, and speech recognition apparatus and method
US20170323202A1 (en) * 2016-05-06 2017-11-09 Fujitsu Limited Recognition apparatus based on deep neural network, training apparatus and methods thereof
CN107480774A (zh) * 2017-08-11 2017-12-15 山东师范大学 基于集成学习的动态神经网络模型训练方法和装置
US20180121806A1 (en) * 2016-10-27 2018-05-03 International Business Machines Corporation Efficient parallel training of a network model on multiple graphics processing units
CN108460457A (zh) * 2018-03-30 2018-08-28 苏州纳智天地智能科技有限公司 一种面向卷积神经网络的多机多卡混合并行异步训练方法
CN109241880A (zh) * 2018-08-22 2019-01-18 北京旷视科技有限公司 图像处理方法、图像处理装置、计算机可读存储介质
US20190065951A1 (en) * 2017-08-31 2019-02-28 Micron Technology, Inc. Cooperative learning neural networks and systems
CN109426859A (zh) * 2017-08-22 2019-03-05 华为技术有限公司 神经网络训练系统、方法和计算机可读存储介质
CN109478254A (zh) * 2016-05-20 2019-03-15 渊慧科技有限公司 使用合成梯度来训练神经网络

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108229343B (zh) * 2017-12-18 2020-10-30 北京市商汤科技开发有限公司 目标对象关键点检测方法、深度学习神经网络及装置
CN109492761A (zh) * 2018-10-30 2019-03-19 深圳灵图慧视科技有限公司 实现神经网络的fpga加速装置、方法和系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104143327A (zh) * 2013-07-10 2014-11-12 腾讯科技(深圳)有限公司 一种声学模型训练方法和装置
CN106297774A (zh) * 2015-05-29 2017-01-04 中国科学院声学研究所 一种神经网络声学模型的分布式并行训练方法及系统
US20170133006A1 (en) * 2015-11-06 2017-05-11 Samsung Electronics Co., Ltd. Neural network training apparatus and method, and speech recognition apparatus and method
US20170323202A1 (en) * 2016-05-06 2017-11-09 Fujitsu Limited Recognition apparatus based on deep neural network, training apparatus and methods thereof
CN109478254A (zh) * 2016-05-20 2019-03-15 渊慧科技有限公司 使用合成梯度来训练神经网络
US20180121806A1 (en) * 2016-10-27 2018-05-03 International Business Machines Corporation Efficient parallel training of a network model on multiple graphics processing units
CN107480774A (zh) * 2017-08-11 2017-12-15 山东师范大学 基于集成学习的动态神经网络模型训练方法和装置
CN109426859A (zh) * 2017-08-22 2019-03-05 华为技术有限公司 神经网络训练系统、方法和计算机可读存储介质
US20190065951A1 (en) * 2017-08-31 2019-02-28 Micron Technology, Inc. Cooperative learning neural networks and systems
CN108460457A (zh) * 2018-03-30 2018-08-28 苏州纳智天地智能科技有限公司 一种面向卷积神经网络的多机多卡混合并行异步训练方法
CN109241880A (zh) * 2018-08-22 2019-01-18 北京旷视科技有限公司 图像处理方法、图像处理装置、计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TAKUTOSHI NAKAYAMA 等: ""A training method for SpikeProp without redundant spikes — Removing unnecessary sub-connections during training"", 2016 12TH INTERNATIONAL CONFERENCE ON NATURAL COMPUTATION, FUZZY SYSTEMS AND KNOWLEDGE DISCOVERY (ICNC-FSKD) *
桑若愚: ""拟牛顿法硬件加速平台的实现及在神经网络训练中的应用"", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 *

Also Published As

Publication number Publication date
WO2020199914A1 (zh) 2020-10-08

Similar Documents

Publication Publication Date Title
CN110839184B (zh) 基于流量预测的移动前传光网络带宽调整方法及装置
Yoshida et al. MAB-based client selection for federated learning with uncertain resources in mobile networks
Restuccia et al. DeepWiERL: Bringing deep reinforcement learning to the internet of self-adaptive things
CN111629380A (zh) 面向高并发多业务工业5g网络的动态资源分配方法
CN116541106B (zh) 计算任务卸载方法、计算设备及存储介质
Gao et al. Deep neural network task partitioning and offloading for mobile edge computing
CN113391824A (zh) 计算卸载方法、电子设备、存储介质以及计算机程序产品
CN111783932A (zh) 训练神经网络的方法和装置
Huang et al. Enabling low latency edge intelligence based on multi-exit dnns in the wild
CN114723057A (zh) 一种用于多接入边缘计算系统的神经网络协同推理方法
CN117098189A (zh) 一种基于gat混合动作多智能体强化学习的计算卸载和资源分配方法
CN115243382A (zh) Ris辅助边缘计算的去蜂窝网络用户公平性资源分配方法
US11742901B2 (en) Deep learning based beamforming method and apparatus
CN116848828A (zh) 机器学习模型分布
Gracla et al. Learning resource scheduling with high priority users using deep deterministic policy gradients
CN116663644A (zh) 一种多压缩版本的云边端dnn协同推理加速方法
CN116828534A (zh) 基于强化学习的密集网络大规模终端接入与资源分配方法
CN113543065B (zh) 一种基于强化学习的通信资源分配方法及其相关设备
CN113411112B (zh) 一种分布式鲁棒多小区协作波束成形admm网络的构建方法
Nguyen et al. Applications of deep learning and deep reinforcement learning in 6G networks
CN112996125B (zh) 一种调度方法及装置
CN116150612A (zh) 模型训练的方法和通信装置
Yang et al. Online reliability optimization for URLLC in HetNets: a DQN approach
US20240088952A1 (en) Beamforming method and apparatus using deep neural network in wireless communication system
KR102643816B1 (ko) 공간분할 다중접속 기반 에너지 효율성 향상을 위한 오프로딩 무선 통신 시스템

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination