一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于联邦学习的人工智能模型训练方法、装置及系统与流程

2022-07-02 05:33:53 来源:中国专利 TAG:


1.本发明属于电力自动化领域,涉及一种基于联邦学习的人工智能模型训练方法、装置及系统。


背景技术:

2.营销业务作为电力公司的核心业务之一,其运营质量与电力公司的生存发展息息相关,并且随着营销业务范围的不断开拓和延伸,营销数据快速增长,其中蕴含大量数据价值,通过深挖营销大数据作用价值,深化营销大数据应用。具体来讲,充分利用全渠道客户行为特征,动态跟踪客户用电规律,构建用电客户画像,加快构建电力信用风控体系,深度推广电力信用评分,研发客户信心指数等核心产品,建立国网客户信用体系,丰富电费回收预警监控体系,拓展用电波动监控、违约用电监控及行业风险监控等服务。
3.目前,通常利用机器学习以及深度学习等人工智能技术来挖掘营销数据内在信息价值,创新营销管理模式,提高管理效能。在这个过程中,机器学习与深度学习技术需要使用大量数据进行模型训练,使得电力公司内部各单位间横向协同和部门间纵向贯穿的数据共享需求变得日益迫切。但是,由于营销数据的敏感性以及隐私保护需要,电力公司内各单位之间共享营销数据存在较大困难,从而易造成各单位之间的“数据孤岛”问题,导致模型训练不利,使得难以全面、充分挖掘营销数据内在价值,造成数据价值浪费。
4.当前,解决“数据孤岛”问题的常用方法包括数据脱敏共享机制以及群体特征共享模式等。但是,数据脱敏共享机制存在用户难匹配、易推导回溯等安全隐患,甚至因此带来法律风险,不满足电力数据对外共享的要求。而群体特征共享模式,虽隐私保护性稍好,但特征种类受限且无法匹配其他数据使用,共享的覆盖度与有效性较差,数据共享应用效果不佳。因此,如何确保各单位在多方数据共享时的数据与用户隐私安全,并在此基础上实现数据协同训练,提升数据模型有效性和准确性,达到数据安全共享的效果,是亟待解决的问题。


技术实现要素:

