多智能体模型的训练方法、装置、电子设备及存储介质与流程

文档序号:27512436发布日期:2021-11-22 17:30阅读:195来源:国知局
多智能体模型的训练方法、装置、电子设备及存储介质与流程

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.根据各所述参数值组在各所述损失值序列中的排序平均值,从所述第二数量的参数值组中选取第一数量的参数值组作为目标参数值组。
33.上述方案中,所述选取模块,还用于,针对各所述参数值组,分别对所述参数值组在各所述损失值序列中的排序进行求和处理,得到排序的和;
34.根据各所述参数值组在各所述损失值序列中排序的和,从所述第二数量的参数值组中选取第一数量的参数值组作为目标参数值组。
35.上述方案中,所述装置还包括应用模块,所述应用模块,用于获取更新完成的多智
能体模型对应的可预测参数以及不可预测参数;
36.初始化所述可预测参数以及所述不可预测参数,得到第四数量的初始参数值组;
37.将所述第四数量的初始参数值组输入至所述多智能体模型,得到预测结果;
38.基于所述预测结果,对所述不可预测参数进行更新,得到所述不可预测参数对应的目标值。
39.上述方案中,所述应用模块,还用于,初始化所述人口分布对应的第四数量的值以及所述传播系数对应的第四数量的值,得到第四数量的初始参数值组;
40.将所述第四数量的初始参数值组输入至更新完成的多智能体模型,得到目标疾病对应的确诊人数以及死亡人数;
41.基于所述确诊人数以及所述死亡人数,更新所述传播系数,得到所述目标疾病对应的传播系数。
42.本技术实施例提供一种电子设备,包括:
43.存储器,用于存储可执行指令;
44.处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的多智能体模型的训练方法。
45.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本技术实施例提供的多智能体模型的训练方法。
46.本技术实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本技术实施例提供的多智能体模型的训练方法。
47.本技术实施例具有以下有益效果:
48.与相关技术中使用联邦平均算法进行模型训练的技术相比,本技术实施例基于横向联邦学习的多智能模型的训练方法,使得多参与方设备在参数聚合设备的协调下共同训练多智能体模型,能够保证各参与方设备的本地数据的安全性,同时基于各参数值组与各参与方设备的损失值,获取相应数量的目标参数值组,能够更好更快的确定合适的目标参数值组,且整个多智能模型更新过程更加稳定。
附图说明
49.图1是本技术实施例提供的多智能体模型的训练系统的一个可选的架构示意图;
50.图2是本技术实施例提供的电子设备的一个可选的结构示意图;
51.图3是本技术实施例提供的多智能体模型的训练方法的一个可选的流程示意图;
52.图4是本技术实施例提供的多智能模型和机器学习模型训练过程对比图;
53.图5是本技术实施例提供的基于平面三角形更新多智能体模型示意图;
54.图6是本技术实施例提供的获取目标参数值组的一个可选的流程图;
55.图7是本技术实施例提供的获取目标参数值组的另一个可选的流程图;
56.图8是本技术实施例提供的目标参数值组的选取方式流程图;
57.图9是本技术实施例提供的多智能体模型预测流程图;
58.图10是本技术实施例提供的多智能体模型优化示意图;
59.图11是本技术实施例提供的基于横向联邦学习的多智能体模型的优化示意图;
60.图12是本技术实施例提供的多智能体模型的验证方法的流程图;
61.图13是本技术实施例提供的基于横向联邦学习的多智能体模型的验证方法的流程图。
具体实施方式
62.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
63.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
64.如果申请文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
65.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
66.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
67.1)联邦学习(federated learning),是一种分布式学习的机器学习框架,在保障数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方的计算设备之间开展高效率的机器学习。
68.2)横向联邦学习(horizontal federated learning),也称为按样本划分的联邦学习,是在各个参与者的数据特征重叠较多,而用户重叠较少的情况下,取出参与者数据特征相同而用户不完全相同的那部分数据进行联合机器学习。
69.如有两家不同地区的银行,它们的用户群体分别来自各自所在的地区,相互的交集很小。但是它们的业务很相似,记录的用户数据特征很大部分是相同的。可以使用横向联邦学习来帮助两家银行构建联合模型来预测他们的客户行为。
70.3)多智能体模型/模拟(agent based simulation or agent based modeling,abs或abm):是一种用来模拟智能体(独立个体或共同群体,例如组织、团队)的行动和相互作用的计算模型。多智能体模型是一个微观模型,通过模拟多个智能体的同时行动和相互作用以再现和预测复杂现象。这个过程是从低(微观)层次到高(宏观)层次的涌现。
71.根据abs可以模拟城市交通情况和疾病传播等现象。如,可以通过abs模拟新冠病毒的传播,帮助预测新冠病毒疫情的发展情况和分析不同干预手段对疫情的抑制效果。这种场景下,通常涉及到3个部分,1)贴近真实分布的人群模型;2)人群之间的社交网络模型;3)疾病的传播模型;基于以上三部分模型和对应的参数,可以模拟在给定初始感染人数的情况下,疫情的发展趋势。
72.4)下山单纯形法(nm,nelder

mead),用于多维空间寻找目标函数的最大值最小值问题。它是基于比较的直接搜索方法,通常应用于导数不可知的非线性优化问题,用来求解
目标函数最小化问题。
73.n维的nelder

mead包括n+1个测试点,组成一个simplex,然后计算的每个点的目标函数值,目的是找到一个新的测试点替代旧的测试点,迭代进程。最简单的方法是用质心(前n个点的均值)的反射点(reflection)替换最差的点、如果反射点比当前点更好,可以继续在反射点的方向上延伸寻找;如果不敌当前点,那就将所有的点往一个更好的方向收缩。
74.本技术实施例提供一种多智能体模型的训练方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够更好更快的找到合适的参数取值,使得模型优化过程更加稳定可控。
75.基于上述对本技术实施例中涉及的名词和术语的解释,首先对本技术实施例提供的多智能体模型的训练系统进行说明,参见图1,图1是本技术实施例提供的多智能体模型的训练系统的一个可选的架构示意图,在多智能体模型的训练系统100中,包括参与方设备400(示例性的示出了2个参与方设备,分别记为400

1和400

2,以示区分,在实际实施时,可以包括多个参与方设备),参与方设备400

