1.一种基于边缘计算的物联网设备非共享数据训练方法,其特征在于,该方法采用基于边缘计算的物联网设备非共享数据训练系统实现,该方法具体包括:S1.数据提供方A和B分别给出用来训练的数据α和β,数据α用于训练数据提供方A的模型1,数据β用于训练数据提供方B的模型2,数据提供方A和B之间的数据不可交换,模型1和模型2的训练均采用加密训练;
S2.对模型1和模型2进行加密训练:首先由第三方C向数据提供方A和B分别发送公钥,用来加密需要传输的数据;数据提供方A和B分别计算和自己相关的特征中间结果,并加密交互,用来求得各自模型的梯度和损失;数据提供方A和B分别计算各自加密后的梯度并添加掩码发送给C,同时数据提供方A和B分别计算各自加密后的损失发送给C;C解密加密后的梯度和损失后回传给数据提供方A和B,数据提供方A和B去除掩码并更新各自的模型,得到训练好的模型1和模型2;
S3.整合训练好的模型1和模型2,得到新模型,新模型中将添加模型1和模型2所有的参数,若模型1和模型2有重复参数,则使用训练次数较多的参数替换训练次数少的参数;
其中,所述基于边缘计算的物联网设备非共享数据训练系统设置一个监控中心,所述监控中心具有管理员权限,用于监管基于边缘计算的物联网设备非共享数据训练系统的运行情况,通过管理员操作停止或继续当前系统的运行;各数据提供方通过嵌入式OS将自己用来训练的数据和训练模型部署到终端设备,通过终端应用调用模型接口进一步调用数据训练模型开始训练自己的模型;模型训练完成后,新模型通过IOT基础设施网络部署到广大应用设备上,所述监控中心通过IOT接口模块来监督应用设备的运行,同时,所有训练的模型将存入数据库备份。
2.根据权利要求1所述的基于边缘计算的物联网设备非共享数据训练方法,其特征在于,以线性回归模型为例,所述步骤S1和步骤S2具体包括:存在数据提供方A提供的数据集 和数据提供方B提供的数据集其中DA表示数据提供方A提供的数据集中的数据数量,DB表示数据提供方B提供的数据集中的数据数量,yi表示模型2合并过程中数据提供方B提供的数据集中第i个数据的损失,这里假设只有数据提供方B损失了数据,数据集 用于训练得到数据提供方A的模型1的模型参数集合ΘA,数据集 用于训练得到数据提供方B的模型2的模型参数集合ΘB,首先初始化模型1和模型2的模型参数集合ΘA和ΘB,模型1、模型2训练结束后需要达到的目标为:
其中,λ为线性回归的正则化参数,||·||表示1‑范数;
令 设加密产生的损失为表示为L:
其中[[*]]表示同态加密,令
[[L]]=[[LA]]+[[LB]]+[[LAB]]令 模型1和模型2的参数的梯度分别表示为:具体加密训练过程包括:
1)数据提供方A和B分别对ΘA和ΘB初始化,第三方C生成公钥分发给数据提供方A和B;
2)数据提供方A计算[[LA]]、 发送给数据提供方B,数据提供方B计算[[di]]、[[L]],然后数据提供方B将[[di]]发送给数据提供方A,同时,数据提供方B将[[L]]发送给第三方C,之后数据提供方A计算 并发送给第三方C,数据提供方B计算发送给第三方C,第三方C对 和 进行解密,解密后得到 和 第三方C发送 给数据提供方A,并发送 给数据提供方B,在此过程中,即便是第三方C也无法得知数据提供方A和B提供的模型和相关数据,因为第三方C得到的都是掩码梯度;
3)更新ΘA和ΘB;
在上述整个加密训练过程中,数据提供方A和B都不知道对方的数据和特征,且训练结束后每一个数据提供方只得到自己的模型参数。