9.1汇报

发布时间:2026/8/31 23:22:00
9.1汇报 目录一、背景从 FWI 到 DL-FWI二、问题一数据孤岛 → 为什么需要联邦学习三、问题二架构设计 → 为什么需要 NAS并进一步需要联邦 NAS四、本工作的方法两个算法算法 1联邦 NASFederated NAS起点核心机制α和θ的双层优化单个客户端怎么search服务器怎么聚合收尾离散化算法 2公平性调整训练Fairness Adjustment五、不足与优化方向工作对比定位差距从对方工作得到的启发与下一步工作1.公平性调整2.损失自动设定3.学习率自动设计4.联邦学习不足A.差分隐私DPB.梯度泄露攻击防御一、背景从 FWI 到 DL-FWI全波形反演Full-Waveform Inversion, FWI 是地震勘探中重建地下速度模型的核心技术。它的本质是一个反问题给定地表观测到的地震记录通过最小化「正演合成数据」与「实测数据」之间的误差迭代反推出地下的速度结构。传统 FWI 有三个痛处1. 计算代价极高——每次迭代都要用波动方程做正演模拟一个工区要反复求解2. 病态、多极值——误差函数有大量局部极小容易「周期跳跃」cycle-skipping严重依赖初始模型质量3. 结果不稳定——对噪声、初始速度模型敏感。深度学习 FWIDL-FWI的思路是「以数据换算力」不再在线迭代反演而是训练一个神经网络让它直接从地震数据或一个粗糙的初始速度模型映射到真实速度模型。训练好之后推理只需一次前向传播速度快几个数量级而且网络能从海量训练数据中学习到速度模型的结构先验对噪声更鲁棒。本工作的具体任务设定是给定一个被高斯模糊的初始速度模型模拟 FWI的粗反演结果用残差学习预测出真实速度模型——即 输出输入残差。二、问题一数据孤岛 → 为什么需要联邦学习DL-FWI 是「数据驱动」的性能严重依赖大量、高质量、带标签的训练数据。但在真实的地震勘探场景里这些速度模型数据存在一个根本障碍- 数据分散且敏感不同石油公司、地质调查机构、研究单位各自拥有自己的工区数据这些数据是商业机密 /战略资源不能也不愿上传到中心服务器做集中式训练。- 地质结构高度非独立同分布non-IID不同工区的地质结构差异巨大平坦层状、弯曲层、断层、盐丘……各机构的数据分布天然不一致直接把数据拼在一起会引入严重的分布偏移。这就自然引出联邦学习Federated Learning,FL各个客户端机构在本地用自己的数据训练只上传模型参数/梯度服务器聚合出一个全局模型。这样既能保护数据隐私、不共享原始数据又能联合利用分散在各地的数据让全局模型学到更丰富的结构先验。三、问题二架构设计 → 为什么需要 NAS并进一步需要联邦 NAS即使数据问题用联邦学习解决了还有两个技术难点1. 网络结构需要手工设计DL-FWI网络编码器-解码器、卷积层数、感受野大小等的设计高度依赖专家经验费时费力且很难保证最优。2. 单一固定结构难以适配多样地质平坦层、断层、盐丘等不同地质结构对特征提取的需求不同例如盐丘需要更大的感受野断层需要捕捉尖锐不连续面。一个手工设计的固定架构很难对所有这些结构都最优而这恰恰是「跨客户端泛化」的关键。因此要用神经架构搜索NAS自动搜索最优的 cell 结构。但传统的 NAS是集中式的——它假设所有数据都在一个地方。这与联邦学习的前提矛盾。所以需要把 NAS也「联邦化」在保护隐私的前提下让各客户端协作搜索架构即联邦 NASFederated NAS。至此两个核心问题都浮现出来了- 怎么在联邦场景下搜索架构→ 算法 1- 搜索到架构后怎么训练才能让全局模型对各个非 IID 客户端都公平、泛化好→ 算法 2四、本工作的方法两个算法算法 1联邦 NASFederated NAS整体架构整个网络由左侧宏观架构以及右侧每个Cell内部的微观结构组成。输入首先经过Stem模块把输入映射为32通道 依次经过5个由NAS搜索得到的Cell进行特征提取最后通过Head模块恢复到输出结果。那么整个search流程是如何的呢起点搜索一开始我们不预设cell中任何一条边该用什么卷积而是- 每个 cell 里14 条边全都存在- 每条边上搜索空间中的八种卷积操作都存在比例由 α 决定softmax 权重- α 初始是随机的等于每个位置瞎猜一个配比。前向传播时一条边的输出 8 种卷积操作的加权平均weights F.softmax(self.alphas[key], dim0) # α归一化为8个权重 mixed sum(weights[o] * op_cache[i][o] for o in range(NUM_OPS)) # 8种卷积输出加权平均这就是 DARTS 的核心把选哪种卷积这个离散的、不可微的选择松弛成按比例混合这个连续可微的操作于是能用梯度下降来搜。核心机制α和θ的双层优化为什么要把参数分成 α 和 θ 两堆、各用各的优化器因为它们的评判标准不同- θ卷积核目标是拟合训练数据 → 用训练集损失来更新。- α架构选择目标是让选出的结构泛化好 → 用验证集损失来更新。代码里searcher.py:40-43是两个独立的 Adamarch_optimizer torch.optim.Adam(arch_params, lreta_alpha,weight_decay1e-3)#只更新α model_optimizer torch.optim.Adam(model_params, lreta_theta)#只更新θ具体更新规则α ← α − η_α · ∇_α( L_train λ·L_val )θ ← θ − η_θ · ∇_θ( L_train )α 用的是训练损失 λ×验证损失的混合λ0.1θ 只用训练损失。单个客户端怎么search客户端收到服务器下发的全局 α、θ 后先加载到本地模型然后做local_epochs步本地更新每步处理一个 batch。每步两个动作动作 A更新 α1. 取一个训练 batch前向算 loss_train2. 取一个验证 batch前向算 loss_val3. total loss_train λ·loss_val4. total.backward(retain_graphTrue)更新 α。动作 B更新 θ1. 再对训练 batch 前向算 loss_theta2. loss_theta.backward()更新 θ。做完后客户端把更新后的 α、θ 以「参数名 →张量」的形式返回_get_alpha_state/_get_theta_state只回传参数值不回传数据——这是联邦学习隐私保护的关键。服务器怎么聚合简单的FedAvg收尾离散化搜索结束后α 已收敛但每条边仍是「8 种卷积的混合」。要得到真正可用的离散网络做离散化cell.py:133-1501. 对每个中间节点看它所有入边的 α2. 每条边取 max(α) 作为得分排序后只保留 top-2 条边3. 每条保留的边取 argmax(α) 作为选中的那一种卷积。结果14 条边 → 8 条边4 节点 × 2每条边从「8 选 1」变成确定的卷积。这个离散架构存进searched_architecture.pth交给训练阶段用 SearchedCell。算法 2公平性调整训练Fairness Adjustment搜索出架构后如果沿用标准 FedAvg按数据量等权聚合会有个隐患数据量大或「容易」的客户端会主导全局模型而「困难」的地质结构客户端被边缘化导致最坏情形泛化差。全局模型比本地模型差多少客户端训练完成之后会将全局模型与局部模型loss的差值与模型参数θ发送给服务器 。服务器在接收之后会通过公平性调整方法更新每个客户端的聚合权重其公式为标题这个公式的含义是当本地训练并未让全局模型变好时也就是gap≤0时说明全局模型足够好不需要再改变了。当gap0时说明本地模型有提升进行优化。五、不足与优化方向随着假期对孟德宇教授Simulating learning methodology (SLeM): an approach to machinelearning automation的阅读我发现我的工作存在巨大不足工作对比定位差距定位目前的 NAS 是对方框架的一个下游子集- SLeM是机器学习全流程自动化AutoML的统一框架把学习方法定义为 (数据 D, 模型 F, 损失 L, 算法 A)四元组学习任务 → 超参配置的映射 h: T→Λ覆盖数据、样本、模型、算法、损失、任务环境多个层面。- 我的工作自动化的对象是模型架构这一个字母F。对方是上位统一框架我是框架中 F 这一个分量的下游领域应用不在一个层级。从对方工作得到的启发与下一步工作1.公平性调整我的公平性调整是人工设定的公式并手动设置了超参。SLeM 的哲学是这种超参赋值规则本身应该被学出来对应他们的 HWnet学损失权重。下一步用一个小超网络类似HWnet输入各客户端特征GD_c、数据量、地质类型元学习出聚合权重函数替代手写update_weights。2.损失自动设定目前loss是写死的nn.L1Loss()算法 1 的λ0.1也是写死的。下一步学一个鲁棒/自适应损失FWI 数据含噪声鲁棒损失有明确动机或让 λ 随任务自适应。3.学习率自动设计学习率η_α1e-4、η_θ1e-3 固定。下一步学一个学习率调度网络缓解可微 NAS 搜索不稳定、易早熟的问题。4.联邦学习不足目前看来本工作中联邦学习方面仍然仅为一个套壳为了联邦而联邦重点仍为NAS与公平性调整。在未来加上SLeM中学到的东西之后联邦的内容仍然较少。下一步A.差分隐私DP让算法的输出几乎不因为某一条数据的存在与否而改变这样攻击者就无法从输出判断这条数据在不在里面也就无法反推它。形式化定义(ε, δ)-DP对任意两个只差一条数据的相邻数据集 D, D任意输出SPr[M(D) ∈ S] ≤ e^ε · Pr[M(D) ∈ S] δ- ε隐私预算越小隐私越强ε0 表示输出完全不依赖数据。- δ允许的失败概率很小如 1e-5。具体方法DP-SGD1. 逐样本梯度裁剪clippingg_i ← g_i / max(1, ‖g_i‖₂ / C) # 把每个样本的梯度范数限制在 C 内2. 加高斯噪声noiseg ← ( Σ_i g_i N(0, σ²C²I) ) / batch # 噪声标准差 σ·C3. 用带噪梯度更新θ ← θ − η·gB.梯度泄露攻击防御与罗添翼师兄讨论