1和参与方设备400

2通过网络300互相连接同时通过网络300连接参数聚合设备200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。
76.在一些实施例中,参与方设备可以是笔记本电脑,平板电脑,台式计算机,智能手机,专用消息设备,便携式游戏设备,智能音箱,智能手表等,还可以是联邦学习参与方的客户终端,例如各地区等存储有用户特征数据的参与方设备,但并不局限于此。参数聚合设备200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(cdn,content delivery network)、以及大数据和人工智能平台等基础云计算服务的云服务器,用于协助各参与方设备进行联邦学习以得到联邦学习模型。网络300可以是广域网或者局域网,又或者是二者的组合。第一参与方设备以及参数聚合设备可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例中不做限制。
77.参与方设备400,用于对本地多智能体模型进行训练,并将本地多智能体模型训练得到的第一数量的参数值组发送至参数聚合设备;接收参数聚合设备发送的重新选择后的第一数量的目标参数值组,基于获取的第一数量的目标参数值组对本地多智能体模型进行更新。
78.参数聚合设备200,用于接收各参与方设备发送的第一数量的参数值组,参数值组包含至少一个不可预测参数的参数值;对各参与方设备发送的参数值组进行汇总,并将汇总得到的第二数量的参数值组分别发送至各参与方设备;接收各参与方设备返回的第二数量的损失值,损失值是,参与方设备基于接收到的参数值组及多智能体模型的损失函数所确定;基于第二数量的损失值,从第二数量的参数值组中选取第一数量的参数值组作为目标参数值组;将目标参数值组分别发送至各参与方设备,以使各参与方设备基于目标参数值组,更新多智能体模型的模型参数。
79.参见图2,图2是本技术实施例提供的电子设备500的一个可选的结构示意图,在实际应用中,电子设备500可以实施为图1中的终端400或服务器200,以电子设备为图1所示的服务器200为例,对实施本技术实施例的多智能体模型的训练方法的电子设备进行说明。图
2所示的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可以理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
80.处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
81.用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
82.存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
83.存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的存储器550旨在包括任意适合类型的存储器。
84.在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
85.操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
86.网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;
87.呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
88.输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
89.在一些实施例中,本技术实施例提供的多智能体模型的训练装置可以采用软件方式实现,图2示出了存储在存储器550中的多智能体模型的训练装置555,其可以是程序和插件等形式的软件,包括以下软件模块:第一接收模块5551、汇总模块5552、第二接收模块5553、选取模块5554和发送模块5555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
90.在另一些实施例中,本技术实施例提供的多智能体模型的训练装置可以采用硬件方式实现,作为示例,本技术实施例提供的多智能体模型的训练装置可以是采用硬件译码
处理器形式的处理器,其被编程以执行本技术实施例提供的多智能体模型的训练方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field

programmable gate array)或其他电子元件。
91.将结合本技术实施例提供的参数聚合设备的示例性应用和实施,说明本技术实施例提供的多智能体模型的训练方法。参见图3,图3是本技术实施例提供的多智能体模型的训练方法的流程示意图,将结合图3示出的步骤进行说明。
92.在步骤101中,参数聚合设备接收各参与方设备发送的第一数量的参数值组,参数值组包含至少一个不可预测参数的参数值。
93.这里,参数聚合设备接收到的参数值组,可以是各参与方设备针对本地的多智能体模型的参数进行初始化后的第一数量的参数值组,也可以是各参与方设备对本地的多智能体模型进行预设轮次的迭代更新后得到的第一数量的参数值组。需要说明的是,第一数量与多智能体模型包括的不可预测参数的个数存在数量关系。
94.对多智能体模型进行说明,多智能体模型也称为多方智能体模型,多智能体模型包括模型和参数,模型是指各智能体,参数用于定于模型中的具体属性,参数包括可预测参数以及不可预测参数。其中,可预测参数是通过历史数据得到的参数以及经验参数,不可预测参数的取值无法确定需要通过在真实数据上进行验证得到。
95.参见图4,图4是本技术实施例提供的多智能模型和机器学习模型训练过程对比图,得到一个更新完成的多智能体模型包括构建初始多智能体模型(构建模型)、验证多智能体模型(验证过程)以及测试多智能体模型(测试过程)。其中,构建初始多智能体模型是指对模型参数进行初始化、预设损失函数(用于对多智能体模型进行更新)等;验证过程是指通过预设轮次的迭代更新模型中的不可预测参数;测试过程是指通过修改模型的输出结果对多智能体模型的正确性进行测试。而得到一个已收敛的机器学习模型包括构建初始机器学习模型、训练机器学习模型以及测试机器学习模型,其中,机器学习模型的训练阶段是通过训练样本数据对机器学习模型进行预测轮次的迭代更新。需要说明的是,多智能体模型的在真实数据上的验证过程类似于机器学习中的训练过程,即优化不可预测参数的值,让模型预测的结果与真实数据尽量接近。
96.在一些实施例中,对多智能体模型进行验证时,初始化参数值组的数量即第一数量,与不可预测参数的个数之间的数量关系,与多智能体模型进行验证时设置的优化算法有关。
97.在实际实施时,采用nm优化方法时,根据nm算法的特点,假设多智能模型中有q(q≥1且q为整数)个不可推测参数需要拟合优化,则各参与方设备在初始化和模型更新过程中会维持有n+1组不可推测参数的组合,即对于参与方设备1,其不可推测参数x
1,v
的维度为q,则对参数进行初始化时,会有q+1(即第二数量为q+1)组不同取值的x
1,v

