Cloud-Assisted Ciphertext Policy Attribute Based Eencryption Data Sharing Encryption Scheme Based on BlockChain
-
摘要: 针对云存储的集中化带来的数据安全和隐私保护问题,该文提出一种区块链上基于云辅助的密文策略属性基(CP-ABE)数据共享加密方案。该方案采用基于属性加密技术对加密数据文件的对称密钥进行加密,并上传到云服务器,实现了数据安全以及细粒度访问控制;采用可搜索加密技术对关键字进行加密,并将关键字密文上传到区块链(BC)中,由区块链进行关键字搜索保证了关键字密文的安全,有效地解决现有的云存储共享系统所存在的安全问题。该方案能够满足选择明文攻击下的不可区分性、陷门不可区分性和抗串联性。最后,通过性能评估,验证了该方案的有效性。Abstract: To solve the problem of data security and privacy preservation brought by the centralization of cloud storage, a cloud-assisted Ciphertext Policy Attribute Based Eencryption(CP-ABE) data sharing encryption scheme based on BlockChain(BC) is proposed. In this scheme, the symmetric key of the encrypted file is encrypted by attribute-based encryption and the encrypted file is uploaded to cloud server for realizing the data security and fine-grained access control. Searchable encryption technology is adopted to encrypt the keyword, and the keyword ciphertext is uploaded to the BlockChain. Keyword search is executed by the BlockChain to ensure the security of keyword ciphertext, which effectively solves the security problems existing in the cloud storage and sharing system. This scheme can satisfy the indiscernibility, trap indiscernibility and series resistance under the selective plaintext attack. Finally, the effectiveness of the scheme is verified by performance evaluation.
-
1. 引言
近年来,物联网技术已经广泛应用于智慧医疗、智慧交通和智慧农业等实际场景。物联网设备产生的巨大数据量使得基于数据驱动的人工智能解决方案在图像分类领域得到广泛应用[1]。由于数据驱动的传统机器学习方法往往以集中式训练模型为主,即中央服务器从不同的物联网用户终端收集分散的数据以训练机器学习模型,如卷积神经网络[2],这类集中式的机器学习方法在实际应用时往往会面临一系列挑战,如大量原始数据传输带来的高通信开销和在通信过程中产生的隐私泄露风险等。
为了解决上述问题,Google于2017年提出一种去中心化的机器学习框架称为联邦学习(Federated Learning, FL)[3]。联邦学习使得用户终端以去中心化的方式,在不交换本地数据且不需要集中存储原始训练数据的情况下共同协作训练一个全局模型。具体地,各个参与联邦学习的分布式用户终端利用本地数据训练本地模型,将梯度上传给中央服务器聚合以更新全局模型,然后中央服务器将更新后的全局模型发送给用户终端用于更新本地模型,不断迭代直至收敛。由于联邦学习能够在充分利用多个用户终端数据训练机器学习模型的同时保护用户隐私并减少通信开销,因此联邦学习已经成为机器学习领域的研究热点,并已被应用于医疗图像分类识别、目标检测等多个领域[4-6]。
由于在实际应用中,跨不同用户终端的训练数据往往是非独立同分布的,也称为数据异构[7,8]。当用户终端之间数据分布有很大不同时,若用户终端直接获取从其他用户终端中学习到的知识,则会大大降低用户终端模型的性能。因此,相关研究者提出了一系列解决方案,用于解决数据异构所带来的问题,当前的相关研究大致可分为两类:基于预处理的方法和基于聚合方式优化的方法。
(1)基于预处理的方法。针对数据异构使训练模型产生次优结果的问题,部分研究对用户终端训练数据进行预处理,以此降低数据异构带来的负面影响。例如文献[9]提出了一种差别意识联邦学习来解决跨用户终端医疗图像数据异构问题,主要利用循环生成对抗网络合成图像,合成图像在保留原始图片特征的同时与原始图片有一定区分度,最终将每个用户终端上的原始数据转换到同一图像空间上,从而可安全有效地减少来自不同客户端图像之间的差异。文献[10]提出一种基于群体的联邦学习算法,该算法将所有用户终端的训练数据分类到多个群体,再用每个数据群体训练一个模型,优化了预测死亡率和ICU住院时间的准确率。上述方法在一定程度上缓解了数据异构造成的负面影响,但是在对原始数据预处理的过程中,会对用户数据隐私造成威胁。
除了对训练数据进行预处理外,部分研究者在进行模型聚合之前对用户终端进行聚类,充分利用相似用户终端之间的数据,提升模型性能。例如,文献[11]提出聚类联邦学习算法(Clustered Federated Learning, CFL),利用联邦学习损失的几何特性判断用户终端的数据分布相似性,将用户终端聚类成多个具有联合可训练数据分布的聚类域,以充分利用相似用户终端之间的数据。实验表明,CFL可以在分类准确度方面取得比传统FL更大的改善。类似地,文献[12]在联邦学习中引入层次聚类,根据用户终端的相似性划分用户终端集群,并对共同的全局模型进行更新,该算法比FL具有更快的收敛速度和更高的准确率。
(2)基于聚合方式优化的方法。在解决由于数据异构带来的问题中,除了上述在聚合操作之前进行相应的预处理外,部分研究主要对联邦学习中的聚合方式进行优化[13-16]。例如Ek等人[13]在联邦学习聚合阶段,通过欧几里得距离计算用户终端模型中发散的神经元,这些发散的神经元被作为新的神经元添加到聚合模型中,该方法灵活地调整模型架构以适应任务,有效地改善了数据异构带来的影响。文献[14]提出了一种新的联邦学习聚合方法,该方法保持局部模型批量归一化参数不与全局模型同步,从而减轻非独立同分布数据中的特征转移,有效改善了数据异构下模型的收敛速度。
用户终端之间数据的非独立同分布,会导致一些用户终端仅根据本地数据训练的模型比采用联邦学习后的表现更好,为了解决上述问题,部分研究者提出了一些个性化的联邦学习模型,促使全局联邦模型适应于各个分布式用户终端。例如文献[17]通过一种关注消息传递的机制,在云服务器上为每个用户终端维护一个个性化的云模型,显著提高了联邦协作的有效性。类似地,文献[18]通过计算用户终端可以从另一个用户终端模型中获益的多少,为每个用户终端计算最优加权组合,从而针对用户终端定制更好的模型。上述个性化联邦学习方案主要以协作的方式先构建一个全局模型,然后利用用户终端的私有数据为每个用户终端定制个性化模型,但是在数据异构的情况下直接进行聚合会降低全局模型性能。
基于上述挑战,本文提出了一种基于谱聚类的傅里叶个性化联邦学习算法,主要贡献总结如下:
(1)构建了一个面向图像分类识别的云边端协同个性化联邦学习模型,提出了在云端协同下利用知识迁移对用户终端进行相似性判断,并通过谱聚类将用户终端划分为多个聚类域,使用户终端在数据异构的情况下可以充分利用相似用户终端学到的知识,提升模型性能。
(2)设计了边端协同的局部联邦学习方法,即在用户终端和相应的边缘节点之间进行局部的联邦学习,并在此基础上使用代理模型策略,在用户终端对个性化局部模型执行恢复与再更新的过程,恢复聚合过程中丢失的本地知识,可提高下一次迭代更新的效果。
(3)提出了云服务器与边缘节点协同训练的傅里叶个性化联邦学习方法,即云服务器通过傅里叶变换将局部模型参数转换到频域空间上,保留局部模型的高频部分,聚合低频部分,为每个边缘节点定制高质量的个性化局部模型,使全局模型更适用于各个分布式用户终端,提升模型的准确率和收敛速度。
通过大量的仿真与分析,验证了本文提出的算法能较好地解决数据异构带来的负面影响,并与其他经典的联邦学习算法对比,本文算法在准确率和收敛速度上有较大的性能优势。
2. 系统模型
本节构建了一个面向图像分类识别的云边端协同个性化联邦学习模型,如图1所示,该模型由用户层、边缘层和云层组成,图1呈现了这些层之间关系,具体每层的功能定义如下:
(1)用户层。此层由多个用户终端组成,如各医疗机构的专用计算机。每个用户终端在本地存储私有的图像数据,由于隐私保护的限制,用户终端之间无法直接进行数据交流。用户终端被聚类为若干个聚类域,每个用户终端主要有两个功能。(a)上传本地识别模型:用户终端使用本地私有的数据对本地分类识别模型进行训练,本地模型训练结束后,在同一个聚类域内的用户终端将其本地识别模型上传到同一边缘节点进行聚合。(b)下载个性化局部模型:用户终端下载边缘节点接收到的来自云层的个性化局部模型至本地,利用代理模型对本地知识进行恢复,再对本地识别模型进行更新。
(2)边缘层。此层由多个边缘节点组成,云层对用户终端划分聚类域后,为每个聚类域内分配一个边缘节点。每个边缘节点主要包含两个功能。(a)上传局部模型:边缘节点对接收到的来自其覆盖范围的用户终端发送的本地模型进行聚合,然后将边缘节点内聚合后的局部模型上传到云层进行聚合。(b)下载个性化局部模型:边缘节点下载云层定制的个性化局部模型,并将个性化局部模型发送给其覆盖范围内的用户终端进行模型更新。
(3)云层。云层由具有强大计算能力的云服务器构成,云服务器主要包括两个功能。(a)划分聚类域:云服务器对用户终端之间的相似性进行评价并将它们聚类为若干个聚类域。(b)定制个性化模型:对所有边缘节点上传的局部模型进行聚合,并为每个边缘节点定制相应的个性化局部模型,然后发送回边缘节点。
3. 个性化联邦学习
本文提出了一种基于谱聚类的傅里叶个性化联邦学习算法,即为解决用户终端之间数据非独立同分布时联邦学习产生次优结果的问题,利用知识迁移对用户终端之间数据分布的相似性进行评价,并将用户终端聚类为多个可联合训练的聚类域。同时,为了保证用户终端模型的个性化并增强模型性能,基于云边端协同考量,在云服务器中采用傅里叶聚合方式为每个边缘节点定制个性化的局部模型,并在用户终端对从边缘节点中下载的个性化局部模型进行本地知识恢复,最终使得每个用户终端都能得到一个高质量的个性化模型。
3.1 个性化联邦学习框架
假设共有N个用户终端,i表示第i个用户终端,即i∈{1,2,⋯,N}。每个用户终端i都拥有一组相同的无标签公共数据集Dp={br|1≤r≤R},其中R为公共数据集中样本的个数,以及本地私有的有标签数据集Di={xij,yij|1≤j≤Ii},其中Ii表示Di中样本的个数,xij,yij分别表示Di中第j个样本的数据与标签。本文提出的个性化联邦学习框架如图2所示。
为了解决用户终端之间数据非独立同分布时联邦学习产生次优结果的问题,在图2框架中,用户终端i首先从云服务器下载初始训练模型f到本地,然后利用本地私有数据Di对本地模型进行训练更新,训练结束后,每个用户终端对公共无标签数据集Dp中的样本进行结果预测,再将预测结果发送到云服务器进行用户终端之间相似度计算,然后将用户终端聚类为若干个可联合训练的聚类域。同一个聚类域内的用户终端将本地模型上传给同一边缘节点进行聚合。
为了保证用户终端模型的个性化并增强模型性能,边缘节点将局部模型上传到云服务器后,云服务器使用傅里叶聚合为每个边缘节点定制个性化的局部模型,边缘节点接收到个性化局部模型后发送给用户终端的代理模型进行本地知识的恢复,最后更新本地模型。详细的训练过程设计将在3.2节进行描述。
3.2 基于谱聚类的傅里叶个性化联邦学习
本节提出的个性化联邦学习算法主要包括3个部分内容:云端协同的聚类域划分、边端协同的局部联邦学习和云边协同的傅里叶个性化联邦学习。
(1)云端协同的聚类域划分。在这一阶段,用户终端i从云服务器下载训练模型f到本地,然后利用本地私有的训练数据集Di训练更新本地模型fi。
接着,本地模型fi对公共无标签数据集Dp中的样本进行结果预测,fi对Dp中每一个样本br的预测结果输出为一个E×1的向量pir,其中E为公共数据集Dp的样本类别总数,则用户终端i的本地模型fi对公共数据集Dp的输出矩阵为Pi=(pi1,pi2,⋯,piR),即本文将本地模型fi学习到的知识,迁移表现为其对公共数据集Dp的预测结果。用户终端i将矩阵Pi上传至云服务器,云服务器利用余弦相似度计算用户终端i和j(1≤i,j≤N)之间的相似度Sij,并构造对应的相似矩阵SN×N。相似度Sij的计算公式为
Sij=R∑r=1pir⋅pjr‖ (1) 可以进一步计算得到度矩阵{{\boldsymbol{Q}}_{N \times N}},其中
{Q_{ij}} = \left\{ \begin{gathered} \sum\limits_{j = 1}^N {{S_{ij}},i = j} \\ 0,i \ne j \\ \end{gathered} \right. (2) 由相似矩阵{{\boldsymbol{S}}_{N \times N}}和度矩阵{{\boldsymbol{Q}}_{N \times N}}可以进一步得到拉普拉斯矩阵{{\boldsymbol{L}}_{N \times N}}
{{\boldsymbol{L}}_{N \times N}} = {{\boldsymbol{Q}}_{N \times N}} - {{\boldsymbol{S}}_{N \times N}} (3) 再将拉普拉斯矩阵{{\boldsymbol{L}}_{N \times N}}标准化为
{\boldsymbol{L}}' = {\boldsymbol{Q}}_{N \times N}^{ - \frac{1}{2}}{{\boldsymbol{L}}_{N \times N}}{\boldsymbol{Q}}_{N \times N}^{ - \frac{1}{2}} (4) 假设聚类样本为c维,则选取矩阵{\boldsymbol{L}}'中c个最小的特征值对应的特征向量组成矩阵并按行标准化为特征矩阵{{\boldsymbol{H}}_{N \times c}}。将特征矩阵{{\boldsymbol{H}}_{N \times c}}中每一行视为一个c维的样本,则共有N个样本{a_1},{a_2}, \cdots ,{a_N},组成样本集A = \left\{ {{a_1},{a_2}, \cdots ,{a_N}} \right\}。
从样本集A中预选{k_0}个样本作为初始聚类中心Z = \{ {z_1},{z_2}, \cdots ,{z_{{k_0}}}\} ,则此时聚类域的个数K = {k_0}。计算样本集A中样本{a_i}到各个聚类中心的距离,并将{a_i}划分到距离其最小的聚类中心所对应的聚类域中,即为
{a_i} \in {\text{cluste}}{{\text{r}}_k},k = \mathop {\arg \min }\limits_{k \in \left\{ {1,2, \cdots ,{k_0}} \right\}} \left\| {{a_i} - {z_k}} \right\| (5) 其中,{\text{cluste}}{{\text{r}}_k}表示第k个聚类中心对应的聚类域。
聚类域初步划分好后,若有聚类域中元素数目小于下限{N_{\min }}则丢弃该聚类域,并将该聚类域中的样本重新分配给距离剩下聚类域中心最小的聚类域,同时K = K - 1。进一步地,对聚类结果的合理性进行判断,并迭代执行合并或分裂操作,具体步骤如下:
(a)若当前K \le {k_0}/2,则说明当前聚类域太少,执行分裂操作。计算聚类域{\text{cluste}}{{\text{r}}_k}中样本各维度方差中的最大值\delta ,若 \delta >{\delta }_{\mathrm{max}} ,其中{\delta _{\max }}为聚类域中方差的上限,且{\text{cluste}}{{\text{r}}_k}中包含的样本数量{N_k} \ge 2{N_{\min }},则将{\text{cluste}}{{\text{r}}_k}分裂为两个子聚类域,两个子聚类域的中心分别为z_k^ + 和z_k^ -
{z}_{k}^+={z}_{k}+\delta \text{;}{z}_{k}^-={z}_{k}-\delta (6) 同时聚类域个数 K = K{\text{ + }}1 ;否则不进行分裂操作。
(b)若当前K \ge 2{k_0},则说明当前聚类域太多,执行合并操作。计算当前所有聚类域中心的两两距离,用矩阵{{\boldsymbol{M}}_{K \times K}}表示。若{M_{ij}} < {M_{\min }},其中{M_{\min }}表示聚类域中心点之间距离的下限,则对这两个聚类域{\text{cluste}}{{\text{r}}_i}, {\text{cluste}}{{\text{r}}_j}进行合并操作合并为一个新的聚类域{\text{cluste}}{{\text{r}}_{{\text{new}}}},且该聚类域的中心为
{z_{{\text{new}}}} = \frac{1}{{{N_i} + {N_j}}}({N_i}{z_i} + {N_j}{z_j}) (7) 其中,{N_i},{N_j}分别表示聚类域{\text{cluste}}{{\text{r}}_i},{\text{cluste}}{{\text{r}}_j}中样本点的个数,同时聚类域个数K = K - 1;否则不进行合并操作。
根据上述流程将N个用户终端聚类成K个互不相交的聚类域
\bigcup\limits_{k = 1}^K {{\text{cluste}}{{\text{r}}_k}} = \left\{ {1,2, \cdots ,N} \right\} (8) (2)边端协同的局部联邦学习。在上述云端协同的聚类域划分的基础上,采用Fedavg算法的思想,在同一个聚类域{\text{cluste}}{{\text{r}}_k}内的用户终端i \in {\text{cluste}}{{\text{r}}_k}将本地模型参数{f_i}上传给同一边缘节点{B_k}进行平均聚合操作,边缘节点{B_k}获得局部模型{\theta _k},即
{\theta _k} = \sum\limits_{i \in {\text{cluste}}{{\text{r}}_k}} {\frac{{{I_i}}}{{\displaystyle\sum\limits_{j \in {\text{cluste}}{{\text{r}}_k}} {{I_j}} }}} {f_i},k \in \left\{ {1,2, \cdots ,K} \right\} (9) 其中,{I_i}表示第i个用户终端中数据样本的个数。
边缘节点{B_k}将{\theta _k}上传至云服务器,经过云边协同的傅里叶个性化联邦学习为每个边缘节点定制个性化局部模型{\theta _k}后,将边缘节点{B_k}上的局部模型发送到其覆盖范围内的用户终端。用户终端i接收到局部模型参数{\theta _k}后,若直接更新本地模型可能会丢失本地模型学到的知识,降低下一次迭代的优化效率。因此,本文使用代理模型,将接收到的局部模型发送给本地代理向本地模型学习,恢复聚合过程中丢失的知识,再更新本地模型。
假设用户终端i上的代理模型为{d_i},代理模型{d_i}更新为从对应边缘节点下载的局部模型{\theta _k}。代理模型{d_i}对{x_{ij}}的预测概率分布为q({x_{ij}}),本地模型{f_i}对{x_{ij}}的预测概率分布为p({x_{ij}})。将两者预测概率分布之间的KL (Kullback-Leibler)散度作为代理模型{d_i}向本地模型{f_i}学习恢复本地知识的损失函数,表示为
{L_{{\text{KL}}}} = \sum\limits_{j = 1}^{{I_i}} {p({x_{ij}})\ln \frac{{p({x_{ij}})}}{{q({x_{ij}})}}} (10) 其中,{x_{ij}}为用户终端i本地私有数据集{D_i}的第j个训练样本,{I_i}为{D_i}的样本总数。
同时,代理模型利用本地数据进行训练更新,交叉熵损失函数为
{L_{{\text{CE}}}} = - \sum\limits_{j = 1}^{{I_i}} {{y_{ij}}\ln {{\hat y}_{ij}}} (11) 其中,{y_{ij}}为用户终端i本地私有数据集{D_i}的第j个训练样本标签,{\hat y_{ij}}为预测结果。
则代理模型在训练过程中的总损失函数表示为
{L_d} = {L_{{\text{CE}}}} + {L_{{\text{KL}}}} (12) 当代理模型{d_i}与本地模型{f_i}性能相近时,即 {\phi _{{\text{val}}}}({d_i}) \ge {\lambda _1}{\phi _{{\text{val}}}}({f_i}) ,其中{\phi _{{\text{val}}}}为对本地验证集的预测准确率, {\lambda _1} 为超参数,用代理模型更新本地模型。
(3)云边协同的傅里叶个性化联邦学习。为了保证每个用户终端模型的个性化并增强模型性能,边缘节点{B_k}将局部模型参数{\theta _k}上传给云服务器后,云服务器利用快速傅里叶变换将局部模型参数转换到频域空间上。文献[19]表明,经过快速傅里叶变换后,模型参数的低频部分表示模型的基础知识,则本文对局部模型参数的低频部分进行平均聚合,以共享来自不同聚类域之间的知识,对于高频部分即包含每个局部模型特定知识的部分进行保留,从而为每个边缘节点定制一个个性化的局部模型。
将局部模型{\theta _k}的卷积层参数{{\boldsymbol{w}}_k} \in {R^{O \times C \times {s_1} \times {s_2}}}转换为2维矩阵 {{\boldsymbol{w}}'_k} \in {R^{{s_1}O \times {s_2}C}} ,O和C分别为输出通道数和输入通道数,{s_1}和{s_2}为卷积核的空间形状,对{{\boldsymbol{w}}'_k}使用快速傅里叶变换F ,由式(13)、式(14)可以得到振幅图{F^{\rm{A}}}和相位图{F^{\rm{P}}}。
\begin{split} & F(w'_k) = \sum\limits_{x = 0}^{{s_1}O - 1} {\sum\limits_{y = 0}^{{s_2}C - 1} {{{\boldsymbol{w}}'_k}(x,y){{\rm{e}}^{ - {\text{j}}2\pi (\frac{x}{{{s_1}O}}m + \frac{y}{{{s_2}C}}n)}}} } ,\\ & {j^2} = - 1 \end{split} (13) F({{\boldsymbol{w}}'_k}) = {F^{\rm{A}}}{{\rm{e}}^{{\text{j}}{F^{\rm{P}}}}} (14) 其中,m和n为给定参数。
为了提取低频分量进行聚合,本文使用一个低频掩码G,除中心区域外值为0
G = {\mathbb{Z}_{(m,n) \in [ - g{s_1}O:g{s_2}O, - g{s_2}C:g{s_2}C]}} (15) 其中,\mathbb{Z}为指示函数,g \in (0,0.5)表示低频阈值。
通过平均低频分量,保留高频分量,则第k个局部模型聚合后在频域空间上为{\hat F^{\rm{A}}}({{\boldsymbol{w}}'_k})
{\widehat{F}}^{{\rm{A}}}({{\boldsymbol{w}}}'_{k})\text{=(1} - G\text{)}\circ {F}^{{\rm{A}}}({{\boldsymbol{w}}}'_{k}) +\frac{1}{K}{\displaystyle \sum _{{k}=1}^{K}G \circ {F}^{{\rm{A}}}({{\boldsymbol{w}}}'_{k})} (16) 最后利用傅里叶逆变换 {F^{ - 1}} ,将振幅映射和相位映射转换为参数形式{\hat {\boldsymbol{w}}_k}
{\hat {\boldsymbol{w}}_k} = {F^{ - 1}}([{\hat F^{\rm{A}}}({{\boldsymbol{w}}'_k}),{F^{\rm{P}}}({{\boldsymbol{w}}'_k})]) (17) 根据上述流程云服务器为每个边缘节点定制相应的个性化局部模型{\theta _k},边缘节点再将个性化局部模型{\theta _k}发送给其覆盖范围内的用户终端,进行边端协同的局部联邦学习,最终得到个性化本地模型{f_i}(1 \le i \le N)。
为更好地理解本文提出的基于谱聚类的傅里叶个性化联邦学习,将上述过程简化凝练为算法1。
算法1 基于谱聚类的傅里叶个性化联邦学习算法 输入:{D_i}(1 \le i \le N), {D_p} , f 和通信轮数V. 输出:{f_i}(1 \le i \le N). 1. BEGIN 2. 用户终端i从云服务器下载初始训练模型f 到本地; 3. 用户终端i利用本地私有数据{D_i} 训练更新本地模型{f_i} ; 4. 用户终端i 将{D_p} 的预测结果矩阵{{\mathbf{P}}_i} = ({p_{i1}},{p_{i2}}, \cdots ,{p_{iR}}) 上传至
云服务器;5. 云服务器利用式(1)为用户终端计算相似矩阵{{\mathbf{S}}_{N \times N}} ; 6. 云服务器利用式(2)—式(8),通过谱聚类将N 个用户终端聚类
成K 个互不相交的聚类域\displaystyle\bigcup\limits_{k = 1}^K { {\text{cluste} }{ {\text{r} }_k} } = \left\{ {1,2, \cdots ,N} \right\};7. 设置迭代次数v = 1 ; 8. 本轮迭代开始: 9. 用户终端 i \in {\text{cluste}}{{\text{r}}_k} 将本地模型参数{f_i} 上传给同一边缘节点
{B_k} ,聚合为局部模型{\theta _k} ;10. 边缘节点将局部模型{\theta _k} 上传给云服务器; 11. 云服务器利用式 (13)—式(17) ,采用傅里叶聚合为每个边缘
节点{B_k} 定制相应的个性化局部模型{\theta _k} ;12. 用户终端i 下载个性化局部模型{\theta _k} 到本地代理模型{d_i} ,利用
式(10)—式(12)恢复聚合过程中丢失的知识,将聚合到的知识
传输到本地模型;13. v = v + 1 ; 14. 若v < V ,重复步骤7—步骤13,否则跳出迭代; 15. 得到个性化本地模型参数{f_i}(1 \le i \le N). 16. END 4. 仿真与性能评估
本节通过仿真实验来评估基于谱聚类的傅里叶个性化联邦学习算法的有效性,并将本文所提出的方案与其他经典基准方案进行对比,以突出本文方案的性能优势。
本仿真样本集为EMNIST中By_Class 数据集,将该数据集中训练图像随机排序并随机选取3万张图像,其中前2万张作为训练数据集,后1万张作为测试数据集。
根据分布参数为\alpha {\text{ = }}1的狄利克雷分布将训练数据集非独立同分布地分配给N个用户终端,再通过图像旋转的方式模拟K个聚类域,即对用户终端图像进行K–1次旋转处理,第r(1 \le r \le K - 1)次选取的用户终端为 \left\{ {i|\left\lfloor {N/K} \right\rfloor \times(r - 1) + 1 \le } \right. \left. \left\lfloor {N/K} \right\rfloor \times r, i \in {\mathbb{N}^ + } \right\},旋转的度数为(360^\circ /K)\times r。例如当N=10,K=2时,将训练数据集分配给10个用户终端后,对前5个用户终端上的图像旋转180°,则N个用户终端聚类为两个聚类域分别为{\text{cluste}}{{\text{r}}_1} = \{ i|1 \le i \le 5, i \in {{\mathbb{N}}^ + }\}和{\text{cluste}}{{\text{r}}_2} = \{ i|6 \le i \le 10,i \in {\mathbb{N}^ + }\} 。
用户终端利用本地图像使用上文提出的基于谱聚类的傅里叶个性化联邦学习算法联合训练各自的5层卷积神经网络,包括两层卷积层、两层池化层和1层线性层。为了进一步地评判上述算法,本文采用准确率(Accuracy, Ac)和平均更新范数(Average Update Norm, AUN)作为评判算法有效性的标准。设Ti为用户终端i正确预测的样本个数,Pi为用户终端i的测试样本总数,准确率的计算为式(18)。设{\boldsymbol{d}}{{\boldsymbol{W}}_i}为用户终端i在一轮通信中的参数更新向量,平均更新范数的计算为式(19)
{\text{Ac}} = \frac{1}{N}\sum\limits_{i = 1}^N {\frac{{{T_i}}}{{{P_i}}}}\qquad\quad (18) {\text{AUN}} = {\left\| {\frac{1}{N}\sum\limits_{i = 1}^N {{\boldsymbol{d}}{{\boldsymbol{W}}_i}} } \right\|_2} (19) 图3(a)为N=10个用户终端在聚类域个数K=2的设置下,基于谱聚类的傅里叶个性化联邦学习算法训练样本在不同学习率(Learning Rate, LR)下Ac随着通信轮数(Rounds, Ro)的变化曲线。从该图可以看出,在不同LR的设置下,随着Ro的增加,Ac不断增加并在100通信轮次内开始收敛趋向于同一值,表明本文训练模型设计的有效性。同时可以发现,Ro<20阶段LR越大曲线上升得越快,但最终LR=0.05却比LR=0.1收敛得更快,这是由于LR会影响聚类发生所在的通信轮次,当LR=0.05时,在Ro =20附近发生聚类,因此可以更有效地利用同一聚类域内不同用户终端的局部信息,从而使模型准确性迅速增长并更快地收敛,同样地LR=0.03时,Ro =25附近发生聚类,LR=0.1时, Ro =60附近发生聚类。
图3(b)为N=10个用户终端在聚类域个数K=2的设置下,基于谱聚类的傅里叶个性化联邦学习算法训练样本在不同LR下的平均损失(Loss)随着通信轮数的变化曲线。由该图可以看出在不同LR的设置下,曲线均在Ro<100内开始收敛并趋向0,表明本文的训练模型设计的有效性,且在趋向收敛前阶段斜率迅速变大,这是由于聚类的发生,使同一聚类域内用户终端学到的知识得到交互,模型因此降低损失更快地趋向收敛。
本文模型与现有的3种联邦学习模型:聚类联邦学习 (Clustered Federated Learning, CFL)[11],PRR-FL (Personalized Retrogress Resilient-Federated Learning)[19],联邦平均(Federated averaging, Fedavg)[3]进行对比。
图4绘制了当N=10时,Ac与聚类域个数K之间的关系。当K=1时所有用户终端视为一个聚类域,此时只进行局部联邦平均,并没有进行傅里叶个性化联邦学习,因此在该情况下本文算法与Fedavg和CFL的准确率相同。从整体来看,在聚类域个数K>1的情况下,本文提出算法的准确性比其他3种更高,凸显了本文算法的优越性。本文算法与CFL在K>1的情况下,准确性均优于其他两种方案,且随着K值的增大,用户终端数据之间异构性变大,对准确性的影响反而相对较小,其优势主要在于将用户终端根据相似度划分为多个聚类域,因此可以更有效地利用用户终端的局部信息。此外,本文算法融入傅里叶个性化模型定制模块以及本地代理恢复模型,使用户终端学习到其他用户终端知识的同时不丢失本地学到的知识,因此本文算法的准确性比CFL更高。
图5描绘了当K=2时,Ac与用户终端个数N之间的关系。从图中可以看出,本文提出算法的准确性比其他3种更高,进一步地体现了本文算法的优势。当聚类域个数K一定时,随着用户终端的个数N增加需要旋转的图像增多,则用户终端之间的异构性增加,从该图中可以发现,当异构性增加时单独使用聚类算法的CFL与单独使用傅里叶个性化聚合算法的PRR-FL在准确率上的表现波动较大,而本文提出的将聚类与傅里叶个性化聚合相结合的基于谱聚类的傅里叶个性化联邦学习算法与经典算法Fedavg在面对用户终端数量增加时的稳定性更好,但总体准确率本文算法比Fedavg更高。
图6(a)、图6(b)分别描绘了聚类域个数为K=2和K=4时,AUN随着Ro的变化曲线。可以看出在Ro<20阶段,4种模型的AUN变化相似,但是当Ro=25, Ro=30时本文AUN突然增加,随后本文模型的AUN比其他对比模型更快收敛趋向于0,这是由于激增的点对应了发生聚类的通信轮次,聚类后使得用户终端更高效地利用同一聚类域内的局部信息。虽然CFL也有上述的聚类后的变化,但是显然本文模型比CFL收敛得更快,主要原因是本文加入傅里叶个性化模型的定制以及本地更新时使用代理模型对知识的恢复,使得各个用户终端上的模型快速训练至收敛。
5. 结束语
为了降低数据异构对联邦学习的负面影响,本文提出了一种基于谱聚类的个性化联邦学习算法。具体地,构建了一个面向图像分类识别的云边端协同个性化联邦学习模型,提出了将用户终端划分为多个聚类域,使相似用户终端之间充分交互从而提升模型性能。进一步地,设计了边端协同的局部联邦学习方法,以提高迭代更新的效果,减少通信开销。此外,设计了云边协同的傅里叶个性化联邦学习方法,为每个边缘节点定制高质量的个性化局部模型。最后,与现有算法的对比结果表明,本文算法可以显著提高图像分类识别的准确性,且收敛速度更快。
-
表 1 区块数据结构
Block Head Payload Block ID Block size Pre-block hash Timestamp Block producer ID Block producer signature Transaction ID size hash t Data Owner \delta TX 表 2 效率分析
文献[15]方案 文献[16]方案 本文方案 Setup {T_{\rm{P}}} + 3{T_{\rm{E}}} {T_{\rm{P}}} + 4{T_{\rm{E}}} + {T_{\rm{M}}} {T_{\rm{P}}} + 3{T_{\rm{E}}} KeyGen 4{T_{\rm{E}}} + 3{T_{\rm{M}}} (2 + {n_{\rm{S}}}){T_{\rm{E}}} + (2 + {n_{\rm{S}}}){T_{\rm{M}}} 3{T_{\rm{E}}} + 2{T_{\rm{M}}} Encryption \begin{aligned} & 2{T_{\rm{P} } } + (3{n_{\rm{U} } } + 5){T_{\rm{E} } } + (2{n_{\rm{U} } } + 2){T_{\rm{M} } }\\& {\rm{ + } }(2 + {n_{\rm{U} } }){T_{\rm{H} } }\end{aligned} {T_{\rm{P}}} + (4{n_{\rm{U}}} + 6){T_{\rm{E}}} + (4{n_{\rm{U}}} + 8){T_{\rm{M}}}{\rm{ + }}{T_{\rm{H}}} \begin{aligned} & 2{T_{\rm{P} } } + (2{n_{\rm{U} } } + 3){T_{\rm{E} } } + ({n_{\rm{U} } } + 3){T_{\rm{M} } }\\& {\rm{ + } }(1 + {n_{\rm{U} } }){T_{\rm{H} } }\end{aligned} Trapdoor {T_{\rm{E}}} + {T_{\rm{H}}} ({n_{\rm{S}}} + 5){T_{\rm{E}}} + 3{T_{\rm{M}}} + {T_{\rm{H}}} (2{n_{\rm{S}}} + 1){T_{\rm{E}}} + {n_{\rm{S}}}{T_{\rm{M}}} + (1 + {n_{\rm{S}}}){T_{\rm{H}}} Test {T_{\rm{P}}} + {T_{\rm{E}}} + {T_{\rm{H}}} (2{n_{\rm{S}}} + 3){T_{\rm{P}}} + {n_{\rm{S}}}{T_{\rm{E}}} + (2{n_{\rm{S}}} + 1){T_{\rm{M}}} 2{n_{\rm{S}}}{T_{\rm{P}}} + (2{n_{\rm{S}}} - 2){T_{\rm{E}}} + (2{n_{\rm{S}}} - 1){T_{\rm{M}}} Decryption (2 + 2{n_{\rm{S}}}){T_{\rm{P}}} + 2{n_{\rm{S}}}{T_{\rm{E}}} + (2{n_{\rm{S}}} + 3){T_{\rm{M}}} (2{n_{\rm{S}}} + 1){T_{\rm{P}}} + {n_{\rm{S}}}{T_{\rm{E}}} + (2{n_{\rm{S}}} + 1){T_{\rm{M}}} 3{T_{\rm{P}}} + 2{T_{\rm{E}}} + 4{T_{\rm{M}}} -
[1] 牛淑芬, 王金风, 王伯彬, 等. 区块链上基于B+树索引结构的密文排序搜索方案[J]. 电子与信息学报, 2019, 41(10): 2409–2415. doi: 10.11999/JEIT190038NIU Shufen, WANG Jinfeng, WANG Bobin, et al. Ciphertext sorting search scheme based on B+ tree index structure on blockchain[J]. Journal of Electronics &Information Technology, 2019, 41(10): 2409–2415. doi: 10.11999/JEIT190038 [2] 黄穗, 陈丽炜, 范冰冰. 基于CP-ABE和区块链的数据安全共享方法[J]. 计算机系统应用, 2019, 28(11): 79–86. doi: 10.15888/j.cnki.csa.007144HUANG Sui, CHEN Liwei, and FAN Bingbing. Data security sharing method based on CP-ABE and blockchain[J]. Computer Systems and Applications, 2019, 28(11): 79–86. doi: 10.15888/j.cnki.csa.007144 [3] 牛淑芬, 谢亚亚, 杨平平, 等. 加密邮件系统中基于身份的可搜索加密方案[J]. 电子与信息学报, 2020, 42(7): 1803–1810. doi: 10.11999/JEIT190578NIU Shufen, XIE Yaya, YANG Pingping, et al. Identity-based searchable encryption scheme for encrypted email system[J]. Journal of Electronics &Information Technology, 2020, 42(7): 1803–1810. doi: 10.11999/JEIT190578 [4] SAHAI A and WATERS B. Fuzzy identity-based encryption[C]. The 24th annual international conference on Theory and Applications of Cryptographic Techniques, Berlin Germany, 2005. doi: 10.1007/11426639_27. [5] 张玉磊, 文龙, 王浩浩, 等. 多用户环境下无证书认证可搜索加密方案[J]. 电子与信息学报, 2020, 42(5): 1094–1101. doi: 10.11999/JEIT190437ZHANG Yulei, WEN Long, WANG Haohao, et al. Certificateless authentication searchable encryption scheme for multi-user[J]. Journal of Electronics &Information Technology, 2020, 42(5): 1094–1101. doi: 10.11999/JEIT190437 [6] SONG D X, WAGNER D, and PERRIG A. Practical techniques for searches on encrypted data[C]. 2020 IEEE Symposium on Security and Privacy. S&P 2000, Berkeley, USA, 2000. doi: 10.1109/SECPRI.2000.848445. [7] BONEH D, CRESCENZO G D, OSTROVSKY R, et al. Public key encryption with keyword search[C]. International Conference on the Theory and Applications of Cryptographic Techniques, Interlaken, Switzerland, 2004: 506–522. doi: 10.1007/978-3-540-24676-3_30. [8] WANG Yong, ZHANG Aiqing, ZHANG Peiyun, et al. Cloud-assisted EHR sharing with security and privacy preservation via consortium Blockchain[J]. IEEE Access, 2019, 7: 136704–136719. doi: 10.1109/ACCESS.2019.2943153 [9] NAKAMOTO S. Bitcoin: A peer-to-peer electronic cash system[EB/OL]. https://bitcoin.org/en/bitcoin-paper, 2016. [10] ZHENG Zibin, XIE Shaoan, DAI Hongning, et al. An overview of Blockchain technology: Architecture, consensus, and future trends[C]. 2017 IEEE International Congress on Big Data, Honolulu, USA, 2017. doi: 10.1109/BigDataCongress.2017.85. [11] ZHENG Dong, WU Axin, and ZHANG Yinghui. Efficient and privacy-preserving medical data sharing in internet of things with limited computing power[J]. IEEE Access, 2018, 6: 28019–28027. doi: 10.1109/ACCESS.2018.2840504 [12] 张良嵩. 基于拜占庭容错的区块链共识算法研究[D]. [硕士论文], 电子科技大学, 2020.ZHANG Liangsong. Research of blockchain consensus algorithm based on byzantine fault tolerance[D]. [Master dissertation], University of Electronic Science and Technology of China, 2020. [13] 刘格昌, 李强. 基于可搜索加密的区块链数据隐私保护机制[J]. 计算机应用, 2019, 39(S2): 140–146.LIU Gechang and LI Qiang. BlockChain data privacy protection mechanism based on searchable encryption[J]. Journal of Computer Applications, 2019, 39(S2): 140–146. [14] 齐芳, 李艳梅, 汤哲. 可撤销和可追踪的密钥策略属性基加密方案[J]. 通信学报, 2018, 39(11): 63–69. doi: 10.11959/j.issn.1000-436x.2018231QI Fang, LI Yanmei, and TANG Zhe. Revocable and traceable key-policy attribute-based encryption scheme[J]. Journal on Communications, 2018, 39(11): 63–69. doi: 10.11959/j.issn.1000-436x.2018231 [15] WANG Shangping, ZHANG Duo, ZHANG Yaling, et al. Efficiently revocable and searchable attribute-based encryption scheme for mobile cloud storage[J]. IEEE Access, 2018, 6: 30444–30457. doi: 10.1109/ACCESS.2018.2846037 [16] 胡媛媛, 陈燕俐, 朱敏惠. 可实现隐私保护的基于属性密文可搜索方案[J]. 计算机应用研究, 2019, 36(4): 1158–1164. doi: 10.19734/j.issn.1001-3695.2017.12.0760HU Yuanyuan, CHEN Yanli, and ZHU Minhui. Privacy protection attribute-based ciphertext search scheme[J]. Application Research of Computers, 2019, 36(4): 1158–1164. doi: 10.19734/j.issn.1001-3695.2017.12.0760 [17] The pairing-based cryptography library[EB/OL]. http://crypto.stanford.edu/pbc/, 2015. 期刊类型引用(7)
1. 赵书红,董绍武,白杉杉,高喆. 一种优化的频率驾驭算法研究. 电子与信息学报. 2021(05): 1457-1464 . 本站查看
2. 陶贵丽,刘文强,张兴华,牛晓霞. 带丢包不确定广义系统鲁棒Kalman预报器. 系统科学与数学. 2021(05): 1215-1232 . 百度学术
3. 谢卫,王前东. 一种基于自适应网格剖分的协方差交集融合新算法. 电讯技术. 2019(09): 1067-1074 . 百度学术
4. 刘振亚,高敏,程呈. 基于理想弹道鲁棒容积卡尔曼滤波视线角估计. 系统工程与电子技术. 2018(02): 409-416 . 百度学术
5. 秦文利,胡捍英,陈松. 基于带势概率假设密度粒子滤波的MIMO雷达检测前跟踪算法. 信息工程大学学报. 2018(02): 140-145 . 百度学术
6. 王雪梅,刘文强,邓自立. 带丢失观测和不确定噪声方差系统改进的鲁棒协方差交叉融合稳态Kalman滤波器. 控制理论与应用. 2016(07): 973-979 . 百度学术
7. 王雪梅,刘文强,邓自立. 带不确定协方差线性相关白噪声系统改进的鲁棒协方差交叉融合稳态Kalman估值器. 控制与决策. 2016(10): 1749-1756 . 百度学术
其他类型引用(5)
-