5.本发明的目的在于克服上述现有技术的缺点,提供一种基于联邦学习的人工智能模型训练方法、装置及系统。
6.为达到上述目的,本发明采用以下技术方案予以实现:
7.本发明第一方面,一种基于联邦学习的人工智能模型训练方法,应用于基于联邦学习的人工智能模型训练系统的中心节点,所述基于联邦学习的人工智能模型训练系统包括中心节点以及与中心节点通信连接的若干计算节点;所述基于联邦学习的人工智能模型训练方法包括:
8.获取初始人工智能模型并发送至各计算节点;
9.迭代进行更新步骤,至预设更新迭代阈值或当前人工智能模型满足预设条件时,将当前人工智能模型作为训练完成人工智能模型,并发送至各计算节点;
10.其中,所述更新步骤包括:
11.接收前预设数量个计算节点发送的梯度数据,进入全局参数更新过程;其中,梯度数据为计算节点根据本地训练数据,通过梯度计算得到的本地人工智能模型的各神经网络层的梯度;
12.全局参数更新过程:根据前预设数量个计算节点发送的梯度数据,更新人工智能模型的全局参数,并将更新的全局参数发送至前预设数量个计算节点;其中,更新的全局参数用于更新计算节点的本地人工智能模型的模型参数。
13.可选的,所述更新步骤还包括:
14.向在全局参数更新过程中完成梯度计算的计算节点发送反馈信息;其中,反馈信息用于触发计算节点根据本地梯度数据,更新本地人工智能模型的模型参数。
15.可选的,所述根据前预设数量个计算节点发送的梯度数据,更新人工智能模型的全局参数包括:
16.平均前预设数量个计算节点发送的梯度数据,得到平均梯度数据;
17.根据平均梯度数据,采用反向传播算法更新人工智能模型的全局参数。
18.本发明第二方面,一种基于联邦学习的人工智能模型训练方法,应用于基于联邦学习的人工智能模型训练系统的计算节点,所述基于联邦学习的人工智能模型训练系统包括中心节点以及与中心节点通信连接的若干计算节点;所述基于联邦学习的人工智能模型训练方法包括:
19.接收中心节点发送的初始人工智能模型,作为本地人工智能模型;
20.迭代进行梯度计算步骤至预设梯度计算迭代阈值,并接收中心节点发送的训练完成人工智能模型,或者,迭代进行梯度计算步骤至接收到中心节点发送的训练完成人工智能模型,采用训练完成人工智能模型更新本地人工智能模型;
21.其中,所述梯度计算步骤包括:
22.根据本地训练数据,通过梯度计算得到本地人工智能模型的各神经网络层的梯度,并当当前节点为前预设数量个完成梯度计算的计算节点时,将本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点;
23.当接收到中心节点发送的更新的全局参数时,根据更新的全局参数更新本地人工智能模型的模型参数。
24.可选的,所述梯度计算步骤还包括:
25.当接收到中心节点发送的反馈信息时,响应反馈信息,根据本地梯度数据更新本地人工智能模型的模型参数。
26.可选的,所述将本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点包括:
27.根据本地人工智能模型的各神经网络层的梯度,得到本地人工智能模型的各神经网络层的梯度的信息熵,并根据本地人工智能模型的各神经网络层的梯度的信息熵,确定本地人工智能模型的各神经网络层的梯度阈值;
28.根据本地人工智能模型的各神经网络层的梯度阈值,裁剪本地人工智能模型的各神经网络层的梯度中小于各神经网络层的梯度阈值的梯度,并将剪裁后的本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点。
29.可选的,所述根据将本地人工智能模型的各神经网络层的梯度,得到将本地人工智能模型的各神经网络层的梯度的信息熵,并根据本地人工智能模型的各神经网络层的梯度的信息熵,确定本地人工智能模型的各神经网络层的梯度阈值包括:
30.获取本地人工智能模型的各神经网络层的梯度中的最大梯度和最小梯度;
31.将最大梯度和最小梯度之间的区间划分为连续的若干子区间;
32.将本地人工智能模型的各神经网络层的梯度根据值的大小放入各子区间中,统计每个子区间中梯度的个数,并计算各子区间中梯度个数占本地人工智能模型的各神经网络层的总梯度个数的比例,得到各子区间中梯度出现的频率pi;
33.通过下式得到本地人工智能模型的各神经网络层的梯度的信息熵hj:
[0034][0035]
其中,j为神经网络层编号,i为子区间编号,n为子区间总数;
[0036]
通过下式确定本地人工智能模型的各神经网络层的梯度阈值τj:
[0037][0038]
其中,k为预设的超参数。
[0039]
本发明第三方面,一种基于联邦学习的人工智能模型训练方法,应用于基于联邦学习的人工智能模型训练系统,所述基于联邦学习的人工智能模型训练系统包括中心节点以及与中心节点通信连接的若干计算节点;所述基于联邦学习的人工智能模型训练方法包括:
[0040]
中心节点获取初始人工智能模型并发送至各计算节点;
[0041]
计算节点接收中心节点发送的初始人工智能模型,作为本地人工智能模型;
[0042]
中心节点迭代进行更新步骤,至预设更新迭代阈值或当前人工智能模型满足预设条件时,将当前人工智能模型作为训练完成人工智能模型,并发送至各计算节点;
[0043]
其中,所述更新步骤包括:
[0044]
接收前预设数量个计算节点发送的梯度数据,进入全局参数更新过程;
[0045]
全局参数更新过程:根据前预设数量个计算节点发送的梯度数据,更新人工智能模型的全局参数,并将更新的全局参数发送至前预设数量个计算节点;
[0046]
迭代进行梯度计算步骤至预设梯度计算迭代阈值,并接收中心节点发送的训练完成人工智能模型,或者,迭代进行梯度计算步骤至接收到中心节点发送的训练完成人工智能模型,采用训练完成人工智能模型更新本地人工智能模型;
[0047]
其中,所述梯度计算步骤包括:
[0048]
根据本地训练数据,通过梯度计算得到本地人工智能模型的各神经网络层的梯度,并当当前节点为前预设数量个完成梯度计算的计算节点时,将本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点;
[0049]
当接收到中心节点发送的更新的全局参数时,根据更新的全局参数更新本地人工智能模型的模型参数。
[0050]
可选的,所述更新步骤还包括:向在全局参数更新过程中完成梯度计算的计算节
点发送反馈信息;所述梯度计算步骤还包括:当接收到中心节点发送的反馈信息时,响应反馈信息,根据本地梯度数据更新本地人工智能模型的模型参数。
[0051]
可选的,所述将本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点包括:
[0052]
根据本地人工智能模型的各神经网络层的梯度,得到本地人工智能模型的各神经网络层的梯度的信息熵,并根据本地人工智能模型的各神经网络层的梯度的信息熵,确定本地人工智能模型的各神经网络层的梯度阈值;
[0053]
根据本地人工智能模型的各神经网络层的梯度阈值,裁剪本地人工智能模型的各神经网络层的梯度中小于各神经网络层的梯度阈值的梯度,并将剪裁后的本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点。
[0054]
本发明第四方面,一种基于联邦学习的人工智能模型训练装置,应用于基于联邦学习的人工智能模型训练系统的中心节点,所述基于联邦学习的人工智能模型训练系统包括中心节点以及与中心节点通信连接的若干计算节点;所述基于联邦学习的人工智能模型训练装置包括:
[0055]
获取模块,用于获取初始人工智能模型并发送至各计算节点;
[0056]
第一迭代控制模块,用于迭代进行更新步骤,至预设更新迭代阈值或当前人工智能模型满足预设条件时,将当前人工智能模型作为训练完成人工智能模型,并发送至各计算节点;
[0057]
其中,所述更新步骤包括:
[0058]
接收前预设数量个计算节点发送的梯度数据,进入全局参数更新过程;其中,梯度数据为计算节点根据本地训练数据,通过梯度计算得到的本地人工智能模型的各神经网络层的梯度;
[0059]
全局参数更新过程:根据前预设数量个计算节点发送的梯度数据,更新人工智能模型的全局参数,并将更新的全局参数发送至前预设数量个计算节点;其中,更新的全局参数用于更新计算节点的本地人工智能模型的模型参数。
[0060]
可选的,所述更新步骤还包括:
[0061]
向在全局参数更新过程中完成梯度计算的计算节点发送反馈信息;其中,反馈信息用于触发计算节点根据本地梯度数据,更新本地人工智能模型的模型参数。
[0062]
可选的,所述根据前预设数量个计算节点发送的梯度数据,更新人工智能模型的全局参数包括:
[0063]
平均前预设数量个计算节点发送的梯度数据,得到平均梯度数据;
[0064]
根据平均梯度数据,采用反向传播算法更新人工智能模型的全局参数。
[0065]
本发明第五方面,一种基于联邦学习的人工智能模型训练装置,应用于基于联邦学习的人工智能模型训练系统的计算节点,所述基于联邦学习的人工智能模型训练系统包括中心节点以及与中心节点通信连接的若干计算节点;所述基于联邦学习的人工智能模型训练装置包括:
[0066]
接收模块,用于接收中心节点发送的初始人工智能模型,作为本地人工智能模型;
[0067]
第二迭代控制模块,用于迭代进行梯度计算步骤至预设梯度计算迭代阈值,并接收中心节点发送的训练完成人工智能模型,或者,迭代进行梯度计算步骤至接收到中心节
点发送的训练完成人工智能模型,采用训练完成人工智能模型更新本地人工智能模型;
[0068]
其中,所述梯度计算步骤包括:
[0069]
根据本地训练数据,通过梯度计算得到本地人工智能模型的各神经网络层的梯度,并当当前节点为前预设数量个完成梯度计算的计算节点时,将本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点;
[0070]
当接收到中心节点发送的更新的全局参数时,根据更新的全局参数更新本地人工智能模型的模型参数。
[0071]
可选的,所述梯度计算步骤还包括:
[0072]
当接收到中心节点发送的反馈信息时,响应反馈信息,根据本地梯度数据更新本地人工智能模型的模型参数。
[0073]
可选的,所述将本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点包括:
[0074]
根据本地人工智能模型的各神经网络层的梯度,得到本地人工智能模型的各神经网络层的梯度的信息熵,并根据本地人工智能模型的各神经网络层的梯度的信息熵,确定本地人工智能模型的各神经网络层的梯度阈值;
[0075]
根据本地人工智能模型的各神经网络层的梯度阈值,裁剪本地人工智能模型的各神经网络层的梯度中小于各神经网络层的梯度阈值的梯度,并将剪裁后的本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点。
[0076]
可选的,所述根据将本地人工智能模型的各神经网络层的梯度,得到将本地人工智能模型的各神经网络层的梯度的信息熵,并根据本地人工智能模型的各神经网络层的梯度的信息熵,确定本地人工智能模型的各神经网络层的梯度阈值包括:
[0077]
获取本地人工智能模型的各神经网络层的梯度中的最大梯度和最小梯度;
[0078]
将最大梯度和最小梯度之间的区间划分为连续的若干子区间;
[0079]
将本地人工智能模型的各神经网络层的梯度根据值的大小放入各子区间中,统计每个子区间中梯度的个数,并计算各子区间中梯度个数占本地人工智能模型的各神经网络层的总梯度个数的比例,得到各子区间中梯度出现的频率pi;
[0080]
通过下式得到本地人工智能模型的各神经网络层的梯度的信息熵hj:
[0081][0082]
其中,j为神经网络层编号,i为子区间编号,n为子区间总数;
[0083]
通过下式确定本地人工智能模型的各神经网络层的梯度阈值τj:
[0084][0085]
其中,k为预设的超参数。
[0086]
本发明第六方面,一种基于联邦学习的人工智能模型训练系统,包括中心节点以及与中心节点通信连接的若干计算节点;
[0087]
中心节点内设置上述的应用于基于联邦学习的人工智能模型训练系统的中心节点的基于联邦学习的人工智能模型训练装置;
[0088]
计算节点内设置上述的应用于基于联邦学习的人工智能模型训练系统的计算节点的基于联邦学习的人工智能模型训练装置。
[0089]
与现有技术相比,本发明具有以下有益效果:
[0090]
本发明基于联邦学习的人工智能模型训练方法,在每次迭代过程中,只选取前预设数量个计算节点发送的梯度数据为依据,进行全局参数的更新,这样就会导致每次迭代过程中,参与全局参数更新的计算节点是不同的,形成异步模型参数更新机制,虽然这样增加了迭代轮次的数量,但由于高性能计算节点不用等待计算速度较慢的计算节点完成梯度计算后再进行全局参数的更新,极大的提高了各计算节点的计算资源的利用率,因此,能够有效缩短人工智能模型的训练时间。
[0091]
进一步的,本发明基于联邦学习的人工智能模型训练方法,充分考虑中心节点与各计算节点之间的网络资源有限的限制,利用基于信息熵的梯度裁剪方法减少计算节点向中心节点上传的梯度数据的大小,进而有效节省网络带宽,减少了模型训练中梯度数据上传和全局参数下载的时间,提升了模型训练速度。
附图说明
[0092]
图1为本发明实施例的基于联邦学习的人工智能模型训练方法的典型应用场景示意图;
[0093]
图2为本发明实施例的应用于基于联邦学习的人工智能模型训练系统的中心节点的基于联邦学习的人工智能模型训练方法流程图;
[0094]
图3为本发明实施例的应用于基于联邦学习的人工智能模型训练系统的计算节点的基于联邦学习的人工智能模型训练方法流程图;
[0095]
图4为本发明实施例的梯度裁剪原理示意图;
[0096]
图5为本发明实施例的应用于基于联邦学习的人工智能模型训练系统的基于联邦学习的人工智能模型训练方法流程图;
[0097]
图6为本发明实施例的应用于基于联邦学习的人工智能模型训练系统的基于联邦学习的人工智能模型训练方法原理示意图;
[0098]
图7为本发明实施例的应用于基于联邦学习的人工智能模型训练系统的中心节点的基于联邦学习的人工智能模型训练系统结构框图;
[0099]
图8为本发明实施例的应用于基于联邦学习的人工智能模型训练系统的计算节点的基于联邦学习的人工智能模型训练系统结构框图。
具体实施方式
[0100]
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0101]
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用
的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0102]
首先,介绍本发明实施例中涉及的相关术语:
[0103]
用电稽查:电力营销业务中使用机器学习方法检测用户是否进行了窃电等违规操作。
[0104]
人工智能模型训练:人工智能模型训练通常是指有监督人工智能模型训练,需要使用标注的样本数据训练模型。
[0105]
数据孤岛:由于样本数据隐私性问题,各方数据无法汇集到一起进行人工智能模型训练。
[0106]
联邦学习:一种分布式模型训练方法,可以在保证各方数据隐私性的前提下,汇聚各方数据进行人工智能模型训练。
[0107]
横向联邦学习:在联邦学习中,各方所具有的数据具有相同的特征维度,不同的样本id。
[0108]
全局参数更新:联邦学习中分为本地模型训练(在各方的本地节点进行)和全局模型训练,全局模型训练也被称为全局参数更新。
[0109]
下面结合附图对本发明做进一步详细描述:
[0110]
针对上述现有技术中的问题,发明人在实际工作中发现,联邦学习既可以保护数据安全和用户隐私,又可以充分利用分散的数据源来提升模型的性能,因而可以通过引入联邦学习的方式,解决公司内各单位之间存在的“数据孤岛”问题。
[0111]
联邦学习与传统的机器学习原理不同,传统的机器学习可以由一方将数据收集到一个中心点,并在中心点完成机器学习模型的训练;而联邦学习是由多个分散的参与方一起协作训练一个或多个机器学习模型,其可以在数据不出域的情况下联合多方数据源训练机器学习和深度学习模型,提供模型推理服务。所以,基于联邦学习,可以实现公司内各单位、各部门之间的数据共享,满足数据保护法律和法规要求,确保数据共享安全。
[0112]
但是,在电力营销业务中应用横向联邦学习模型训练,需要基于电网公司现有的计算环境进行,而由于电网企业各部门之间计算能力差异较大,且电力企业内部网络资源有限,导致采用同步模型参数更新算法的横向联邦学习方法模型训练速度很慢,无法进行高效的实际应用。
[0113]
基于此,本发明一实施例中,提供一种基于联邦学习的人工智能模型训练方法,采用异步的模型参数更新机制,有效利用各节点的计算资源。
[0114]
具体的,参见图1,示出了本实施例基于联邦学习的人工智能模型训练方法的典型应用场景,即基于联邦学习的人工智能模型训练系统,一般包括一个中心节点以及与中心节点通信连接的若干计算节点。其中,所述中心节点和计算节点可以是单独的电子计算机,也可以是若干电子计算机组成的集群,也可以是本地服务器或者云服务器。基于实际配置和现场应用,各计算节点的计算能力会存在一定差异。
[0115]
参见图2,本实施例基于联邦学习的人工智能模型训练方法应用于基于联邦学习
的人工智能模型训练系统的中心节点,具体的,该基于联邦学习的人工智能模型训练方法包括以下步骤:
[0116]
s11:获取初始人工智能模型并发送至各计算节点。
[0117]
具体的,中心节点获取需要训练的人工智能模型,即初始人工智能模型,然后将初始人工智能模型下发至各个计算节点,进行参数初始化。
[0118]
其中,对于中心节点来说,将中心节点内部的人工智能模型的模型参数作为全局参数,初始人工智能模型的模型参数即为初始全局参数。
[0119]
s12:迭代进行更新步骤,至预设更新迭代阈值或当前人工智能模型满足预设条件时,将当前人工智能模型作为训练完成人工智能模型,并发送至各计算节点。
[0120]
具体的,预设更新迭代阈值可以根据实际训练的人工智能模型的不同进行差异化设计,可以结合历史经验及若干次的迭代效果。其中,预设条件可以是人工智能模型的某一项指标,如相邻两次迭代得到的人工智能模型的全局参数之间的差距在预设范围内,或者当前人工智能模型的准确率达到了预设的准确率阈值。
[0121]
其中,所述更新步骤包括:接收前预设数量个计算节点发送的梯度数据,进入全局参数更新过程;其中,梯度数据为计算节点根据本地训练数据,通过梯度计算得到的本地人工智能模型的各神经网络层的梯度;全局参数更新过程:根据前预设数量个计算节点发送的梯度数据,更新人工智能模型的全局参数,并将更新的全局参数发送至前预设数量个计算节点;其中,更新的全局参数用于更新计算节点的本地人工智能模型的模型参数。
[0122]
具体的,将预设数量个计算节点完成梯度计算并反馈至中心节点后作为一个迭代轮次,以此为全局参数更新过程的起始信号。其中,预设数量个计算节点在统计时,以中心节点的cpu计算时钟为计算间隔,如果在一个中心节点的cpu计算时钟内,正好有多于预设数量个计算节点同时完成梯度计算,则将这些计算节点均认为是前预设数量个计算节点。
[0123]
在一种可能的实施方式中,在全局参数更新过程中,根据前预设数量个计算节点发送的梯度数据,更新人工智能模型的全局参数包括:平均前预设数量个计算节点发送的梯度数据,得到平均梯度数据;根据平均梯度数据,采用反向传播算法更新人工智能模型的全局参数。其中,在进行参数更新时,基于通用性的考虑,不限制使用的优化器方法的类型,如sgd和adam均可。
[0124]
在完成人工智能模型的全局参数更新之后,将更新的全局参数发送至前预设数量个计算节点,然后将前预设数量个计算节点的本地人工智能模型的模型参数更新为更新的全局参数,即仅同步发送了梯度数据的计算节点。
[0125]
在一种可能的实施方式中,所述更新步骤还包括:向在全局参数更新过程中完成梯度计算的计算节点发送反馈信息;其中,反馈信息用于触发计算节点根据本地梯度数据,更新本地人工智能模型的模型参数。
[0126]
具体的,各计算节点完成梯度计算之后,可以通过向中心节点反馈完成信号的形式告知中心节点完成了梯度计算,或者人工监控的方式确定各计算节点的梯度计算完成情况,在此不做限制。
[0127]
而那些在全局参数更新过程完成梯度计算的计算节点,其梯度数据不参与当前的迭代轮次,直到其具备参与全局参数更新过程的条件,即参与到一个迭代轮次中后才上传梯度数据和并将本地人工智能模型的模型参数同步为全局参数。在这个过程中,而为了避
免其在不断的迭代过程中,由于长时间的不进行参数更新而与其他计算节点的梯度数据之间产生较大的差异,进而影响后续根据平均梯度数据更新全局参数的过程,因此,对于那些在全局参数更新过程完成梯度计算的计算节点,中心节点会给其发送反馈信息,让其根据本地梯度数据,更新本地人工智能模型的模型参数,以此保证其梯度数据与其他计算节点的梯度数据的近似。
[0128]
综上所述,本实施例基于联邦学习的人工智能模型训练方法,在每次迭代过程中,只选取前预设数量个计算节点发送的梯度数据为依据,进行全局参数的更新,这样就会导致每次迭代过程中,参与全局参数更新的计算节点是不同的,形成异步模型参数更新机制,虽然这样增加了迭代轮次的数量,但由于高性能计算节点不用等待计算速度较慢的计算节点完成梯度计算后再进行全局参数的更新,极大的提高了各计算节点的计算资源的利用率,因此,能够有效缩短人工智能模型的训练时间。
[0129]
参见图3,本发明再一实施例中,提供一种基于联邦学习的人工智能模型训练方法,本实施例基于联邦学习的人工智能模型训练方法应用于基于联邦学习的人工智能模型训练系统的计算节点,具体的,该基于联邦学习的人工智能模型训练方法包括以下步骤:
[0130]
s21:接收中心节点发送的初始人工智能模型,作为本地人工智能模型。
[0131]
具体的,计算节点接收中心节点发送的初始人工智能模型,将其作为本地人工智能模型,以通过本地训练数据进行模型训练。
[0132]
s22:迭代进行梯度计算步骤至预设梯度计算迭代阈值,并接收中心节点发送的训练完成人工智能模型,或者,迭代进行梯度计算步骤至接收到中心节点发送的训练完成人工智能模型;采用训练完成人工智能模型更新本地人工智能模型。
[0133]
具体的,考虑不同计算节点的计算能力和训练数据的不同,因此,不同的计算节点会预先设置不同的梯度计算迭代阈值。对于计算能力较弱及训练数据较少的计算节点,在达到自身预设的梯度计算迭代阈值后,就停止梯度计算迭代,等待中心节点发送的训练完成人工智能模型并接收。而对于计算能力较强及训练数据较多的计算节点,可能会在其还未达到自身预设的梯度计算迭代阈值时,就已经接收到中心节点发送的训练完成人工智能模型,此时,其也会停止梯度计算迭代。最终,计算节点采用训练完成人工智能模型更新本地人工智能模型。
[0134]
其中,所述梯度计算步骤包括:根据本地训练数据,通过梯度计算得到本地人工智能模型的各神经网络层的梯度,并当当前节点为前预设数量个完成梯度计算的计算节点时,将本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点;当接收到中心节点发送的更新的全局参数时,根据更新的全局参数更新本地人工智能模型的模型参数。
[0135]
具体的,各计算节点根据本地训练数据进行梯度计算是一个重复过程,关于当前节点是否为前预设数量个完成梯度计算的计算节点,可以由中心节点直接或间接确定那些计算节点是不同迭代轮次中前预设数量个完成梯度计算的计算节点,可能有的计算节点在多个中心节点的迭代轮次中才完成一次梯度计算,但并不影响其为某迭代论次中前预设数量个完成梯度计算的计算节点。
[0136]
在一种可能的实施方式中,所述梯度计算步骤还包括:当接收到中心节点发送的反馈信息时,响应反馈信息,根据本地梯度数据更新本地人工智能模型的模型参数。
[0137]
具体的,当计算节点接收到中心节点发送的反馈信息,就说明计算节点是在中心节点的全局参数更新过程中完成梯度计算的,此时,为了避免不同计算节点间梯度数据的差异化不断增大,中心节点向这些计算节点发送反馈信息,计算节点响应该反馈信息,然后根据本地梯度数据更新本地人工智能模型的模型参数。
[0138]
其中,根据本地梯度数据更新本地人工智能模型的模型参数时,采用反向传播算法进行更新,并且针对不同的计算节点可采用不同的优化器。
[0139]
在一种可能的实施方式中,所述将本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点包括:根据本地人工智能模型的各神经网络层的梯度,得到本地人工智能模型的各神经网络层的梯度的信息熵,并根据本地人工智能模型的各神经网络层的梯度的信息熵,确定本地人工智能模型的各神经网络层的梯度阈值;根据本地人工智能模型的各神经网络层的梯度阈值,裁剪本地人工智能模型的各神经网络层的梯度中小于各神经网络层的梯度阈值的梯度,并将剪裁后的本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点。
[0140]
具体的,由于中心节点与各计算节点之间的网络资源有限,为了减少网络带宽对于基于联邦学习的人工智能模型训练速度的影响,在计算节点上传梯度数据前,先基于信息熵对梯度进行裁剪,进而有效节省网络带宽,最终提升训练速度。
[0141]
具体的,通过计算各神经网络层的信息熵来判断该各神经网络层的梯度的重要性。信息论中认为所有信息都存在冗余,信息的冗余程度与信息中每个数字出现的概率(不确定性)有关,因此,一般采用信息熵来对信息量进行衡量。信息熵的值越大证明该各神经网络层的梯度所含的信息量越多。在深度神经网络的训练中,如果某一神经网络层的梯度的信息熵比较小,则该神经网络层梯度所含的信息量比较少,对人工智能模型的训练收敛产生的影响也应比较少,因此可以对这一层神经网络层的梯度信息维度进行裁剪,减少通信消耗。
[0142]
梯度裁剪的原理如图4所示,图4上半部分为神经网络模型结构与其训练过程中产生梯度值的示意图,其中第i层的模型梯度值为g[i]是一个1
×
n的向量,mask是将g[i]向量中的每一个值与裁剪阈值进行比较后得到的梯度掩码,其通过即向量乘积的方式保留g[i]向量中大于裁剪阈值的梯度值从而得到裁剪后的梯度向量图4下半部分即为裁剪后的网络模型结构与裁剪后的梯度示意图,白色的圆圈即代表这部分梯度值由于小于裁剪阈值从而被删除了。可能的实施方式中,所述根据将本地人工智能模型的各神经网络层的梯度,得到将本地人工智能模型的各神经网络层的梯度的信息熵,并根据本地人工智能模型的各神经网络层的梯度的信息熵,确定本地人工智能模型的各神经网络层的梯度阈值包括:获取本地人工智能模型的各神经网络层的梯度中的最大梯度和最小梯度;将最大梯度和最小梯度之间的区间划分为连续的若干子区间,其中,子区间的数量由经验决定,一般可以设置为5。
[0143]
然后,将本地人工智能模型的各神经网络层的梯度根据值的大小放入各子区间中,统计每个子区间中梯度的个数,并计算各子区间中梯度个数占本地人工智能模型的各神经网络层的总梯度个数的比例,得到各子区间中梯度出现的频率pi,子区间中梯度出现的频率可以近似认为是梯度落在该子区间的概率。
[0144]
然后,通过下式得到本地人工智能模型的各神经网络层的梯度的信息熵hj:其中,j为神经网络层编号,i为子区间编号,n为子区间总数;通过下式确定本地人工智能模型的各神经网络层的梯度阈值τj:其中,k为预设的超参数,超参数代表需要舍弃的梯度的比例,通常设k值为2
10