98.假设在多智能体模型f中,当不可预测参数的个数q=1时,根据nm优化算法,模型验证时,初始化的参数值组的数量为2,两组参数值组对应的测试点,组成线段,并将线段中最差的点(也就是f的最大点)以新的测试点替代,迭代这个获取新的测试点的过程,来更新线段的长度,尽量使得线段的长度接近零即使f的输出结果(预测值)接近真实值,在不断获
取新的测试点的过程中,可以看作是以最差点外的其余1个点为中心,进行线段的平移、截断等操作。当不可预测参数的个数q=2时,根据nm优化算法,模型验证时,初始化的参数值组的数量为3,三组参数值组对应的三个测试点,构成平面三角形,不断的将三角形中最差的点(也就是f的最大点)以新的测试点替代,其中,迭代获取新的测试点的过程,就是不断变换三角形(不断的寻找最优的点),使三角形的面积不断变小,直到最后,三角形的面积收敛到一点(三个顶点重叠成一点),此时得到最佳点。在不断获取新的测试点的过程,可以看作是,除去最差点外,用前2个点的均值(中心点)的反射点(reflection)替换最差的点、如果反射点对应f的预测值比当前最差点对应f预测值更好,可以继续在反射点的方向上延伸寻找;如果比当前最差点对应f预测值更差,那就将所有点往一个更好的方向收缩。当不可预测参数的个数q=3时,根据nm优化算法,模型验证时,初始化的参数值组的数量为4,若是在立体空间中,可以是看作是四面体的体积最小,若是在平面空间中,可以看作是四边形的面积最小,实现方法与q=3时类似,整个迭代过程中只要保证参数值组的个数比不可预测参数个数多即可。
99.示例性地,参见图5,图5是本技术实施例提供的基于平面三角形更新多智能体模型示意图,如图5所示,多智能体模型f中包含两个不可预测参数p1、p2,基于nm算法的特点,构建三组参数值组,对应的点分别为a、b、c,且可知f(b)<f(a)<f(c),因此,c点对应的值为最大值,即c点是最差点,基于剩余两点a、b的中心点o,获取c点相对于o点的反射点e,此时可以确定f(e)<f(b)<f(a),说明可以在反射点e这个方向上继续可以使得f值越来越小的最优点g。
100.在步骤102中,对各参与方设备发送的参数值组进行汇总,并将汇总得到的第二数量的参数值组分别发送至各参与方设备。
101.在一些实施例中,参数聚合设备接收到各参与方设备上传的参数值组,将各参与方设备对应的第一数量的参数组作为整体,在分别发送至各参与方,这样能够增加数据量。
102.在实际实施时,假设基于横向联邦学习的多智能体模型,包含k个参与方,k>1且k为整数,且每个参与方设备本地的多智能体模型结构相同,各参与方设备上传第一数量的参数值组,设第一数量为n+1(n≥1且n为整数),n为多智能体模型包含的不可预测参数的数量,则参数聚合设备共得到第二数量的参数值组,其中,第二数量为k*(n+1)。将得到的这k*(n+1)组参数值组分别发送给各参与方,此时,各参与方设备均得到k*(n+1)组参数值组。
103.在步骤103中,接收各参与方设备返回的第二数量的损失值,损失值是参与方设备基于接收到的参数值组及多智能体模型的损失函数所确定。
104.这里,每个参与方设备从参数聚合设备中获取的第二数量的参数组值,并根据本地多智能体模型,确定第二数量的参数值组中每个参数值组对应的预测值,即每个参与方设备都会得到第二数量的预测值,并基于本地多智能体模型预设的损失函数,确定各参数值组对应的预测值与各参数值组对应的真实值之间的误差即损失值,损失值的个数与第二数量相等,可以理解的是,参数值组、预测值以及损失值的数量是相等的。
105.对多智能体模型的损失函数的设定方式进行说明,在一些实施例中,损失函数根据拟合的真实值形式决定,拟合的真实值为数值形式时,损失函数可以为真实值和预测值的均方差。在另一些实施例中,当拟合的真实值为一段曲线形式时,可以为每个点的均方差再求和或者求最大值。
106.示例性地,使用的是预测值和真实值的均方方差(mean squared error,mse)作为损失函数l,则优化的目标是找到一组参数使得l的值最小。l公式如下:
[0107][0108]
在公式(1)中,表示真实值和预测值的误差。
[0109]
在步骤104中,基于各第二数量的损失值,从各第二数量的参数值组中选取第一数量的参数值组作为目标参数值组。
[0110]
这里,各参与方设备将本地确定的第二数量的损失值上传至参数聚合设备,参数聚合设备以第二数量的参数值组中的各参数值组为索引,对各参数值组在各参与方设备中对应的损失值进行统计操作,从第二数量的参数值组中选取第一数量的参数值组作为目标参数值组。
[0111]
承接上例,k个参与方设备分别确定各自得到的k*(n+1)组参数值组的损失值,并分别上传至参数聚合设备,此时,参数聚合设备中共有k*k*(n+1)损失值。可以理解的是,k*(n+1)组参数值组中的每一组参数值组都会对应有k个损失值(每个参数值组对应每个参与方设备都会得到一个损失值,因为有k个参与方设备,所以参数聚合设备中的每个参数值组都对应有k个损失值),对每个参数值组对应的k个损失值按照预设统计方式进行统计,得到每个参数值组对应的参考损失值(或称为统计值),参考损失值用于表征参数值组对多智能体模型的影响度,并基于得到的参考损失值,从第二数量的参数值组中获取第一数量的目标参数值组。
[0112]
在一些实施例中,以参数值组为索引,获取参数值组对应各参与方设备的损失值,对多个损失值求和,得到总损失值作为当前参数值组的参考损失值。在一些实施例中,以参数值组为索引,获取参数值组对应各参与方设备的损失值,对多个损失值求平均,得到损失均值作为当前参数值组的参考损失值。本技术实施例对统计值的获取方式不做限制。
[0113]
示例性地,k*(n+1)组参数值组中,每个参数值组对应k个损失值,对这k个损失值求和得到总损失值,如,第j组参数值组,对应的总损失值记为sum(l
1,j
+
……
+l
k,j
),将总损失值作为参数值组对应的参考损失值;也可以对每个参数值组对应k个损失值求平均得到损失均值,如,第j组参数值组,对应的损失均值记为avg(l
1,j
+
……
+l
k,j
),将损失均值作为参数值组对应的参考损失值。
[0114]
对获取目标参数值组的具体实现方式进行说明,在一些实施例中,参数聚合设备对各参与方设备将本地确定的第二数量的损失值,进行统计操作,获取与参数值组一一对应的参考损失值,并对所有参数值组对应的参考损失值进行降序排序,获取排名靠前的第一数量的参考损失值对应的参数值组作为目标参数值组。参见图6,图6是本技术实施例提供的获取目标参数值组的一个可选的流程图,基于图3,结合图6示出的步骤对步骤104进行说明。
[0115]
步骤1041a,参数聚合设备基于各参与方设备返回的第二数量的损失值,确定第二数量的参数值组中各参数值组对应的第三数量的损失值,第三数量为参与方设备的数量。
[0116]
结合上述步骤103可知,参数聚合设备接收到,各参与方设备根据本地多智能体模型以及对应的损失函数,分别确定第二数量的参数值组中的每组参数值组对应的损失值。
[0117]
针对第二数量的参数值组,每个参与方设备分别上传第二数量的损失值则每个参
数值组就会有第三数量的损失值,第三数量是参与方设备的数量。
[0118]
示例性地,{参数值组1,损失值a1,损失值a2,损失值a3,
……
,损失值an},{参数值组2,损失值b1,损失值b2,损失值b3,
……
,损失值bn},
……
,{参数值组m,损失值m1,损失值m2,损失值m3,
……
,损失值mn},其中,m为第二数量,m≥1,n为第三数量,n≥1,损失值a1,损失值b1,
……
,损失值m1来自参与方设备1,损失值a2,损失值b2,
……
,损失值m2来自参与方设备2,以此类推,损失值an,损失值bn,
……
,损失值mn来自参与方设备n。
[0119]
步骤1042a,基于各参数值组对应的第三数量的损失值,确定各参数值组对应的参考损失值。
[0120]
在一些实施例中,可以通过求和的方式获取各参数值组对应的参考损失值:针对第二数量的参数值组中各参数值组分别执行以下处理:对参数值组对应的第三数量的损失值进行求和处理,得到求和结果;将求和结果作为参数值组对应的参考损失值。
[0121]
在一些实施例中,还可以通过求平均值的方式获取各参数值组对应的参考损失值,针对第二数量的参数值组中各参数值组分别执行以下处理:对参数值组对应的第三数量的损失值进行求平均处理,得到损失均值;将损失均值作为参数值组对应的参考损失值。
[0122]
承接上例,以获取参数值组1对应的参考损失值为例,参数值组1对应的{参数值组1,损失值a1,损失值a2,损失值a3,
……
,损失值an},通过求和的方式获取对应参数值组1对应的参考损失值1,即参考损失值1=损失值a1+
……
+损失值an;通过求均值的方式获取对应参数值组1对应的参考损失值1,即参考损失值1=(损失值a1+
……
+损失值an)/n。最终各参数值组对应的参考损失值,即{参数值组1,参考损失值1},{参数值组2,参考损失值2},
……
,{参数值组m,参考损失值m}。
[0123]
步骤1043a,依据参考损失值从小到大的顺序,对第二数量的参数值组进行排序,并依据排序结果从第一个参数值组开始选取,直至选取第一数量的参数值组作为目标参数值组。
[0124]
这里,参考损失值越小说明多智能模型的预测值与实际值(或称真实值)之间的误差越小,对应的参数值越稳定。
[0125]
承接上例,第二数量的参数值组(第二数量为m)对应的参考损失值,即{参数值组1,参考损失值1},{参数值组2,参考损失值2},
……
,{参数值组m,参考损失值m},按照参考损失值的大小,进行降序排序,依据排序结果从第一个参数值组开始选取,直至选取第一数量的参数值组作为目标参数值组。
[0126]
继续对获取目标参数值组的具体实现方式进行说明,在一些实施例中,还可以基于各参数值组对应各参与方设备的损失值的排序选取目标参数值组。参数聚合设备对各参与方设备将本地确定的第二数量的损失值,并按照损失值的大小进行排序,然后基于排序的序号获取第一数量的目标参数值组。参见图7,图7是本技术实施例提供的获取目标参数值组的一个可选的流程图,基于图3,结合图7示出的步骤对步骤104进行说明。
[0127]
步骤1041b,参数聚合设备分别对各参与方设备返回的第二数量的损失值进行排序,得到各参与方设备对应的损失值序列。
[0128]
在一些实施例中,可以基于损失值的平均排名确定目标参数值组。参数聚合设备对每个参数值组对应各参与方设备的损失值进行升序排序,得到对应的序号序列(即序列中的元素表示损失值对应的排名名次)。参见图8,图8是本技术实施例提供的目标参数值组
的选取方式流程图,步骤1041b,可以结合图8示出的步骤进行说明。
[0129]
步骤201,参数聚合设备分别对各参与方设备返回的第二数量的损失值进行排序,得到各参与方设备对应的损失值序列。
[0130]
示例性地,k*(n+1)组参数值组中,每个参数值组对应k个损失值,对这k个损失值进行升序排序,如,第j组参数值组,j=1且j≤k*(n+1),对应k各参与方设备,会得到k各排名名次(序号),记为n
1,j

