本发明属于联邦学习以及大数据技术领域,具体涉及一种用于横向联邦学习的优化方法。
背景技术:
在人工智能应用过程中,企业以及其他组织很难获取大量优质数据用于ai模型效果提升。不同组织之间出于利益考量往往不提供各自数据进行聚合,导致数据以孤岛形式存在;同时国内外监管环境也在逐步加强数据管理,陆续出台相关隐私保护政策。因此未来在不同组织之间进行数据的整合工作将是十分有挑战性的,如何在遵守更为严格隐私保护条例下解决数据碎片化和数据隔离的问题是当前人工智能研究者和实践者面临的首要挑战。
为了解决目前存在的数据孤岛以及隐私保护问题,学者们开始使用联邦学习的方法来对ai模型效果进行提升,力求在保证数据隐私安全及合法合规的基础上实现共同建模,提升ai模型效果。根据每个参与共同建模的企业(参与方)数据分布的不同,联邦学习分为:横向联邦学习、纵向联邦学习以及联邦迁移学习。其中横向联邦学习适用于业态相同但触达客户不同,即特征重叠多、用户重叠少的场景,比如不同地区的银行间,它们的业务相似(特征相似)但用户不同(样本不同)。
然而,横向联邦学习参与方来源数据复杂,很难保证独立同分布这一条件,而现有横向联邦学习优化方法基于数据独立同分布假设前提,往往不能获得预期的效果。为此,有必要对其进行改进,以克服实际应用中的不足。
技术实现要素:
基于现有技术中存在的上述缺点和不足,本发明的目的之一是至少解决现有技术中存在的上述问题之一或多个,换言之,本发明的目的之一是提供满足前述需求之一或多个的一种用于横向联邦学习的优化方法。
为了达到上述发明目的,本发明采用以下技术方案:
一种用于横向联邦学习的优化方法,包括以下步骤:
s1、客户端采集数据,并对数据进行预处理;
s2、通过smote-non-iid模型处理客户端的数据;
s3、通过横向联邦学习中的客户端-服务器架构,结合数据生成环境,进行smote-non-iid模型训练;
s4、得到smote-non-iid的优化模型,通过预测以得到评估结果。
作为优选方案,所述步骤s1中,通过采集特征相似、样本不同的来源数据,模拟现实场景中业态相似、触达客户不同的客户端,并对数据进行归一化预处理。
作为优选方案,所述步骤s2包括:
s2-1、将客户端按照标签进行分类,使得客户端数量等于标签数量,以使每个客户端有且仅有一个标签;
s2-2、数个客户端分别使用smote算法生成合成数据,并将合成数据传递给服务器,由服务器将合成数据分配给各个客户端,以实现iid分布。
作为优选方案,所述smote算法具体包括:
s2-2-1:对于少数类中的每一个样本,以欧氏距离为标准计算得到少数类样本集中所有样本的距离,得到其k近邻;
s2-2-2:根据样本不平衡比例设置采样倍率n,对于每一个少数类样本x,从其k近邻中随机选取若干个样本,假设选择的近邻为xn;
s2-2-3:对于每一个随机选出的近邻xn,分别与原样本构建新的样本。
作为优选方案,所述步骤s3具体包括:
s3-1、通过神经网络初始化,以得到初始模型参数,并将初始模型参数发给客户端;
s3-2、客户端本地更新模型参数;
s3-3、客户端将更新模型参数通过加法同态加密后,将已加密模型参数以及相关损失发送给服务器;
s3-4、服务器对收到的模型参数解密后进行聚合;
s3-5、服务器检查损失函数是否收敛或者是否达到最大训练轮次;若是,则服务器给各客户端发信号,使其全部停止模型训练;若不是,则返回s3-2;
s3-6、服务器将聚合后的模型参数发送给所有客户端。
作为优选方案,所述步骤s3-2包括:
s3-2-1:客户端从服务器获得最新的模型参数,即设
s3-2-2:随机选取一个批次数据,前馈计算每一层的净输入值z(l)和激活值a(l),直到最后一层;
s3-2-3:计算输出层输出o与训练数据样本实际输出y之间交叉熵损失函数,定义损失函数为:
其中y∈{0,1}c为标签y对应的one-hot向量表示.
s3-2-4:反向传播计算每一层的误差δ(l);根据链式法则,第l层的误差项为:
其中⊙是向量的点积运算符,表示每个元素相乘
s3-2-5:计算梯度;
s3-2-6:本地更新模型参数;
本发明与现有技术相比,有益效果是:
1、本发明利用smote算法结合横向联邦学习,将横向联邦学习中参与方的数据处理为iid分布,采用典型的横向联邦学习系统的客户-服务器架构,结合上述生成的数据环境进行smote-non-iid模型训练,最终得到smote-non-iid优化模型评估结果。
2、本发明的每个客户端(即参与方)采用smote算法合成数据,同时接收来自其他客户端的合成数据,能够有效处理联邦学习中数据异构性问题,帮助业态相似但触达用户不同的企业之间应用横向联邦学习进行模型共建与效果提升,有助于推进横向联邦学习商业落地应用。
3、本发明通过生成的数据集并采用加法同态加密的模型平均算法与服务器开展横向联邦学习,强调在模型训练期间保护数据隐私,利于更好应对愈发严格的用户隐私与数据安全的监管环境。
附图说明
图1是本发明实施例的实验1(iid)与实验2(non-iid)的架构示例图;
图2是本发明实施例的实验3(smote-non-iid)的架构示例图。
具体实施方式
为了更清楚地说明本发明实施例,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
实施例:
本实施例提供一种用于横向联邦学习的优化方法,具体包括以下步骤:
s1:采集特征相似但样本不同的来源数据,模拟现实场景中业态相似、触达客户不同的参与方的数据状态,并对数据进行归一化预处理;
s2:基于smote-non-iid模型策略处理各个客户端(参与方)本地数据的非独立同分布(non-idependentlyandidenticallydistributed,non-iid)的数据异构性;
s2-1:将处理后的数据根据标签分类,将客户端按照数据标签进行分类,使得客户端的数量等于数据的标签数,同时保证每个客户端有且仅有一个标签;
s2-2:每个客户端使用smote算法生成合成数据,并将这些数据传递给服务器(协调方),最后由服务器将这些合成数据分配给各个客户端,保证iid分布;
其中,smote算法的基本思想是对少数类样本进行分析并根据少数类样本人工合成新样本添加到数据集中,具体步骤如下:
s2-2-1:对于少数类中的每一个样本,以欧氏距离为标准计算它到少数类样本集中所有样本的距离,得到其k近邻;
s2-2-2:根据样本不平衡比例设置一个采样比例以确定采样倍率n,对于每一个少数类样本x,从其k近邻中随机选择若干个样本,假设选择的近邻为xn;
s2-2-3:对于每一个随机选出的近邻xn,分别与原样本按照如下的公式构建新的样本;
s3:采用典型的横向联邦学习系统的客户-服务器架构,使用加法同态加密的模型平均算法,结合上述生成的数据集进行smote-non-iid模型训练,具体步骤如下:
s3-1:神经网络初始化,给定训练数据样本集(x,y),给定输入层节点数m、输出层节点数n,初始化参数w,给定学习率η,给定神经元激活函数f(·);给定每一轮中进行计算的参与方的占比ρ,每一轮中每一个参与方在本地数据集进行训练的步骤数s,参与方更新时使用的mini-batch(最小批量)的大小m;
bp神经网络采用单隐层结构,选取迭代次数s为5,给定学习率η为0.1,初始权重值和阈值均为0~1之间的随机数;参与方的个数k,激活函数为sigmoid函数。初始化模型参数w0,并将原始的模型参数w0广播给所有的参与方;
s3-2:参与方本地更新模型参数;
s3-2-1:参与方从服务器获得最新的模型参数,即设
s3-2-2:随机选取一个批次数据,前馈计算每一层的净输入值z(l)和激活值a(l),直到最后一层;(l表示神经网络的层数)
s3-2-3:计算输出层输出o与训练数据样本实际输出y之间交叉熵损失函数,定义损失函数为:
其中y∈{0,1}c为标签y对应的one-hot向量表示.
s3-2-4:反向传播计算每一层的误差δ(l);根据链式法则,第l层的误差项为:
其中⊙是向量的点积运算符,表示每个元素相乘
s3-2-5:计算梯度;
s3-2-6:本地更新模型参数;
s3-3:参与方获得本地模型参数更新后,在
s3-4:协调方对收到的模型参数解密后进行聚合,即对收到的模型进行加权平均:
s3-5:协调方检查损失函数
步骤3-6:协调方将聚合后的模型参数
s4、得到smote-non-iid的优化模型,通过预测以得到评估结果。
s4-1:进行实验1与实验2的数据处理,实验1将数据进行混洗后平均分配给10个客户端,实验2将数据按照标签进行分类后,客户端依据数据标签进行分类,并保证客户端的数量等于数据标签数且每个客户端仅有一种标签;
s4-2:实验3按照权利要求2所述方法步骤进行设计,随后三种实验中的每个客户端与服务器采用加法同态加密的模型平均算法进行横向联邦学习,得到实验结果。
s4-3:分别对new、iri、gla、zoo四个数据集实施三种策略。
smote(syntheticminorityoversamplingtechnique)算法是基于随机过采样算法的一种改进方案,由于随机过采样采取简单复制样本的策略来增加少数类样本容易产生模型过拟合的问题,而smote算法的基本思想是对少数类样本进行分析后人工合成新样本添加到数据集中,可有效避免模型过拟合。
non-iid(non-independentandidenticallydistributed)在统计学中指变量之间非独立或非同分布,在联邦学习中一般指各个客户端所含数据样本不符合同分布条件。
基于smote-non-iid模型策略处理数据异构性为:数据根据标签分类后,将客户端按照数据标签进行分类,使得客户端的数量等于数据的标签数,同时保证每个客户端有且仅有一个标签;每个客户端使用smote算法生成合成数据,并将这些数据传递给服务器,最后由服务器将这些合成数据分配给各个客户端,保证iid分布。
实验验证:
为了验证本发明优化方法的性能,设计了三组实验进行对比:
实验1设定参与方的数据满足iid(即独立同分布)条件,将数据进行混洗后平均分配给10个客户端,且设定客户端(即参与方)与服务器(即协调方)进行横向联邦学习;
实验2设定参与方的数据满足non-iid(即非独立同分布)条件,将客户端按照数据标签进行分类,使得客户端的数量等于数据的标签数,并保证每个客户端有且仅有一种标签,同时设定各客户端与服务器进行横向联邦学习;
实验3模型首先将数据按照实验2的方法分配给各客户端,随后每个客户端使用smote算法合成数据,且设定每个客户端接收来自其他客户端的所有合成数据并保证iid分布,随后每个客户端与服务器进行横向联邦学习。
其中,实验1与实验2的架构如图1所示,实验3的架构如图2所示。
iid、non-iid、smote-non-iid三种实验的预测准确率,分别对new、iri、gla、zoo四个数据集实施三种策略,结果如下表1所示。
表1iid、non-iid、smote-non-iid三种实验的预测准确率
以上结果表明,本发明的smote-non-iid模型策略预测准确率远高于数据non-iid(即非独立同分布)设定的模型预测准确率,一度接近数据iid(即独立同分布)设定的模型实验结果;由于横向联邦学习上的参与方数据来源很难保证独立同分布这一假设条件,现实中的数据往往更为复杂,而本发明在处理数据异构性问题的前提下仍然能够保证较高预测准确率,因此,本发明为企业应用横向联邦学习共建模型落地应用做出一定贡献。
以上所述仅是对本发明的优选实施例及原理进行了详细说明,对本领域的普通技术人员而言,依据本发明提供的思想,在具体实施方式上会有改变之处,而这些改变也应视为本发明的保护范围。