CN113962356A - 神经网络的裁剪、训练方法、类识别方法及相关装置 - Google Patents

神经网络的裁剪、训练方法、类识别方法及相关装置 Download PDF

Info

Publication number
CN113962356A
CN113962356A CN202010700975.0A CN202010700975A CN113962356A CN 113962356 A CN113962356 A CN 113962356A CN 202010700975 A CN202010700975 A CN 202010700975A CN 113962356 A CN113962356 A CN 113962356A
Authority
CN
China
Prior art keywords
neural network
class
global
target class
local
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
CN202010700975.0A
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 CN202010700975.0A priority Critical patent/CN113962356A/zh
Publication of CN113962356A publication Critical patent/CN113962356A/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
    • G06N3/047Probabilistic or stochastic networks
    • 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/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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

Abstract

一种神经网络的裁剪、训练方法、类识别方法及相关装置,应用于人工智能领域,涉及联邦学习,该裁剪方法包括:获取目标类特征,该目标类特征用于表征属于目标类的数据的特点;根据目标类特征对全局神经网络进行裁剪,得到局部神经网络,其中,全局神经网络用于识别多个类,局部神经网络用于识别所述目标类,该多个类包括目标类。该训练方法包括:通过训练集对全局神经网络裁剪得到的局部神经网络进行训练,得到的训练后的神经网络,该训练后的神经网络用于更新全局神经网络,其中,目标类包括训练集中的样本所属的类。

Description