……
,n
k,j

[0131]
步骤202,参数聚合设备分别获取各参数值组对应的损失值在各损失值序列中的排序。
[0132]
步骤203,参数聚合设备基于各参数值组在各损失值序列中的排序,从第二数量的参数值组中选取第一数量的参数值组作为目标参数值组。
[0133]
在一些实施例中,基于各参数值组在各损失值序列中的排序,获取目标参数值组,可以通过以下方式实现:参数聚合设备针对各参数值组,分别对参数值组在各损失值序列中的排序进行求平均处理,得到排序平均值;根据各参数值组在各损失值序列中的排序平均值,从第二数量的参数值组中选取第一数量的参数值组作为目标参数值组。
[0134]
在实际实施时,对当前参数值组在每个损失值序列中对应的排序序号(排序索引)求平均,得到当前参数值组对应的排序平均值(序号均值),基于得到的序号均值进行升序排序,得到排名靠前的第一数量的序号均值,并确定对应的参数值组作为目标参数值组。
[0135]
示例性地,k*(n+1)组参数值组中,每个参数值组对应的k个排名名次(序号),n
1,j

……
,n
k,j
,并对得到的k各排名求平均,得到序号均值,序号均值记为avg(n
1,j
+
……
+n
k,j
)。
[0136]
在一些实施例中,基于各参数值组在各损失值序列中的排序,获取目标参数值组,还可以通过以下方式实现:参数聚合设备针对各参数值组,分别对参数值组在各所述损失值序列中的排序进行求和处理,得到排序的和;根据各参数值组在各损失值序列中排序的和,从第二数量的参数值组中选取第一数量的参数值组作为目标参数值组。
[0137]
示例性地,k*(n+1)组参数值组中,每个参数值组对应的k各排名名次(序号),n
1,j