[0145]
之后,通过该神经网络层的梯度裁剪阈值τj对该神经网络层的梯度gj进行裁剪,只保留其中大于梯度裁剪阈值τj的部分,作为梯度数据发送至中心节点。
[0146]
综上所述,本实施例基于联邦学习的人工智能模型训练方法,充分考虑中心节点与各计算节点之间的网络资源有限的限制,利用基于信息熵的梯度裁剪方法减少计算节点向中心节点上传的梯度数据的大小,进而有效节省网络带宽,减少了模型训练中梯度数据上传和全局参数下载的时间,提升了模型训练速度。
[0147]
参见图5和6,本发明再一实施例中,提供一种基于联邦学习的人工智能模型训练方法,本实施例基于联邦学习的人工智能模型训练方法应用于基于联邦学习的人工智能模型训练系统,具体的,该基于联邦学习的人工智能模型训练方法包括以下步骤:
[0148]
s31:中心节点获取初始人工智能模型并发送至各计算节点。
[0149]
s32:计算节点接收中心节点发送的初始人工智能模型,作为本地人工智能模型。
[0150]
s33:中心节点迭代进行更新步骤,至预设更新迭代阈值或当前人工智能模型满足预设条件时,将当前人工智能模型作为训练完成人工智能模型,并发送至各计算节点;其中,所述更新步骤包括:接收前预设数量个计算节点发送的梯度数据,进入全局参数更新过程;全局参数更新过程:根据前预设数量个计算节点发送的梯度数据,更新人工智能模型的全局参数,并将更新的全局参数发送至前预设数量个计算节点。
[0151]
s34:迭代进行梯度计算步骤至预设梯度计算迭代阈值,并接收中心节点发送的训练完成人工智能模型,或者,迭代进行梯度计算步骤至接收到中心节点发送的训练完成人工智能模型,采用训练完成人工智能模型更新本地人工智能模型;其中,所述梯度计算步骤包括:根据本地训练数据,通过梯度计算得到本地人工智能模型的各神经网络层的梯度,并当当前节点为前预设数量个完成梯度计算的计算节点时,将本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点;当接收到中心节点发送的更新的全局参数时,根据更新的全局参数更新本地人工智能模型的模型参数。
[0152]
在一种可能的实施方式中,所述更新步骤还包括:向在全局参数更新过程中完成梯度计算的计算节点发送反馈信息;所述梯度计算步骤还包括:当接收到中心节点发送的反馈信息时,响应反馈信息,根据本地梯度数据更新本地人工智能模型的模型参数。
[0153]
在一种可能的实施方式中,所述将本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点包括:根据本地人工智能模型的各神经网络层的梯度,得到本地人工智能模型的各神经网络层的梯度的信息熵,并根据本地人工智能模型的各神经网络层的梯度的信息熵,确定本地人工智能模型的各神经网络层的梯度阈值;根据本地人工智能模型的各神经网络层的梯度阈值,裁剪本地人工智能模型的各神经网络层的梯度中小于各神经网络层的梯度阈值的梯度,并将剪裁后的本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点。
[0154]
在一种可能的实施方式中,该基于联邦学习的人工智能模型训练方法,可以应用
于电力营销业务的用电稽查模型的训练中,避免由于电力营销业务中用电稽查模型的训练需要基于电网公司现有的计算环境进行,而电网企业各部门之间计算能力差异较大,且电力企业内部网络资源有限所导致的的训练速度慢的缺陷。
[0155]
下述为本发明的装置实施例,可以用于执行本发明方法实施例。对于装置实施例中未披露的细节,请参照本发明方法实施例。
[0156]
参见图7,本发明再一实施例中,提供一种基于联邦学习的人工智能模型训练装置,应用于基于联邦学习的人工智能模型训练系统的中心节点,能够用于实现上述应用于基于联邦学习的人工智能模型训练系统的中心节点的基于联邦学习的人工智能模型训练方法,具体的,该基于联邦学习的人工智能模型训练装置包括获取模块和第一迭代控制模块。
[0157]
其中,获取模块用于获取初始人工智能模型并发送至各计算节点;第一迭代控制模块用于迭代进行更新步骤,至预设更新迭代阈值或当前人工智能模型满足预设条件时,将当前人工智能模型作为训练完成人工智能模型,并发送至各计算节点;其中,所述更新步骤包括:接收前预设数量个计算节点发送的梯度数据,进入全局参数更新过程;其中,梯度数据为计算节点根据本地训练数据,通过梯度计算得到的本地人工智能模型的各神经网络层的梯度;全局参数更新过程:根据前预设数量个计算节点发送的梯度数据,更新人工智能模型的全局参数,并将更新的全局参数发送至前预设数量个计算节点;其中,更新的全局参数用于更新计算节点的本地人工智能模型的模型参数。
[0158]
在一种可能的实施方式中,所述更新步骤还包括:向在全局参数更新过程中完成梯度计算的计算节点发送反馈信息;其中,反馈信息用于触发计算节点根据本地梯度数据,更新本地人工智能模型的模型参数。
[0159]
在一种可能的实施方式中,所述根据前预设数量个计算节点发送的梯度数据,更新人工智能模型的全局参数包括:平均前预设数量个计算节点发送的梯度数据,得到平均梯度数据;根据平均梯度数据,采用反向传播算法更新人工智能模型的全局参数。
[0160]
参见图8,本发明再一实施例中,提供一种基于联邦学习的人工智能模型训练装置,应用于基于联邦学习的人工智能模型训练系统的计算节点,能够用于实现上述应用于基于联邦学习的人工智能模型训练系统的计算节点的基于联邦学习的人工智能模型训练方法,具体的,该基于联邦学习的人工智能模型训练装置包括接收模块和第二迭代控制模块。
[0161]
其中,接收模块用于接收中心节点发送的初始人工智能模型,作为本地人工智能模型;第二迭代控制模块用于迭代进行梯度计算步骤至预设梯度计算迭代阈值,并接收中心节点发送的训练完成人工智能模型,或者,迭代进行梯度计算步骤至接收到中心节点发送的训练完成人工智能模型,采用训练完成人工智能模型更新本地人工智能模型;其中,所述梯度计算步骤包括:根据本地训练数据,通过梯度计算得到本地人工智能模型的各神经网络层的梯度,并当当前节点为前预设数量个完成梯度计算的计算节点时,将本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点;当接收到中心节点发送的更新的全局参数时,根据更新的全局参数更新本地人工智能模型的模型参数。
[0162]
在一种可能的实施方式中,所述梯度计算步骤还包括:当接收到中心节点发送的反馈信息时,响应反馈信息,根据本地梯度数据更新本地人工智能模型的模型参数。
[0163]
在一种可能的实施方式中,所述将本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点包括:根据本地人工智能模型的各神经网络层的梯度,得到本地人工智能模型的各神经网络层的梯度的信息熵,并根据本地人工智能模型的各神经网络层的梯度的信息熵,确定本地人工智能模型的各神经网络层的梯度阈值;根据本地人工智能模型的各神经网络层的梯度阈值,裁剪本地人工智能模型的各神经网络层的梯度中小于各神经网络层的梯度阈值的梯度,并将剪裁后的本地人工智能模型的各神经网络层的梯度作为梯度数据发送至中心节点。
[0164]
在一种可能的实施方式中,所述根据将本地人工智能模型的各神经网络层的梯度,得到将本地人工智能模型的各神经网络层的梯度的信息熵,并根据本地人工智能模型的各神经网络层的梯度的信息熵,确定本地人工智能模型的各神经网络层的梯度阈值包括:获取本地人工智能模型的各神经网络层的梯度中的最大梯度和最小梯度;将最大梯度和最小梯度之间的区间划分为连续的若干子区间;将本地人工智能模型的各神经网络层的梯度根据值的大小放入各子区间中,统计每个子区间中梯度的个数,并计算各子区间中梯度个数占本地人工智能模型的各神经网络层的总梯度个数的比例,得到各子区间中梯度出现的频率pi;通过下式得到本地人工智能模型的各神经网络层的梯度的信息熵hj:其中,j为神经网络层编号,i为子区间编号,n为子区间总数;通过下式确定本地人工智能模型的各神经网络层的梯度阈值τj:其中,k为预设的超参数。
[0165]
本发明再一实施例中,提供一种基于联邦学习的人工智能模型训练系统,包括中心节点以及与中心节点通信连接的若干计算节点;其中,中心节点内设置上述应用于基于联邦学习的人工智能模型训练系统的中心节点的基于联邦学习的人工智能模型训练装置;计算节点内设置上述应用于基于联邦学习的人工智能模型训练系统的计算节点的基于联邦学习的人工智能模型训练装置。
[0166]
前述的基于联邦学习的人工智能模型训练方法的实施例涉及的各步骤的所有相关内容均可以援引到本发明施例中的基于联邦学习的人工智能模型训练装置所对应的功能模块的功能描述,在此不再赘述。本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本发明各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0167]
本发明再一个实施例中,提供了一种计算机设备,该计算机设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor、dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行计算机存储介质内一条或一条以上指令从而实
现相应方法流程或相应功能;本发明实施例所述的处理器可以用于基于联邦学习的人工智能模型训练方法的操作。
[0168]
本发明再一个实施例中,本发明还提供了一种存储介质,具体为计算机可读存储介质(memory),所述计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中有关基于联邦学习的人工智能模型训练方法的相应步骤。
[0169]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0170]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0171]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0172]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0173]
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献