神经网络的裁剪、训练方法、类识别方法及相关装置
技术领域
本发明涉及人工智能技术领域,尤其涉及一种神经网络的裁剪、训练方法、类识别方法及相关装置。
背景技术
随着科学技术的发展,人工智能得到越来越广泛的应用。应用人工智能的关键在于训练得到准确度高的机器学习模型。神经网络模型是机器学习领域应用最为广泛的模型。
神经网络模型在训练的过程中通常采用多个训练集分别进行训练。由于每次训练采用的训练集中样本不均,例如,神经网络模型为5分类模型,若训练采用的训练集中部分类别的样本缺失,例如只包含2类的样本,训练过程会对该缺失的类别所起作用的神经元的参数会任意更新,这种训练集与需要训练神经网络不匹配,不仅会导致训练效率低,还会降低模型的准确性。另外,神经网络应用过程中,难以根据用户的需求对神经网络进行调整,以得到用户需要的神经网络。
因此,神经网络无法适配训练集或用户,是当前需要解决的技术问题。
发明内容
本申请实施例提供了一种神经网络的裁剪、训练方法、类识别方法及相关装置,通过对全局神经网络裁剪,获取到适用于用户或训练集的局部神经网络。
第一方面,本申请实施例提供了一种神经网络的裁剪方法,包括:
获取目标类特征,所述目标类特征用于表征属于目标类的数据的特点;
根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络,其中,所述全局神经网络用于识别多个类,所述局部神经网络用于识别所述目标类,所述多个类包括所述目标类。
上述方法,一方面,基于目标类特征对全局神经网络进行裁剪,避免了训练集在对全局神经网络训练过程中对全局神经网络中部分无效神经元的任意更新,提高训练效率。另一方面,在全局神经网络的应用过程中,可以通过对该全局神经网络进行裁剪,以灵活满足各个用户的要求。
在一种可能的实现中,所述局部神经网络包括所述全局神经网络中用于识别所述目标类的神经元;第一类与第二类为所述多个类中的两个类;所述第一类的类特征与所述第二类的类特征越相似,所述全局神经网络中用于识别所述第一类的神经元与用于识别所述第二类的神经元中相同的神经元越多。
在一种可能的实现中,所述目标类特征包括n维数据,n为正整数,所述根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络,包括:
针对所述n维数据中的每维数据,以所述每维数据为均值生成所述每维数据对应的概率分布,得到n个概率分布,所述n个概率分布与所述n维数据一一对应;
根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述局部神经网络。
可选地,所述根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述局部神经网络,包括:
对所述全局神经网络中的每层层结构分别进行编码;
确定所述全局神经网络中的每层层结构中每个神经元的分布值为所述每层层结构对应的概率分布中所述每个神经元的编码对应的值,所述n个维度与所述全局神经网络中的层结构具有对应关系,所述每层层结构对应的概率分布为所述n个概率分布中的所述每层层结构对应的维度所对应的概率分布;
去除所述全局神经网络中分布值小于第一阈值的神经元,得到所述局部神经网络。
可选地,所述根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述局部神经网络,包括:
对所述全局神经网络中的所有神经元进行编码;
将所述n个概率分布的每个概率分布增加偏置后进行叠加;
确定所述全局神经网络中的每个神经元的分布值为叠加后的概率分布中所述每个神经元的编码对应的值;
去除所述全局神经网络中分布值小于第二阈值的神经元,得到所述局部神经网络。
可选地,所述目标类包括至少2个类,所述获取目标类特征包括:
对所述目标类中每个类的类特征进行加权求和,得到所述目标类特征。
在一种可能的实现中,所述目标类包括至少2个类,所述目标类特征包括所述至少2个类中每个类的类特征,所述根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络,包括:
针对所述目标类中每个类,根据所述每个类的类特征生成所述每个类的概率分布,根据所述每个类的概率分布确定所述全局神经网络中对所述每个类起作用的神经元;
确定所述全局神经网络对目标类起作用的神经元为所述全局神经网络对目标类中所有类分别起作用的神经元的并集;
去除所述全局神经网络中除所述对所述目标类起作用的神经元之外的神经元,得到所述局部神经网络。
可选地,所述每个类的类特征包括n维数据,n为正整数,所述根据所述每个类的类特征生成所述每个类的概率分布,包括:
针对所述n维数据中的每维数据,以所述每维数据为均值生成所述每维数据对应的概率分布,得到n个概率分布,所述n个概率分布与所述n维数据一一对应,所述每个类的概率分布包括所述n个概率分布。
进一步地,所述根据所述每个类的概率分布确定所述全局神经网络中对所述每个类起作用的神经元,包括:
对所述全局神经网络中的每层层结构分别进行编码;
确定所述全局神经网络中的每层层结构中每个神经元的分布值为所述每层层结构对应的概率分布中所述每个神经元的编码对应的值,所述n个维度与所述全局神经网络中的层结构具有对应关系,所述每层层结构对应的概率分布为所述n个概率分布中的所述每层层结构对应的维度所对应的概率分布;
去除所述全局神经网络中分布值小于第三阈值的神经元,得到所述全局神经网络中对所述每个类起作用的神经元。
可选地,所述根据所述每个类的概率分布确定所述全局神经网络中对所述每个类起作用的神经元,包括:
对所述全局神经网络中的所有神经元进行编码;
将所述n个概率分布的每个概率分布增加偏置后进行叠加;
确定所述全局神经网络中的每个神经元的分布值为叠加后的概率分布中所述每个神经元的编码对应的值;
去除所述全局神经网络中分布值小于第四阈值的神经元,得到所述全局神经网络中对所述每个类起作用的神经元。
第二方面,本申请实施例还提供了一种神经网络的训练方法,包括:
获取目标类特征;所述目标类特征用于表征属于目标类的样本的特点,所述目标类包括训练集中样本所属的类;
根据所述目标类特征对全局神经网络进行裁剪,得到第一局部神经网络;
通过所述训练集训练所述第一局部神经网络,得到第二局部神经网络;
其中,所述第二局部神经网络用于更新所述全局神经网络;所述全局神经网络用于识别多个类,所述第二局部神经网络用于识别所述目标类,所述多个类包括所述目标类。
上述方法,基于目标类特征对全局神经网络进行裁剪,避免了训练集在对全局神经网络训练过程中对全局神经网络中部分无效神经元的任意更新,提高训练效率。
可选地,所述第一局部神经网络包括所述全局神经网络中用于识别所述目标类的神经元;第一类与第二类为所述多个类中的两个类;所述第一类的类特征与所述第二类的类特征相似,则所述全局神经网络中用于识别所述第一类的神经元与用于识别所述第二类的神经元中相同的神经元越多。
在一种可能的实现中,所述目标类特征包括n维数据,n为正整数,所述根据所述目标类特征对全局神经网络进行裁剪,得到第一局部神经网络,包括:
针对所述n维数据中的每维数据,以所述每维数据为均值生成所述每维数据对应的概率分布,得到n个概率分布,所述n个概率分布与所述n维数据一一对应;
根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述第一局部神经网络。
可选地,所述根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述第一局部神经网络,包括:
对所述全局神经网络中的每层层结构分别进行编码;
确定所述全局神经网络中的每层层结构中每个神经元的分布值为所述每层层结构对应的概率分布中所述每个神经元的编码对应的值,所述n个维度与所述全局神经网络中的层结构具有对应关系,所述每层层结构对应的概率分布为所述n个概率分布中的所述每层层结构对应的维度所对应的概率分布;
去除所述全局神经网络中分布值小于第一阈值的神经元,得到所述第一局部神经网络。
可选地,所述根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述第一局部神经网络,包括:
对所述全局神经网络中的所有神经元进行编码;
将所述n个概率分布的每个概率分布增加偏置后进行叠加;
确定所述全局神经网络中的每个神经元的分布值为叠加后的概率分布中所述每个神经元的编码对应的值;
去除所述全局神经网络中分布值小于第二阈值的神经元,得到所述第一局部神经网络。
可选地,所述目标类包括至少2个类,所述获取目标类特征包括:
对所述目标类中每个类的类特征进行加权求和,得到所述目标类特征。
在一种可能的实现中,所述目标类包括至少2个类,所述目标类特征包括所述至少2个类中每个类的类特征,所述根据所述目标类特征对全局神经网络进行裁剪,得到第一局部神经网络,包括:
针对所述目标类中每个类,根据所述每个类的类特征生成所述每个类的概率分布,根据所述每个类的概率分布确定所述全局神经网络络中对所述每个类起作用的神经元;
确定所述全局神经网络对目标类起作用的神经元为所述全局神经网络对目标类中所有类分别起作用的神经元的并集;
去除所述全局神经网络中除所述对所述目标类起作用的神经元之外的神经元,得到所述第一局部神经网络。
可选地,所述每个类的类特征包括n维数据,n为正整数,所述根据所述每个类的类特征生成所述每个类的概率分布,包括:
针对所述n维数据中的每维数据,以所述每维数据为均值生成所述每维数据对应的概率分布,得到n个概率分布,所述n个概率分布与所述N2维数据一一对应,所述每个类的概率分布包括所述n个概率分布。
进一步地,所述根据所述每个类的概率分布确定所述全局神经网络络中对所述每个类起作用的神经元,包括:
对所述全局神经网络中的每层层结构分别进行编码;
确定所述全局神经网络中的每层层结构中每个神经元的分布值为所述每层层结构对应的概率分布中所述每个神经元的编码对应的值,所述n个维度与所述全局神经网络中的层结构具有对应关系,所述每层层结构对应的概率分布为所述n个概率分布中的所述每层层结构对应的维度所对应的概率分布;
去除所述全局神经网络中分布值小于第三阈值的神经元,得到所述全局神经网络中对所述每个类起作用的神经元。
可选地,所述根据所述每个类的概率分布确定所述全局神经网络中对所述每个类起作用的神经元,包括:
对所述全局神经网络中的所有神经元进行编码;
将所述n个概率分布的每个概率分布增加偏置后进行叠加;
确定所述全局神经网络中的每个神经元的分布值为叠加后的概率分布中所述每个神经元的编码对应的值;
去除所述全局神经网络中分布值小于第四阈值的神经元,得到所述全局神经网络中对所述每个类起作用的神经元。
在一种可能的实现中,所述方法还包括:
将所述第二局部神经网络发送至服务器,所述服务器用于根据所述第二局部神经网络更新所述全局神经网络。
在一种可能的实现中,所述获取目标类特征之前,所述方法还包括:
从所述训练集中的每一个样本中提取所述目标类的特征,得到所述每一个样本对应的特征;
对所述训练集中所有样本对应的特征进行加权平均,得到所述目标类的类中心;
将所述目标类的类中心发送至所述服务器,所述目标类的类中心用于所述服务器确定所述目标类特征。
在一种可能的实现中,所述目标类包括至少2个类,所述目标类特征包括至少2个类的类特征,所述获取目标类特征之前,所述方法还包括:
针对所述目标类中的每个类,从所述训练集中的属于所述每个类的样本中提取所述每个类的特征,对属于所述每个类的样本对应的特征进行加权平均,得到所述每个类的类中心;
将所述目标类中所有类的类中心发送至服务器,所述每个类的类中心用于所述服务器确定所述每个类的类特征。
第三方面,本申请实施例还提供了一种神经网络的训练方法,包括:
向多个用户端发送全局神经网络;所述全局神经网络用于识别多个类;
接收所述多个用户端分别发送的第二局部神经网络,所述第二局部神经网络用于识别目标类,所述多个类包括所述目标类,所述第二局部神经网络是所述用户端通过训练集训练第一局部神经网络得到的,所述第一局部神经网络是所述用户端根据目标类特征对所述全局神经网络裁剪得到的,所述目标类特征用于表征所述训练集中属于目标类的样本的特点;
根据接收到的第二局部神经网络更新所述全局神经网络。
上述方法,基于目标类特征对全局神经网络进行裁剪,避免了训练集在对全局神经网络训练过程中对全局神经网络中部分无效神经元的任意更新,提高训练效率。
可选地,所述根据接收到的第二局部神经网络更新所述全局神经网络,包括:
针对所述全局神经网络中的每个神经元,确定更新后的全局神经网络中的所述每个神经元的网络参数为所述接收到的第二局部神经网络中所述每个神经元的网络参数的加权平均。
可选地,所述方法还包括:
接收所述至少一个用户端分别发送的目标类的类中心;第一用户端为所述至少一个用户端中的任意一个用户端,所述第一用户端发送的目标类的类中心是对从所述第一用户端的训练集中的属于所述目标类的样本中提取的特征进行加权平均得到的;
根据接收到的目标类的类中心确定所述目标类特征。
第四方面,本申请实施例还提供了一种神经网络的训练方法,包括:
接收用户端发送的目标类特征,所述目标类特征用于表征训练集中属于所述目标类的样本的特点;
根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络,所述全局神经网络用于识别多个类,所述局部神经网络用于识别所述目标类,所述多个类包括所述目标类;
向所述用户端发送所述局部神经网络,以使所述用户端通过所述训练集对所述局部神经网络进行训练;
根据训练后的局部神经网络更新全局神经网络。
上述方法,基于目标类特征对全局神经网络进行裁剪,避免了训练集在对全局神经网络训练过程中对全局神经网络中部分无效神经元的任意更新,提高训练效率。
第五方面,本申请实施例还提供了一种神经网络的训练方法,该方法包括:
获取目标类特征,其中,所述目标类特征用于表征属于目标类的样本的特点,所述目标类包括训练集中样本所属的类;
根据所述目标类特征确定全局神经网络中对所述目标类起作用的神经元;
通过所述训练集对所述全局神经网络进行约束训练,得到训练后的全局神经网络,其中,所述全局神经网络用于识别多个类,所述多个类包括所述目标类,所述约束训练使得所述全局神经网络中除所述对所述目标类起作用的神经元外的神经元的更新或改变量。
上述方法,通过在训练全局神经网络时,通过确定出对目标类起作用的神经元,进而,对所述全局神经网络进行约束训练,避免了训练集在对全局神经网络训练过程中对全局神经网络中部分无效神经元的任意更新,提高训练效率和模型的准确率。
可选地,约束训练可以包括两种实现方式:①、通过训练集对全局神经网络进行训练的过程中近更新对目标类起作用的神经元的参数,对目标类不起作用的神经元不进行更新;②、在通过训练集对全局神经网络进行训练的过程中,通过对目标类不起作用的神经元的参数施加大的惩罚项,以减少其对该不起作用的神经元的参数的该变量,而对目标类起作用的神经元的参数可以不受约束或受到较小的约束,这可以通过算是函数的设置来实现。
第六方面,本申请实施例还提供了一种类识别方法,其特征在于,包括:
获取目标类特征,所述目标类特征用于表征属于目标类的数据的特点;
根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络,其中,所述全局神经网络用于识别多个类,所述局部神经网络用于识别所述目标类,所述多个类包括所述目标类;
将待识别数据输入到所述局部神经网络,得到识别结果。
可选地,所述目标类包括至少2个类,所述获取目标类特征包括:
对所述目标类中每个类的类特征进行加权求和,得到所述目标类特征。
可选地,根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络的具体实现可以参见上述第一方面中相关描述,这里不再赘述。
上述方法,通过目标类特征对全局神经网络裁剪,得到其需要的局部神经网络,进而,可以运行该局部神经网络,来进行类识别,可以实现在计算资源较少的终端中快速实现类的快速识别。进一步地,不同用户可以根据需要识别的类裁剪出自己需要的神经网络,灵活性高。
第七方面,本申请实施例还提供了一种神经网络的裁剪装置,包括:用于实现第一方面任一可能的实现所述方法的功能单元,具体可以参见上述第一方面相关描述,此处不再赘述。
第八方面,本申请实施例还提供了一种神经网络的裁剪装置,包括:一个或多个处理器、一个或多个存储器、通信接口;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,所述终端执行如第一方面任一实现所述的方法。
第九方面,本申请实施例还提供了一种神经网络的训练装置,包括:用于实现第二方面任一可能的实现所述方法的功能单元,具体可以参见上述第二方面相关描述,此处不再赘述。
第十方面,本申请实施例还提供了一种神经网络的训练装置,包括:一个或多个处理器、一个或多个存储器、通信接口;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,所述终端执行如第二方面任一实现所述的方法。
第十一方面,本申请实施例还提供了一种神经网络的训练装置,包括:用于实现第三方面任一可能的实现所述方法的功能单元,具体可以参见上述第三方面相关描述,此处不再赘述。
第十二方面,本申请实施例还提供了一种神经网络的训练装置,包括:一个或多个处理器、一个或多个存储器、通信接口;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,所述终端执行如第三方面任一实现所述的方法。
第十三方面,本申请实施例还提供了一种神经网络的训练装置,包括:用于实现第四方面任一可能的实现所述方法的功能单元,具体可以参见上述第四方面相关描述,此处不再赘述。
第十四方面,本申请实施例还提供了一种神经网络的训练装置,包括:一个或多个处理器、一个或多个存储器、通信接口;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,所述终端执行如第四方面任一实现所述的方法。
第十五方面,本申请实施例还提供了一种神经网络的训练装置,包括:用于实现第五方面任一可能的实现所述方法的功能单元,具体可以参见上述第五方面相关描述,此处不再赘述。
第十六方面,本申请实施例还提供了一种神经网络的训练装置,包括:一个或多个处理器、一个或多个存储器、通信接口;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,所述终端执行如第五方面任一实现所述的方法。
第十七方面,本申请实施例还提供了一种类识别装置,包括:用于实现第六方面任一可能的实现所述方法的功能单元,具体可以参见上述第六方面相关描述,此处不再赘述。
第十八方面,本申请实施例还提供了一种类识别装置,包括:一个或多个处理器、一个或多个存储器、通信接口;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,所述终端执行如第六方面任一实现所述的方法。
第十九方面,本申请实施例还提供了一种包含指令的计算机程序产品,当上述计算机程序产品在电子设备上运行时,使得上述电子设备执行如第一至六方面任一方面中任一可能的实现所述的方法。
第二十方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读介质用于存储程序代码,所述程序代码包括用于执行如第一至六方面任一方面中任一可能的实现所述的方法。
第二十一方面,本申请实施例还提供了一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行如第一至六方面任一方面中任一可能的实现所述的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行如第一至六方面任一方面中任一可能的实现所述的方法。
附图说明
图1A是本申请实施例提供的一种系统的架构示意图;
图1B-图1F是本申请实施例提供的五种联邦学习系统的架构示意图;
图2A是本申请实施例提供的一种类特征的计算方法的示意性说明图;
图2B是本申请实施例提供的一种类特征的计算方法的流程示意图;
图3是本申请实施例提供的一种确定全局神经网络中对目标类起作用的神经元的方法的流程示意图;
图4A是本申请实施例提供的一种目标类的n维数据与全局神经网络中层结构的对应关系的示例图;
图4B是本申请实施例提供的一种基于第一概率分布确定第一层结构中对目标类起作用的神经元的原理示意图;
图4C是本申请实施例提供的一种基于第一概率分布确定第一层结构中对目标类起作用的神经元的方法的流程示意图;
图5A是本申请实施例提供的一种确定全局神经网络中对目标类起作用的神经元的流程示意图;
图5B是本申请实施例提供的一种全局神经网络的编码方法的示意性说明图;
图5C是本申请实施例提供的一种确定全局神经网络中对目标类起作用的神经元的示意性说明图;
图6A是本申请实施例提供的一种确定裁剪模板中第一层结构的模板的示意性说明图;
图6B是本申请实施例提供的一种裁剪模板的示意性说明图;
图6C是本申请实施例提供的一种确定目标类的裁剪模板的示意性说明图;
图7A是本申请实施例提供的一种神经网络的裁剪方法的流程示意图;
图7B是本申请实施例提供的另一种神经网络的裁剪方法的流程示意图;
图7C是本申请实施例提供的一种神经网络的裁剪方法的示意性说明图;
图8是本申请实施例提供的一种神经网络的训练方法的流程示意图;
图9是本申请实施例提供的又一种神经网络的训练方法的流程示意图;
图10是本申请实施例提供的又一种神经网络的训练方法的流程示意图;
图11是本申请实施例提供的又一种神经网络的训练方法的流程示意图;
图12是本申请实施例提供的又一种神经网络的训练方法的流程示意图;
图13是本申请实施例提供的又一种神经网络的训练方法的流程示意图;
图14是本申请实施例提供的一种类识别方法的流程示意图;
图15A-图15B是本申请实施例提供的两种神经网络的裁剪装置的结构示意图;
图16是本申请实施例提供的一种神经网络的裁剪装置的结构示意图;
图17是本申请实施例提供的一种神经网络的训练装置的结构示意图;
图18是本申请实施例提供的又一种神经网络的训练装置的结构示意图;
图19是本申请实施例提供的又一种神经网络的训练装置的结构示意图;
图20是本申请实施例提供的又一种神经网络的训练装置的结构示意图;
图21是本申请实施例提供的又一种神经网络的训练装置的结构示意图;
图22是本申请实施例提供的又一种神经网络的训练装置的结构示意图;
图23是本申请实施例提供的一种类识别装置的结构示意图;
图24是本申请实施例提供的一种类识别装置的结构示意图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“多个”是指两个或两个以上,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
通常在对神经网络(也称为模型)进行训练时,需要进行多次训练,每一次训练所使用的训练集中样本可能分布不均,例如,训练集中部分类别的样本缺失。训练过程中,一个类的样本的只对神经网络中的一部分神经元的参数更新起作用,然而,在所使用的训练集中部分类别的样本缺失时,训练过程会对该缺失的类别所起作用的神经元的参数任意更新,一方面,这些神经元的更新本身就是无效的,不仅增加数据的计算成本,另一方面,任意更新的值对该缺失的类别所起作用的神经元起到坏的影响,导致训练得到的模型的准确性差。
另外,通过对联邦学习现有的训练方法的研究可以发现:在用户端训练的过程中,一个类的样本的只对神经网络中的一部分神经元的参数更新起作用,由于每个用户只包括部分类别的样本,每个用户只对神经网络中的一部分神经元的参数更新起作用,相似的用户会对神经网络中相同的部分起作用。这里相似的用户指用户的训练集中类和类的分布相似的用户。
然而,当前的联邦学习并没有考虑在用户端训练数据的不同这一客观事实,所有用户端训练的神经网络结构依然是相同的,尽管每个用户端只对神经网络中的一部分神经元的参数更新起作用,但各个用户端仍需要将神经网络的完整结构进行重复训练,从而导致训练效率低的问题。
此外,当用户没有对应的训练数据,还要对模型中的部分神经元做一些更新,这些神经元的更新本身就是无效的,不仅增加数据的计算成本和传输成本,而且还会对整个模型的训练带来干扰。因为,如果一个神经元沿着正向传播的过程,其对正向的推理侧没有作用,那么将该神经元的参数更新成任何一个值,都不会对本地的训练结果有不好的影响;但是,这个值可能对别的神经元有极大的影响,因此,本地更新不起作用的神经元反而会起到坏的影响。总之,除了传输和计算成本以外,不限制本地训练对无效神经元的任意更新,对本地来说可能表现不出不好的效果,但是对别的神经元带来很糟糕的问题,导致训练得到的模型的准确性差。
基于上述分析,本申请实施例提供如下方法:
本申请实施例提供了一种神经网络的裁剪方法,在通过对神经网络的完整结构(本申请中也称为全局神经网络)训练的过程中,根据训练集中包含的类(也称为目标类)对全局神经网络进行裁剪,以去除全局神经网络中对目标类不起作用的神经元,得到可以识别目标类的局部神经网络。其中,全局神经网络用于识别多个类,局部神经网络用于识别目标类,多个类包括目标类,本申请以全局神经网络用于识别M个类为例来说明,M为大于1的正整数。
进一步地,基于上述采集得到的局部神经网络,本申请提供一种神经网络的训练方法,该方法在通过训练集训练之前,通过训练集的类对全局神经网络进行剪枝,得到适用于该用户端的局部神经网络,进而,通过其训练集仅训练局部神经网络,可提高训练的效率和模型的准确性。进一步地,可以根据分别通过不同训练集裁剪、训练后的局部神经网络更新全局神经网络。
本申请实施例提供一种神经网络的训练方法,该方法在训练过程中,根据训练集中的类,确定该神经网络的完整结构(本申请中也称为全局神经网络)中训练集中的类起作用的神经元,进而,通过该训练集对全局神经网络进行更新时只更新起作用的神经元或减少对不起作用的神经元的更新量,进而,提高训练效率和模型的准确率。
又例如,在通过训练集对全局神经网络训练过程中,仅更新全局神经网络中对训练集的类起作用的神经元,避免对其不起作用的神经元的更新,提高训练的效率和模型的准确性。
又例如,在通过训练集对全局神经网络训练过程中,约束训练集的类不起作用的神经元的更新,以减少对不起作用的神经元的更新量,提高模型的准确性。
上述方法将在下面的实施例中详细介绍。
下面对本申请实施例涉及的术语、概念进行描述。
(1)神经网络
神经网络可以是由神经单元(也称为神经元)组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
Figure BDA0002593033150000101
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:
Figure BDA0002593033150000102
其中,
Figure BDA0002593033150000111
是输入向量,
Figure BDA0002593033150000112
是输出向量,b是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量
Figure BDA0002593033150000113
经过如此简单的操作得到输出向量
Figure BDA0002593033150000114
由于DNN层数多,则系数W和偏移向量b的数量也就很多了。这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为
Figure BDA0002593033150000115
上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第L-1层的第k个神经元到第L层的第j个神经元的系数定义为
Figure BDA0002593033150000116
需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(3)卷积神经网络(convolutional neural network,CNN)
卷积神经网络(CNN,convolutional neuron network)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(4)循环神经网络(RNN,Recurrent Neural Networks)
RNNs的目的使用来处理序列数据。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNNs之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNNs能够对任何长度的序列数据进行处理。
对于RNN的训练和对传统的ANN(人工神经网络)训练一样。同样使用BP误差反向传播算法,不过有一点区别。如果将RNNs进行网络展开,那么参数W,U,V是共享的,而传统神经网络却不是的。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,并且还以来前面若干步网络的状态。比如,在t=4时,还需要向后传递三步,已经后面的三步都需要加上各种的梯度。该学习算法称为基于时间的反向传播算法(Back propagationThrough Time,BPTT)。
既然已经有了人工神经网络和卷积神经网络,为什么还要循环神经网络?原因很简单,无论是卷积神经网络,还是人工神经网络,他们的前提假设都是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去__________。这里填空,人应该都知道是填“云南”。因为我们是根据上下文的内容推断出来的,但机会要做到这一步就相当得难了。因此,就有了现在的循环神经网络,他的本质是:像人一样拥有记忆的能力。因此,他的输出就依赖于当前的输入和记忆。
RNN可以包括多个单元结构,而且每个单元结构做的事情也是一样的。用一句话解释RNN,就是一个单元结构重复使用。多个单元结构可以共享网络参数。
RNN是一个序列到序列的模型,假设xt-1,xt,xt+1是一个输入:“我是中国”,那么ot-1,ot就应该对应“是”,“中国”这两个,预测下一个词最有可能是什么?就是ot+1应该是“人”的概率比较大。
因此,我们可以做这样的定义:
Xt:表示t时刻的输入,ot:表示t时刻的输出,St:表示t时刻的记忆。因为当前时刻的输出是由记忆和当前时刻的输出决定的,就像你现在大四,你的知识是由大四学到的知识(当前输入)和大三以及大三以前学到的东西的(记忆)的结合,RNN在这点上也类似,神经网络最擅长做的就是通过一系列参数把很多内容整合到一起,然后学习这个参数,因此就定义了RNN的基础:
St=f(U*Xt+W*St-1)
f()函数是神经网络中的激活函数,但为什么要加上它呢?举个例子,假如在大学学了非常好的解题方法,那初中那时候的解题方法还要用吗?显然是不用了的。RNN的想法也一样,既然能记忆了,那当然是只记重要的信息,其他不重要的,就肯定会忘记。但是在神经网络中什么最适合过滤信息呀?肯定是激活函数,因此在这里就套用一个激活函数,来做一个非线性映射,来过滤信息,这个激活函数可能为tanh,也可为其他。
假设大四快毕业了,要参加考研,请问参加考研是不是先记住你学过的内容然后去考研,还是直接带几本书去参加考研呢?很显然嘛,那RNN的想法就是预测的时候带着当前时刻的记忆St去预测。假如你要预测“我是中国“的下一个词出现的概率,这里已经很显然了,运用softmax来预测每个词出现的概率再合适不过了,但预测不能直接带用一个矩阵来预测,所有预测的时候还要带一个权重矩阵V,用公式表示为:ot=softmax(VSt)其中ot就表示时刻t的输出。
应理解,W,U,V在每个时刻都是相等的(权重共享)。RNNs可以包括长短期记忆(long short-term memory,LSTM)网络、堆叠环神经网络(stacked recurrent neuralnetwork,SRNN)等。
(5)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
(6)反向传播算法
卷积神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正卷积神经网络中参数的大小,使得卷积神经网络的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新卷积神经网络中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的卷积神经网络的参数,例如权重矩阵。
(7)训练数据、训练集、样本、类
本申请中,训练数据包括一个或多个训练集;训练集包括大量的样本,样本由输入数据和标签组成,本申请中标签为类别(简称为“类”)。例如,在图像识别领域,样本的标签可以是被识别的对象或对象的类型,如猫、狗、鸡、鸭、牡丹花、月季花、柳树等。又例如,在自然语言处理领域,样本的标签可以为意图,如打开电视、关闭灯、开门、订机票、查询酒店等类。多次训练过程中采用的训练集不同,这可以表现在其样本的输入数据不同和标签的不同。其中,一个训练集可以包括至少一个类的样本,也称为属于目标类的样本,可以从属于一个类的样本中提取出该类的类特征,该类特征可以由多维数据组成。两个训练集越相似,其提取得到的类特征越相似,神经网络中对其训练集均起作用的神经元越多。
训练集包括一个或多个样本。样本可以包括输入数据和标签。其中,在一轮训练过程中,对神经网络进行训练所采用的样本的集合,应理解,对应个设备来说,其通过训练数据训练神经网络可以包括执行多轮训练过程,每一轮训练过程中,通过训练集对上一次训练得到的神经网络进行训练。还应理解,各轮训练过程所使用的训练集不同。
(8)类特征
类特征用于表征属于一个类的样本或数据的特性/特点,通常采用一个或多个维度来描述。属于同一类的样本的类特征相同。类特征可以标识类,不同的类,其类特征不同。在本申请实施例中,越相似的类,其类特征越相似。例如,在图像识别领域,类可以包括:猫、狗、鸡等,猫的类特征与狗的类特征的相似度大于猫的类特征与鸡的类特征的相似度。
用户的类特征(也称为用户端的类特征)用于表征该用户端包括的训练集或数据的所属类的特征,可以包括训练集或数据所属的类(目标类)中每个类的类特征,也可以通过对训练集或数据所属的类的所有类的类特征进行加权求和得到。这里,训练集所属的类为样本所属的类的集合,也就是样本的标签的集合。
例如,第一用户的训练集/数据包括猫、狗、鸡的样本,第二用户的训练集/数据包括猫、狗、兔的样本,第三用户的训练集/数据包括的样本猪、羊、牛的样本,那么,第一用户的类特征与第二用户的类特征的相似度大于第一用户的类特征与第三用户的类特征的相似度,也称为第一用户与第二用户的相似度大于第一用户与第三用户的相似度。
目标类特征是用于表征属于目标类的样本/数据的特点,在一些实施例中,可以包括目标类中每一个类的类特征;在另一些实施例中,目标类特征为目标类中所有类的类特征的加权之和。
下面结合图1A介绍本申请实施例提供的一种系统,该系统可以包括裁剪设备10、训练设备11、执行设备12,其中:
在一种场景中,裁剪设备10用于根据目标类特征对全局神经网络101进行裁剪,得到用于识别目标类的局部神经网络102。其中,目标类特征包括目标类中每个类的类特征,目标类可以是训练集D1中包含的类。裁剪设备10可以将裁剪得到的局部神经网络102发送给训练设备11。训练设备11可以通过训练集D1训练该局部神经网络102(本申请中也称为第一局部神经网络),进而得到训练后的局部神经网络102(本申请中也称为第二局部神经网络)。进一步地,训练设备11可以基于多个训练后的局部神经网络103更新全局神经网络,通过多轮训练,可以得到训练后的全局神经网络,本申请中也称为类识别模型104。训练设备11可以将类识别模型104发送至执行设备12,执行设备12可以实现类识别的功能,具体的,执行设备12可以将待识别数据输入到类识别模型104,得到识别结果。可选地,裁剪设备10与训练设备11可以是同一设备。
例如,类识别模型104为图像识别模型,是训练设备11以大量的图像为训练输入训练得到的全局神经网络,可以识别多个类。将待识别图像输入到图像识别模型可以得到该待识别图像的识别结果,即其所属的类。
在另一种场景中,训练设备11在训练得到类识别模型后,该类识别模型为全局神经网络,训练设备11可以将该类识别模型发送至裁剪设备10,裁剪设备10可以根据目标类特征对该类识别模型进行裁剪,得到的裁剪后的类识别模型为用于识别目标类的局部神经网络,进而,将裁剪后的类识别模型发送至执行设备12。此时,类识别模型104可以是裁剪后的类识别模型,执行设备12可以将待识别数据输入该裁剪后的类识别模型,以得到该待识别数据的识别结果。可选地,裁剪设备10和执行设备12也可以是同一设备。
例如,类识别模型104为可以识别目标类的图像识别模型,是裁剪以大量的图像为训练输入训练得到的全局神经网络后得到的,可识别目标类的局部神经网络。将待识别图像输入到图像识别模型可以得到该待识别图像的识别结果,即其所属的类。
上述裁剪设备10、训练设备11或执行设备12可以是终端,如手机、平板电脑、个人计算机、智能电视、智能手表、VR/AR设备等,还可以是服务器、云端等;可以是一个设备也可以是多个计算节点组成的分布式计算机系统。
应理解,两个类(如第一类和第二类)的类特征越相似,即第一类与第二类越相似,则说明全局神经网络中对该第一类对应的样本起作用神经元与全局神经网络中对第二类对应的样本起作用神经元中相同的神经元越多。因此,在训练之处可以设定各个类起作用的神经元,使其满足类特征相似的两个类,其分别起作用的神经元中相同的神经元越多。基于此,可以通过一个或多个类的类特征来确定全局神经网络中该一个或多个类起作用的神经元。
训练设备12可以单独或与裁剪设备11一起完成全局神经网络的训练,也可以通过联邦学习系统来训练全局神经网络。在确定全局神经网络中目标类起作用的神经元后,可以通过该训练集训练全局神经网络,训练过程中可以裁剪或不裁剪全局神经网络,可以仅更新全局神经网络中其该起作用的神经元,以降低计算量,或者,减少其不起作用的神经元的改变量,以提高训练得到的模型的准确度。其中,可以采用如下两种方法来实现:
方法(一),也称为网络裁剪训练法:
在通过训练集对全局神经网络进行训练过程中,可以基于该训练集包括的目标类的类特征对全局神经网络进行裁剪,以裁剪全局神经网络中对该训练集不起作用的神经元,保留对该训练集起作用的神经元,得到适用于该训练集的局部神经网络(也称为第一局部神经网络);通过该训练集对该第一局部神经网络进行训练,得到训练后的局部神经网络(即第二局部神经网络);进而,通过汇集多个训练集训练得到的第二局部神经网络来更新全局神经网络。通过多轮训练过程,可得到最终的全局神经网络。
方法(二),也称为网络约束训练法:
在通过训练集对全局神经网络进行训练过程中,可以基于该训练集包括的目标类的类特征确定全局神经网络中对该训练集不起作用的神经元;在训练过程中约束该不起作用的神经元,即减少全局神经网络中对训练集不起作用的神经元的网络参数的改变量或禁止对全局神经网络中对训练集不起作用的神经元的网络参数的更新,进而得到通过该训练集训练后的全局神经网络;进而,通过汇集多个训练集分别训练得到的全局神经网络来更新全局神经网络。通过多轮训练过程,可得到最终的全局神经网络。
下面结合图1B-图1E介绍本申请涉及的一种联邦学习系统,该系统可以包括至少一个用户端100和服务器200,其中,在训练使用的各个训练集可以来源于以不同的用户端100,每一个用户端100都拥有自己的训练集,该训练集只在本地训练模型。
服务器200也可以称为中心设备、中心服务器或平台、云端等,可以构建一个神经网络,本申请中称为初始化的全局神经网络,即为需要训练的神经网络。服务器200不包含训练数据,需要依靠各个用户端100来实现该全局神经网络的训练。本申请实施例中以全局神经网络为用于识别m个类的神经网络为例来说明,m为大于1的正整数。
用户端100,也可以称为节点设备、用户或用户设备等,具有各自的训练集,训练集包括多个样本,每一个样本都被标注了类。各个用户端100拥有的训练集不同,可以表现在其类、类的分布等的不同。对于同一用户端100,其训练集中各个的类的样本可以分布不均,这里类分布不均是指在一个用户端100中,各个类的样本的比例不一致。例如,如图1B-图1F所示,用户端U1的训练集主要包括属于类1的样本,用户端U2的训练集主要包括属于类2的样本,用户端UQ的训练集主要包括属于类m的样本。上述图1B-图1F所示的各个用户端100的训练集中样本的分布仅为示例性说明,其还可以包括其他分布,对此不作限定。应理解,用户端Ui为Q个用户端中的第i个用户端,i为不大于Q的正整数。
各个用户端100的训练集由于用户隐私等因素不能外发,而成为“数据孤岛”。然而,根据用户端的训练集的类或根据其训练集中的类、类的分布等来确定该用户端100的类特征(也可以称为该用户的类特征),反过来说,用户端100的类特征从一定程度上可以反应出用户端100的训练集中的类或反应训练集中的类、类的分布等。应理解,第一用户端的训练集中的类与第二用户端的训练集中的类在种类上越接近或在种类与分布上越接近,则第一用户端的类特征与第二用户端的类特征越相似,第一用户端的训练集对全局神经网络起作用的神经元与第二用户端的训练集对全局神经网络起作用的神经元中相同的神经元越多。
本申请基于此,用户端100或服务器200可以根据用户端100的类特征对全局神经网络进行裁剪,得到适用于该用户端101的局部神经网络。Q个用户端100都可以根据本地的训练集获取目标类特征,将其发送至服务器200。例如,Q个用户端可以表示为用户端Ui,i=1、2、…、Q,用户端Ui根据其本地的训练集获取用户端Ui的类特征,并将其发送至服务器200。
本申请基于此,可以根据用户端100的类特征来确定该训练集或该用户端100对全局神经网络中所起作用的神经元,进一步地,用户端100在通过训练集训练全局神经网络时,可以去除全局神经网络中不起作用的神经元,得到局部神经网络,通过该训练集仅训练局部神经网络;也可以仅更新全局神经网络中其该起作用的神经元,或者限制其不起作用的神经元的改变量。
基于是否需要裁剪局神经网络、裁剪的执行主体、裁剪是否通过裁剪模板,可以得到如图1B-图1E所描述的系统架构,如下进行分别进行介绍:
联邦学习系统(1):用户端不通过裁剪模板裁剪。
如图1B所示的系统,用户端100在获取到本地训练集的类特征后,可以不向服务器100发送其类特征,避免该信息的泄露。此时,Q个用户端100和服务器200联合进行S次的训练过程,以得到最后一次训练得到的全局神经网络,即为第S次训练过程得到的全局神经网络
Figure BDA0002593033150000161
在应理解,S为正整数,针对不同的模型训练,S可以不同。在一些实施例中S为使得训练得到的全局神经网络符合要求,如准确度高于预设阈值,如80%等。以第k次训练过程为例来说明,k为不大于S的正整数。在第k次训练过程中:
服务器200将第k-1次训练过程得到的全局神经网络
Figure BDA0002593033150000162
分别发送至Q个用户端101;其中,第0次训练过程得到的全局神经网络
Figure BDA0002593033150000163
为上述初始化的全局神经网络。
每个用户端100均根据其类特征对全局神经网络
Figure BDA0002593033150000164
裁剪得到,适用于其的局部神经网络(也称为第一局部神经网络),进一步地通过其本地的训练集对该局部神经网络进行训练,得到训练后的局部神经网络(也称为第二局部神经网络),并将训练后的局部神经网络发送至服务器200。如下以用户端Ui为例来说明,用户端Ui根据其本地训练集中包含的类,获取到目标类特征,即该训练集包含的类的类特征,进而,根据该目标类特征对全局神经网络
Figure BDA0002593033150000165
裁剪得到,适用于用户端Ui的局部神经网络
Figure BDA0002593033150000166
进一步地通过其本地的训练集对该局部神经网络
Figure BDA0002593033150000167
进行训练,得到训练后的局部神经网络
Figure BDA0002593033150000168
并将网络参数其发送至服务器200。
服务器200可以汇聚各个用户端100发送的局部神经网络{
Figure BDA0002593033150000169
i=1、2、…、Q},进而,服务器200根据上述{
Figure BDA00025930331500001610
i=1、2、…、Q}更新全局神经网络
Figure BDA00025930331500001611
得到第k次训练过程得到全局神经网络
Figure BDA00025930331500001612
在一种具体实现中,用户端Ui向服务器200发送训练后的局部神经网络
Figure BDA00025930331500001613
的网络参数和网络信息,该网络信息用于指示局部神经网络
Figure BDA00025930331500001614
或训练后的局部神经网络
Figure BDA00025930331500001615
中每个神经元在全局神经网络中的位置,可以是裁剪模板。在另一种具体实现中,用户端Ui可以将局部神经网络
Figure BDA00025930331500001616
的网络参数更新到全局神经网络的模板中,得到全局神经网络
Figure BDA00025930331500001617
此时,用户端Ui可以将全局神经网络
Figure BDA00025930331500001618
的网络参数发送至服务器200,以实现将局部神经网络
Figure BDA00025930331500001619
的网络参数发送至服务器200。可选地,用户端100在向服务器200发送上述内容之前,可以对上述内容进行加密。
在图1B所示的系统中,各轮训练过程中用户端Ui的训练集可以各不相同,此时,由于训练集的不断变化,用户端Ui的目标类特征也在不断变化,基于目标类特征所裁剪的局部神经网络的网络结构也会不断变化。此时,在每轮训练过程中,用户端100重新根据本次训练采用的训练集获取目标类特征,进而,用户端100都可以基于该用户端100的类特征对上一次训练得到的全局神经网络进行裁剪,以得到本次训练过程中适用于该用户端100的局部神经网络。
联邦学习系统(2):用户端通过裁剪模板裁剪。
如图1C所示的系统,与上述图1B所示的系统不同的是,同一个用户端100的在每轮训练过程中所使用的训练集的样本不同,但其包含的类或包含的类、类的分布相同,以使每轮训练过程中同一个用户端100基于训练集获取的目标类特征(用户端100的类特征)相同。此时,为避免各个用户端100在每次训练过程中都需要基于目标类特征进行裁剪,减少用户单100的计算量,各个用户端100在第一次训练过程之前或第一次训练过程中,根据其目标类特征生成裁剪模板,在后续的训练过程中只需要根据裁剪模板进行裁剪。如下以用户端Ui为例来说明,用户端Ui根据其目标类特征和初始化的全局神经网络的网络结构,生成适用于用户端Ui的裁剪模板,进而,在第k次训练过程中,用户端Ui在接收到第k-1次训练过程得到的全局神经网络
Figure BDA0002593033150000171
后,根据用户端Ui的裁剪模板对全局神经网络
Figure BDA0002593033150000172
裁剪得到,适用于用户端Ui的局部神经网络
Figure BDA0002593033150000173
进一步地通过其本地的训练集对该局部神经网络
Figure BDA0002593033150000174
进行训练,得到训练后的局部神经网络
Figure BDA0002593033150000175
并将局部神经网络
Figure BDA0002593033150000176
的网络参数其发送至服务器200。向服务器200发送局部神经网络
Figure BDA0002593033150000177
的网络参数同上述联邦学习系统(1)中向服务器200发送局部神经网络
Figure BDA0002593033150000178
的具体实现相同,可以参见上述联邦学习系统(1)中相关描述。
应理解,第0次训练过程得到的全局神经网络即为初始化的全局神经网络。上述图1C所述的系统示意图中,各个用户端100在第一次训练过程之前或第一次训练过程中,根据其类特征生成裁剪模板后,在后续的训练过程中只需要根据裁剪模板进行裁剪,可以减少用户端100的计算量,提高训练效率。
在一种实现中,如图1D所示的系统,服务器200获取到m个中每个类的类特征,根据每个类的类特征确定全局神经网络中对该类起作用的神经元,该起作用的神经元可以组成类模板。可以理解,m个类中每个类都可以确定对其起作用的神经元,均可以组成一个类模板,共m个类模板。进而,服务器可以将该m个类模板发送至各个用户端100。用户端100在接收到该m个类模板后,可以根据其本地训练集包含的类(即目标类)确定适用于该用户端100的裁剪模板,其中,裁剪模板可以是目标类中所有类的类模板的并集。进而,用户端100可以基于确定的裁剪模板进行裁剪。
在上述联邦学习系统(1)、(2)中,用户端100在通过本地训练集对局部神经网络进行训练的过程中,还可以对局部神经网络中的神经元分别施加约束。例如,对较少类模板拥有的神经元施加较强的约束或对较少类起作用的神经元施加较强的约束,以减少训练过程中对该神经元的参数的改变量;而对较多类模板拥有的神经元或对较多类均起作用的神经元施加较强的约束施加较弱的约束或不约束,以增加训练过程中对该神经元的参数的改变量,这可以通过设置损失函数的方式来实现,本申请在下文其他部分进行详细介绍。
可选地,还可以根据训练集中每个类的样本量来约束训练过程,例如,样本量越少的类,对其类模板拥有的神经元施加较强的约束,以减少训练过程中对该神经元的参数的改变量;而样本量越少的类,其类模板拥有的神经元施加较弱的约束或不约束,以增加训练过程中对该神经元的参数的改变量。
联邦学习系统(3):服务器通过裁剪模板裁剪。
如图1E所示的系统,与上述图1B或图1C所示的系统不同的是,用户端100在获取目标类特征后,可以向服务器200发送其目标类特征,由服务器200来实现对全局神经网络的裁剪,进而避免用户端100的裁剪,减少用户端100的计算量。本申请实施例中,服务器200可以汇集各个用户端100发送的各个用户端100的目标类特征,进而根据该各个用户端100的目标类特征对当前的全局神经网络进行裁剪,得到分别适用于各个用户端的局部神经网络。进而,将裁剪得到的局部神经网络发送至用户端100。其中,服务器200可以基于目标类特征进行裁剪,也可以基于裁剪模板进行裁剪,此处不作限定。
本申请实施例中,Q个用户端100和服务器200可以联合对全局神经网络进行多次训练过程,在训练得到的全局神经网络模型符合要求时,如准确度高于预设阈值,如80%等,得到最终的全局神经网络。以第k次训练过程为例来说明。在第k次训练过程中:
Q个用户端100分别将根据其本地的训练集获取到的目标类特征发送至服务器200,服务器200基于Q个用户端100发送的目标类特征分别对第k-1次训练过程得到的全局神经网络
Figure BDA0002593033150000181
进行裁剪,得到分别适用于各个用户端100的局部神经网络{
Figure BDA0002593033150000182
i=1、2、…、Q}。进一步地,服务器200将第k-1次训练过程得到的局部神经网络{
Figure BDA0002593033150000183
i=1、2、…、Q}分别发送至对应的用户端100。各个用户端100通过本地训练集对接收到的上述局部神经网络进行的训练,并将训练得到的局部神经网络发送至服务器。例如,用户端Ui通过本地的训练集对接收到的局部神经网络
Figure BDA0002593033150000184
进行训练,得到训练后的局部神经网络
Figure BDA0002593033150000185
进而,用户端Ui将局部神经网络
Figure BDA0002593033150000186
发送至服务器200。其中,第0次训练过程得到的全局神经网络
Figure BDA0002593033150000187
即为初始化的全局神经网络。进而,服务器200汇聚了各个用户端100发送的局部神经网络{训练后的
Figure BDA0002593033150000188
i-=1、2、…、Q},共包括Q个局部神经网络。服务器200根据该Q个局部神经网络来更新全局神经网络
Figure BDA0002593033150000189
的网络参数。例如,对于全局神经网络
Figure BDA00025930331500001810
中的任意一个神经元,其网络参数可以是Q个局部神经网络中该神经元的参数的平均值。
在一种实现中,上述图1D中,针对每个用户端100,其在各轮训练过程中训练所使用的训练集的不同,其用户端100的目标类特征不同。
在另一种实现中,同上述联邦学习系统(2),用户端100的目标类特征在各轮训练过程中保持不变,此时,用户端100不需要在每轮训练过程中都发送目标类特征,而是在第一轮训练过程中或第一轮训练过程之前发送一次目标类特征即可。可选地,服务器200也不需要每次都根据目标类特征对上一次训练过程得到的全局神经网络进行裁剪,而可以基于适用于各个用户端100的裁剪模板进行裁剪,具体实现同上述联邦学习系统(2)中用户端100裁剪的具体实现,这里不再赘述。
联邦学习系统(4):用户端和服务器均不裁剪。
如图1F所示的系统,Q个用户端100和服务器200联合进行多次训练过程,以得到满足要求的全局神经网络。以第k次训练过程为例来说明,k为不大于S的正整数。在第k次训练过程中:
服务器200将第k-1次训练过程得到的全局神经网络
Figure BDA0002593033150000191
发送各个用户端100,各个用户端100根据本地训练集获取的目标类特征,进而,基于该目标类特征确定接收到的全局神经网络
Figure BDA0002593033150000192
中对其目标类起作用的神经元,进而通过该本地的训练集对全局神经网络
Figure BDA0002593033150000193
进行约束训练,得到训练后的全局神经网络,并将其发送至服务器200。例如,用户端Ui通过本地的训练集对全局神经网络
Figure BDA0002593033150000194
进行训练,得到训练后的全局神经网络
Figure BDA0002593033150000195
进而,用户端Ui将全局神经网络
Figure BDA0002593033150000196
发送至服务器200。服务器200基于Q个用户端100分别训练得到的全局神经网络{
Figure BDA0002593033150000197
i=1、2、…、Q}更新全局神经网络
Figure BDA0002593033150000198
得到全局神经网络
Figure BDA0002593033150000199
即为本地次训练过程中得到的全局神经网络。
其中,约束训练包括如下两种实现方式:
实现方式1:用户端100在通过训练集对全局神经网络进行本地训练的过程中,仅更新对其起作用的神经元的参数,对其不起作用的神经元不进行更新。可选地,还可以将不起作用的神经元的参数置0。
实现方式2:用户端100在通过训练集对全局神经网络进行本地训练的过程中,通过对其不起作用的神经元的参数施加大的惩罚项,以减少其对不起作用的神经元的参数的该变量,而其起作用的神经元的参数可以不受约束。这通过损失函数的设置来实现,本申请在下文其他部分进行详细介绍。
需要说明的是,全局神经网络可以是卷积神经网络、循环神经网络等深度神经网络。关于神经网络、深度神经网络、卷积神经网络、循环神经网络可以参见上述术语、概念部分中相关描述,这里不再赘述。
下面介绍本申请实施例涉及的方法实施例。
实施例一:
下面介绍本申请实施例提供的一种类特征的计算方法,如图2A所示的示意性说明图和图2B所示的方法流程示意图,该方法可以由上述图1B-图1F任意一种联邦学习系统来实现,该方法可以包括但不限于如下步骤:
S21:针对Q个用户端中的每个用户端,用户端可以从其训练集中提取出目标类的特征,得到各个类的类中心。
其中,训练集中包括的所有类即为目标类,不同用户端由于其训练集的不同,其对应的目标类可能不同。目标类可以包括一个类或多个类。
如下以用户端Ui为例来说明各个用户端获取各个类的类中心的方法,用户端Ui为Q个用户端中的第i个用户端,i为不大于Q的正整数。用户端Ui的训练集中包括至少一个类,用户端Ui提取的类中心包括该至少一个类的类中心,第一类为上述至少一个类中的一个类。以第一类为例来说明,上述至少一个类中每个类的类中心获取方式。其中,第一类的类中心是用户端Ui基于从其本地的训练集中属于第一类的样本中提取的特征得到的,用于指示用户端Ui从其本地的训练集中属于第一类的样本的特征。具体实现可以包括但不限于如下两种实现方式:
实现方式(1):用户端Ui可以本地计算属于第一类的样本的均值,得到第一类的类中心。例如,用户端Ui的训练集中包含z个属于第一类的样本,计算该z个样本的数据的均值,即为,将z个样本的输入数据中对应元素的数据相加后,再取平均。
实现方式(2):用户端Ui可以通过自编码器来提取属于第一类的样本的特征,进而,对属于第一类的样本提取到的特征进行平均,得到该第一类的类中心。其中,自编码器可以是服务器基于训练数据训练后自编码器,自编码器包括编码器和解码器,其中,自编码器的训练过程是:将属于第一类的一个样本输入到编码器,得到第一类的特征;将第一类的特征输入到解码器,训练的过程是使得解码器输出的数据与编码器输入的样本之前的差异越来越小的过程。训练后的自编码器中的可以用于提取样本的特征,具体地,用户端可以将属于第一类的样本分别输入到自编码器,其中编码器的输出结果即为从该样本中提取的第一类的特征,进一步地,可以对第一类的样本分别提取到的第一类的特征求平均,得到的平均值,即为该用户端Ui的得到第一类的类中心。
应理解,自编码器的训练数据可以包括属于m个类中每个类的样本,可以用于提取m个类中各个类的特征。自编码器是以训练数据或伪训练数据训练的得到的,其中,伪训练数据为机器生成的可替代训练数据的数据,自编码器的训练方法为现有技术,这里不再赘述。
S22:Q个用户端分别将其提取到的目标类的类中心发送至服务器。
S23:服务器对接收到的类中心进行处理,得到m个类的类特征。其中,每个类的类特征为属于该类的样本所具有的共同特征。
在一些实施例中,类Tj是m个类中的第j个类,j为不大于m的正整数,服务器汇集了由Q个用户端发送的类中心,服务器对接收到的类Tj的类中心进行处理,可得到类Tj的类特征。本申请实施例以类Tj的类特征为例来说明每个类的类特征的获取方式,例如,服务器接收到的类中心中总共H个类Tj的特征,H为不大于Q的正整数,也就是说,只有H个用户端包含属于类Tj的样本,并提取得到了类Tj的特征;而,部分用户端没有属于类Tj的样本,因此,该部分用户端未能从其训练集中提取到属于类Tj的类中心。如下为确定类Tj的类特征的三种实现:
实现(1):类Tj的类特征为该H个类Tj的类中心的平均值。即为,
Figure BDA0002593033150000201
其中,Xi为类Tj的类特征,xi,j为用户端Ui提取得到的类Tj的类中心,用户端Ui为Q个用户端中的一个用户端,i=1、2、…、Q,其中,当用户端Ui未得到的类Tj的类中心时,xi,j为全0的矩阵或向量。
实现(2):类Tj的类特征为该H个类Tj的类中心的加权之和,即为,
Figure BDA0002593033150000202
其中,关于xi,j的含义可以参照上述实现(1)中相关描述,wi为用户端Ui提取得到的类Tj的类中心的权重,当用户端Ui未得到的类Tj的类中心时,wi=0。其中,wi可以通过如下三种实现方式得到:
在wi的第一种实现方式中,用户端Ui提取得到的类Tj的类中心的权重wi为用户端Ui包含的样本量与H个用户端的总样本量(或与Q个用户端的总样本量)的占比。
在wi的第二种实现方式中,用户端Ui提取得到的类Tj的类中心的权重wi为用户端Ui的训练集中属于该类Tj的样本量与Q个用户端的所有训练集中属于该类Tj的总样本量的比值。可见,该类特征的确定方法,可以使得该类的样本量越大的用户端对该类的类特征的贡献越大。
在wi的第三种实现方式中,用户端除向服务器发送各个类的类中心外,还发送该各个类的类中心的置信度。用户端Ui提取得到的类Tj的类中心的权重wi为该类Tj的特征的置信度。应理解,类Tj的类中心的置信度是与该类Tj的类中心大小相同的矩阵,两个矩阵中相同位置的两个元素相对应,即,置信度中的元素用于表示该类中心中与其对应的元素的置信度。还应理解,用户端Ui对训练集中属于类Tj的每个样本都提取了特征,用户端Ui提取的类Tj的类中心是其本地的训练集中属于类Tj的样本分别提取的特征的平均值,该类Tj的类中心的置信度可以是的属于类Tj的样本分别提取的特征的方差的倒数,或基于该方差确定的值。应理解,方差越小,则说明该用户端中类Tj的特征越聚集,也越相似,其可信度越大。因此,赋予该用户端提取得到的类Tj的类中心更大的权重,以使得到的类特征更加准确。
在wh的第三种实现方式中,用户端Ui提取得到的类Tj的特征的权重wi可以为上述在wi的第一种实现方式得到的比值和上述第三种实现方式得到的置信度的乘积,或为第二种实现方式的得到的比值和上述第三种实现方式得到的置信度的乘积,以兼顾样本量或置信度。
还应理解,上述实现(1)为上述实现(2)的一种特殊情况,上述实现(1)中,类Tj的类特征为该H个类Tj的特征的平均值时,此时,各个用户端提取到的类Tj的类中心的权重相同。
实现(3):为降低类特征的维度,避免维度灾难,同时压缩数据,提高计算效率。其中,在该实现(3)中步骤S23可以包括但不限于如下步骤:
S231:服务器对接收到的类中心中类Tj的类中心进行处理,得到类Tj的通用特征。
其中,类Tj的通用特征的计算方式与上述实现(1)或实现(2)中类Tj的类特征的计算方式相同,具体可以参见上述实现(1)或实现(2)中相关描述,这里不再赘述。应理解,类Tj的类中心和类Tj的通用特征的维度是相同的。在实现(3)中,类Tj的类中心/类Tj的通用特征的维度大于最终得到的类Tj的类特征的维度n,此处,用u表示类Tj的通用特征的维度。
S232:服务器根据m个类的通用特征确定m个类中每两个类的相似度,得到相似度矩阵。
两个类的相似度可以通过计算该两个类的通用特征的余弦相似度得出,或者通过计算该两个类的通用特征的欧式距离得出。可选地,在得到m个类中每两个类的相似度后,可以对其进行归一化操作。可选地,还可以通过其他方式来计算两个类的相似度,此处不作限定。
S233:服务器根据相似度矩阵对每个类的通用特征进行降维,得到每个类的类特征,其中,降维前后,任意两个类的相似度保持不变。即,上述步骤S232得到的m个类中每两个类的相似度与根据m个类的类特征确定的m个类中每两个类的相似度一致。
其中,降维的方法可以包括但不限于主成分分析(principal componentanalysis,PCA)、矩阵分解、奇异值分解(singular value decomposition,SVD)等。以下以SVD为例来说明:
m个类的相似度矩阵为m×m的矩阵,矩阵中的第f行第g列的元素的值用于指示m个类中类Tf与类Tg的相似度,是由m个类的通用特征组成的m×u的矩阵与该m×u的矩阵的转置矩阵点乘得到的。将m×m的相似度矩阵可以进行矩阵分解得到m×n的矩阵A和n×m的矩阵AT。此时,矩阵A的每行即为一个类的类特征。
需要说明的是,该方法也可以由图1A所示的裁剪设备或训练设备或其他设备来实现,该设备可以包括多个训练集,进而,通过上述方法可以确定m个类的类特征,也可以对所有的训练集中属于类Tj的样本进行平均,得到的即为类Tj的类特征或类Tj的通用特征,进一步地,可以对类Tj的通用特征进行降维,得到类Tj的类特征。
进一步地,在得到m个类的类特征后,基于此可以确定目标类特征。下面进一步说明确定目标类特征的方法,如图2B在S23之后,可以基于m个类的类特征确定目标类特征,该方法可以由服务器或用户端来实现,图2B仅为示例性说明,该方法可以包括但不限于如下步骤:
S24:服务器向用户端发送m个类的类特征。
其中,获取m个类的类特征的方法可以参见上述图2A所示的实施例中相关描述,这里不再赘述。
S25:用户端根据本地的训练集和m个类的类特征生成目标类特征。
本申请实施例以用户端Ui的类特征为例来说明每一个用户端的目标类特征的生成方法,如下为本申请实施例提供的两种生成目标类特征的实现方式:
方式一:用户端Ui可以对m个类的类特征加权求和,以得到用户端Ui的目标类特征,公式可以表示为:
Figure BDA0002593033150000221
其中,对于用户端Ui来说,类Tj的类特征Xj的权重Wi,j为该用户端Ui的训练集中属于该类Tj的样本量与用户端Ui的训练集中总样本量的比值。
方式二:与方式一不同的是,对于用户端Ui来说,类Tj的类特征Xj的权重Wi,j为该用户端Ui的训练集中属于为该类Tj的样本量与Q个用户端的训练集中属于该类Tj的总样本量的比值。
上述方法得到的用户端的目标类特征可以表示用户端的训练集的特性,训练集相似的用户端,其类特征的也相似。
应理解,用户端也可以将其本地训练集中包含的类,即目标类发送至服务器,有服务器执行S 25,将得到的用户端的目标类特征发送至服务器。
还应理解,在另一些实施例中,目标类特征还可以有其他方式来确定。
实施例二:
在得到m个类特征后,可以确定全局神经网络中对目标类起作用的神经元,该目标类可以为一个类,也可以说多个类,可以是用户端本地的训练集中包含的类,也可以是指定的一个或多个类。如图3所示,为本申请实施例提供的一种确定全局神经网络中对目标类起作用的神经元的方法,该方法可以由上述图1A所示的系统中裁剪设备、训练设备或执行设备单独或其结合来实现,也可以由上述图1B-图1F所示的系统中服务器或用户端来单独或其结合来实现,该方法可以包括但不限于如下步骤:
S30:根据目标类的类特征生成的概率分布。
其中,目标类的类特征也称为目标类特征,当目标类包含多个类时,目标类的类特征包括目标类中每一个类的类特征。本申请实施例以类特征,如目标类的类特征,用户端的类特征等,包括n个维度来描述,即包括n维数据,例如,可以是包括n维数据的列向量或行向量。
在S30的一种实现(1)中,目标类包括一个类,目标类的类特征也称为目标类特征,目标类特征包括n维数据,可以针对n维数据中的每维数据,以该数据为均值生成其对应的概率分布,可以得到n个概率分布,n个概率分布与目标类特征的n维数据一一对应,每个概率分布用于指示全局神经网络中的该概率分布对应的神经元不被裁剪的概率。
其中,该概率分布可以是以该维数据为中心(或均值),以第一数值为方差生成的高斯分布,其中,方差为超参数,为常数。应理解,针对不同维度,方差的值可以相同或不同,此处不作限定。在一些实施例中,目标类特征的数据是第一数值也可以根据该目标类的类中心计算该维度数据时的方差。
可选地,该一维数据对应的概率分布还可以是抛物线等,例如,y=a(x-b)2+c,其中,b为该维数据,a,c为超参数,为常数。针对不同维度,a或c的值可以相同或不同,此处不作限定。
在S30的另一种实现(2)中,目标类包括多个类,目标类特征为目标类中所有类的类特征的加权之和,此时,目标类特征包括n维数据。同S30的实现(1),可以针对n维数据中的每维数据,以该数据为均值生成其对应的概率分布,得到n个概率分布。
S32:根据得到的概率分布确定全局神经网中对目标类起作用的神经元。
其中,这里的全局神经网络可以是初始化的全局神经网络,也可以是训练过程中的全局神经网络。全局神经网络可以包括多层层结构,每一层层结构包括多个神经元。其中,不同的层结构,其在全局神经网络中的功能可以不同,全局神经网络可以包括至少一层卷积层、至少一层池化层、至少一层激励层、至少一层全连接层、输出层等,共E层层结构,E为大于1的正整数。
在上述S30的实现(1)和实现(2)中,目标类特征均包括n维数据,如下为本申请实施例提供的基于目标类特征得到的概率分布确定全局神经网中对目标类起作用的神经元的两种实现方式:
实现方式一:
参见图4A所示,一个概率分布用于对全局神经网络的中至少连续的一层层结构进行裁剪,不同的概率分布所作用的层结构不同。例如,图4A中,目标类特征包括n维数据,分别生成了n个概率分布,图4A中概率分布1用于确定层结构1中对目标类起作用的神经元,概率分布2用于确定层结构2中对目标类起作用的神经元,概率分布2用于确定层结构2中对目标类起作用的神经元,概率分布n用于确定层结构E中对目标类起作用的神经元。应理解,上述图4A中概率分布与层结构的对应关系仅为示例性说明,本申请实施例还可以具有其他对应关系,例如,各个概率分布可以对用于确定全局神经网络中至少一层连续的层结构对目标类起作用的神经元,如,概率分布1用于确定层结构1和层结构2中对目标类起作用的神经元。应理解,关于上述概率分布与层结构的对应关系可以预先确定,进而,在生成各个概率分布时,可以考虑层结构的功能、位置等因素来设置生成其对应的概率分布的超参数。
参阅图4B,图4B为S32的一种实现方法的流程示意图,该实现方法先确定每一层层结构中对目标类起作用的神经元,进而基于各个层结构中对目标类起作用的神经元确定出全局神经网络中对目标类起作用的神经元。图4C以n个概率分布中的任意一个概率分布(本申请中也称为第一概率分布)为例来说明如何根据概率分布来确定一个其对应的层结构(本申请中也称为第一层结构)中对目标类起作用的神经元,可以理解,该第一概率分布用于确定第一层结构中对目标类起作用的神经元;如图4B所示的流程图,该方法包括但不限于如下步骤:
S41:对第一层结构中的神经元进行编码。
在一些实施例中,可以以第一层结构中神经元的固定次序对神经元进行编码。可选地,固定次序可以是以该第一层结构中神经元的位置的排列次序。此时,排序相邻的两个神经元在第一层结构中的位置也相邻,编码过程中可以设置任意两个排序相邻的神经元的编码之间的增量相同,即层结构的神经元在区间如[0,1]内等距排列。应理解,固定次序也可以不以其位置排列,这里不作限定。
例如,当第一层结构包括11个神经元时,第一层结构中神经元的编码依次为0、0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9、1。
S42:确定第一概率分布中第一层结构中每个神经元的编码对应的分布值。
应理解,第一概率分布是在区间如[0,1]内的高斯分布或抛物线分布等,第一层结构中的神经元的编码在该区间内。
S43:将分布值不小于第一阈值的神经元确定为第一层结构中对目标类起作用的神经元。
应理解,对于不同的层结构,其对应的概率分布所使用的第一阈值可以相同或不同,如图4A所示,概率分布1采用阈值v1、概率分布2采用阈值v2、概率分布3采用阈值v3、…、概率分布n采用阈值vn。其中,各个阈值可以相同或不同。
S44:确定全局神经网络中对目标类起作用的神经元为全局神经网络所有层结构分别对目标类起作用的神经元的并集。
全局神经网络中其他层结构中对目标类起作用的神经元的确定方法可以参照上述第一层结构中对目标类起作用的神经元的确定方法,进而,确定全局神经网络中对目标类起作用的神经元为全局神经网络所有层结构分别对目标类起作用的神经元的并集。
实现方式二:
参见图5A,图5A为S32的一种实现方法的流程示意图,该方法可以由,该方法包括但不限于如下步骤:
S51:对全局神经网络中的所有神经元进行编码。
如图5B所示,将全局神经网络中的每一层展开,对所有神经元进行编码。
S52:将n个概率分布中的每个概率分布增加偏置后进行叠加,得到叠加后的概率分布。
如图5C所示,n个概率分布分别增加偏置后进行叠加,其中,各个概率分布的偏置为超参数,为预设值,各个概率分布的偏置可以相同或不同,这里不做限定。
S53:确定叠加后的概率分布中全局神经网络中每个神经元的编码对应的分布值。
S54:将分布值不小于第二阈值的神经元确定为全局神经网络中对目标类起作用的神经元。
如图5C所示,分布值小于第二阈值的神经元确定为全局神经网络中对目标类不起作用的神经元。
在本申请另一实施例中,目标类包括多个类,目标类特征包括目标类中的每个类的类特征,每个类的类特征均包括n维数据。同S30的实现(1),可以针对每个类的类特征中的每维数据,以该数据为均值生成其对应的概率分布,得到n个概率分布。此时,根据目标类中的每个类均可以得到n个概率分布。进一步地,基于与上述S32的实现方式一或实现方式二相同的原理,可以确定出全局神经网络中对每个类分别起作用的神经元,在该实施例中,第一阈值也被称为第三阈值,第二阈值也被称为第四阈值。更进一步的地,确定全局神经网络中对目标类起作用的神经元为全局神经网络对目标类中所有类分别起作用的神经元的并集。
实施例三:
基于确定出的全局神经网络中对目标类起作用的神经元,还可以确定出类模板、裁剪模板等。下面分别进行介绍:
在本申请一些实施例中,可以基于一个类的类特征通过上述实施例二所述的方法确定该全局神经网络中对该类起作用的神经元,进一步地,可以基于全局神经网络中对该类起作用的神经元得到该类的类模板。类的类模板可以由于全局神经网络的裁剪、或指示全局神经网络中对该类起作用的神经元。
在本申请一些实施例中,可以基于目标类的类特征通过上述实施例二所述的方法确定该全局神经网络中对该目标类起作用的神经元,进一步地,可以基于全局神经网络中对该目标类起作用的神经元得到该目标类的裁剪模板。同理,目标类的裁剪模板可以由于全局神经网络的裁剪、或指示全局神经网络中对该目标类起作用的神经元。
请参阅图6A,在S44之后,可以将第一层结构中对目标类起作用的神经元标记为“1”而将第一层结构中对目标类不起作用的神经元标记为“0”,生成行向量或列向量,该向量中的元素与第一层结构中的神经元一一对应,其中,每个元素用于指示该目标类是否对第一层结构中该元素对应的位置上的神经元起作用,该向量可以作为目标类的裁剪模板中第一层结构的模板。全局神经网络中的每层层结构都可以通过上述图6A所示的方法得到一个与之对应的模板,上述各个层结构对应的模板组合得到的数据阵列即为目标类的裁剪模板,如图6B所示的一种目标类的裁剪模板的示意性说明图,裁剪模板可以是一个数据集或向量,图6B中仅以裁剪模板为向量为例来说明,该数据集或向量中元素的个数与全局神经网络中神经元的个数相同,该数据集或向量中的元素对应全局神经网络中的神经元一一对应,其中,元素为“1”指示保留该元素对应的神经元,即该为“1”的元素对应的神经元是对目标类起作用的神经元;元素为“0”指示裁剪掉该元素对应的神经元,即为“0”的元素对应的神经元是对目标类不起作用的神经元。同理,一个类的类模板也是一个数据集或向量,其元素的个数也是与全局神经网络中神经元的个数相同,且一一对应,其中,元素为“1”指示该元素对应的神经元是对该类起作用的神经元,元素为“0”指示该元素对应的神经元是对该类不起作用的神经元。应理解,当数据集或向量中的元素全为“1”时,即为全局神经网络的模板。
请参阅图6C,在S44之后,可以将全局神经网络中对目标类起作用的神经元标记为“1”,将全局神经网络中对目标类不起作用的神经元标记为“0”,生成数据阵列,该数据阵列中的元素与全局神经网络中的神经元一一对应,其中,每个元素用于指示目标类是否被对该全局神经网络中的该元素对应的位置上的神经元起作用,该数据阵列可以作为裁剪模板,以对全局神经网络进行裁剪得到适用于目标类的局部神经网络。
在本申请一些实施例中,目标类包括多个类,目标类特征包括目标类中的每个类的类特征,可以根据上述实施例二所述的方法确定出全局神经网络中对目标类中的每个类分别起作用的神经元,进而,得到每个类对应的类模板,进而,根据目标类中每个类的类模板来确定目标类的裁剪模板,其中,目标类的裁剪模板为目标类中各个类的类模板的合并。具体地,可以目标类中各个类的类模板相加,相加得到的矩阵中,数据大于1的元素设置为1,进而得到目标类的裁剪模板。
实施例四:
基于上述实施例二确定出的神经网络中对目标类起作用的神经元或基于上述实施例三确定的目标类的裁剪模板或各个类的裁剪模板,可以对神经网络进行裁剪,下面介绍本申请实施例提供的一种神经网络的裁剪方法,如图7A所示,该方法可以由上述图1A所示的系统中裁剪设备实现,也可以由上述图1B-图1F所示的联邦学习系统中的服务器或用户端单独或其组合来实现,该方法可以包括但不限于如下步骤:
S71:获取目标类特征,该目标类特征用于表征属于目标类的数据的特点。
S72:根据目标类特征对全局神经网络进行裁剪,得到局部神经网络,其中,全局神经网络用于识别m个类,局部神经网络用于识别目标类,m个类包括目标类。
其中,局部神经网络包括全局神经网络中用于识别目标类的神经元,第一类与第二类为m个类中的两个类;第一类的类特征与第二类的类特征越相似,那么全局神经网络中用于识别第一类的神经元与用于识别第二类的神经元中相同的神经元越多,也就是,全局神经网络中对第一类起作用的神经元与对第二类起作用的神经元中相同的神经元越多。
具体地,通过上述实施例二所述的方法可以确定出全局神经网络中对目标类起作用的神经元,进而,在根据目标类特征对全局神经网络进行裁剪时,将全局神经网络中对目标类起作用的神经元保留,而将全局神经网络中对目标类起作用的神经元之外的神经元(即为全局神经网络中对目标类不起作用的神经元)裁剪掉,得到局部神经网络。
在一种场景中,目标类为指定的一个或多个类,该执行方法的设备可以获取到m个类的类特征,进而,基于目标类和m个类的类特征确定出目标类特征。
在一种场景中,目标类为训练集中样本所属的类的集合,训练设备、服务器或用户端等可以获取到m个类的类特征,进而,基于目标类和m个类的类特征确定出目标类特征。
关于目标类特征可以参见上述实施例二中相关描述,这里不再赘述。
在一些实施例中,还可以通过类模板和/或裁剪模板来实现裁剪。具体的,通过上述实施例三所述的方法可以得到目标类的裁剪模板,裁剪模板中指示了全局神经网络中对目标类起作用的神经元,进而,基于裁剪模板,保留全局神经网络中对目标类起作用的神经元,裁剪掉全局神经网络中对目标类不起作用的神经元,得到局部神经网络。
例如,请参阅图7B所示的另一种神经网络的裁剪方法的流程示意图和图7C所示的裁剪示意性说明图,该方法可以由上述如图1D所示的联邦学习系统来实现,该方法包括但不限于如下步骤:
S701:服务器基于m个类的类特征生成m个类的类模板。
这里,m个类的类特征包括m个类中每个类的类特征,m个类的类模板包括m个类中每个类的类模板。具体的,可以通过上述实施例三所述的方法得到m个类中各个类的类模板。
S702:服务器将m个类的类模板分别发送至Q个用户端。
S703:用户端可以根据m个类的类模板和其目标类,得到目标类的裁剪模板。其中,目标类的裁剪模板是通过合并目标类中所有类的类模板得到的。
S704:用户端基于该裁剪模板对全局神经网络进行裁剪,以得到局部神经网络。
可以理解,在需要进行多次裁剪时,基于裁剪模板的裁剪方式可以加快裁剪过程,提高计算效率。
实施例五:
基于上述实施例二确定出的全局神经网络中对目标类起作用的神经元或基于上述实施例二确定出的目标类的裁剪模板,可以对全局神经网络进行裁剪,得到局部神经网络,进而在通过训练集进行训练时,可以训练局部神经网络,以避免对全局神经网络中对目标类不起作用的神经元的无效更新。下面介绍本申请实施例提供的另一种神经网络的训练方法,如图9所示,该方法可以基于上述图1B-图1E所示的联邦学习系统来实现,该方法可以包括但不限于如下步骤:
S81:服务器向Q个用户端发送全局神经网络,其中,全局神经网络用于识别m个类。全局神经网络可以是初始化的神经网络,也可以是执行上一轮训练过程训练得到全局神经网络。
S82:用户端Ui根据目标类特征Xt,i对全局神经网络进行裁剪,得到适用于该用户端Ui的第一局部神经网络NNlocal,i。其中,用户端Ui是Q个用户端中的第i个用户端,i=1、2、…、Q,目标类特征Xt,i是基于用户端Ui本地的训练集得到的,用于表征属于目标类Tt,i的样本的特点,目标类Tt,i是用户端Ui本地的训练集中所含样本所属的类的集合。
应理解,目标类不同的用户端,其所对应的目标类特征、第一局部神经网络均不同。
还应理解,这里第一局部神经网络即为根据目标类特征对全局神经网络进行裁剪得到的局部神经网络,用于识别所述目标类。关于全局神经网络的裁剪方法的具体实现可以参见上述实施例四中相关描述,这里不再赘述。
其中,S82也可以由服务器来执行,此时,该方法还可以包括,服务器将第一局部神经网络NNlocal,i发送至用户端Ui
S83:用户端Ui通过本地的训练集训练第一局部神经网络NNlocal,i,得到第二局部神经网络
Figure BDA0002593033150000271
其中,第二局部神经网络
Figure BDA0002593033150000272
为训练后的局部神经网络。
S84:用户端Ui将第二局部神经网络
Figure BDA0002593033150000273
发送至服务器。
S85:服务器根据接收到的第二局部神经网络更新全局神经网络。
具体的,服务器汇聚了Q个用户端发送的第二局部神经网络{
Figure BDA0002593033150000274
i=1、2、…、Q}。服务器可以根据其接收到的局部神经网络更新全局神经网络。如下以全局神经网络中任意一个神经元(也称为第一神经元)为例来说明任意一个神经元的更新方式,具体更新方式可以包括但不限于如下2种:
更新方式(1):
在更新方式(1)中,Q个用户端发送的第二局部神经网络{
Figure BDA0002593033150000275
i=1、2、…、Q}组成一个神经网络集合,更新后的全局神经网络中第一神经元的参数是由该神经网络集合中所有第二局部神经网络中第一神经元的网络参数加权求和得到的。其中,当第二局部神经网络不包含第一神经元时,则该第二局部神经网络中第一神经元的参数为0。在一些实施例中,第二局部神经网络
Figure BDA0002593033150000276
中的第一神经元的参数的权重可以是用户端Ui本地的训练集的样本量与Q个用户端的总样本量之前的比值;在另一些实施例中,神经网络集合中具有P个第二局部神经网络包含第一神经元,神经网络集合中各个第二局部神经网络的权重相同,均为1/P。上述仅以用户端Ui对应的第二局部神经网络
Figure BDA0002593033150000281
中第一神经元的参数的权重为例来说明,应理解,其他用户端的第二局部神经网络中第一神经元的参数的权重都可以参照上述第二局部神经网络
Figure BDA0002593033150000282
中第一神经元的参数的权重的确定方法来实现,这里不再赘述。
更新方式(2):
在更新方式(2)中,用户端Ui在将第二局部神经网络
Figure BDA0002593033150000283
发送至服务器之前或者,服务器在得到第二局部神经网络
Figure BDA0002593033150000284
后,可以将第二局部神经网络
Figure BDA0002593033150000285
放入到全局神经网络中,得到全局神经网络
Figure BDA0002593033150000286
在一种实现中,全局神经网络
Figure BDA0002593033150000287
中除第二局部神经网络
Figure BDA0002593033150000288
之外的神经元的参数为0,服务器可以汇聚到Q个全局神经网络,即{
Figure BDA0002593033150000289
i=1、2、…、Q}。此时,可以基于上述Q个全局神经网络更新全局神经网络,更新后的全局神经网络中第一神经元的参数可以是该Q个全局神经网络中所有全局神经网络中第一神经元的网络参数加权求和。全局神经网络
Figure BDA00025930331500002810
中第一神经元的权重同上述更新方式(1)中第二局部神经网络
Figure BDA00025930331500002811
中第一神经元的参数的权重,可以参照上述更新方式(1)中相关描述。
在另一种实现中,全局神经网络
Figure BDA00025930331500002812
中除第二局部神经网络
Figure BDA00025930331500002813
之外的神经元的参数保持为原值。此时,服务器可以获取到裁剪得到第一局部神经网络NNlocal,i的裁剪模板Mi,进而,Q个第二局部神经网络{
Figure BDA00025930331500002814
i=1、2、…、Q}和Q个裁剪模板{Mi,i=1、2、…、Q}更新全局神经网络,更新后的全局神经网络中神经元v的参数NNglobal(v)可以是:
Figure BDA00025930331500002815
其中,Mi(v)表示裁剪模板Mi中神经元v对应的值,当第一局部神经网络NNlocal,i包含神经元v时,Mi(v)=1;当第一局部神经网络NNlocal,i不含神经元v时,Mi(v)=0,关于裁剪模板的生成可以参见上述实施例三中相关描述,这里不再赘述。Bi可以是用户端Ui的样本量与Q个用户端的总样本量的比值。
应理解,上述S81-S85为Q个用户端和服务器联合执行的一次训练过程。Q个用户端和服务器可以联合执行多次训练过程,其中,直至更新得到是全局神经网络的准确率满足要求。其中,同一用户端在不同的训练过程中使用的训练集不同,但在一些实施例中,其目标类特征可以相同,这是因为,不同训练过程采用的训练集中包含的样本所属的类、类的分布相同,进而,基于目标类特征裁剪得到第一局部神经网络的结构相同,此时,可以通过裁剪模板来实现裁剪,以加快训练过程;在另一些实施例中,其目标类特征可以不相同,进而,基于目标类特征裁剪得到第一局部神经网络的结构也不同。
还应理解,在整个训练过程中全局神经网络的结构始终不变,但其参数随着训练的进行不断更新,即其神经元的参数随着训练的进行不断变化。
下面介绍结合上述图1B-图1E所示的联邦学习系统介绍本申请实施例提供的4种神经网络的训练方法。
如图9所示的神经网络的训练方法,该训练方法可以由上述图1B所示联邦学习系统来实现,该方法可以包括但不限于如下部分或全部步骤:
S90:服务器构建初始化的全局神经网络
Figure BDA0002593033150000291
S91:用户端Ui根据本地的训练集获取目标类特征。该目标类特征是用于指示该样本属于目标类的样本的特点,目标类为用户端Ui本地的训练集中样本所属的类的集合。
可选地,目标类特征可以包括目标类中每个类的类特征,也可以是目标类中所有类的类特征的加权之和。可以参见实施例一中S24、S25中相关描述。
S92:Q个用户端和服务器联合执行S次训练过程,得到第S次训练过程得到的全局神经网络。k、S为正整数,k≤S。其中,第k次训练过程包括如下步骤:
S921:服务器将第k-1次训练过程得到的全局神经网络
Figure BDA0002593033150000292
发送至用户端Ui,其中,第0次训练过程得到的全局神经网络
Figure BDA0002593033150000293
为初始化的全局神经网络,用户端Ui为Q个用户端中第i个用户端,i=1、2、…、Q。
S922:用户端Ui根据目标类特征裁剪全局神经网络
Figure BDA0002593033150000294
得到局部神经网络
Figure BDA0002593033150000295
关于裁剪的具体实现可以参见上述实施例四中相关描述这里不再赘述。
S923:用户端Ui通过本地的训练集对局部神经网络
Figure BDA0002593033150000296
进行训练。
具体实现中,用户端Ui可以将其本地的训练数据分为S份训练集,在不同轮次的训练过程中采用不同的训练集,可选地,该K份训练集中样本所属的类、类的分布的可以均匀或不均,本申请实施例不作限定。
S924:用户端Ui向服务器发送训练后的局部神经网络
Figure BDA0002593033150000297
其具体实现可以包括但不限于如下三种具体实现:
在S924的第1种具体实现中:用户端Ui向服务器发送局部神经网络
Figure BDA0002593033150000298
中每一个神经元的标识和网络参数。应理解,该标识用于在全局神经网络中唯一识别神经元。
在S924的第2种具体实现中:用户端Ui向服务器发送局部神经网络
Figure BDA0002593033150000299
中的每一个神经元的网络参数和局部神经网络
Figure BDA00025930331500002910
的裁剪模板,其中,裁剪模板中标记“1”的元素对应的全局神经网络中的神经元为局部神经网络
Figure BDA00025930331500002911
中的神经元,而标记“0”的元素对应的全局神经网络中的神经元不是局部神经网络
Figure BDA00025930331500002912
中的神经元。局部神经网络
Figure BDA00025930331500002913
的网络参数与裁剪模板中标记“1”的元素一一对应,以使服务器可以基于裁剪模板来识别局部神经网络
Figure BDA00025930331500002914
中的神经元的位置。
在S924的第3种具体实现中:用户端Ui可以将局部神经网络
Figure BDA0002593033150000301
每一个神经元的网络参数更新到全局神经网络
Figure BDA0002593033150000302
中,得到全局神经网络
Figure BDA0002593033150000303
进而,向服务器发送该全局神经网络
Figure BDA0002593033150000304
此时,全局神经网络
Figure BDA0002593033150000305
中的除局部神经网络
Figure BDA0002593033150000306
外的其他神经元的网络参数可以为0。在另一实现中,全局神经网络
Figure BDA0002593033150000307
中的除局部神经网络
Figure BDA0002593033150000308
外的其他神经元的网络参数可以为不0,此时,用户端Ui需要向服务器发送局部神经网络
Figure BDA0002593033150000309
的裁剪模板或者其他用于指示全局神经网络
Figure BDA00025930331500003010
中的神经元的网络参数是否有效的指示信息。
S925:服务器根据接收到的局部神经网络更新全局神经网络
Figure BDA00025930331500003011
的网络参数,得到全局神经网络
Figure BDA00025930331500003012
可以理解,服务器汇聚了Q个用户端发来的局部神经网络,即{
Figure BDA00025930331500003013
i=1、2、…、Q},更新全局神经网络的具体实现可以参照上述图8所示的实施例中的两种更新方式。
通过执行多次训练过程,直至训练过程得到的局部神经网络所更新全局神经网络的网络参数满足要求,比如,收敛或者准确度大于目标阈值(如80%)停止训练,通过最后一次训练过程得到的局部神经网络所更新全局神经网络的网络参数,得到训练后的全局神经网络。应理解,S是满足上述要求的正整数。
如图10所示是本申请实施例提供的又一种神经网络的训练方法,该方法可以由上述图1C所示的系统来实现,如该方法可以包括但不限于如下部分或全部步骤:
S100:构建初始化的全局神经网络。
S101:用户端Ui根据本地的训练集获取目标类特征。该目标类特征是用于指示该样本属于目标类的样本的特点,目标类为用户端Ui本地的训练集中样本所属的类的集合。关于目标类特征的获取可以参见上述图9所示的实施例中S91中相关描述。
S102:用户端Ui根据目标类特征和初始化的全局神经网络生成裁剪模板。生成裁剪模板的具体实现可以参见上述实施例三中相关描述,这里不再赘述。
S103:Q个用户端和服务器联合执行S次训练过程,得到第S次训练过程得到的全局神经网络,k、S为正整数,k≤S;其中,第k次训练过程可以包括如下步骤:
S1031:服务器将第k-1次训练过程得到的全局神经网络
Figure BDA00025930331500003014
发送至用户端i,其中,第0次训练过程得到的全局神经网络
Figure BDA00025930331500003015
为初始化的全局神经网络,用户端Ui为Q个用户端中第i个用户端,i=1、2、…、Q。
S1032:用户端Ui根据用户端Ui的裁剪模板裁剪全局神经网络
Figure BDA00025930331500003016
得到用户端Ui的局部神经网络
Figure BDA00025930331500003017
即,用户端i的裁剪模板中值与全局神经网络的神经元一一对应,基于裁剪模板剪枝的过程就是将全局神经网络
Figure BDA00025930331500003018
中标记为“1”的神经元留下,标记为“0”的神经元去除。
S1033:用户端Ui通过本地的训练集对局部神经网络
Figure BDA00025930331500003019
进行训练,得到训练后的局部神经网络
Figure BDA0002593033150000311
具体实现参见上述图9所示的实施例中S923中相关描述,这里不再赘述。
S1034:用户端Ui向服务器发送局部神经网络
Figure BDA0002593033150000312
S1035:服务器根据接收到的局部神经网络更新全局神经网络
Figure BDA0002593033150000313
的网络参数,得到全局神经网络
Figure BDA0002593033150000314
其中,S1033、S1034、S1035的具体实现可以参见上述图9所示的实施例中S923、S934、S935中相关描述,这里不再赘述。
应理解,S102还可以由服务器执行,此时,用户端需要将其目标类特征发送至服务器,服务器在得到各个用户端的裁剪模板后,将其发送给对应的用户端。在另一些实施例中,S102还可以在第一次训练过程中由服务器或用户端来执行。
在一些实施例中,如图1D所示的联邦学习系统,服务器还可以向用户端发送m个类模板,用户端生成采集模板的方法可以是基于本地的训练集和m个类模板生成,具体可以参见上述实施例三中相关描述。
同理,通过执行多次训练过程,直至训练过程得到的局部神经网络所更新全局神经网络的网络参数满足要求,比如,收敛或者准确度大于目标阈值(如80%)停止训练,通过最后一次训练过程得到的局部神经网络所更新全局神经网络的网络参数,得到训练后的全局神经网络。应理解,K是满足上述要求的正整数。
应理解,与如9所示的实施例不同的是,在图10所示的实施例中,各个用户端的目标类特征在S次的训练过程不发生变化,各个用户端的裁剪模板也中始终不变。此时,在训练过程中用户端的局部神经网络的结构始终不变。
如图11是本申请实施例又一种神经网络的训练方法,该方法可以由上述图1E所示的系统来实现,该方法可以包括但不限于如下部分或全部步骤:
S110:服务器构建初始化的全局神经网络。可参见上述图9所示的实施例中S90中相关描述。
S111:执行S次训练过程,根据第S次训练过程得到的局部神经网络更新全局神经网络的网络参数,得到更新后的全局神经网络。k、S为正整数,k≤S。其中,第k次训练过程包括如下步骤:
S1111:用户端根据本地的训练集获取目标类特征。可参见上述图9所示的实施例中S91中相关描述。
S1112:Q个用户端分别将其目标类特征发送至服务器,Q为大于1的正整数。
S1113:服务器针对Q个用户端中的每个用户端,根据其目标类特征对第k-1次训练过程得到的全局神经网络
Figure BDA0002593033150000315
进行裁剪得到适用于该用户端的局部神经网络。
与图9所示的实施例不同的是,在图11所示的实施例中是通过服务器来实现对全局神经网络的剪枝。其具体实现与由用户端实现裁剪类似,可以是基于目标类特征的裁剪,也可以是基于裁剪模板的裁剪,裁剪的具体实现可以参照上述实施例四。
S1114:服务器将局部神经网络
Figure BDA0002593033150000316
发送至用户端Ui
其中,第0次训练过程得到的用户端Ui的局部神经网络
Figure BDA0002593033150000321
为所述用户端Ui的初始的局部神经网络。
S1115:用户端Ui通过本地的训练集对局部神经网络
Figure BDA0002593033150000322
进行训练。
S1116:用户端Ui将训练后的局部神经网络
Figure BDA0002593033150000323
发送至服务器。其具体实现可以包括但不限于如下三种具体实现:
在S1116的第1种具体实现中:用户端Ui向服务器发送训练后的局部神经网络
Figure BDA0002593033150000324
中每一个神经元的标识和参数。应理解,该标识用于在全局神经网络中唯一识别神经元。
在S1116的第2种具体实现中:用户端Ui向服务器发送训练后的局部神经网络
Figure BDA0002593033150000325
中的每一个神经元的网络参数和局部神经网络
Figure BDA0002593033150000326
的裁剪模板,其中,裁剪模板中标记“1”的元素对应的全局神经网络中的神经元为局部神经网络
Figure BDA0002593033150000327
中的神经元,而标记“0”的元素对应的全局神经网络中的神经元不是局部神经网络
Figure BDA0002593033150000328
中的神经元。训练后的局部神经网络
Figure BDA0002593033150000329
的网络参数与裁剪模板中标记“1”的元素一一对应,以使服务器可以基于裁剪模板来识别局局部神经网络
Figure BDA00025930331500003210
中的神经元。
在S1116的第3种具体实现中:用户端Ui可以将训练后的局部神经网络
Figure BDA00025930331500003211
每一个神经元的网络参数放回到全局神经网络中,得到全局神经网络
Figure BDA00025930331500003212
进而,向服务器发送该全局神经网络
Figure BDA00025930331500003213
此时,全局神经网络
Figure BDA00025930331500003214
中的除局部神经网络
Figure BDA00025930331500003215
外的其他神经元的网络参数可以为0。在另一实现中,全局神经网络
Figure BDA00025930331500003216
中的除局部神经网络
Figure BDA00025930331500003217
外的其他神经元的网络参数可以为不0,此时,用户端Ui需要向服务器发送局部神经网络
Figure BDA00025930331500003218
的裁剪模板或者其他用于指示全局神经网络
Figure BDA00025930331500003219
中的神经元的网络参数是否有效的指示信息。
S1117:服务器根据Q个用户端分别发送的训练后的局部神经网络,对全局神经网络
Figure BDA00025930331500003220
进行更新,得到全局神经网络
Figure BDA00025930331500003221
在另一些实施例中,同一用户端的目标类特征在每次训练过程中不发生变化,此时S1111、S1112可以仅在第一次训练过程中执行或仅在S次训练过程之前执行S1111、S1112。进一步地,在S1113中,服务器还可以基于裁剪模板来实现对全局神经网络的裁剪。
进一步地,服务器可以不执行S1117,而执行:服务器根据Q个用户端分别发送的训练后的局部神经网络,对训练后的局部神经网络
Figure BDA00025930331500003222
进行更新,得到局部神经网络
Figure BDA00025930331500003223
此时,在每次训练过程中不需要执行S1113。其中,服务器根据Q个用户端分别发送的训练后的局部神经网络,对训练后的局部神经网络
Figure BDA00025930331500003224
进行更新,得到局部神经网络
Figure BDA00025930331500003225
可以包括如下两种具体实现:
在第一种具体实现中,第一神经元是用户端Ui的局部神经网络中任意一个神经元。Q个用户端在第k次训练过程得到的局部神经网络中包含第一神经元的局部神经网络组成一个神经网络集合,如该神经网络集合为第k-1次训练得到的P个用户端的局部神经网络。用户端Ui的局部神经网络
Figure BDA0002593033150000331
中第一神经元的参数是由神经网络集合中所有局部神经网络中第一神经元的参数加权求和得到的。可选地,用户端Ui的局部神经网络
Figure BDA0002593033150000332
中第一神经元的参数的权重为是用户端Ui的训练数据中样本量与Q个用户端的样本总量(或与P个用户端的样本总量)的比值。在另一些实施例中,各个用户端的局部神经网络{
Figure BDA0002593033150000333
i=1、2、…、Q}中第一神经元的参数的权重可以相同均为1/P。上述仅以用户端Ui的局部神经网络
Figure BDA0002593033150000334
中第一神经元的参数的权重为例来说明,应理解,P个用户端中任意一个用户端的局部神经网络中第一神经元的参数的权重都可以参照上述用户端Ui的局部神经网络
Figure BDA0002593033150000335
中第一神经元的参数的权重的确定方法来实现,这里不再赘述。还应理解,其他用户端的局部神经网络的更新方式可以参照上述用户端Ui的局部神经网络更新方式来实现,这里不再赘述。
在第二种具体实现中,服务器根据Q个用户端分别发送的训练后的局部神经网络,对全局神经网络进行更新,进而,基于从更新后的全局神经网络中剪枝出用户端Ui的局部神经网络
Figure BDA0002593033150000336
其中,服务器根据Q个用户端分别发送的训练后的局部神经网络,对全局神经网络进行更新的具体实现可以参照上述可参见上述图9所示的实施例中步骤S925中的方法,这里不再赘述。
通过执行多次训练过程,直至训练过程得到的局部神经网络所更新全局神经网络的网络参数满足要求,比如,收敛或者准确度大于目标阈值(如80%)停止训练,通过最后一次训练过程得到的局部神经网络所更新全局神经网络的网络参数,得到训练后的全局神经网络。应理解,S是满足上述要求的正整数。
应理解,在训练过程中用户端的局部神经网络的结构不变,全局神经网络的网络结构也始终不变,但随着训练的不断进行,全局神经网络、局部神经网络的网络参数(也称为模型参数或权重矩阵)不断变化,即各个神经元的网络参数随着训练的进行不断变化。
实施例六:
基于上述实施例二确定出的全局神经网络中对目标类起作用的神经元,可以对全局神经网络进行约束训练,下面介绍本申请实施例提供的一种神经网络的训练方法,如图12所示,该方法可以由上述图1A所示的系统中训练设备实现,也可以基于上述图1F所示的联邦学习系统中用户端来实现,该方法可以包括但不限于如下步骤:
S121:获取目标类特征。其中,目标类特征用于表征属于目标类的样本的特点,目标类包括训练集中样本所属的类。
S122:根据目标类特征确定全局神经网络中对目标类起作用的神经元。
S123:通过训练集对全局神经网络进行约束训练,得到训练后的全局神经网络。
其中,约束训练可以包括两种实现方式:①、通过训练集对全局神经网络进行训练的过程中近更新对目标类起作用的神经元的参数,对目标类不起作用的神经元不进行更新;②、在通过训练集对全局神经网络进行训练的过程中,通过对目标类不起作用的神经元的参数施加大的惩罚项,以减少其对该不起作用的神经元的参数的该变量,而对目标类起作用的神经元的参数可以不受约束或受到较小的约束,这可以通过算是函数的设置来实现。
对于实现方式①:训练过程通过使得损失最小来优化全局神经网络的网络参数,其中损失可以由损失函数来计算。损失函数的形式可以如下:
Loss1=f1(Wl,D)
其中,Loss1为损失,Wl为全局神经网络中对目标类起作用的神经元的参数,D为全局神经网络的输入数据,即为训练集中的样本;f1(Wl,D)为训练集中所有样本输入到全局神经网络得到的预测类与该所有样本所属的类(真实的类)之间的交叉熵、方差等。其中,在通过训练集训练全局神经网络的过程中,全局神经网络中对目标类不起作用的神经元的参数始终不变。
进一步地,训练过程中还可以约束全局神经网络中对目标类起作用的神经元中部分神经元的更新,该部分神经元可以是对较少的类起作用的神经元,例如,仅对一个类起作用的该神经元进行约束。此时,损失函数可以增加一个惩罚项,损失函数的形式可以如下:
Loss1=f1(Wl,D)+g(Wa)
其中,g(Wa)为第一惩罚项,Wa为上述部分神经元的参数。第一惩罚项用于约束部分神经元的参数的改变量。其中,g(Wa)的一种实现可以是:
Figure BDA0002593033150000341
其中,Wa为部分神经元更新前的值,
Figure BDA0002593033150000342
为部分神经元更新后的值,‖‖表示范数,如0-范数、1-范数、2-范数、无穷范数。
对于实现方式②:训练过程通过使得损失最小来优化全局神经网络的网络参数,其中损失可以由损失函数来计算。损失函数的形式可以如下:
Figure BDA0002593033150000343
其中,Loss2为损失,
Figure BDA0002593033150000344
为更新后的全局神经网络的参数,对目标类起作用的神经元的参数,D为全局神经网络的输入数据,即为训练集中的样本;Wg为全局神经网络的参数;f2(Wg1,D)为训练集中所有样本输入到全局神经网络得到的预测类与该所有样本所属的类(真实的类)之间的交叉熵、方差等。
Figure BDA0002593033150000345
为第二惩罚项,用于约束全局神经网络中目标类不起作用的神经元的参数的改变量。
其中,
Figure BDA0002593033150000346
的一种实现可以是:
Figure BDA0002593033150000347
Figure BDA0002593033150000348
其中,M称为正则化模板;M0为全局神经网络的模板,为一个全1的数据集或向量,该数据集或向量中每个元素对应全局神经网络中一个神经元;Mj为类Tj的类模板,类模板也是一个与全局神经网络同尺寸的数据集或向量,其中,元素为“1”指示该类模板包括该元素对应的神经元,元素为“0”指示该类模板不包括该元素对应的神经元;λ为常数,为预设值;rj为训练集中属于类Tj的样本量与训练集中总样本量的比值,⊙为元素积,也称为按位乘。需要说明的是,当M中的元素小于0时,令其等于0。
可见,上述通过设置第二惩罚项,使得训练对样本量大的类起作用的神经元施加较小的约束,而对样本量小的类起作用的神经元施加较大的约束,以减少样本量小的类起作用的神经元的参数的改变量。
如图13为本申请实施例提供的另一种神经网络的训练方法的流程示意图,该方法可以有上述图1F所示的联邦学习系统来实现,请一并参阅图1F所示的联邦学习系统,该方法包括但不限于如下部分或全部步骤:
S131:服务器构建初始化是全局神经网络。
S132:服务器和Q个用户端联合执行S次训练过程,k、S为正整数,k≤S。其中,第k次训练过程包括如下步骤:
S1321:服务器将所述第k-1次训练过程得到的全局神经网络
Figure BDA0002593033150000351
发送至Q个用户端。
S1322:Q个用户端中的每个用户端根据目标类特征确定全局神经网络中对目标类起作用的神经元。应理解,目标类是根据用户端本地的训练集中包括的类,目标类特征是用于表征属于目标类的样本的特点。各个用户端中训练集不同,其对应的目标类、目标类特征可能也不相同。
S1323:Q个用户端中的每个用户端通过本地的训练集对全局神经网络
Figure BDA0002593033150000352
进行约束训练,得到训练后的全局神经网络。其中,用户端Ui通过本地的训练集对全局神经网络
Figure BDA0002593033150000353
进行训练,得到训练后的全局神经网络
Figure BDA0002593033150000354
关于约束训练可以参见上述图12所示的实施例中关于约束训练的相关描述,这里不再赘述。
S1324:Q个用户端中的每个用户端将训练后的全局神经网络发送至服务器。
S1325:服务器根据接收到的全局神经网络更新第k-1次训练过程得到的全局神经网络
Figure BDA0002593033150000355
得到第k次训练过程得到的全局神经网络
Figure BDA0002593033150000356
服务器汇集了Q个用户端训练得到的全局神经网络{
Figure BDA0002593033150000357
i=1、2、…、Q}。进而,可以基于接收到的全局神经网络更新全局神经网络
Figure BDA0002593033150000358
更新全局神经网络的具体实现可以参照上述图12所示的实施例中的两种更新方式。
可选地,在另一种实现中,S1322也可以由服务器来执行,即服务器根据用户端Ui对应的目标类特征确定全局神经网络中对该用户端Ui对应的目标类起作用的神经元。
应理解,不同轮次的训练过程中,同一用户端采用训练集不同,但其目标类特征可以相同或不同。其中,在用户端在不同轮次采用的训练集包括的类相同或包括的类、类的分布均相同,则其目标类、目标类特征不变。
实施例七:
在训练得到全局神经网后,该全局神经网络可以实现识别m个类,也称为类识别模型。如下介绍本申请实施例提供的一种类识别方法,该方法可以由上述图1A所示的执行设备或者,图1B-图1F所示的用户端,或者不参与全局神经网络训练的其他用户端或设备来执行,本申请以用户端为例来说明,如图14所示的类识别方法,用户端可以先裁剪后使用,该方法可以包括但不限于如下步骤:
S141:获取目标类特征,目标类特征用于表征属于目标类的数据的特点。
其中,目标类还可以是指定的或用户输入的至少一个类。目标类特征可以是该至少一个的类特征,或者该至少一个类的类特征的加权之和。其中,该至少一个类中各个类的权重可以是预设值。各个类的类特征可以是用户端从裁剪设备或者服务器获取到的。
S142:根据目标类特征对全局神经网络进行裁剪,得到局部神经网络,其中,全局神经网络用于识别多个类,如m个类,局部神经网络用于识别目标类,该m个类包括目标类。
其中,全局神经网络为经过上述实施例五或六所示的神经网络训练方法得到的全局神经网络,为m分类模型。裁剪得到的局部神经网络可以识别目标类,目标类为该m个类中的类。基于目标类特征对全局神经网络裁剪的具体实现可以参见上述实施例四中相关描述,这里不再赘述。
S143:将待识别数据输入到局部神经网络,得到识别结果。
用户端可以应用裁剪的得到的局部神经网络,进行目标类的识别。
上述方法,通过目标类特征对全局神经网络裁剪,得到其需要的局部神经网络,进而,可以运行该局部神经网络,来进行类识别,可以实现在计算资源较少的终端中快速实现类的快速识别。进一步地,不同用户可以根据需要识别的类裁剪出自己需要的神经网络,灵活性高。
在另一些实施例中,用户端也可以直接应用全局神经网络,例如将待识别数据输入到全局神经网络,得到该待识别数据的识别结果。
在一种应用场景中,上述全局神经网络为图像识别模型,是由大量图像样本训练得到的,用于识别各种动植物,此时,待识别数据为待识别图像。
在另一种应用场景中,上述全局神经网络为意图识别模型,是由大量文本样本训练得到的,用于识别意图,待识别数据为待识别文本。进一步地,用户端还可以执行识别得到的意图。
下面介绍本申请实施例涉及的装置、设备。
请参见图15A和图15B,图15A和图15B是本发明实施例提供的两种神经网络的裁剪装置的结构示意图,该装置150a和150b可以包括但不限于如下功能单元:
获取单元1501,用于获取目标类特征,所述目标类特征用于表征属于目标类的数据的特点;
裁剪单元1502,用于根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络,其中,所述全局神经网络用于识别多个类,所述局部神经网络用于识别所述目标类,所述多个类包括所述目标类。
在一些实施例中,所述目标类特征包括n维数据,n为正整数,所述裁剪单元1502具体用于:
针对所述n维数据中的每维数据,以所述每维数据为均值生成所述每维数据对应的概率分布,得到n个概率分布,所述n个概率分布与所述n维数据一一对应;
根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述局部神经网络。
在一些实施例中,如图15A所示的装置150a,所述裁剪单元1502包括:
第一编码单元15021,用于对所述全局神经网络中的每层层结构分别进行编码;
第一确定单元15022,用于确定所述全局神经网络中的每层层结构中每个神经元的分布值为所述每层层结构对应的概率分布中所述每个神经元的编码对应的值,所述n个维度与所述全局神经网络中的层结构具有对应关系,所述每层层结构对应的概率分布为所述n个概率分布中的所述每层层结构对应的维度所对应的概率分布;
第一去除单元15023,用于去除所述全局神经网络中分布值小于第一阈值的神经元,得到所述局部神经网络。
在一些实施例中,如图15B所示的装置150b,所述裁剪单元902包括:
第二编码单元15024,用于对所述全局神经网络中的所有神经元进行编码;
叠加单元,用于将所述n个概率分布的每个概率分布增加偏置后进行叠加;
第二确定单元15025,用于确定所述全局神经网络中的每个神经元的分布值为叠加后的概率分布中所述每个神经元的编码对应的值;
第二去除单元15026,用于去除所述全局神经网络中分布值小于第二阈值的神经元,得到所述局部神经网络。
在一些实施例中,所述目标类包括至少2个类,所述获取单元901具体用于:
对所述目标类中每个类的类特征进行加权求和,得到所述目标类特征。
需要说明的是,装置还可以包括其他用于实现上述实施例四所述的其他功能单元,上述各个单元的具体实现可以参见上述实施例四中相关描述,这里不再赘述。
请参见图16,图16是本发明实施例提供的一种神经网络的裁剪装置的结构示意图,该装置1600可以包括但不限于存储器1601、处理器1602、通信接口1603以及总线1604。其中,存储器1601、处理器1602、通信接口1603通过总线1604实现彼此之间的通信连接。
存储器1601可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1601可以存储程序,当存储器1601中存储的程序被处理器1602执行时,处理器1602和通信接口1603用于执行本申请方法实施例四中的方法或步骤。
处理器1602可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的装置150a或装置150b中的单元所需执行的功能,或者执行本申请方法实施例四中的方法或步骤。
处理器1602还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的实施例四所述的方法中的各个步骤可以通过处理器1602中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1602还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1601,处理器1602读取存储器1601中的信息,结合其硬件完成本申请实施例的装置150a或装置150b中的单元所需执行的功能,或者执行本申请方法实施例四所述的方法或步骤。
通信接口1603使用例如但不限于收发器一类的收发装置,来实现装置1600与其他设备或通信网络之间的通信。
总线1604可包括在装置1600各个部件(例如,存储器1601、处理器1602、通信接口1603)之间传送信息的通路。
需要说明的是,上述装置150a、装置150b、装置1600可以是图1A中的裁剪设备、执行设备,或图1B-图1D所示的用户端、图1E所示的服务器,还可以是其他设备。
请参见图17,图17是本发明实施例提供的一种神经网络的训练装置的结构示意图,该装置1700可以包括但不限于如下功能单元:
获取单元1701,用于获取目标类特征;所述目标类特征用于表征属于目标类的样本的特点,所述目标类包括训练集中样本所属的类;
裁剪单元1702,用于根据所述目标类特征对全局神经网络进行裁剪,得到第一局部神经网络;
训练单元1703,用于通过所述训练集训练所述第一局部神经网络,得到第二局部神经网络;
其中,所述第二局部神经网络用于更新所述全局神经网络;所述全局神经网络用于识别多个类,所述第二局部神经网络用于识别所述目标类,所述多个类包括所述目标类。
需要说明的是,装置还可以包括其他用于实现上述实施例五中用户端所执行的方法的功能单元,上述各个单元的具体实现可以参见上述实施例四中相关描述,这里不再赘述。
请参见图18,图18是本发明实施例提供的一种神经网络的训练装置的结构示意图,该装置1800可以包括但不限于存储器1801、处理器1802、通信接口1803以及总线1804。其中,存储器1801、处理器1802、通信接口1803通过总线1804实现彼此之间的通信连接。
存储器1801可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1801可以存储程序,当存储器1801中存储的程序被处理器1802执行时,处理器1802和通信接口1803用于执行本申请方法实施例五中用户端执行的方法或步骤。
处理器1802可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的装置1700中的单元所需执行的功能,或者执行本申请方法实施例五中用户端执行的方法或步骤。
处理器1802还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的实施例五所述的方法中用户端执行的各个步骤可以通过处理器1802中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1802还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1801,处理器1802读取存储器1801中的信息,结合其硬件完成本申请实施例的装置1700中的单元所需执行的功能,或者执行本申请方法实施例五中用户端执行的方法或步骤。
通信接口1803使用例如但不限于收发器一类的收发装置,来实现装置1800与其他设备或通信网络之间的通信。
总线1804可包括在装置1800各个部件(例如,存储器1801、处理器1802、通信接口1803)之间传送信息的通路。
需要说明的是,上述装置可以是图1A中的训练设备,或图1B-图1E任一联邦学习系统中的用户端。
请参见图19,图19是本发明实施例提供的一种神经网络的训练装置的结构示意图,该装置1900可以包括但不限于如下功能单元:
发送单元1901,用于向多个用户端发送全局神经网络;所述全局神经网络用于识别多个类;
接收单元1902,用于接收所述多个用户端分别发送的第二局部神经网络,所述第二局部神经网络用于识别目标类,所述多个类包括所述目标类,所述第二局部神经网络是所述用户端通过训练集训练第一局部神经网络得到的,所述第一局部神经网络是所述用户端根据目标类特征对所述全局神经网络裁剪得到的,所述目标类特征用于表征所述训练集中属于目标类的样本的特点;
更新单元1903,用于根据接收到的第二局部神经网络更新所述全局神经网络。
需要说明的是,装置1900还可以包括其他用于实现上述实施例五中服务器所执行的方法的功能单元,上述各个单元的具体实现可以参见上述实施例五中相关描述,这里不再赘述。
请参见图20,图20是本发明实施例提供的一种神经网络的训练装置的结构示意图,该装置2000可以包括但不限于存储器2001、处理器2002、通信接口2003以及总线2004。其中,存储器2001、处理器2002、通信接口2003通过总线2004实现彼此之间的通信连接。
存储器2001可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器2001可以存储程序,当存储器2001中存储的程序被处理器2002执行时,处理器2002和通信接口2003用于执行本申请方法实施例五中服务器执行的方法或步骤。
处理器2002可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的装置1900中的单元所需执行的功能,或者执行本申请方法实施例五中服务器执行的方法或步骤。
处理器2002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的实施例五所述的方法中服务器的各个步骤可以通过处理器2002中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2002还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2001,处理器2002读取存储器2001中的信息,结合其硬件完成本申请实施例的装置1900中的单元所需执行的功能,或者执行本申请方法实施例五中服务器执行的方法或步骤。
通信接口2003使用例如但不限于收发器一类的收发装置,来实现装置2000与其他设备或通信网络之间的通信。
总线2004可包括在装置2000各个部件(例如,存储器2001、处理器2002、通信接口2003)之间传送信息的通路。
需要说明的是,上述装置1900、装置2000可以是图1A中的训练设备,或图1B-图1E任一联邦学习系统中的服务器。
请参见图21,图21是本发明实施例提供的一种神经网络的训练装置的结构示意图,该装置2100可以包括但不限于如下功能单元:
获取单元2101,用于获取目标类特征。其中,所述目标类特征用于表征属于目标类的样本的特点,所述目标类包括训练集中样本所属的类;
确定单元2102,用于根据所述目标类特征确定全局神经网络中对所述目标类起作用的神经元。
训练单元2103,用于通过所述训练集对所述全局神经网络进行约束训练,得到训练后的全局神经网络。
其中,所述全局神经网络用于识别多个类,所述多个类包括所述目标类。
需要说明的是,装置2100还可以包括其他用于实现上述实施例六中训练设备所执行的方法的功能单元,上述各个单元的具体实现可以参见上述实施例六中相关描述,这里不再赘述。
请参见图22,图22是本发明实施例提供的一种神经网络的训练装置的结构示意图,该装置2200可以包括但不限于存储器2201、处理器2202、通信接口2203以及总线2204。其中,存储器2201、处理器2202、通信接口2203通过总线2204实现彼此之间的通信连接。
存储器2201可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器2201可以存储程序,当存储器2201中存储的程序被处理器2202执行时,处理器2202和通信接口2203用于执行本申请方法实施例六中服务器执行的方法或步骤。
处理器2202可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的装置2100中的单元所需执行的功能,或者执行本申请方法实施例六中训练设备执行的方法或步骤。
处理器2202还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的实施例六所述的方法中的各个步骤可以通过处理器2202中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2202还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2201,处理器2202读取存储器2201中的信息,结合其硬件完成本申请实施例的装置2100中的单元所需执行的功能,或者执行本申请方法实施例六中服务器执行的方法或步骤。
通信接口2203使用例如但不限于收发器一类的收发装置,来实现装置2200与其他设备或通信网络之间的通信。
总线2204可包括在装置2200各个部件(例如,存储器2201、处理器2202、通信接口2203)之间传送信息的通路。
需要说明的是,上述装置2100、装置2200可以是图1A中的训练设备或图1F任一系统中的用户端。
请参见图23,图23是本发明实施例提供的一种类识别装置的结构示意图,该装置2300可以包括但不限于如下功能单元:
获取单元2301,用于获取目标类特征,所述目标类特征用于表征属于目标类的数据的特点;
裁剪单元2302,用于根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络,其中,所述全局神经网络用于识别多个类,所述局部神经网络用于识别所述目标类,所述多个类包括所述目标类;
识别单元2303,用于将待识别数据输入到所述局部神经网络,得到识别结果。
需要说明的是,装置2300还可以包括其他用于实现上述实施例七中执行设备所执行的方法的功能单元,上述各个单元的具体实现可以参见上述实施例七中相关描述,这里不再赘述。
请参见图24,图24是本发明实施例提供的一种类识别装置的结构示意图,该装置2400可以包括但不限于存储器2401、处理器2402、通信接口2403以及总线2404。其中,存储器2401、处理器2402、通信接口2403通过总线2404实现彼此之间的通信连接。
存储器2401可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器2401可以存储程序,当存储器2401中存储的程序被处理器2402执行时,处理器2402和通信接口2403用于执行本申请方法实施例七中执行设备执行的方法或步骤。
处理器2402可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的装置2300中的单元所需执行的功能,或者执行本申请方法实施例七中执行设备执行的方法或步骤。
处理器2402还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的实施例七所述的方法中的各个步骤可以通过处理器2402中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2402还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2401,处理器2402读取存储器2401中的信息,结合其硬件完成本申请实施例的装置2300中的单元所需执行的功能,或者执行本申请方法实施例七中执行设备所执行的方法或步骤。
通信接口2403使用例如但不限于收发器一类的收发装置,来实现装置2400与其他设备或通信网络之间的通信。
总线2404可包括在装置2400各个部件(例如,存储器2401、处理器2402、通信接口2403)之间传送信息的通路。
需要说明的是,上述装置2300、装置2400可以是图1A中的执行设备,或图1B-图1F任一系统中的用户端,或其他用户端。
应注意,尽管图16、图18、图20、图22和图24所示的装置中仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,图16、图18、图20、图22和图24所示的装置还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,图16、图18、图20、图22和图24所示的装置还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,图16、图18、图20、图22和图24所示的装置也可仅仅包括实现本申请实施例所必须的器件,而不必包括图16、图18、图20、图22和图24所示的全部器件。
上述各个装置所实现的方法可以参照上述方法实施例中相关描述,上述装置所达到的有益效果也同上述方法实施例一致,这里不再赘述。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (43)