……
,n
k,j
,并对得到的k各排名求和,得到序号总值,序号总值记为sum(n
1,j
+
……
+n
k,j
)。
[0138]
步骤1042b,参数聚合设备分别获取各参数值组对应的损失值在各损失值序列中的排序。
[0139]
承接上例,对k*(n+1)组参数值组对应的k*(n+1)个排序均值(序号均值)或排序总值(序号总值),进行升序排序。
[0140]
步骤1043b,参数聚合设备基于各参数值组在各损失值序列中的排序,从第二数量的参数值组中选取第一数量的参数值组作为目标参数值组。
[0141]
承接上例,参数聚合设备获取靠前的(n+1)个统计值,作为候选统计值,并获取候选统计值对应的参数值组作为目标参数值组,即最终选取得到误差小的第一数量(n+1)组参数值组作为目标参数值组。
[0142]
在步骤105中,将目标参数值组分别发送至各所述参与方设备,以使各所述参与方设备基于所述目标参数值组,更新多智能体模型的模型参数。
[0143]
这里,参数聚合设备将通过步骤104选取的第一数量的参数值组,下发至各参与方
设备,各参与方设备基于目标参数值组,更新(优化)本地多智能体模型的模型参数,能够加快多智能模型的收敛速度。
[0144]
重复步骤101至步骤105,得到一个更新完成的多智能体模型,在一些实施例中,参数聚合设备或参与方设备可以使用上述更新完成的多智能体模型进行信息预测。需要说明的是,参数聚合设备可以是独立的服务器设备,也可以是参与方设备中的一个。参见图9,图9是本技术实施例提供的多智能体模型预测流程图,结合图9示出的步骤进行说明。
[0145]
步骤301,参与方设备获取更新完成的多智能体模型对应的可预测参数以及不可预测参数。
[0146]
在一些实施例中,可用于疾病传播预测,即预测未来一段时间内,针对目标疾病的确诊人数以及死亡人数,以及相应的传播系数。基于此,可预测参数包括目标区域对应的人口分布,不可预测参数包括目标疾病对应的传播系数。
[0147]
在一些实施例中,更新完成的多智能体模型可用于城市交通情况预测,即预测未来一段时间内,针对目标地区的目标路段在目标时间段内拥堵车辆数,以及相应的拥堵系数,基于此,可预测参数可以包括目标地区的人口出行轨迹、办公区域分布、节假日时间以及目标地区的天气状况等,不可预测参数包括目标时间段的拥堵系数。
[0148]
步骤302,初始化可预测参数以及所述不可预测参数,得到第四数量的初始参数值组。
[0149]
承接上述疾病预测示例,分别初始化人口分布对应的第四数量的值以及传播系数对应的第四数量的值,得到第四数量的初始参数值组。
[0150]
承接上述城市交通情况预测示例,分别初始化人口出行轨迹、办公区域分布、节假日时间以及目标地区的天气状况对应的第四数量的值,以及拥堵系数对应的第四数量的值,得到第四数量的初始参数值组。
[0151]
步骤303,将第四数量的初始参数值组输入至多智能体模型,得到预测结果。
[0152]
承接上述疾病预测示例,将第四数量的初始参数值组输入至更新完成的多智能体模型,得到目标疾病对应的确诊人数以及死亡人数。
[0153]
承接上述城市交通情况预测示例,将第四数量的初始参数值组输入至更新完成的多智能体模型,得到目标地区的目标路段在目标时间段内拥堵车辆数。
[0154]
步骤304,基于预测结果,对不可预测参数进行更新,得到不可预测参数对应的目标值。
[0155]
承接上例,基于确诊人数以及所述死亡人数,以及优化算法,确定目标疾病对应的传播系数。
[0156]
承接上述城市交通情况预测示例,基于目标路段在目标时间段内拥堵车辆数,以及优化算法,确定目标路段对应的拥堵系数。
[0157]
本技术实施例提供的基于横向联邦学习的多智能体模型的训练方法,参数聚合设备接收各参与方设备发送的第一数量的参数值组,参数值组包含至少一个不可预测参数的参数值;对各参与方设备发送的参数值组进行汇总,并将汇总得到的第二数量的参数值组分别发送至各参与方设备,能够增加验证数据量,提升验证效率,并能够解决多智能体模型中各参与方数据孤岛问题;接收各参与方设备返回的第二数量的损失值;基于第二数量的损失值,从第二数量的参数值组中选取第一数量的参数值组作为目标参数值组,可以有效
消除不同参与方损失值差异性带来的影响;将目标参数值组分别发送至各参与方设备,以使各参与方设备基于目标参数值组,更新多智能体模型的模型参数。基于此,能够保障各参与方设备的本地数据安全性,解决多智能体模型领域的数据孤岛问题,加快多智能模型的收敛速度。
[0158]
下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
[0159]
随着新冠疫情在全世界各个国家和地区爆发,政府面临的主要问题之一是如何有效制定策略来应对。如果能够了解未来的疫情的传播情况和各措施的实施效果,则可以针对性的制定更加合理的政策。一种可以了解此类信息的方法是多智能体模型模拟,通过根据相应地区的人口情况,人口活动情况进行建模,得到疫情在该地区的传播情况的预测。
[0160]
一个构建好的abs模型,可以适用于不同的地区,只需要根据目标地区相应的情况调整其可预测参数(如人口的年龄,性别比例等),然后验证得出不可预测参数的值。即可使用该模型在目标地区预测和分析疫情的后续发展情况。通常,参与模拟的区域越大,使用的智能体(agent)越多,模型的效果越好,越能准确反应系统的真实情况。然而由于各地区的人口分布和人口活动情况,疫情情况数据可能涉及隐私或安全问题,比较敏感,这些数据通常只有当地的授信机构有权限查看,无法汇总到一处用于训练/验证,因此各机构只能基于自有的有限的数据进行验证的模拟,得到的不可预测参数的值往往不是最优结果,模型效果会受到影响,最终导致预测的偏差。
[0161]
横向联邦学习的目标是利用各方有限的数据,在保障数据安全的前提下,共同训练一个全局模型。该全局模型因为利用了各参与方的数据进行训练,其模型效果能够逼近将各参与方数据放在一起训练的情况,显著优于各参与方只基于自有数据得到的模型的效果。然而,多智能体模型的使用与传统的机器学习十分不同,如何应用联邦学习解决多方参与的多智能体模型的验证(训练)是一个有待解决的问题。
[0162]
多智能体模型的模拟,通常包括模型和参数两部分。其中模型定义了模型中各个智能体(agent)的运行规律(如预先定义的规则,比如在一个区域的新冠疫情的模拟中,定义人群如何分布,如何组成家庭,平时的出行规律,如上班,上学,购物等,再比如疾病在什么情况下会传播),参数则定义了模型中的具体属性,分为可预测参数和不可预测参数。其中可预测参数可以从公开数据,文献或经验等来源中得到(比如构建人群时,人群的性别和年龄比例如何构成,家庭的组成人数分布,不同年龄和工作状态的人一周出门几天,出门使用什么交通工具),通过这些参数,基于特定概率模型可以构建模型人群及相应的属性和偏好(如出行的偏好)。与之相对的,不可预测参数无法从以上渠道中得到(例如疾病传播规律公式中的传播系数),需要通过基于模型预测输出值与真实值进行优化。目标是得到最优的不可预测参数值,使得模型的预测与真实值尽量相近。这个过程与常规的机器学习的模型训练过程相似。
[0163]
若以上述传播系数为例,该模型根据某地区的人群特点,构建了适应该地区的模拟模型,基于abs模型可以输出一段时间内该地区每日的疾病确诊和死亡人数;这些数据同时也可以从公开渠道获得,作为真实数据(相当于机器学习中的y_groundtruth)。abs模型的输入是已经获取的可预测参数x_fixed(包括人口分布等等),不可预测参数值x_variable(此处因为只优化一个参数

传播系数,所以n=1,nm优化时使用n+1组值),模型的输出是一段时间内某地区的疾病确诊和死亡人数。通过nelder

