diff --git a/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218103419280.png b/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218103419280.png new file mode 100644 index 0000000..c758089 Binary files /dev/null and b/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218103419280.png differ diff --git a/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218104649169.png b/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218104649169.png new file mode 100644 index 0000000..3216ddd Binary files /dev/null and b/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218104649169.png differ diff --git a/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218110053462.png b/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218110053462.png new file mode 100644 index 0000000..85c0012 Binary files /dev/null and b/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218110053462.png differ diff --git a/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218110108712.png b/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218110108712.png new file mode 100644 index 0000000..9f503d3 Binary files /dev/null and b/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218110108712.png differ diff --git a/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218110254842.png b/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218110254842.png new file mode 100644 index 0000000..b4c6d3f Binary files /dev/null and b/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218110254842.png differ diff --git a/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.md b/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.md new file mode 100644 index 0000000..53f068a --- /dev/null +++ b/Docs/2024-12-20/Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.md @@ -0,0 +1,61 @@ +# 一、问题和挑战 + +- 行人重识别的目标是在不重叠的相机视图中匹配同一个人。行人重识别的训练通常需要收集大量的图片到一个云端中心服务器,这些图片中带有个人敏感信息,产生潜在的个人隐私泄露风险。随着隐私政策不断收紧,集中训练的方式将受到进一步的挑战。 +- 联邦学习是一种保护隐私的分布式训练方法,在 ACMMM 2020 提出的 FedReID 将联邦学习应用在行人重识别上,通过传递模型参数而不是原始图片数据的方式,保护训练过程中的数据隐私问题。但是,FedReID 需要在每个边缘节点上对行人重识别数据进行大量标注,不仅费时费力费资源,还不利于进行大规模的应用。 +- 此外,联邦学习方案数据通常都是在边缘设备上做训练,边缘设备从多个摄像头收集数据。因为摄像头安装在不同街区、不同角度,他们采集的数据的数据量、行人数量、光照等环境因素都不同,从而带来了多个边缘设备之间**数据异构性**的问题。 + - 数据异构性(Data Heterogeneity)是指在一个数据集合或者多个相关的数据集合中,数据在结构、语义、来源、格式等多个方面存在差异的特性。简单来说,就是数据的多样化和不一致性。 + +# 二、方法介绍 + +- 为解决上述问题,提出了**联邦无监督行人重识别训练系统 FedUReID**。FedUReID 提出了边云联合优化:边端上进行个性化聚类(personalized clustering) 和 个性化训练 (personalized epoch);云端进行个性化更新 (personalized update)。下图是 FedUReID 的整体架构和训练流程图: + - ![image-20241218103419280](Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218103419280.png) + +- 整个系统包括了三个数据流程:**1)训练流;2)控制流;3)聚类流**。 +- **训练流程**从云端模型初始化开始,之后每个回合的训练包括以下几个步骤: + 1. **本地训练:** 边端利用本地无标签数据进行无监督模型训练。 + 2. **模型上传:** 边端将训练好的模型上传到云端。 + 3. **模型融合:** 云端聚合边端上传的模型,产生新模型。 + 4. **模型更新:** 在下一回合训练开始时,云端用产生的新模型,更新边端的本地模型。 + +- **聚类流程** 解决了数据无标签的问题。FedUReID 采用了**层次聚类**方法,每一回合本地训练结束后,用训练好的模型提取图片特征,使用控制流程中产生的聚类配置进行聚类,然后用聚类的结果作为无标签数据的伪标签。 + +- **控制流程** 有两方面的作用。**第一回合**的本地训练之前,FedUReID 设计了 Profiler 来预估每个边端训练聚类的最优配置,然后将配置发送给 Controller,去控制每个边端进行个性化的聚类;在本地训练过程中,控制流程通过 Controller 去控制每个边端进行个性化训练。 + +## 1. 个性化聚类(边端) + +- 个性化聚类的核心是**每个边端通过 Profiler 得到的最优聚类配置进行自底向上的聚类,而不是使用相同的参数进行聚类**。 + +- 聚类的方法如下图所示。因为数据没有标签,每个数据都当成是一个单独的类,一共是 M 个类,每一回合训练结束后,聚合 m 个类后得到 M-m 各类,总共进行 N/m 回合的训练和聚类,每次聚合百分比为 mp = m/N。在下图的例子中,一开始有 N=8 张图片,也就是 M = 8 个类,每次聚合 m = 2 类,聚合百分比是 25%。 + - ![image-20241218104649169](Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218104649169.png) + - 因为边端的数据具有异构性(数据量和真实的类数不同),所以边端的聚合的百分比不能是一致的。当边端聚类得到类数少于真实的类数时,意味着部分类别被误判,导致性能下降;当所有边端的聚合百分比一致时,每个边端会在不同回合低于真实数据的类数,影响整体的性能。因此,设计了 Profiler 去预测真实的类数 n,并计算每个边端个性化的聚合百分比 mp=m/N + - Profiler 通过比较小的训练回合数,得到一组训练结果,然后取每个边端最优的回合对应的类数,作为预测得到的类数 n。 + +## 2. 个性化训练(边端) + +- 在联邦学习中,通常所有边端都采用固定的轮数,而 FedUReID 采用个性化训练,其核心是每个边端动态的根据训练反馈,调整本地训练的轮数。 +- 每一回合训练包含多轮,每一轮训练包含多批数据。在第一回合训练中,FedUReID 训练较多轮以更好的适应没有标注的图片。从第二回合训练开始,FedUReID根据每一批训练的结果来调整回合数:当任何一批训练的精度达到100% 或者多批训练累计达到的精度达到95%时,即停止当前回合的训练。**个性化训练让各边端能根据自身数据情况调整训练轮数效的减少训练时间和计算量**。 + +## 3. 个性化更新(云端) + +- 除了边端的个性化聚类和训练优化外,FedUReID 在云端优化了模型更新。在联邦学习中,通常的模型更新是用 云端融合后得到的新模型直接替换边端上的模型,而 FedUReID 采用了个性化更新,公式如下: + - $\theta_k^{r+1}=\mu \theta_k^r+(1-\mu)\theta^{r+1}$ + - 其中$\theta$表示云端融合后在第 $r+1$ 回合的模型, $\theta_k$ 表示边端 $k$ 的模型, $\mu$ 度量的是云端和边端模型每层参数的距离。 +- 直观的理解是:**当两个模型越相似时,云端融合的模型在更新时所占的权重越大;当两个模型越不相同时,边端模型的权重越大,更多的保留边端模型的信息,以此达到个性化的目的**。 + +# 三、实验结果 + +![image-20241218110053462](Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218110053462.png) + +![image-20241218110108712](Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218110108712.png) + +- 上面两个图定量的展示了 FedUReID 的有效性。其中,Standalone Training 是指边端只使用本地数据训练,Baseline 是没有使用边云联合优化的无监督联邦训练。使用 8 个行人重识别数据集上做训练和测试,FedUReID 的性能全面优于其他方法和 Baseline。 + +# 四、消融实验 + +![image-20241218110254842](Joint_Optimization_in_Edge-Cloud_Continuum_for_Federated.assets/image-20241218110254842.png) + +- 在上面表格中对每种优化方法都做了消融实验:PC 是个性化聚类、PE 是个性化训练、PU 是个性化更新。单独一个优化方法都能带来整体性能的提升,边云联合优化取得了整体最好的性能。 + +# 五、总结 + +- FedUReID实现了使用无标注行人重识别数据进行分布式联邦学习,同时还保护了数据隐私。不仅如此,采用**边云联合优化**的方法进一步**解决了数据异构性的问题**。该方法不仅提升了性能,和 Baseline 对比还降低了 29% 的计算量。这些设计可能还可以扩展到其他隐私要求比较高的视觉任务上,比如人脸、人群等。此外,系统异构性在这个场景中也是很重要的一个问题,可以进一步进行研究。 \ No newline at end of file diff --git a/Docs/2024-12-20/README.md b/Docs/2024-12-20/README.md new file mode 100644 index 0000000..8f9a545 --- /dev/null +++ b/Docs/2024-12-20/README.md @@ -0,0 +1,8 @@ +# 2024-12-06 组会汇报 + +## 一、科研项目 +- 学习联邦学习相关概念 +- 学习pytorch + +## 二、工程项目 +- 无新进展 \ No newline at end of file diff --git a/Docs/2024-12-20/联邦学习综述.assets/image-20241214142844733.png b/Docs/2024-12-20/联邦学习综述.assets/image-20241214142844733.png new file mode 100644 index 0000000..61fdb50 Binary files /dev/null and b/Docs/2024-12-20/联邦学习综述.assets/image-20241214142844733.png differ diff --git a/Docs/2024-12-20/联邦学习综述.md b/Docs/2024-12-20/联邦学习综述.md new file mode 100644 index 0000000..fbef2c3 --- /dev/null +++ b/Docs/2024-12-20/联邦学习综述.md @@ -0,0 +1,91 @@ +![image-20241214142844733](联邦学习综述.assets/image-20241214142844733.png) + +- 原理:federated learning是一种**训练数据去中心化**(数据不共享)的机器学习解决方案,最早于2016年由谷歌公司提出,目的在于通过**对保存在大量终端的分布式数据**开展训练**学习一个高质量中心化的机器学习模型**,**解决数据孤岛的问题**。 + - 数据孤岛是指在一个组织或多个组织内部,由于数据在不同部门、系统或业务单元之间相互隔离,无法自由流通、共享和整合而形成的一种数据分散状态。这些孤立的数据集合就像一个个被分隔开的 “岛屿”,难以与外界的数据进行有效的交互和协同 +- 工作流程 + 1. 在符合条件的用户集合中挑选出部分用户,分别从服务器端下载当前的模型; + 2. 被选择的用户用各自的数据训练模型; + 3. 各个用户将训练好的模型传输给服务器; + 4. 服务器将接收到的各个用户的模型聚合成一个最终的模型。 +- **2个参与角色:用户(client)- 服务器(server)** + - 用户的特点: + - **数据存在用户端,不同用户之间以及用户与服务器之间的数据不共享(最大的特点)** + - 数量大 + - 用户网络状态允许不稳定,可以随时被选择加入或退出训练 + - 用户数据的不平衡性,有些用户训练数据量大,有些用户训练数据少 + - 典型的用户:比如手机终端 + - 服务器的特点: + - 通过迭代方式不断聚合来自不同用户训练好的模型,训练出一个最终的模型。 +- 安全性 + - 各个用户将训练好的模型加密后传输给服务器,服务器仅仅可以将接收到的来自多个用户聚合后才能成功解密,而无法对单个模型解密。 + - 用户端的加密算法通过添加零和掩码来加扰训练好的模型结果,服务器端聚合各个模型后噪声互相抵消,从而无法反推出各个用户模型的训练数据达到安全性保护的效果。 +- 优点 + - 保护用户的隐私,服务器不获取用户的数据 + - 分布式的数据架构,减轻数据集中存储的压力 +- 缺点 + - 需要用户对齐或特征对齐才能共同训练模型 + - 模型传输(信息传递)存在一定的局限 + - 用户获取的间歇性 + - 数据获取的间歇性 + - 大规模的分布式网络结构带来压力 +- 当前开源框架 + - 谷歌的TensorFlow Federated (TFF)框架 + - 微众银行的federated learning开源框架FATE +- 分类 + 1. 横向联邦学习:适用于**不同样本具有相似特征**的情况 + - 例如,多家银行在不同地区开展业务,它们拥有的数据都是客户的基本信息以及信贷相关数据(相似特征),但是每家银行的客户群体不同(不同样本),这就构成了数据样本上的差异 + - 应用场景 + 1. 在用户输入法数据上训练的**下一词预测模型** + 2. 纵向联邦学习:适用于**同一样本具有不同特征**的情况 + - 以电商平台和银行合作为例,电商平台拥有用户的购物行为数据(如购买的商品类别、消费金额、浏览历史等),银行则拥有用户的金融信息(如存款金额、信用卡额度、还款记录等),它们针对的是同一批用户,但数据特征不同。 + - 应用场景 + 1. **客户信用评级** + 3. 联邦迁移学习:适用于**不同样本具有不同特征**的情况 + - 例如,一个医疗研究机构有大量的某种疾病患者的基因数据和临床诊断数据,另一家医疗机构有另一种相关疾病患者的数据,这两组数据不仅样本不同,特征也有差异,但两种疾病可能在病理机制等方面存在关联 + - 解决标签样本少和数据集不足的问题 + - 应用场景 + 1. **跨部门跨国的数据交流** +- 存在的威胁和挑战 + - 通信效率 + - 解决思路 + 1. 算法优化 + 2. 模型压缩 + 3. 分散训练 + + - 隐私安全:分为全局隐私和本地隐私 + - 全局隐私:假定中心服务器是安全可信任的,即每轮通信的模型更新中心服务器可见 + - 本地隐私:假定中心服务器同样可能存在恶意行为,因此本地模型更新在上传到中心服务器之前需要进行加密处理 + - 隐私保护技术 + 1. 差分隐私 + 2. 安全多方计算 + 3. 同态加密 + + - 解决思路 + 1. 应对全局隐私问题,避免恶意客户端获取服务端隐私 + 2. 应对本地隐私问题,避免恶意服务端获取客户端隐私 + 3. 模型更新异常检测 + + - 缺乏信任和激励 + - 解决思路 + 1. 结合区块链技术为联邦学习提供信任与激励机制 + +- 研究热点 + 1. 系统异构 + - 在联邦学习环境中,由于参与训练的客户端之间硬件配置、网络带宽、电池容量等不同,各终端设备的计算能力、通信速度和存储能力各不相同 + + 2. 统计异构 + - 不同的终端设备通常使用各式各样的方式生成、存储和传输数据,因此各设备之间数据的特征和体量可能有很大的不同,导致数据呈 Non-IID 分布和非平衡分布 + + 3. 无线通信 + - 由于无线信道的带宽容量有限,因此在发送信息之前,需要对模型更新进行量化压缩,在这种模式下,一个重要的考虑因素是存在量化误差时模型更新的鲁棒性。 + - 除了通信带宽外,无线通信中复杂的噪声和干扰也是加剧信道瓶颈的因素 + +- 应用前景 + 1. 边缘计算和物联网 + 2. 智慧医疗 + 3. 金融风控 + 4. 智慧城市 + 5. 涉密数据的安全共享 + +- 参考文献 + - 周传鑫,孙奕,汪德刚,等.联邦学习研究综述[J].网络与信息安全学报,2021,7(05):77-92.