1.一种神经网络的裁剪方法,其特征在于,包括:
获取目标类特征,所述目标类特征用于表征属于目标类的数据的特点;
根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络,其中,所述全局神经网络用于识别多个类,所述局部神经网络用于识别所述目标类,所述多个类包括所述目标类。
2.根据权利要求1所述的方法,其特征在于,所述局部神经网络包括所述全局神经网络中用于识别所述目标类的神经元;第一类与第二类为所述多个类中的两个类;所述第一类的类特征与所述第二类的类特征越相似,所述全局神经网络中用于识别所述第一类的神经元与用于识别所述第二类的神经元中相同的神经元越多。
3.根据权利要求1或2所述的方法,其特征在于,所述目标类特征包括n维数据,n为正整数,所述根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络,包括:
针对所述n维数据中的每维数据,以所述每维数据为均值生成所述每维数据对应的概率分布,得到n个概率分布,所述n个概率分布与所述n维数据一一对应;
根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述局部神经网络。
4.根据权利要求3所述的方法,其特征在于,所述根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述局部神经网络,包括:
对所述全局神经网络中的每层层结构分别进行编码;
确定所述全局神经网络中的每层层结构中每个神经元的分布值为所述每层层结构对应的概率分布中所述每个神经元的编码对应的值,所述n个维度与所述全局神经网络中的层结构具有对应关系,所述每层层结构对应的概率分布为所述n个概率分布中的所述每层层结构对应的维度所对应的概率分布;
去除所述全局神经网络中分布值小于第一阈值的神经元,得到所述局部神经网络。
5.根据权利要求3所述的方法,其特征在于,所述根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述局部神经网络,包括:
对所述全局神经网络中的所有神经元进行编码;
将所述n个概率分布的每个概率分布增加偏置后进行叠加;
确定所述全局神经网络中的每个神经元的分布值为叠加后的概率分布中所述每个神经元的编码对应的值;
去除所述全局神经网络中分布值小于第二阈值的神经元,得到所述局部神经网络。
6.根据权利要求3-5任一项所述的方法,其特征在于,所述目标类包括至少2个类,所述获取目标类特征包括:
对所述目标类中每个类的类特征进行加权求和,得到所述目标类特征。
7.根据权利要求1或2所述的方法,其特征在于,所述目标类包括至少2个类,所述目标类特征包括所述至少2个类中每个类的类特征,所述根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络,包括:
针对所述目标类中每个类,根据所述每个类的类特征生成所述每个类的概率分布,根据所述每个类的概率分布确定所述全局神经网络中对所述每个类起作用的神经元;
确定所述全局神经网络对目标类起作用的神经元为所述全局神经网络对目标类中所有类分别起作用的神经元的并集;
去除所述全局神经网络中除所述对所述目标类起作用的神经元之外的神经元,得到所述局部神经网络。
8.根据权利要求7所述的方法,其特征在于,所述每个类的类特征包括n维数据,n为正整数,所述根据所述每个类的类特征生成所述每个类的概率分布,包括:
针对所述n维数据中的每维数据,以所述每维数据为均值生成所述每维数据对应的概率分布,得到n个概率分布,所述n个概率分布与所述n维数据一一对应,所述每个类的概率分布包括所述n个概率分布。
9.根据权利要求8所述的方法,其特征在于,所述根据所述每个类的概率分布确定所述全局神经网络中对所述每个类起作用的神经元,包括:
对所述全局神经网络中的每层层结构分别进行编码;
确定所述全局神经网络中的每层层结构中每个神经元的分布值为所述每层层结构对应的概率分布中所述每个神经元的编码对应的值,所述n个维度与所述全局神经网络中的层结构具有对应关系,所述每层层结构对应的概率分布为所述n个概率分布中的所述每层层结构对应的维度所对应的概率分布;
去除所述全局神经网络中分布值小于第三阈值的神经元,得到所述全局神经网络中对所述每个类起作用的神经元。
10.根据权利要求8所述的方法,其特征在于,所述根据所述每个类的概率分布确定所述全局神经网络中对所述每个类起作用的神经元,包括:
对所述全局神经网络中的所有神经元进行编码;
将所述n个概率分布的每个概率分布增加偏置后进行叠加;
确定所述全局神经网络中的每个神经元的分布值为叠加后的概率分布中所述每个神经元的编码对应的值;
去除所述全局神经网络中分布值小于第四阈值的神经元,得到所述全局神经网络中对所述每个类起作用的神经元。
11.一种神经网络的训练方法,其特征在于,包括:
获取目标类特征;所述目标类特征用于表征属于目标类的样本的特点,所述目标类包括训练集中样本所属的类;
根据所述目标类特征对全局神经网络进行裁剪,得到第一局部神经网络;
通过所述训练集训练所述第一局部神经网络,得到第二局部神经网络;
其中,所述第二局部神经网络用于更新所述全局神经网络;所述全局神经网络用于识别多个类,所述第二局部神经网络用于识别所述目标类,所述多个类包括所述目标类。
12.根据权利要求11所述的方法,其特征在于,所述第一局部神经网络包括所述全局神经网络中用于识别所述目标类的神经元;第一类与第二类为所述多个类中的两个类;所述第一类的类特征与所述第二类的类特征相似,则所述全局神经网络中用于识别所述第一类的神经元与用于识别所述第二类的神经元中相同的神经元越多。
13.根据权利要求11或12所述的方法,其特征在于,所述目标类特征包括n维数据,n为正整数,所述根据所述目标类特征对全局神经网络进行裁剪,得到第一局部神经网络,包括:
针对所述n维数据中的每维数据,以所述每维数据为均值生成所述每维数据对应的概率分布,得到n个概率分布,所述n个概率分布与所述n维数据一一对应;
根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述第一局部神经网络。
14.根据权利要求13所述的方法,其特征在于,所述根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述第一局部神经网络,包括:
对所述全局神经网络中的每层层结构分别进行编码;
确定所述全局神经网络中的每层层结构中每个神经元的分布值为所述每层层结构对应的概率分布中所述每个神经元的编码对应的值,所述n个维度与所述全局神经网络中的层结构具有对应关系,所述每层层结构对应的概率分布为所述n个概率分布中的所述每层层结构对应的维度所对应的概率分布;
去除所述全局神经网络中分布值小于第一阈值的神经元,得到所述第一局部神经网络。
15.根据权利要求13所述的方法,其特征在于,所述根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述第一局部神经网络,包括:
对所述全局神经网络中的所有神经元进行编码;
将所述n个概率分布的每个概率分布增加偏置后进行叠加;
确定所述全局神经网络中的每个神经元的分布值为叠加后的概率分布中所述每个神经元的编码对应的值;
去除所述全局神经网络中分布值小于第二阈值的神经元,得到所述第一局部神经网络。
16.根据权利要求13-15任一项所述的方法,其特征在于,所述目标类包括至少2个类,所述获取目标类特征包括:
对所述目标类中每个类的类特征进行加权求和,得到所述目标类特征。
17.根据权利要求11或12所述的方法,其特征在于,所述目标类包括至少2个类,所述目标类特征包括所述至少2个类中每个类的类特征,所述根据所述目标类特征对全局神经网络进行裁剪,得到第一局部神经网络,包括:
针对所述目标类中每个类,根据所述每个类的类特征生成所述每个类的概率分布,根据所述每个类的概率分布确定所述全局神经网络络中对所述每个类起作用的神经元;
确定所述全局神经网络对目标类起作用的神经元为所述全局神经网络对目标类中所有类分别起作用的神经元的并集;
去除所述全局神经网络中除所述对所述目标类起作用的神经元之外的神经元,得到所述第一局部神经网络。
18.根据权利要求17所述的方法,其特征在于,所述每个类的类特征包括n维数据,n为正整数,所述根据所述每个类的类特征生成所述每个类的概率分布,包括:
针对所述n维数据中的每维数据,以所述每维数据为均值生成所述每维数据对应的概率分布,得到n个概率分布,所述n个概率分布与所述N2维数据一一对应,所述每个类的概率分布包括所述n个概率分布。
19.根据权利要求18所述的方法,其特征在于,所述根据所述每个类的概率分布确定所述全局神经网络络中对所述每个类起作用的神经元,包括:
对所述全局神经网络中的每层层结构分别进行编码;
确定所述全局神经网络中的每层层结构中每个神经元的分布值为所述每层层结构对应的概率分布中所述每个神经元的编码对应的值,所述n个维度与所述全局神经网络中的层结构具有对应关系,所述每层层结构对应的概率分布为所述n个概率分布中的所述每层层结构对应的维度所对应的概率分布;
去除所述全局神经网络中分布值小于第三阈值的神经元,得到所述全局神经网络中对所述每个类起作用的神经元。
20.根据权利要求18所述的方法,其特征在于,所述根据所述每个类的概率分布确定所述全局神经网络中对所述每个类起作用的神经元,包括:
对所述全局神经网络中的所有神经元进行编码;
将所述n个概率分布的每个概率分布增加偏置后进行叠加;
确定所述全局神经网络中的每个神经元的分布值为叠加后的概率分布中所述每个神经元的编码对应的值;
去除所述全局神经网络中分布值小于第四阈值的神经元,得到所述全局神经网络中对所述每个类起作用的神经元。
21.根据权利要求11-20任一项所述的方法,其特征在于,所述方法还包括:
将所述第二局部神经网络发送至服务器,所述服务器用于根据所述第二局部神经网络更新所述全局神经网络。
22.根据权利要求11-21任一项所述的方法,其特征在于,所述获取目标类特征之前,所述方法还包括:
从所述训练集中的每一个样本中提取所述目标类的特征,得到所述每一个样本对应的特征;
对所述训练集中所有样本对应的特征进行加权平均,得到所述目标类的类中心;
将所述目标类的类中心发送至所述服务器,所述目标类的类中心用于所述服务器确定所述目标类特征。
23.根据权利要求11-21任一项所述的方法,其特征在于,所述目标类包括至少2个类,所述目标类特征包括至少2个类的类特征,所述获取目标类特征之前,所述方法还包括:
针对所述目标类中的每个类,从所述训练集中的属于所述每个类的样本中提取所述每个类的特征,对属于所述每个类的样本对应的特征进行加权平均,得到所述每个类的类中心;
将所述目标类中所有类的类中心发送至服务器,所述每个类的类中心用于所述服务器确定所述每个类的类特征。
24.一种神经网络的训练方法,其特征在于,包括:
向多个用户端发送全局神经网络;所述全局神经网络用于识别多个类;
接收所述多个用户端分别发送的第二局部神经网络,所述第二局部神经网络用于识别目标类,所述多个类包括所述目标类,所述第二局部神经网络是所述用户端通过训练集训练第一局部神经网络得到的,所述第一局部神经网络是所述用户端根据目标类特征对所述全局神经网络裁剪得到的,所述目标类特征用于表征所述训练集中属于目标类的样本的特点;
根据接收到的第二局部神经网络更新所述全局神经网络。
25.根据权利要求24所述的方法,其特征在于,所述根据接收到的第二局部神经网络更新所述全局神经网络,包括:
针对所述全局神经网络中的每个神经元,确定更新后的全局神经网络中的所述每个神经元的网络参数为所述接收到的第二局部神经网络中所述每个神经元的网络参数的加权平均。
26.根据权利要求24或25所述的方法,其特征在于,所述方法还包括:
接收所述至少一个用户端分别发送的目标类的类中心;第一用户端为所述至少一个用户端中的任意一个用户端,所述第一用户端发送的目标类的类中心是对从所述第一用户端的训练集中的属于所述目标类的样本中提取的特征进行加权平均得到的;
根据接收到的目标类的类中心确定所述目标类特征。
27.一种类识别方法,其特征在于,包括:
获取目标类特征,所述目标类特征用于表征属于目标类的数据的特点;
根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络,其中,所述全局神经网络用于识别多个类,所述局部神经网络用于识别所述目标类,所述多个类包括所述目标类;
将待识别数据输入到所述局部神经网络,得到识别结果。
28.一种神经网络的裁剪装置,其特征在于,包括:
获取单元,用于获取目标类特征,所述目标类特征用于表征属于目标类的数据的特点;
裁剪单元,用于根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络,其中,所述全局神经网络用于识别多个类,所述局部神经网络用于识别所述目标类,所述多个类包括所述目标类。
29.根据权利要求28所述的方法,其特征在于,所述目标类特征包括n维数据,n为正整数,所述裁剪单元具体用于:
针对所述n维数据中的每维数据,以所述每维数据为均值生成所述每维数据对应的概率分布,得到n个概率分布,所述n个概率分布与所述n维数据一一对应;
根据所述n个概率分布对所述全局神经网络进行裁剪,得到所述局部神经网络。
30.根据权利要求29所述的方法,其特征在于,所述裁剪单元包括:
第一编码单元,用于对所述全局神经网络中的每层层结构分别进行编码;
第一确定单元,用于确定所述全局神经网络中的每层层结构中每个神经元的分布值为所述每层层结构对应的概率分布中所述每个神经元的编码对应的值,所述n个维度与所述全局神经网络中的层结构具有对应关系,所述每层层结构对应的概率分布为所述n个概率分布中的所述每层层结构对应的维度所对应的概率分布;
第一去除单元,用于去除所述全局神经网络中分布值小于第一阈值的神经元,得到所述局部神经网络。
31.根据权利要求29所述的装置,其特征在于,所述裁剪单元包括:
第二编码单元,用于对所述全局神经网络中的所有神经元进行编码;
叠加单元,用于将所述n个概率分布的每个概率分布增加偏置后进行叠加;
第二确定单元,用于确定所述全局神经网络中的每个神经元的分布值为叠加后的概率分布中所述每个神经元的编码对应的值;
第二去除单元,用于去除所述全局神经网络中分布值小于第二阈值的神经元,得到所述局部神经网络。
32.根据权利要求29-31任一项所述的装置,其特征在于,所述目标类包括至少2个类,所述获取单元具体用于:
对所述目标类中每个类的类特征进行加权求和,得到所述目标类特征。
33.一种神经网络的训练装置,其特征在于,包括:
获取单元,用于获取目标类特征;所述目标类特征用于表征属于目标类的样本的特点,所述目标类包括训练集中样本所属的类;
裁剪单元,用于根据所述目标类特征对全局神经网络进行裁剪,得到第一局部神经网络;
训练单元,用于通过所述训练集训练所述第一局部神经网络,得到第二局部神经网络;
其中,所述第二局部神经网络用于更新所述全局神经网络;所述全局神经网络用于识别多个类,所述第二局部神经网络用于识别所述目标类,所述多个类包括所述目标类。
34.根据权利要求33所述的装置,其特征在于,所述装置还包括:
发送单元,用于将所述第二局部神经网络发送至服务器,所述服务器用于根据所述第二局部神经网络更新所述全局神经网络。
35.根据权利要求33所述的装置,其特征在于,所述装置还包括:
提取单元,用于从所述训练集中的每一个样本中提取所述目标类的特征,得到所述每一个样本对应的特征;
计算单元,用于对所述训练集中所有样本对应的特征进行加权平均,得到所述目标类的类中心;
发送单元,用于将所述目标类的类中心发送至所述服务器,所述目标类的类中心用于所述服务器确定所述目标类特征。
36.一种神经网络的训练装置,其特征在于,包括:
发送单元,用于向多个用户端发送全局神经网络;所述全局神经网络用于识别多个类;
接收单元,用于接收所述多个用户端分别发送的第二局部神经网络,所述第二局部神经网络用于识别目标类,所述多个类包括所述目标类,所述第二局部神经网络是所述用户端通过训练集训练第一局部神经网络得到的,所述第一局部神经网络是所述用户端根据目标类特征对所述全局神经网络裁剪得到的,所述目标类特征用于表征所述训练集中属于目标类的样本的特点;
更新单元,用于根据接收到的第二局部神经网络更新所述全局神经网络。
37.根据权利要求36所述的装置,其特征在于,所述更新单元具体用于:
针对所述全局神经网络中的每个神经元,确定更新后的全局神经网络中的所述每个神经元的网络参数为所述接收到的第二局部神经网络中所述每个神经元的网络参数的加权平均。
38.根据权利要求36或37所述的装置,其特征在于,所述装置还包括:
接收单元,用于接收所述至少一个用户端分别发送的目标类的类中心;第一用户端为所述至少一个用户端中的任意一个用户端,所述第一用户端发送的目标类的类中心是对从所述第一用户端的训练集中的属于所述目标类的样本中提取的特征进行加权平均得到的;
确定单元,用于根据接收到的目标类的类中心确定所述目标类特征。
39.一种类识别装置,其特征在于,包括:
获取单元,用于获取目标类特征,所述目标类特征用于表征属于目标类的数据的特点;
裁剪单元,用于根据所述目标类特征对全局神经网络进行裁剪,得到局部神经网络,其中,所述全局神经网络用于识别多个类,所述局部神经网络用于识别所述目标类,所述多个类包括所述目标类;
识别单元,用于将待识别数据输入到所述局部神经网络,得到识别结果。
40.一种神经网络的裁剪装置,其特征在于,包括处理器、存储器和通信接口,所述处理器、所述通信接口连接到所述处理器,所述存储器用于存储程序,所述处理器用于执行所述存储器存储的程序,使得所述装置实现如权利要求1-10任一项所述的神经网络的裁剪方法。
41.一种神经网络的训练装置,其特征在于,包括处理器、存储器和通信接口,所述处理器、所述通信接口连接到所述处理器,所述存储器用于存储程序,所述处理器用于执行所述存储器存储的程序,使得所述装置实现如权利要求11-23任一项所述的神经网络的训练方法。
42.一种神经网络的训练装置,其特征在于,包括处理器、存储器和通信接口,所述处理器、所述通信接口连接到所述处理器,所述存储器用于存储程序,所述处理器用于执行所述存储器存储的程序,使得所述服务器实现如权利要求24-26任一项所述的神经网络的训练方法。
43.一种类识别装置,其特征在于,包括处理器、存储器和通信接口,所述处理器、所述通信接口连接到所述处理器,所述存储器用于存储程序,所述处理器用于执行所述存储器存储的程序,使得所述用户端实现如如权利要求27所述的神经网络的训练方法的单元。
CN202010700975.0A 2020-07-20 2020-07-20 神经网络的裁剪、训练方法、类识别方法及相关装置 Pending CN113962356A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010700975.0A CN113962356A (zh) 2020-07-20 2020-07-20 神经网络的裁剪、训练方法、类识别方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010700975.0A CN113962356A (zh) 2020-07-20 2020-07-20 神经网络的裁剪、训练方法、类识别方法及相关装置