mead优化算法,则可以基于
y_groundtruth和模型输出优化得到一个传播系数(x_variable)的最优值,其可以让模型的输出与真实值最接近。
[0164]
当多智能体模型的更新(优化、验证)完成后,多智能体包含的所有参数都已确定。在实际应用中,可通过在另外的输出指标上对多智能体模型的正确性进行测试(例如,另外一段时间的确诊和死亡人数)。通过测试后,则可以通过改变模型条件,对其它感兴趣的情况进行模拟,如对城市交通情况进行模拟。
[0165]
在一些实施例中,多智能体模型可以在相关电子设备上单独执行,参见图10,图10是本技术实施例提供的多智能体模型优化示意图,
[0166]
在一些实施例中,多智能体模型可以应用于横向联邦学习系统,多个参与方设备共同参与多智能体模型的优化操作,参见图11,图11是本技术实施例提供的基于横向联邦学习的多智能体模型的优化示意图,图11展示的是以nelder

mead optimization为例应用于横向联邦学习系统的多智能体模型的优化方法。需要说明的是,为了便于描述,图11中只展示了服务器方和一个参与方,在实际应用场景中可有多个参与方,记为client1,
……
,client
k
,其中,k是正整数且k≥1,各参与方包含的本地多智能体模型的结构与工作方式与参与方1(client1)均相同。即各参与方都包含以下相同信息:1)有一个相同的abs模型f;2)有各自私有的可推测参数,x
1,e


,x
n,e
,取值根据各方本地的情况确定(对应于机器学习模型中的私有数据);3)各自的不可推测参数,x
1,v


