CN110533178A - 一种神经网络模型训练方法、装置及系统 - Google Patents
一种神经网络模型训练方法、装置及系统 Download PDFInfo
- Publication number
- CN110533178A CN110533178A CN201810514928.XA CN201810514928A CN110533178A CN 110533178 A CN110533178 A CN 110533178A CN 201810514928 A CN201810514928 A CN 201810514928A CN 110533178 A CN110533178 A CN 110533178A
- Authority
- CN
- China
- Prior art keywords
- neural network
- data
- network model
- gradient
- parameter
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
本申请实施例提供了一种神经网络模型训练方法、装置及系统,其中,神经网络模型训练系统包括多个训练设备和参数服务器,神经网络模型训练方法可以应用于各训练设备,包括:获取样本数据,样本数据为针对各训练设备、将原始训练样本集进行划分得到各子样本集中的数据;将样本数据输入神经网络模型,得到神经网络输出;根据神经网络输出及预先指定的标签数据,计算神经网络模型的调整数据;将调整数据发送至参数服务器;接收参数服务器反馈的按照预设叠加方式对各训练设备的调整数据叠加得到的叠加数据;基于叠加数据,更新神经网络模型的网络参数。通过本方案,可以提高神经网络模型训练的效率。
Description
技术领域
本申请涉及机器学习技术领域,特别是涉及一种神经网络模型训练方法、装置及系统。
背景技术
神经网络通过模仿人脑的机制来解释数据,是一种通过建立和模拟人脑进行分析学习的智能模型,已在语音识别、图像分类、人脸识别、自然语言处理、广告投放等应用领域取得了显著的效果。
目前,对神经网络模型的训练主要是基于训练样本集对神经网络模型进行训练。在神经网络模型训练开始前,对网络参数进行随机初始化,将训练样本集中的样本数据逐一输入神经网络模型中;每输入一个样本数据,则基于神经网络模型的实际输出与期望输出之间的差异,对网络参数进行一次更新,直至满足训练结束条件时,确定神经网络模型训练结束。
随着对神经网络输出结果的精确度要求不断提高,神经网络模型的训练规模不断扩大,训练样本集中的样本数据越来越多,导致在单台训练设备上进行神经网络模型训练的耗时太大,神经网络模型的训练过程可能需要耗时一周甚至更长的时间,严重影响神经网络模型训练的效率。
发明内容
本申请实施例的目的在于提供一种神经网络模型训练方法、装置及系统,以提高神经网络模型训练的效率。具体技术方案如下:
第一方面,本申请实施例提供了一种神经网络模型训练方法,应用于神经网络模型训练系统中的各训练设备,所述系统包括多个训练设备及参数服务器,所述方法包括:
获取样本数据,所述样本数据为针对各训练设备、将原始训练样本集进行划分得到各子样本集中的数据;
将所述样本数据输入神经网络模型,得到神经网络输出;
根据所述神经网络输出及预先指定的标签数据,计算所述神经网络模型的调整数据;
将所述调整数据发送至所述参数服务器;
接收所述参数服务器反馈的按照预设叠加方式对各训练设备的调整数据叠加得到的叠加数据;
基于所述叠加数据,更新所述神经网络模型的网络参数。
可选的,所述调整数据包括梯度值;
所述根据所述神经网络输出及预先指定的标签数据,计算所述神经网络模型的调整数据,包括:
根据所述神经网络输出及预先指定的标签数据,计算所述神经网络输出与所述标签数据的差异;
根据所述差异,利用预设随机梯度下降算法,计算所述神经网络模型的梯度值;
所述接收所述参数服务器反馈的按照预设叠加方式对各训练设备的调整数据叠加得到的叠加数据,包括:
接收所述参数服务器反馈的对各训练设备的梯度值求和得到的梯度和。
可选的,所述基于所述叠加数据,更新所述神经网络模型的网络参数,包括:
获取所述系统中训练设备的数量;
基于所述梯度和及所述数量,计算梯度均值;
根据预设学习率、所述梯度均值及所述神经网络模型的当前网络参数,利用第一梯度下降公式,更新所述神经网络模型的网络参数,其中,所述第一梯度下降公式为:
所述Wi+1为更新后的所述神经网络模型的网络参数,所述Wi为所述神经网络模型的当前网络参数,所述η为预设学习率,所述为梯度均值。
可选的,所述基于所述叠加数据,更新所述神经网络模型的网络参数,包括:
根据缩放学习率、所述梯度和及所述神经网络模型的当前网络参数,利用第二梯度下降公式,更新所述神经网络模型的网络参数,其中,所述缩放学习率为预先对预设学习率与所述系统中训练设备的数量相除得到的商值,所述第二梯度下降公式为:
所述Wi+1为更新后的所述神经网络模型的网络参数,所述Wi为所述神经网络模型的当前网络参数,所述为梯度和。
第二方面,本申请实施例提供了一种神经网络模型训练方法,应用于神经网络模型训练系统中的参数服务器,所述系统包括多个训练设备及参数服务器,所述方法包括:
接收各训练设备发送的调整数据,所述调整数据为各训练设备根据样本数据的神经网络输出及预先指定的标签数据计算得到;
按照预设叠加方式,对各训练设备的调整数据进行叠加,得到叠加数据;
发送所述叠加数据至各训练设备,以使各训练设备基于所述叠加数据,更新神经网络模型的网络参数。
可选的,所述调整数据为各训练设备根据样本数据的神经网络输出与所述标签数据的差异,利用预设随机梯度下降算法,计算得到的所述神经网络模型的梯度值;
所述按照预设叠加方式,对各训练设备的调整数据进行叠加,得到叠加数据,包括:
对各训练设备的梯度值求和,得到梯度和;
所述发送所述叠加数据至各训练设备,包括:
发送所述梯度和至各训练设备,以使各训练设备基于所述梯度和,更新神经网络模型的网络参数。
第三方面,本申请实施例提供了一种神经网络模型训练装置,应用于神经网络模型训练系统中的各训练设备,所述系统包括多个训练设备及参数服务器,所述装置包括:
获取模块,用于获取样本数据,所述样本数据为针对各训练设备、将原始训练样本集进行划分得到各子样本集中的数据;
神经网络计算模块,用于将所述样本数据输入神经网络模型,得到神经网络输出;
调整数据计算模块,用于根据所述神经网络输出及预先指定的标签数据,计算所述神经网络模型的调整数据;
发送模块,用于将所述调整数据发送至所述参数服务器;
接收模块,用于接收所述参数服务器反馈的按照预设叠加方式对各训练设备的调整数据叠加得到的叠加数据;
更新模块,用于基于所述叠加数据,更新所述神经网络模型的网络参数。
可选的,所述调整数据包括梯度值;
所述调整数据计算模块,具体用于:
根据所述神经网络输出及预先指定的标签数据,计算所述神经网络输出与所述标签数据的差异;
根据所述差异,利用预设随机梯度下降算法,计算所述神经网络模型的梯度值;
所述接收模块,具体用于:
接收所述参数服务器反馈的对各训练设备的梯度值求和得到的梯度和。
可选的,所述更新模块,具体用于:
获取所述系统中训练设备的数量;
基于所述梯度和及所述数量,计算梯度均值;
根据预设学习率、所述梯度均值及所述神经网络模型的当前网络参数,利用第一梯度下降公式,更新所述神经网络模型的网络参数,其中,所述第一梯度下降公式为:
所述Wi+1为更新后的所述神经网络模型的网络参数,所述Wi为所述神经网络模型的当前网络参数,所述η为预设学习率,所述为梯度均值。
可选的,所述更新模块,具体用于:
根据缩放学习率、所述梯度和及所述神经网络模型的当前网络参数,利用第二梯度下降公式,更新所述神经网络模型的网络参数,其中,所述缩放学习率为预先对预设学习率与所述系统中训练设备的数量相除得到的商值,所述第二梯度下降公式为:
所述Wi+1为更新后的所述神经网络模型的网络参数,所述Wi为所述神经网络模型的当前网络参数,所述为梯度和。
第四方面,本申请实施例提供了一种神经网络模型训练装置,应用于神经网络模型训练系统中的参数服务器,所述系统包括多个训练设备及参数服务器,所述装置包括:
接收模块,用于接收各训练设备发送的调整数据,所述调整数据为各训练设备根据样本数据的神经网络输出及预先指定的标签数据计算得到;
叠加模块,用于按照预设叠加方式,对各训练设备的调整数据进行叠加,得到叠加数据;
发送模块,用于发送所述叠加数据至各训练设备,以使各训练设备基于所述叠加数据,更新神经网络模型的网络参数。
可选的,所述调整数据为各训练设备根据样本数据的神经网络输出与所述标签数据的差异,利用预设随机梯度下降算法,计算得到的所述神经网络模型的梯度值;
所述叠加模块,具体用于:
对各训练设备的梯度值求和,得到梯度和;
所述发送模块,具体用于:
发送所述梯度和至各训练设备,以使各训练设备基于所述梯度和,更新神经网络模型的网络参数。
第五方面,本申请实施例提供了一种训练设备,所述训练设备包括处理器和存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现本申请实施例第一方面所述的任一方法步骤。
第六方面,本申请实施例提供了一种参数服务器,所述参数服务器包括处理器和存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现本申请实施例第二方面所述的任一方法步骤。
第七方面,本申请实施例提供了一种神经网络模型训练系统,所述系统包括本申请实施例第五方面所述的多个训练设备,以及第六方面所述的参数服务器。
本申请实施例提供的一种神经网络模型训练方法、装置及系统,各训练设备通过获取样本数据,将样本数据输入神经网络模型,得到神经网络输出,根据神经网络输出及预先指定的标签数据,计算神经网络模型的调整数据,将调整数据发送至参数服务器,参数服务器按照预设叠加方式对各训练设备的调整数据进行叠加,得到叠加数据,参数服务器将叠加数据发送至各训练设备,各训练设备基于叠加数据,更新神经网络模型的网络参数。通过包含有多个训练设备和参数服务器的训练系统,将神经网络训练过程分担到多个训练设备中进行,通过多个训练设备与参数服务器的交互,实现神经网络模型训练;训练样本为针对各训练设备、将原始训练样本集进行划分得到各子样本集中的数据,通过将数量庞大的总训练样本集进行划分,使得每个训练设备参与训练的训练样本较少,每个训练设备的训练耗时得以减少,并且各训练设备之间可以并行训练,有效提高神经网络模型训练的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的神经网络训练系统的结构示意图;
图2为本申请实施例的神经网络训练方法的交互流程示意图;
图3为相关技术的单训练设备的神经网络训练方法的流程示意图;
图4为本申请实施例的应用于各训练设备的神经网络训练装置的结构示意图;
图5为本申请实施例的应用于参数服务器的神经网络训练装置的结构示意图;
图6为本申请实施例的训练设备的结构示意图;
图7为本申请实施例的参数服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了提高神经网络模型训练的效率,本申请实施例提供了一种神经网络模型训练方法、装置及系统。
神经网络模型训练系统为实现神经网络模型分布式训练的系统,如图1所示,该训练系统包括多个训练设备110和参数服务器120,该训练系统的神经网络模型分布式训练为基于数据并行的分布式训练方式,即各训练设备110的子训练样本集为对原始训练样本集进行划分得到。
下面通过训练设备110与参数服务器120之间的交互对本申请实施例所提供的神经网络模型训练方法进行介绍,如图2所示,交互的神经网络模型训练方法包括:
S201,各训练设备获取样本数据。
其中,样本数据为针对各训练设备、将原始训练样本集进行划分得到各子样本集中的数据。各训练设备可以对应有各自的子训练样本集,各训练设备各自的子训练样本集是基于对原始训练样本集进行划分得到的,并且为了保证各训练设备的神经网络模型的一致性,各训练设备各自的子训练样本集可以为对原始训练样本集进行均分得到。样本数据的获取可以是从各自的子训练样本集中获取,各训练设备获取样本数据可以是按序获取,也可以是随机获取。神经网络模型的训练过程,实际就是逐一将获取的样本数据输入神经网络模型,通过对网络参数的不断更新实现。
S202,各训练设备将样本数据输入神经网络模型,得到神经网络输出。
神经网络模型可以为CNN(Convolutional Neural Network,卷积神经网络)模型、RNN(Recurrent Neural Network,循环神经网络)模型、LSTM(Long Short Term Memory,长短期记忆网络)模型等常规的深度学习网络模型。各训练设备的初始神经网络模型可以相同,即各训练设备的初始神经网络模型可以具有相同的初始化网络参数,每输入一个样本数据至神经网络模型,就可以得到一个神经网络输出,该神经网络输出即为对输入的样本数据进行卷积、池化等运算后得到的数据。当然,各训练设备的初始神经网络模型也可以不相同,通过网络参数的调整过程,也可将各训练设备的神经网络模型逐渐调整至相同。
S203,各训练设备根据神经网络输出及预先指定的标签数据,计算神经网络模型的调整数据。
神经网络模型的训练是对网络参数不断进行更新、优化的过程,网络参数为神经网络中用于提取特征的关键变量,最初由随机初始化产生,后续根据训练调整。在训练完成之前,神经网络模型的实际输出与期望输出会存在明显差异,训练的目的是通过网络参数的调整,使得差异越来越小,实际输出能够逼近于期望输出,调整数据即为在进行网络参数调整时所使用的数据,调整数据可以为梯度值等用于指示网络参数的调整方向和调整大小。标签数据即为期望输出,各训练设备所选择的标签数据可以为该训练设备的子训练样本集中的任一个样本数据,也可以为设定的一个期望数据,还可以为参与本次运算的样本数据,因此,各训练设备所选择的标签数据可以相同也可以不相同。
在目前的神经网络训练中,通常使用SGD(Stochastic Gradient Descent,随机梯度下降)算法进行训练,SGD算法是一种无明显优化算法,适用于控制变量较多、受控系统比较复杂、无法建立准确数学模型的最优化控制过程,SGD算法中随机选取一个点进行梯度下降,进行最优值求解。在单训练设备的神经网络模型训练方法中,如图3所示,可以包括如下步骤:
S301,随机初始化网络参数。
初始神经网络模型的网络参数可以为对网络参数进行随机初始化得到的神经网络模型。
S302,从训练样本集中获取任一样本数据。
S303,将样本数据输入神经网络模型,得到神经网络输出,并基于神经网络输出与预先指定的标签数据,计算梯度值。
S304,基于预设学习率及梯度值,更新神经网络参数。
具体的,更新神经网络参数的方式,可以为利用随机梯度下降的参数更新公式进行更新,随机梯度下降的参数更新公式,可以为:
Wi+1为更新后的神经网络模型的网络参数,Wi为神经网络模型的当前网络参数,η为预设学习率,为梯度值。
S305,判断是否达到训练结束条件,若是则执行S306,否则执行S302。
S306,确定神经网络模型学习结束。
可选的,S203具体可以为:
各训练设备根据神经网络输出及预先指定的标签数据,计算神经网络输出与标签数据的差异;
根据该差异,利用预设随机梯度下降算法,计算神经网络模型的梯度值。
SGD算法给出了计算梯度值的具体方式,即通过比较神经网络输出与标签数据,分析两者之间的差异,根据差异来确定神经网络模型的梯度值。当然,基于SGD算法,还延伸出了很多种类似的训练方法,具有相同的特点:在参数服务器侧需要进行数据叠加,这类算法均适用于本实施例,这里不再一一赘述。
S204,各训练设备将调整数据发送至参数服务器。
各训练设备在计算得到调整数据后,可以将调整数据发送至参数服务器,训练设备可以是计算得到一个调整数据就将该调整数据发送至参数服务器,也可以是计算各样本数据对应的调整数据,对调整数据进行标记,再将多个调整数据发送至参数服务器。
S205,参数服务器按照预设叠加方式,对各训练设备的调整数据进行叠加,得到叠加数据。
由于样本数据可能不同,不同的样本数据输入各训练设备的神经网络模型,通过计算会得到不同的调整数据,因此,参数服务器在接收到各训练设备的调整数据后,需要对调整数据进行叠加运算。预设叠加方式可以为对各调整数据进行加权求和(权值的分配与预先分配的各训练设备的重要度相关),也可以为直接将各调整数据相加。
由于调整数据可以为各训练设备利用预设随机梯度下降算法,计算得到的梯度值,则可选的,S205具体可以为:
参数服务器对各训练设备的梯度值求和,得到梯度和。
在利用SGD算法时,对梯度值进行求和得到的梯度和即为叠加数据,对梯度值进行求和,就是直接将各训练设备的梯度值相加。
S206,参数服务器发送叠加数据至各训练设备。
参数服务器在计算得到叠加数据后,直接将叠加数据发送至各训练设备,对应于调整数据可以为各训练设备利用预设随机梯度下降算法,计算得到的梯度值,叠加数据可以为对各训练设备的梯度值求和,得到梯度和。
可选的,S206具体可以为:
发送梯度和至各训练设备。
也就是说,各训练设备所接收到的叠加数据可以为参数服务器反馈的对各训练设备的梯度值求和得到的梯度和。
S207,各训练设备基于叠加数据,更新神经网络模型的网络参数。
参数服务器在计算得到叠加数据后,为了保证各训练设备进行网络参数更新时所依据的参数相同,需要对叠加数据进行均分运算,首先考虑到的是由参数服务器进行均分运算。然而,由于例如梯度等调整数据的规模非常大,通常包含几百万的数据量,所以每次求平均值操作需要消费大量的计算资源,例如网络参数规模有100万个,那么求一次平均值就需要对梯度和中的100万个参数做一次除法操作。参数服务器即需要进行叠加运算,又需要进行均分运算,在参数规模大时,参数服务器的运算量过大,使得参数服务器的运行效率较低。
而在本实施例中,参数服务器只需要进行叠加运算,将叠加数据发送至各训练设备,将均分运算推迟到各训练设备上进行,避免了参数服务器进行均分运算的过程,也就是说,各训练设备可以基于叠加数据,更新神经网络模型的网络参数,有效减小参数服务器的计算量。其中,预设学习率为设置的缩放因子,通常情况下,在每次进行网络参数调整时,各训练设备的预设学习率相同或相近。
各训练设备在得到叠加数据后,基于网络参数的更新策略即可更新神经网络模型的网络参数。可选的,S207具体可以为:
获取训练系统中训练设备的数量;
基于梯度和及训练系统中训练设备的数量,计算梯度均值;
根据预设学习率、梯度均值及神经网络模型的当前网络参数,利用第一梯度下降公式,更新神经网络模型的网络参数,其中,第一梯度下降公式为:
Wi+1为更新后的神经网络模型的网络参数,Wi为神经网络模型的当前网络参数,η为预设学习率,为梯度均值。
训练系统中训练设备的数量可以是各训练设备统计的;也可以是在搭建训练系统时,在各训练设备中写入的;还可以是参数服务器统计的,在进行神经网络模型训练时,各训练设备从参数服务器获取该数量。
各训练设备在接收到梯度和之后,可以基于梯度和以及训练系统中训练设备的数量,计算梯度均值,例如,若梯度和为训练系统中训练设备的数量为n,则梯度均值为也就是说,本实施例中,将参数服务器进行均值运算的过程推迟到了各训练设备中进行,即将计算量移植到了各训练设备,而各训练设备并不需要进行梯度求和的操作,总的计算量仍然得到了减少。
可选的,S207具体还可以为:
根据缩放学习率、梯度和及神经网络模型的当前网络参数,基于利用第二梯度下降公式,更新神经网络模型的网络参数,其中,第二梯度下降公式为:
Wi+1为更新后的神经网络模型的网络参数,Wi为神经网络模型的当前网络参数,λ为缩放学习率,为梯度和。
缩放学习率为预先对预设学习率与训练系统中训练设备的数量相除得到的商值,具体可以是各训练设备预先利用缩放公式计算得到,缩放公式可以为:
λ=η/n (4)
η为预设学习率,n为训练系统中训练设备的数量。由于在进行网络参数更新时,通过例如公式(3)的梯度下降公式进行更新,对梯度和进行平均值的运算实际就是将梯度和除以训练设备的数量,这样,可以将除以训练设备的数量的步骤放在对预设学习率进行缩放,而进行缩放的过程可以在进行网络模型训练之前,作为常值输入,利用预设学习率缩放后的缩放学习率来进行更新,就可以完全避免求平均值的过程,各训练设备的计算量也可以不受影响,这样,就使得训练系统整体的计算量得到大幅度减小。
相应于图3所示的SGD算法的训练过程,本实施例的分布式训练过程与之相近。将一个训练设备的训练过程分担到多个训练设备中,提高的神经网络模型训练的效率。
图2给出了各训练设备对神经网络模型进行训练时,对网络参数进行一次更新的过程,如果未达到训练结束条件,则各训练设备重新获取一个样本数据,再次执行图2所示的流程,再次获取的样本数据可以与之前获取过的样本数据相同,也可以不相同,当然,为了保证对样本数据的覆盖,每次从未参与运算的样本数据中获取新的样本数据进行运算。循环执行图2所示的流程,直至达到训练结束条件,则确定各训练设备对神经网络模型训练完成。
由于各训练设备在一次网络参数更新时,所各训练设备之间所依据的预设学习率/缩放学习率、梯度均值/梯度和相同,各训练设备每次进行相同的网络参数更新,经过多次训练最终得到的神经网络模型也可以完全相同,因此,可以从任一个训练设备中读取神经网络模型进行应用。
应用本实施例,各训练设备通过获取样本数据,将样本数据输入神经网络模型,得到神经网络输出,根据神经网络输出及预先指定的标签数据,计算神经网络模型的调整数据,将调整数据发送至参数服务器,参数服务器按照预设叠加方式对各训练设备的调整数据进行叠加,得到叠加数据,参数服务器将叠加数据发送至各训练设备,各训练设备基于叠加数据,更新神经网络模型的网络参数。通过包含有多个训练设备和参数服务器的训练系统,将神经网络训练过程分担到多个训练设备中进行,通过多个训练设备与参数服务器的交互,实现神经网络模型训练;训练样本为针对各训练设备、将原始训练样本集进行划分得到各子样本集中的数据,通过将数量庞大的总训练样本集进行划分,使得每个训练设备参与训练的训练样本较少,每个训练设备的训练耗时得以减少,并且各训练设备之间可以并行训练,有效提高神经网络模型训练的效率。并且,与叠加、平均运算均在参数服务器中执行相比,本实施例将求平均的运算移植到了各训练设备,减轻了参数服务器的计算压力,可以提高参数服务器的运行效率。
相应于上述方法实施例,本申请实施例提供了一种应用于神经网络模型训练系统中各训练设备的神经网络模型训练装置,如图4所示,该神经网络模型训练装置可以包括:
获取模块410,用于获取样本数据,所述样本数据为针对各训练设备、将原始训练样本集进行划分得到各子样本集中的数据;
神经网络计算模块420,用于将所述样本数据输入神经网络模型,得到神经网络输出;
调整数据计算模块430,用于根据所述神经网络输出及预先指定的标签数据,计算所述神经网络模型的调整数据;
发送模块440,用于将所述调整数据发送至所述参数服务器;
接收模块450,用于接收所述参数服务器反馈的按照预设叠加方式对各训练设备的调整数据叠加得到的叠加数据;
更新模块460,用于基于所述叠加数据及所述数量,更新所述神经网络模型的网络参数。
可选的,所述调整数据包括梯度值;
所述调整数据计算模块430,具体可以用于:
根据所述神经网络输出及预先指定的标签数据,计算所述神经网络输出与所述标签数据的差异;
根据所述差异,利用预设随机梯度下降算法,计算所述神经网络模型的梯度值;
所述接收模块450,具体可以用于:
接收所述参数服务器反馈的对各训练设备的梯度值求和得到的梯度和。
可选的,所述更新模块460,具体可以用于:
获取所述系统中训练设备的数量;
基于所述梯度和及所述数量,计算梯度均值;
根据预设学习率、所述梯度均值及所述神经网络模型的当前网络参数,利用第一梯度下降公式,更新所述神经网络模型的网络参数,其中,所述第一梯度下降公式为:
所述Wi+1为更新后的所述神经网络模型的网络参数,所述Wi为所述神经网络模型的当前网络参数,所述η为预设学习率,所述为梯度均值。
可选的,所述更新模块460,具体可以用于:
根据缩放学习率、所述梯度和及所述神经网络模型的当前网络参数,利用第二梯度下降公式,更新所述神经网络模型的网络参数,其中,所述缩放学习率为预先对预设学习率与所述系统中训练设备的数量相除得到的商值,所述第二梯度下降公式为:
所述Wi+1为更新后的所述神经网络模型的网络参数,所述Wi为所述神经网络模型的当前网络参数,所述为梯度和。
相应于上述方法实施例,本申请实施例还提供了一种应用于神经网络模型训练系统中参数服务器的神经网络模型训练装置,如图5所示,该神经网络模型训练装置可以包括:
接收模块510,用于接收各训练设备发送的调整数据,所述调整数据为各训练设备根据样本数据的神经网络输出及预先指定的标签数据计算得到;
叠加模块520,用于按照预设叠加方式,对各训练设备的调整数据进行叠加,得到叠加数据;
发送模块530,用于发送所述叠加数据至各训练设备,以使各训练设备基于所述叠加数据,更新神经网络模型的网络参数。
可选的,所述调整数据为各训练设备根据样本数据的神经网络输出与所述标签数据的差异,利用预设随机梯度下降算法,计算得到的所述神经网络模型的梯度值;
所述叠加模块520,具体可以用于:
对各训练设备的梯度值求和,得到梯度和;
所述发送模块530,具体可以用于:
发送所述梯度和至各训练设备,以使各训练设备基于所述梯度和,更新神经网络模型的网络参数。
应用本实施例,各训练设备通过获取样本数据,将样本数据输入神经网络模型,得到神经网络输出,根据神经网络输出及预先指定的标签数据,计算神经网络模型的调整数据,将调整数据发送至参数服务器,参数服务器按照预设叠加方式对各训练设备的调整数据进行叠加,得到叠加数据,参数服务器将叠加数据发送至各训练设备,各训练设备基于叠加数据,更新神经网络模型的网络参数。通过包含有多个训练设备和参数服务器的训练系统,将神经网络训练过程分担到多个训练设备中进行,通过多个训练设备与参数服务器的交互,实现神经网络模型训练;训练样本为针对各训练设备、将原始训练样本集进行划分得到各子样本集中的数据,通过将数量庞大的总训练样本集进行划分,使得每个训练设备参与训练的训练样本较少,每个训练设备的训练耗时得以减少,并且各训练设备之间可以并行训练,有效提高神经网络模型训练的效率。并且,与叠加、平均运算均在参数服务器中执行相比,本实施例将求平均的运算移植到了各训练设备,可以提高参数服务器的运行效率。
本申请实施例还提供了一种训练设备,如图6所示,所述训练设备600包括处理器601和存储器602;
所述存储器602,用于存放计算机程序;
所述处理器601,用于执行所述存储器602上所存放的程序时,实现本申请实施例所提供的应用于训练设备的神经网络模型训练方法的所有步骤。
本申请实施例还提供了一种参数服务器,如图7所示,所述参数服务器700包括处理器701和存储器702;
所述存储器702,用于存放计算机程序;
所述处理器701,用于执行所述存储器702上所存放的程序时,实现本申请实施例应用于参数服务器的神经网络模型训练方法的所有步骤。
上述存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本实施例中,该各训练设备600和参数服务器700的处理器通过读取存储器中存储的计算机程序,并通过运行该计算机程序,能够实现:各训练设备通过获取样本数据,将样本数据输入神经网络模型,得到神经网络输出,根据神经网络输出及预先指定的标签数据,计算神经网络模型的调整数据,将调整数据发送至参数服务器,参数服务器按照预设叠加方式对各训练设备的调整数据进行叠加,得到叠加数据,参数服务器将叠加数据发送至各训练设备,各训练设备基于叠加数据,更新神经网络模型的网络参数。通过包含有多个训练设备和参数服务器的训练系统,将神经网络训练过程分担到多个训练设备中进行,通过多个训练设备与参数服务器的交互,实现神经网络模型训练;训练样本为针对各训练设备、将原始训练样本集进行划分得到各子样本集中的数据,通过将数量庞大的总训练样本集进行划分,使得每个训练设备参与训练的训练样本较少,每个训练设备的训练耗时得以减少,并且各训练设备之间可以并行训练,有效提高神经网络模型训练的效率。并且,与叠加、平均运算均在参数服务器中执行相比,本实施例将求平均的运算移植到了各训练设备,可以提高参数服务器的运行效率。
另外,本申请实施例还提供了一种机器可读存储介质,包含于训练设备600,用于存储计算机程序,所述计算机程序被处理器执行时,实现本申请实施例所提供的应用于训练设备的神经网络模型训练方法的所有步骤。
本申请实施例还提供了一种机器可读存储介质,包含于参数服务器700,用于存储计算机程序,所述计算机程序被处理器执行时,实现本申请实施例所提供的应用于参数服务器的神经网络模型训练方法的所有步骤。
本实施例中,包含于训练设备600的机器可读存储介质存储有在运行时执行本申请实施例所提供的应用于训练设备的神经网络模型训练方法的应用程序,包含于参数服务器700的机器可读存储介质存储有在运行时执行本申请实施例所提供的应用于参数服务器的神经网络模型训练方法的应用程序,因此能够实现:各训练设备通过获取样本数据,将样本数据输入神经网络模型,得到神经网络输出,根据神经网络输出及预先指定的标签数据,计算神经网络模型的调整数据,将调整数据发送至参数服务器,参数服务器按照预设叠加方式对各训练设备的调整数据进行叠加,得到叠加数据,参数服务器将叠加数据发送至各训练设备,各训练设备基于叠加数据,更新神经网络模型的网络参数。通过包含有多个训练设备和参数服务器的训练系统,将神经网络训练过程分担到多个训练设备中进行,通过多个训练设备与参数服务器的交互,实现神经网络模型训练;训练样本为针对各训练设备、将原始训练样本集进行划分得到各子样本集中的数据,通过将数量庞大的总训练样本集进行划分,使得每个训练设备参与训练的训练样本较少,每个训练设备的训练耗时得以减少,并且各训练设备之间可以并行训练,有效提高神经网络模型训练的效率。并且,与叠加、平均运算均在参数服务器中执行相比,本实施例将求平均的运算移植到了各训练设备,可以提高参数服务器的运行效率。
对于训练设备、参数服务器以及机器可读存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统、训练设备、参数服务器以及机器可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (15)
1.一种神经网络模型训练方法,其特征在于,应用于神经网络模型训练系统中的各训练设备,所述系统包括多个训练设备及参数服务器,所述方法包括:
获取样本数据,所述样本数据为针对各训练设备、将原始训练样本集进行划分得到各子样本集中的数据;
将所述样本数据输入神经网络模型,得到神经网络输出;
根据所述神经网络输出及预先指定的标签数据,计算所述神经网络模型的调整数据;
将所述调整数据发送至所述参数服务器;
接收所述参数服务器反馈的按照预设叠加方式对各训练设备的调整数据叠加得到的叠加数据;
基于所述叠加数据,更新所述神经网络模型的网络参数。
2.根据权利要求1所述的方法,其特征在于,所述调整数据包括梯度值;
所述根据所述神经网络输出及预先指定的标签数据,计算所述神经网络模型的调整数据,包括:
根据所述神经网络输出及预先指定的标签数据,计算所述神经网络输出与所述标签数据的差异;
根据所述差异,利用预设随机梯度下降算法,计算所述神经网络模型的梯度值;
所述接收所述参数服务器反馈的按照预设叠加方式对各训练设备的调整数据叠加得到的叠加数据,包括:
接收所述参数服务器反馈的对各训练设备的梯度值求和得到的梯度和。
3.根据权利要求2所述的方法,其特征在于,所述基于所述叠加数据,更新所述神经网络模型的网络参数,包括:
获取所述系统中训练设备的数量;
基于所述梯度和及所述数量,计算梯度均值;
根据预设学习率、所述梯度均值及所述神经网络模型的当前网络参数,利用第一梯度下降公式,更新所述神经网络模型的网络参数,其中,所述第一梯度下降公式为:
所述Wi+1为更新后的所述神经网络模型的网络参数,所述Wi为所述神经网络模型的当前网络参数,所述η为预设学习率,所述为梯度均值。
4.根据权利要求2所述的方法,其特征在于,所述基于所述叠加数据,更新所述神经网络模型的网络参数,包括:
根据缩放学习率、所述梯度和及所述神经网络模型的当前网络参数,利用第二梯度下降公式,更新所述神经网络模型的网络参数,其中,所述缩放学习率为预先对预设学习率与所述系统中训练设备的数量相除得到的商值,所述第二梯度下降公式为:
所述Wi+1为更新后的所述神经网络模型的网络参数,所述Wi为所述神经网络模型的当前网络参数,所述为梯度和。
5.一种神经网络模型训练方法,其特征在于,应用于神经网络模型训练系统中的参数服务器,所述系统包括多个训练设备及参数服务器,所述方法包括:
接收各训练设备发送的调整数据,所述调整数据为各训练设备根据样本数据的神经网络输出及预先指定的标签数据计算得到;
按照预设叠加方式,对各训练设备的调整数据进行叠加,得到叠加数据;
发送所述叠加数据至各训练设备,以使各训练设备基于所述叠加数据,更新神经网络模型的网络参数。
6.根据权利要求5所述的方法,其特征在于,所述调整数据为各训练设备根据样本数据的神经网络输出与所述标签数据的差异,利用预设随机梯度下降算法,计算得到的所述神经网络模型的梯度值;
所述按照预设叠加方式,对各训练设备的调整数据进行叠加,得到叠加数据,包括:
对各训练设备的梯度值求和,得到梯度和;
所述发送所述叠加数据至各训练设备,包括:
发送所述梯度和至各训练设备,以使各训练设备基于所述梯度和,更新神经网络模型的网络参数。
7.一种神经网络模型训练装置,其特征在于,应用于神经网络模型训练系统中的各训练设备,所述系统包括多个训练设备及参数服务器,所述装置包括:
获取模块,用于获取样本数据,所述样本数据为针对各训练设备、将原始训练样本集进行划分得到各子样本集中的数据;
神经网络计算模块,用于将所述样本数据输入神经网络模型,得到神经网络输出;
调整数据计算模块,用于根据所述神经网络输出及预先指定的标签数据,计算所述神经网络模型的调整数据;
发送模块,用于将所述调整数据发送至所述参数服务器;
接收模块,用于接收所述参数服务器反馈的按照预设叠加方式对各训练设备的调整数据叠加得到的叠加数据;
更新模块,用于基于所述叠加数据,更新所述神经网络模型的网络参数。
8.根据权利要求7所述的装置,其特征在于,所述调整数据包括梯度值;
所述调整数据计算模块,具体用于:
根据所述神经网络输出及预先指定的标签数据,计算所述神经网络输出与所述标签数据的差异;
根据所述差异,利用预设随机梯度下降算法,计算所述神经网络模型的梯度值;
所述接收模块,具体用于:
接收所述参数服务器反馈的对各训练设备的梯度值求和得到的梯度和。
9.根据权利要求8所述的装置,其特征在于,所述更新模块,具体用于:
获取所述系统中训练设备的数量;
基于所述梯度和及所述数量,计算梯度均值;
根据预设学习率、所述梯度均值及所述神经网络模型的当前网络参数,利用第一梯度下降公式,更新所述神经网络模型的网络参数,其中,所述第一梯度下降公式为:
所述Wi+1为更新后的所述神经网络模型的网络参数,所述Wi为所述神经网络模型的当前网络参数,所述η为预设学习率,所述为梯度均值。
10.根据权利要求8所述的装置,其特征在于,所述更新模块,具体用于:
根据缩放学习率、所述梯度和及所述神经网络模型的当前网络参数,利用第二梯度下降公式,更新所述神经网络模型的网络参数,其中,所述缩放学习率为预先对预设学习率与所述系统中训练设备的数量相除得到的商值,所述第二梯度下降公式为:
所述Wi+1为更新后的所述神经网络模型的网络参数,所述Wi为所述神经网络模型的当前网络参数,所述为梯度和。
11.一种神经网络模型训练装置,其特征在于,应用于神经网络模型训练系统中的参数服务器,所述系统包括多个训练设备及参数服务器,所述装置包括:
接收模块,用于接收各训练设备发送的调整数据,所述调整数据为各训练设备根据样本数据的神经网络输出及预先指定的标签数据计算得到;
叠加模块,用于按照预设叠加方式,对各训练设备的调整数据进行叠加,得到叠加数据;
发送模块,用于发送所述叠加数据至各训练设备,以使各训练设备基于所述叠加数据,更新神经网络模型的网络参数。
12.根据权利要求11所述的装置,其特征在于,所述调整数据为各训练设备根据样本数据的神经网络输出与所述标签数据的差异,利用预设随机梯度下降算法,计算得到的所述神经网络模型的梯度值;
所述叠加模块,具体用于:
对各训练设备的梯度值求和,得到梯度和;
所述发送模块,具体用于:
发送所述梯度和至各训练设备,以使各训练设备基于所述梯度和,更新神经网络模型的网络参数。
13.一种训练设备,其特征在于,所述训练设备包括处理器和存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现如权利要求1-4任一所述的方法步骤。
14.一种参数服务器,其特征在于,所述参数服务器包括处理器和存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现如权利要求5-6任一所述的方法步骤。
15.一种神经网络模型训练系统,其特征在于,所述系统包括多个如权利要求13所述的训练设备,以及如权利要求14所述的参数服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810514928.XA CN110533178A (zh) | 2018-05-25 | 2018-05-25 | 一种神经网络模型训练方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810514928.XA CN110533178A (zh) | 2018-05-25 | 2018-05-25 | 一种神经网络模型训练方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110533178A true CN110533178A (zh) | 2019-12-03 |
Family
ID=68657730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810514928.XA Pending CN110533178A (zh) | 2018-05-25 | 2018-05-25 | 一种神经网络模型训练方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110533178A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112016673A (zh) * | 2020-07-24 | 2020-12-01 | 浙江工业大学 | 一种基于优化lstm的移动设备用户认证方法及装置 |
CN112988366A (zh) * | 2019-12-12 | 2021-06-18 | 中科寒武纪科技股份有限公司 | 参数服务器、主从客户机、权值参数的处理方法及系统 |
CN112990422A (zh) * | 2019-12-12 | 2021-06-18 | 中科寒武纪科技股份有限公司 | 参数服务器、客户机、权值参数的处理方法及系统 |
CN113746575A (zh) * | 2021-09-03 | 2021-12-03 | 北京航空航天大学 | 一种同步静止轨道卫星的信道衰落确定方法及系统 |
CN114386333A (zh) * | 2022-01-19 | 2022-04-22 | 郑州清源智能装备科技有限公司 | 一种边缘智能控制方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100179935A1 (en) * | 2009-01-13 | 2010-07-15 | Gm Global Technology Operations, Inc. | Spiking dynamical neural network for parallel prediction of multiple temporal events |
CN104978601A (zh) * | 2015-06-26 | 2015-10-14 | 深圳市腾讯计算机系统有限公司 | 神经网络模型训练系统和方法 |
CN106778745A (zh) * | 2016-12-23 | 2017-05-31 | 深圳先进技术研究院 | 一种车牌识别方法及装置、用户设备 |
CN107688493A (zh) * | 2016-08-05 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 训练深度神经网络的方法、装置及系统 |
-
2018
- 2018-05-25 CN CN201810514928.XA patent/CN110533178A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100179935A1 (en) * | 2009-01-13 | 2010-07-15 | Gm Global Technology Operations, Inc. | Spiking dynamical neural network for parallel prediction of multiple temporal events |
CN104978601A (zh) * | 2015-06-26 | 2015-10-14 | 深圳市腾讯计算机系统有限公司 | 神经网络模型训练系统和方法 |
CN107688493A (zh) * | 2016-08-05 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 训练深度神经网络的方法、装置及系统 |
CN106778745A (zh) * | 2016-12-23 | 2017-05-31 | 深圳先进技术研究院 | 一种车牌识别方法及装置、用户设备 |
Non-Patent Citations (2)
Title |
---|
LUDVIG ERICSON等: "On the Performance of Network Parallel Training in Artificial Neural Networks", 《ARXIV:1701.05130V1 [CS.AI]》 * |
张任其 等: "分布式环境下卷积神经网络并行策略研究", 《计算机工程与应用》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988366A (zh) * | 2019-12-12 | 2021-06-18 | 中科寒武纪科技股份有限公司 | 参数服务器、主从客户机、权值参数的处理方法及系统 |
CN112990422A (zh) * | 2019-12-12 | 2021-06-18 | 中科寒武纪科技股份有限公司 | 参数服务器、客户机、权值参数的处理方法及系统 |
CN112016673A (zh) * | 2020-07-24 | 2020-12-01 | 浙江工业大学 | 一种基于优化lstm的移动设备用户认证方法及装置 |
CN113746575A (zh) * | 2021-09-03 | 2021-12-03 | 北京航空航天大学 | 一种同步静止轨道卫星的信道衰落确定方法及系统 |
CN114386333A (zh) * | 2022-01-19 | 2022-04-22 | 郑州清源智能装备科技有限公司 | 一种边缘智能控制方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110533178A (zh) | 一种神经网络模型训练方法、装置及系统 | |
US11651259B2 (en) | Neural architecture search for convolutional neural networks | |
Al-Aradi et al. | Solving nonlinear and high-dimensional partial differential equations via deep learning | |
Valdez et al. | Modular neural networks architecture optimization with a new nature inspired method using a fuzzy combination of particle swarm optimization and genetic algorithms | |
CN106709565A (zh) | 一种神经网络的优化方法及装置 | |
CN110189174A (zh) | 一种基于数据质量感知的移动群智感知激励方法 | |
US10984319B2 (en) | Neural architecture search | |
WO2021238262A1 (zh) | 一种车辆识别方法、装置、设备及存储介质 | |
Jeon et al. | Artificial intelligence for traffic signal control based solely on video images | |
CN109902222A (zh) | 一种推荐方法及装置 | |
CN106650928A (zh) | 一种神经网络的优化方法及装置 | |
CN110444022A (zh) | 交通流数据分析模型的构建方法和装置 | |
WO2023103864A1 (zh) | 抵抗联邦学习中歧视传播的节点模型的更新方法 | |
Cheung et al. | Learning in markets: Greed leads to chaos but following the price is right | |
CN112785005A (zh) | 多目标任务的辅助决策方法、装置、计算机设备及介质 | |
Lynch et al. | Winner-take-all computation in spiking neural networks | |
CN111461284A (zh) | 数据离散化方法、装置、设备及介质 | |
Barrera et al. | Learning value-at-risk and expected shortfall | |
Wang et al. | Towards efficient convolutional neural networks through low-error filter saliency estimation | |
Elsner et al. | Coordination on “meso”-levels: On the co-evolution of institutions, networks and platform size | |
CN109934845A (zh) | 基于自注意力网络的时序行为捕捉框生成方法及装置 | |
CN111027709B (zh) | 信息推荐方法、装置、服务器及存储介质 | |
CN112507185B (zh) | 用户肖像的确定方法和装置 | |
Do Kim | A Recurrent Neural Network Proxy for Production Optimization with Nonlinear Constraints under Geological Uncertainty | |
CN110111135A (zh) | 一种发电侧成员动态报价决策方法、装置及设备 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191203 |
|
RJ01 | Rejection of invention patent application after publication |