Publications (1)

Publication Number Publication Date
CN113962356A true CN113962356A (zh) 2022-01-21

Family

ID=79459480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010700975.0A Pending CN113962356A (zh) 2020-07-20 2020-07-20 神经网络的裁剪、训练方法、类识别方法及相关装置

Country Status (1)

Country Link
CN (1) CN113962356A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116644804A (zh) * 2023-07-27 2023-08-25 浪潮电子信息产业股份有限公司 分布式训练系统、神经网络模型训练方法、设备和介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116644804A (zh) * 2023-07-27 2023-08-25 浪潮电子信息产业股份有限公司 分布式训练系统、神经网络模型训练方法、设备和介质
CN116644804B (zh) * 2023-07-27 2024-01-12 浪潮电子信息产业股份有限公司 分布式训练系统、神经网络模型训练方法、设备和介质

Similar Documents

Publication Publication Date Title
CN111353076B (zh) 训练跨模态检索模型的方法、跨模态检索的方法和相关装置
Salman et al. Weather forecasting using deep learning techniques
CN111291809B (zh) 一种处理装置、方法及存储介质
CN113688304A (zh) 搜索推荐模型的训练方法、搜索结果排序的方法及装置
CN112221156B (zh) 数据异常识别方法、装置、存储介质以及电子设备
CN110222718B (zh) 图像处理的方法及装置
CN112801059B (zh) 图卷积网络系统和基于图卷积网络系统的3d物体检测方法
CN113595993B (zh) 边缘计算下模型结构优化的车载感知设备联合学习方法
Nie et al. Online multiview deep forest for remote sensing image classification via data fusion
CN115951883B (zh) 分布式微服务架构的服务组件管理系统及其方法
CN112906747A (zh) 一种基于知识蒸馏的图像分类方法
CN117501245A (zh) 神经网络模型训练方法和装置、数据处理方法和装置
CN114004383A (zh) 时间序列预测模型的训练方法、时间序列预测方法及装置
Kim et al. Building deep random ferns without backpropagation
CN114698395A (zh) 神经网络模型的量化方法和装置、数据处理的方法和装置
CN116844041A (zh) 一种基于双向卷积时间自注意力机制的耕地提取方法
Wu et al. Semantic transfer between different tasks in the semantic communication system
CN113962356A (zh) 神经网络的裁剪、训练方法、类识别方法及相关装置
CN114373099A (zh) 一种基于稀疏图卷积的三维点云分类方法
Bendre et al. Show why the answer is correct! towards explainable ai using compositional temporal attention
Goswami et al. Automatic object recognition from satellite images using artificial neural network
Xu et al. Time series prediction via recurrent neural networks with the information bottleneck principle
Alam et al. Novel hierarchical Cellular Simultaneous Recurrent neural Network for object detection
CN116011691A (zh) 一种针对最优路径规划的分布式反馈混联注意力网络模型
BUZ et al. A novel approach and application of time series to image transformation methods on classification of underwater objects

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