,x
n,v
,不可推测参数的取值无法从已有数据或经验中推出,需要通过待模拟值(对应于机器学习中各方的模型参数)共同计算确定;4)各参与方本地的多智能体模型模拟的目标变量y
1,gt


,y
n,gt
(对应于机器学习训练中的标签)。还有两个部分分别是计算模拟结果y
pred
和y
gt
的损失函数loss模块,一种典型的函数为平均平方差(y
pred

y
gt
)2,和用于优化不可预测参数的优化(optimization)模块,由使用的优化方法确定。服务器(也可称为参数聚合设备)有聚合模块,用于聚合各方本地更新后上传的不可预测参数的值。
[0167]
需要说明的是,执行多智能体模型验证(优化)的前置条件:根据nm优化方法的特点,假设有n个不可推测参数需要拟合优化,则各参与方在优化初始化和过程中维持有n+1组不可推测参数的组合,即对于参与方1,其不可推测参数x
1,v
的维度为n,则初始化时,其有n+1组不同取值的x
1,v

[0168]
接下来,对各参与方对多智能体模型进行本地迭代验证的过程进行说明,参见图12,图12是本技术实施例提供的多智能体模型的验证方法的流程图,结合图10以及图12示出的步骤进行说明。
[0169]
步骤401,参与方将每组参数值组输入至多智能体模型进行模拟,得到模拟结果。
[0170]
这里,各参与方初始化本地多智能体模型相关的不可预测参数(设置不可预测参数的个数为n),各参与方得到n+1组不可预测参数值组,记为(x
k,v1


,x
k,vn+1
),其中,k=1,

,k,k为大于1的正整数,k用于表示参与方设备的数量。
[0171]
例如,参与方k使用每组参数值组通过多智能体模型f,计算模拟结果y,记为y
k,pred1


,y
k,predn+1

[0172]
步骤402,参与方基于各参数值组对应的模拟结果以及各参数值组对应的真实值,通过预设的损失函数,确定各参数值组对应的损失值。
[0173]
例如,将步骤401得到的模拟结果y
k,pred1


,y
k,predn+1
,分别与各参数值组对应的
真实值y
k,gt
通过损失函数计算得到损失l
k1


,l
kn+1
。其中,损失函数根据由拟合的真实值形式决定,当拟合的真实值为数值形式时,损失函数可以为预测值和真实值的均方差;当拟合的真实值为一段曲线形式时,可以为每个点的均方差再求和或者求最大值。
[0174]
步骤与403,基于各参数值组对应的损失值,以及预设的优化算法,对多智能模型进行验证。
[0175]
例如,基于步骤402中得到的各参数值组对应的损失值l
k1


,l
kn+1
,利用nm优化算法更新多智能体模型中的不可预测参数的值。
[0176]
重复执行上述步骤401至403,直至迭代次数达到预设轮次ql。
[0177]
本技术实施例各参与方对本地多智能体模型进行预测轮次的迭代,可以有效多智能体模型的优化速度。
[0178]
接下来,对基于横向联邦学习的多智能体模型的验证基本流程进行说明。参见图13,图13是本技术实施例提供的基于横向联邦学习的多智能体模型的验证方法的流程图,结合图11以及图13示出的步骤进行说明。
[0179]
步骤501,各参与方对多智能体模型完成预设轮次的迭代后,将更新后的本地第一数量的不可预测参数值组上传到服务器。
[0180]
例如,各参与方对本地包含n个不可预测参数的多智能体模型进行q
l
次的迭代操作,各参与方得到n+1组不可预测参数值组。
[0181]
步骤502,服务器基于各方上传的不可预测参数组,进行排序聚合,得到第一数量的目标不可预测参数值组。
[0182]
服务器基于各参与方(设共有k个参与方)上传的不可预测参数k*(n+1)组,进行排序聚合,得到n+1组不可预测参数的取值。
[0183]
例如,一种典型的实现方式如下:服务器将k个参与方得到上传的不可预测参数聚合(共k*(n+1)组参数),得到n+1组参数取值。为了实现该聚合过程,将k*(n+1)组参数,下发给所有参与方,各参与方计算损失函数值,然后汇总得到k*k*(n+1)个损失值。对于第j组参数,可得到k个损失函数的计算结果,l
1,j


,l
k,j
,其中,j=1,

,k*(n+1)。
[0184]
在实际应用中,可以通过多种排序方式实现全局优化选取最优值。一种方式为,计算每组参数在各参与方的总损失,如第j组参数:l
j
=sum(l
1,j
+

+l
k,j
),然后选取总损失最低的n+1组参数,作为服务器聚合得到的不可预测参数。
[0185]
另一种排序方式是基于平均排名的方式,如,考虑到不同参与方的损失值的差异性,可以按照参与方(如k方)分别对每组参数进行排序,那么对于第j组参数,其有k个排名,(r
i,j


,r
k,j
),将其平均可得到r
avg,j
=average(r
i,j


,r
k,j
);然后选取排名那个最高的n+1组参数最为聚合后得到的不可预测参数。通过这种排序选取的方式可以有效消除不同参与方损失值差异性带来的影响。
[0186]
步骤503,服务器将第一数量的目标不可预测参数值组下发给各参与方,以使各参与方基于目标不可预测参数值组对多智能体模型进行本地迭代。
[0187]
例如,服务器将步骤502中得到的新的n+1组不可预测参数值组,下发给各参与方,以使各参与方基于得到的n+1组不可预测参数值组进行用于本地迭代。
[0188]
重复执行上述步骤501至503达到预设轮次,或多智能体模型收敛,即完成了不可预测参数的验证/优化过程。
[0189]
在实际应用场景中,如模拟城市交通情况和疾病传播模拟预测,可使用本技术实施例验证完成的多智能体模型进行预测研究。
[0190]
本技术实施例中,各参与方的本地多智能体模型f,可以使用nelder

mead优化算法对多智能体模型的参数进行优化。结合该优化算法的特点,即当多智能体模型f包含n个不可预测参数时,为n个不可预测参数构建n+1组参数值(初始化),这样就构成了n+1组参数值。各参与方对本地多智能体模型进行预设轮次的迭代更新(这样可以加快计算效率)后,鉴于本地数据量的限制,以及为了避免本地模型的过拟合现象,还需要结合其他参与方进行横向联邦学习(增加数据量)。基于此,各参与方分别将本地的n+1组不可预测参数值组上传至服务器,服务器得到k*(n+1)组参数值后(k表示参与方的个数),经过不同的排序聚合操作,从这k*(n+1)组参数值选取得到新的n+1组参数值,然后将新的n+1组参数值组作为目标参数值组分别发送至各参与方,各参与方基于接收到的新的n+1组参数值继续优化本地模型参数。
[0191]
本技术实施例提供的基于全局优化的横向联邦学习方法,使得多参与方在服务器或参与方的协调下共同训练多智能模型,并保障各参与方本地数据的安全,解决多智能模型领域的数据孤岛问题;通过对参数点进行全局的排序(如基于平均排名的方法),能够更好更快的确定合适的参数取值,使得多智能体模型的优化过程更加稳定可控,比直接使用参数值加权平均的方法更加稳定。
[0192]
下面继续说明本技术实施例提供的多智能体模型的训练装置555的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器540的多智能体模型的训练装置555中的软件模块可以包括:
[0193]
第一接收模块5551,用于接收各所述参与方设备发送的第一数量的参数值组,所述参数值组包含至少两个不可预测参数的参数值;
[0194]
汇总模块5552,用于对各所述参与方设备发送的参数值组进行汇总,并将汇总得到的第二数量的参数值组分别发送至各所述参与方设备;
[0195]
第二接收模块5553,用于接收各所述参与方设备返回的第二数量的损失值,所述损失值是,所述参与方设备基于接收到的参数值组及所述多智能体模型的损失函数所确定;
[0196]
选取模块5554,用于基于所述第二数量的损失值,从所述第二数量的参数值组中选取第一数量的参数值组作为目标参数值组;
[0197]
发送模块5555,用于将所述目标参数值组分别发送至各所述参与方设备,以使各所述参与方设备基于所述目标参数值组,更新所述多智能体模型的模型参数。
[0198]
在一些实施例中,所述选取模块,还用于基于各所述参与方设备返回的第二数量的损失值,确定所述第二数量的参数值组中各参数值组对应的第三数量的损失值,所述第三数量为所述参与方设备的数量;基于各所述参数值组对应的第三数量的损失值,确定各所述参数值组对应的参考损失值;依据所述参考损失值从小到大的顺序,对所述第二数量的参数值组进行排序,并依据排序结果从第一个参数值组开始选取,直至选取第一数量的参数值组作为目标参数值组。
[0199]
在一些实施例中,所述选取模块,还用于针对所述第二数量的参数值组中各参数值组分别执行以下处理:对所述参数值组对应的第三数量的损失值进行求和处理,得到求
和结果;将所述求和结果作为所述参数值组对应的参考损失值。
[0200]
在一些实施例中,所述选取模块,还用于,针对所述第二数量的参数值组中各参数值组分别执行以下处理:对所述参数值组对应的第三数量的损失值进行求平均处理,得到损失均值;将所述损失均值作为所述参数值组对应的参考损失值。
[0201]
在一些实施例中,所述选取模块,还用于分别对各所述参与方设备返回的第二数量的损失值进行排序,得到各参与方设备对应的损失值序列;分别获取各参数值组对应的损失值在各所述损失值序列中的排序;基于各所述参数值组在各所述损失值序列中的排序,从所述第二数量的参数值组中选取第一数量的参数值组作为目标参数值组。
[0202]
在一些实施例中,所述选取模块,还用于,针对各所述参数值组,分别对所述参数值组在各所述损失值序列中的排序进行求平均处理,得到排序平均值;根据各所述参数值组在各所述损失值序列中的排序平均值,从所述第二数量的参数值组中选取第一数量的参数值组作为目标参数值组。
[0203]
在一些实施例中,所述选取模块,还用于,针对各所述参数值组,分别对所述参数值组在各所述损失值序列中的排序进行求和处理,得到排序的和;根据各所述参数值组在各所述损失值序列中排序的和,从所述第二数量的参数值组中选取第一数量的参数值组作为目标参数值组。
[0204]
在一些实施例中,所述装置还包括应用模块,所述应用模块,用于获取更新完成的多智能体模型对应的可预测参数以及不可预测参数;初始化所述可预测参数以及所述不可预测参数,得到第四数量的初始参数值组;将所述第四数量的初始参数值组输入至所述多智能体模型,得到预测结果;基于所述预测结果,对所述不可预测参数进行更新,得到所述不可预测参数对应的目标值。
[0205]
在一些实施例中,所述应用模块,还用于,初始化所述人口分布对应的第四数量的值以及所述传播系数对应的第四数量的值,得到第四数量的初始参数值组;将所述第四数量的初始参数值组输入至更新完成的多智能体模型,得到目标疾病对应的确诊人数以及死亡人数;基于所述确诊人数以及所述死亡人数,更新所述传播系数,得到所述目标疾病对应的传播系数。
[0206]
需要说明的是,本技术实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。
[0207]
本技术实施例提供了一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现本技术实施例提供的多智能体模型的训练方法。
[0208]
本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的方法,例如,如图3示出的多智能体模型的训练方法。
[0209]
在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd

rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0210]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在
计算环境中使用的其它单元。
[0211]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0212]
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0213]
综上所述,通过本技术实施例能够保障各参与方设备的本地数据安全性,解决多智能体模型领域的数据孤岛问题,加快多智能模型的收敛速度。
[0214]
以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1