注意:本篇文章由Claude总结

项目:FedDG for Robotics(ICASSP 2026 准备)
阅读策略:先啃"地基"(入门论文),再看"当前楼层"(进阶论文),最后找"裂缝"(你的 idea 空间)
更新日期:2026-03-07


📌 全局视角:三篇"地基"论文定位

论文 定位
PromptFL(2023) 方向一的起点 Baseline,“联邦 Prompt 学习的 FedAvg”
FedSR(NeurIPS 2022) 通用 FedDG Baseline,三方向都必须比较的对象
SHOT(ICML 2020) 方向三的历史根源,Source-Free DA 的奠基之作

这三篇是"祖师爷"级别——必须理解,但你的工作要站在它们肩膀上,不是复现它们。



🏛️ 方向一:CLIP / LLM + 联邦提示微调

📖 入门论文(必读,详细介绍)


入门论文 1:CoOp — Prompt Learning for Vision-Language Models

会议:IJCV 2022(原版 ICCV 2021)
关键词:Soft Prompt, CLIP, Context Optimization
为什么先读这篇:PromptFL 是"把 CoOp 塞进联邦框架",不懂 CoOp 就不懂 PromptFL。

核心问题:CLIP 用"a photo of a [CLASS]“这样的手工文本做零样本分类,但手工模板很依赖玄学——换一句话描述,准确率可能差 10%。CoOp 的解决方案是:别手写模板,让模型自己学出来

Soft Prompt 是什么?

手工 Prompt(Hard Prompt):
  输入 → "a photo of a [cat]" → CLIP 文本编码 → 分类

Soft Prompt(CoOp 的做法):
  输入 → [v1][v2][v3][v4][cat] → CLIP 文本编码 → 分类
            ↑
        这 4 个 [v] 不是文字,是可学习的浮点向量
        训练时只更新这 4 个向量,CLIP 的其余参数全部冻结

生活类比:CLIP 是一个很聪明但很挑食的翻译官,它能把任何图片"翻译"成概念。Soft Prompt 就是你找到了一套"魔法咒语开头语”,每次跟翻译官说话之前先念这串咒语,翻译官就会以最利于你任务的方式工作。你不需要懂翻译原理,只需要学会"什么开场白最有效"。

训练目标(对应 PyTorch 伪代码):

import torch
import torch.nn as nn

class CoOp(nn.Module):
    def __init__(self, clip_model, n_ctx=4, ctx_dim=512):
        super().__init__()
        # 只有这一个小矩阵是可训练的,其余全部 requires_grad=False
        self.ctx = nn.Parameter(torch.randn(n_ctx, ctx_dim))
        self.clip = clip_model
        for p in self.clip.parameters():
            p.requires_grad = False  # CLIP 冻结

    def forward(self, image, class_token):
        # class_token: [num_classes, ctx_dim](预先编码好的类别词向量)
        # 把 soft prompt 拼在类别词前面
        prompt = torch.cat([self.ctx.expand(len(class_token), -1, -1),
                            class_token.unsqueeze(1)], dim=1)
        text_features = self.clip.encode_text(prompt)
        image_features = self.clip.encode_image(image)
        # 对比学习:让图像特征和对应类别的文本特征最近
        logits = image_features @ text_features.T
        return logits

结论(带入方向一的视角):CoOp 证明了 Soft Prompt 在单机场景有效。PromptFL 的核心贡献就是"把这个 ctx 向量的训练过程改成联邦聚合"。


入门论文 2:PromptFL — Let Federated Participants Cooperatively Learn Prompts Instead of Models

期刊:IEEE Transactions on Mobile Computing, 2023
arXiv:搜 “PromptFL Guo 2023”
关键词:Federated Prompt Learning, Communication Efficiency
阅读顺序:读完 CoOp 后再读

核心问题:标准联邦学习(FedAvg)要在每轮通信中同步整个模型的梯度,对于 ViT-B/16 这种大模型(约 86M 参数),通信代价极高。PromptFL 的解法:只让客户端训练 Soft Prompt,把模型变成不动的"公共基础设施"

通信量对比

FedAvg(同步全模型):
  每轮通信 = ResNet-50 全量参数 ≈ 25M × 32bit = 800MB/客户端/轮

PromptFL(只同步 Prompt):
  每轮通信 = 16 tokens × 512 dim = 8192个浮点数 ≈ 32KB/客户端/轮
  压缩比:约 25000:1

联邦训练流程

1. 服务器广播:全局 Prompt 向量 ctx_global(极小)
2. 客户端本地:
     用 ctx_global 初始化本地 ctx
     在本地数据上训练 ctx(CLIP 全程冻结)
     上传 ctx_grad(梯度,同样极小)
3. 服务器聚合:FedAvg(ctx_grad_1, ctx_grad_2, ...) → ctx_global 更新
4. 重复

PyTorch 联邦聚合伪代码

# 服务器端
def fedavg_prompts(client_prompts, client_sizes):
    """client_prompts: list of [n_ctx, ctx_dim] tensors"""
    total = sum(client_sizes)
    global_prompt = torch.zeros_like(client_prompts[0])
    for prompt, size in zip(client_prompts, client_sizes):
        global_prompt += prompt * (size / total)
    return global_prompt

# 客户端本地训练(核心只改了一行)
optimizer = torch.optim.SGD([ctx], lr=0.002)  # 只优化 ctx
for x, y in local_dataloader:
    logits = model(x, ctx)                     # CLIP 不参与优化
    loss = F.cross_entropy(logits, y)
    loss.backward()
    optimizer.step()

PromptFL 的局限(= 你需要超越的地方)

  • 所有客户端学出来的是同一个 Global Prompt,不区分客户端的域差异
  • 没有考虑 Prompt 的跨域泛化性(在训练过的域上好,但遇到新域就不行)
  • 2023 年的工作,后续 CVPR/ICML 已经在此基础上叠了很多层

🚀 进阶阅读(精简提及)

论文 会议 一句话贡献 与你的关系
DiPrompT CVPR 2024 把 Prompt 解耦成"通用知识"和"域特有风格"两部分 直接 Baseline,你要超越它
FedPGP ICML 2024 (arXiv:2405.09771) LoRA 风格个性化 Prompt + CLIP 泛化约束 理解个性化 vs. 泛化的 trade-off
FedTPG ICLR 2024 文本驱动的 Prompt Generator,让 Prompt 能泛化到未见类别 Generator 思路可借鉴
FedDSPG arXiv 2025/09 (arXiv:2509.20807) 生成式视角:训练 Generator 为未见域动态生成 Prompt 最新 SOTA,找它的裂缝
FedMVP ICCV 2025 多模态(图像+属性)注入 Prompt,超越纯文本 Prompt 拓展视野用

阅读建议:PromptFL → DiPrompT → FedDSPG,三篇连起来看就能理解这个子方向的进化主线。



🤖 方向二:机器人 Sim-to-Real + FedDG

📖 入门论文(必读,详细介绍)


入门论文 1:FedSR — A Simple and Effective Domain Generalization Method for Federated Learning

会议:NeurIPS 2022
作者:A. Tuan Nguyen, Philip Torr, Ser-Nam Lim(牛津 + Meta AI)
代码:github.com/atuannguyen/FedSR
注意:这是通用 FedDG Baseline,不是机器人专属——但它是方向二实验对比中必须出现的对手

核心问题:大多数联邦学习方法只关心在现有客户端上表现好,完全忽视"来了一个从没见过的新客户端(新域)该怎么办"。FedSR 把 Domain Generalization 的目标正式嫁接进联邦框架。

FedSR 的核心思路:让表示"简单"

普通深度学习的特征学习:
  尽可能学到所有特征,包括域特有特征(光照、背景、噪声)
  → 在训练域上极好,在新域上灾难性失败

FedSR 的"简单表示":
  用信息瓶颈原则,只保留预测标签必要的特征,丢掉域特有噪声
  → 泛化能力更强(因为学到的是本质特征)

两个核心正则化项

def fesr_loss(z, y, z_dist, lambda_l2r=0.01, lambda_cmi=0.001):
    """
    z:      特征向量(encoder 输出)
    y:      标签
    z_dist: 特征的概率分布(变分推断)
    """
    # 主损失:标准分类
    ce_loss = F.cross_entropy(classifier(z), y)
    
    # 正则化1:L2 范数正则(让表示空间紧凑)
    l2r_loss = torch.norm(z, p=2, dim=1).mean()
    
    # 正则化2:条件互信息最小化(让特征只保留与 y 相关的信息)
    # I(X; Z | Y) → 最小化,用 ELBO 近似
    cmi_loss = -z_dist.log_prob(z).mean()  # KL 散度近似
    
    total = ce_loss + lambda_l2r * l2r_loss + lambda_cmi * cmi_loss
    return total

生活类比:FedSR 就像考前只记最核心的知识点,不背偏题。每个学生(客户端)用自己的笔记学习,但大家都遵循"只记主干,不记杂枝"的原则,最后合并的全局模型在任何新考场(新域)都有基础分保底。

为什么方向二必须用 FedSR 做 Baseline
FedSR 是学术界公认的 FedDG 通用 Baseline,你的论文如果不包含 FedSR 的比较结果,审稿人大概率会要求补充。它有官方开源代码,在 PACS/VLCS/Office-Home/DomainNet 上都有报告数字,可以直接用于对比实验。


入门论文 2:Sim-to-Real Transfer via Language(非联邦版原型)

会议:RSS 2024(Robotics: Science and Systems)
关键词:CLIP semantic anchor, Sim-to-Real, Domain-invariant representation
为什么读:这篇是方向二 Idea 的直接前身——无联邦版本的 CLIP 语义锚对齐

核心思路:仿真图和真实图长得完全不同,但它们描述的是同一个物理概念(“一个红色积木”)。CLIP 的文字端天然理解这些概念,因此可以作为"跨域语义锚点"。

不用 CLIP:
  仿真图特征 → [ResNet] → 向量 A    ← 这两个向量差异极大
  真实图特征 → [ResNet] → 向量 B    ← 无法对齐

用 CLIP 文字锚:
  仿真图特征 → [CLIP Image Enc] → 向量 A ─┐
                                            ├─→ 都靠近"a red cube" 的文本向量
  真实图特征 → [CLIP Image Enc] → 向量 B ─┘
  文字锚点   → [CLIP Text Enc]  → 向量 T("a red cube on a table")

这篇论文的"裂缝"

它完全没有考虑联邦场景。多台机器人的数据如果放到同一台机器上做这个对齐,就违反了数据隐私原则。如何在各客户端数据不能共享的情况下,用 CLIP 文字端做分布式的语义锚对齐?——这就是方向二 Idea 的切入点。


🚀 进阶阅读(精简提及)

论文 会议 一句话贡献 与你的关系
gPerXAN CVPR 2024 个性化重组 BN 层过滤域偏见,论文直接提机器人应用 方向二的专属 Baseline
FedDG(Liu et al.) CVPR 2021 FedDG 开山之作:频域风格迁移生成跨域样本 理解数据操作分支的奠基逻辑
StableFDG NeurIPS 2023 风格+注意力双路联合联邦域泛化 参考数据增强策略
FedADG arXiv 2021 对抗联邦域对齐,用参考分布做分布匹配 理解域对齐分支的基本方法
VisDA-2017 数据集论文 arXiv 2017 152K 仿真 + 55K 真实,Sim-to-Real 标准 Benchmark 方向二的首选数据集

阅读建议:FedSR → gPerXAN → Sim2Real with Language,再看 FedDG(CVPR 2021)了解数据操作分支的历史。



👴 方向三:Source-Free FedDG + 不确定性感知聚合(蔡老师主场)

📖 入门论文(必读,详细介绍)


入门论文 1:SHOT — Do We Really Need to Access the Source Data? Source Hypothesis Transfer for Unsupervised Domain Adaptation

会议:ICML 2020
作者:Liang et al.
关键词:Source-Free DA, Pseudo-label, Information Maximization
地位:Source-Free Domain Adaptation 领域的开山之作,蔡老师方向的"祖师爷"

核心问题:传统域自适应(DA)假设源域数据和目标域数据同时可访问,但现实中源域数据往往因为隐私或版权被销毁。SHOT 首次提出:只用预训练好的源域模型 + 无标注目标域数据,能否完成自适应?

SHOT 的两把刀

def shot_loss(features, pseudo_labels, predictions):
    """
    features:      目标域样本的特征向量
    pseudo_labels: 模型自己预测出来的标签(高置信度样本才用)
    predictions:   softmax 输出概率
    """
    # 刀一:信息最大化(IM Loss)
    # 让模型预测:每个样本要确定(熵最小化)
    #            同时各类别要均匀(避免模型对所有样本都预测同一类)
    
    # 熵最小化:让每个样本的预测"集中"在一个类别
    entropy_loss = -(predictions * torch.log(predictions + 1e-8)).sum(dim=1).mean()
    
    # 多样性最大化:让不同样本的预测类别尽量分散
    mean_pred = predictions.mean(dim=0)  # 批次内的平均预测分布
    diversity_loss = (mean_pred * torch.log(mean_pred + 1e-8)).sum()  # 最大化边际熵的负值
    
    im_loss = entropy_loss + diversity_loss
    
    # 刀二:自监督伪标签(只用高置信度样本)
    pseudo_loss = F.cross_entropy(predictions, pseudo_labels)
    
    return im_loss + pseudo_loss

生活类比:SHOT 就像一个"只带毕业证书(模型)、没带过去卷子(源数据)“被调往新城市的医生。他的自适应策略是:先给所有病人快速诊断(生成伪标签),然后只相信自己"最有把握"的判断(高置信度),用这些判断来调整自己的诊断风格(模型微调)。同时他会主动确保自己的诊断不要出现"所有人都是感冒"这种懈怠(多样性约束)。

SHOT 的历史地位:它是蔡老师研究链的"源头”。蔡老师后续工作(如 UCon-SFDA)是在 SHOT 基础上,用更精确的不确定性建模来改进"如何判断哪些伪标签值得信任"这个核心问题。

关键局限:SHOT 是单机版本,源数据销毁发生在单台机器上。如何把这个框架推广到多客户端的联邦设置?——这就是方向三的研究动机。


入门论文 2:FedWCA — Federated Source-Free Domain Adaptation via Weighted Cluster Aggregation

会议:WACV 2025
arXiv:arXiv:2412.13757
关键词:Source-Free, Federated, Weighted Aggregation, Pseudo-label
地位:目前最接近方向三 Idea 的前驱论文,也是最直接的超越对象

FedWCA 做了什么:把 Source-Free DA 真正搬进联邦框架,并提出了第一个有理论支撑的联邦加权聚合方法。

三阶段流程

阶段一:各客户端私有聚类
  每个客户端对本地特征做 K-means 聚类
  → 得到 K 个簇,每个簇代表一种"局部数据模式"
  → 注意:聚类结果不上传,只上传簇的统计量(保护隐私)

阶段二:加权簇聚合(WCA)
  服务器收到各客户端的簇统计量
  计算各客户端模型与全局模型的"特征对齐程度"作为权重
  对齐好(特征分布接近全局)→ 权重高
  对齐差(特征分布偏离全局)→ 权重低
  加权平均 → 全局模型更新

阶段三:Mixup 伪标签自训练
  用全局模型生成伪标签
  用 Mixup 数据增强 + 伪标签做自监督微调

PyTorch 加权聚合伪代码

def weighted_cluster_aggregation(client_models, client_features, global_model):
    """
    client_models:   各客户端上传的本地模型参数
    client_features: 各客户端的特征统计量(均值/方差,不是原始数据)
    global_model:    当前全局模型
    """
    weights = []
    for features in client_features:
        # 用特征和全局模型的对齐程度作为权重
        # 对齐程度 = 特征质心与全局分类器权重的余弦相似度
        global_weights = global_model.classifier.weight  # [num_classes, feat_dim]
        alignment = F.cosine_similarity(
            features.mean(dim=0, keepdim=True),  # [1, feat_dim]
            global_weights.mean(dim=0, keepdim=True)
        )
        weights.append(alignment.item())
    
    # 归一化权重
    weights = torch.softmax(torch.tensor(weights), dim=0)
    
    # 加权聚合
    new_state = {}
    for key in client_models[0].keys():
        new_state[key] = sum(w * m[key] for w, m in zip(weights, client_models))
    
    return new_state

FedWCA 的致命裂缝(= 你的 Idea 入口)

权重是静态的。 对齐程度一旦计算完毕,在整个聚合过程中就固定了。但真实场景中,同一个客户端的数据里同时存在"高置信度样本"(白天光线充足)和"低置信度样本"(夜间、遮挡),静态权重无法区分这两类样本。把动态不确定性估计引入聚合权重计算,就是填补 FedWCA 最大裂缝的方向。


入门论文 3:UCon-SFDA — Revisiting Source-Free Domain Adaptation: Uncertainty Control Perspective

会议:ICLR 2025
OpenReview ID:nx9Z5Kva96
关键词:DRO, Uncertainty Control, Partial Label, Source-Free
地位:蔡老师研究方向的最新代表作,你的 Idea 的技术提供方

UCon-SFDA 做了什么:用 Distributionally Robust Optimization(DRO)理论来精确建模哪些样本是"不确定的",并为不确定样本设计专门的"宽松监督"策略。

不确定性的来源(UCon-SFDA 的理论贡献)

UCon-SFDA 把不确定性分成三类:
  1. 数据固有模糊性(本来就难分的样本,如边界类别)
  2. 域偏移导致的不确定性(从源域到目标域的分布变化)
  3. 模型容量导致的不确定性(模型本身的预测置信度)

→ 对不同来源的不确定性,分别设计不同的监督信号强度

关键创新:Partial Label(偏标签)

def uncertainty_aware_loss(predictions, uncertainty_scores, threshold=0.3):
    """
    predictions:       模型 softmax 输出,shape [B, C]
    uncertainty_scores: 每个样本的不确定性分数,shape [B]
    threshold:          高/低不确定性分界线
    """
    high_conf_mask = uncertainty_scores < threshold   # 低不确定性 = 高置信度
    low_conf_mask  = uncertainty_scores >= threshold  # 高不确定性 = 低置信度
    
    # 高置信度样本:用 Hard Pseudo-label 强监督
    hard_labels = predictions[high_conf_mask].argmax(dim=1)
    hard_loss = F.cross_entropy(predictions[high_conf_mask], hard_labels)
    
    # 低置信度样本:用 Partial Label 宽松监督
    # Top-K 个最可能的类别都算对(不强迫选一个)
    topk_mask = torch.zeros_like(predictions[low_conf_mask])
    topk_idx = predictions[low_conf_mask].topk(k=3, dim=1).indices
    topk_mask.scatter_(1, topk_idx, 1.0)
    partial_loss = -(topk_mask * torch.log(predictions[low_conf_mask] + 1e-8)).sum(dim=1).mean()
    
    return hard_loss + 0.5 * partial_loss

UCon-SFDA 的裂缝(= 你的 Idea 的另一半)

这是单机版本。 UCon-SFDA 假设只有一台机器,没有联邦多客户端场景。它无法处理"如何在不共享数据的情况下,让多个客户端的不确定性信息指导服务器聚合"这个问题。


⚡ 你的核心 Idea(两篇论文的"乐高拼接")

UCon-SFDA(ICLR 2025)         FedWCA(WACV 2025)
  ↓                               ↓
  动态不确定性估计               联邦 Source-Free 加权聚合
  精确的样本级不确定性建模        但权重是静态的(致命弱点)
  单机版本(无联邦场景)          无动态不确定性感知(致命弱点)
           ↓
           你的 Idea:
    Dynamic Uncertainty-Aware
    Federated Aggregation
   (动态不确定性感知联邦聚合)

🚀 进阶阅读(精简提及)

论文 会议 一句话贡献 与你的关系
SHOT++ TPAMI 2023 SHOT 的增强版,加入目标域类别均衡约束 理解 SHOT 系列的演化
NRC NeurIPS 2021 利用近邻关系图做 Source-Free DA 理解邻域一致性思路
AaD NeurIPS 2022 对抗式 Source-Free DA,无需源域数据做域对齐 另一类 SFDA 方法视角
FedBN ICLR 2021 保留本地 BN 层不聚合,处理客户端间分布偏移 联邦个性化的经典工作
SCAFFOLD ICML 2020 用控制变量纠正 client drift,FedAvg 的重要改进 方向三实验的联邦优化 Baseline

阅读建议:SHOT → FedWCA(arXiv:2412.13757)→ UCon-SFDA(ICLR 2025)。三篇连起来就是方向三的完整故事线。



🗺️ 三方向论文全局索引

论文简称 全名关键词 会议/期刊 可查找方式 方向归属
CoOp Context Optimization for Vision-Language Models IJCV 2022 搜 “CoOp CLIP prompt learning” 方向一地基
PromptFL Let Federated Participants Learn Prompts IEEE TMC 2023 搜 “PromptFL Guo 2023” 方向一入门
DiPrompT Disentangled Prompt Tuning for FedDG CVPR 2024 搜 “DiPrompT CVPR 2024” 方向一进阶
FedPGP Federated Personalized Generalization Prompts ICML 2024 arXiv:2405.09771 方向一进阶
FedTPG Federated Text-driven Prompt Generation ICLR 2024 搜 “FedTPG Qiu 2024” 方向一进阶
FedDSPG Federated DG with Domain-Specific Soft Prompts arXiv 2025 arXiv:2509.20807 方向一前沿
FedMVP Federated Multimodal Visual Prompt Tuning ICCV 2025 搜 “FedMVP ICCV 2025” 方向一前沿
FedSR Simple Effective Domain Generalization for FL NeurIPS 2022 github: atuannguyen/FedSR 方向二/三通用 Baseline
gPerXAN Assemble Normalization for FedDG CVPR 2024 搜 “gPerXAN CVPR 2024” 方向二专属 Baseline
FedDG (Liu) Episodic Learning Continuous Frequency Space CVPR 2021 搜 “FedDG CVPR 2021 medical” 方向二历史根源
SHOT Source Hypothesis Transfer Unsupervised DA ICML 2020 搜 “SHOT ICML 2020 Liang” 方向三地基
FedWCA Federated Source-Free DA Weighted Cluster Agg WACV 2025 arXiv:2412.13757 方向三核心前驱
UCon-SFDA Uncertainty Control SFDA ICLR 2025 OpenReview: nx9Z5Kva96 方向三核心前驱

📋 阅读优先级建议

如果你选择方向三(推荐)

  1. 🔴 优先:SHOT → FedWCA → UCon-SFDA(理解你的 Idea 的来龙去脉)
  2. 🟡 之后:FedSR(实验对比 Baseline),FedBN、SCAFFOLD(联邦优化基础)
  3. 🟢 有余力:NRC、AaD(丰富 Related Work)

如果你选择方向一

  1. 🔴 优先:CoOp → PromptFL → DiPrompT → FedDSPG
  2. 🟡 之后:FedSR(对比 Baseline),FedTPG(Generator 思路参考)
  3. 🟢 有余力:FedMVP(最新 SOTA)

如果你选择方向二

  1. 🔴 优先:FedSR → gPerXAN → Sim2Real with Language
  2. 🟡 之后:FedDG(CVPR 2021)(了解数据操作分支),FedADG(域对齐分支)
  3. 🟢 有余力:VisDA-2017 数据集论文,GraspNet-1Billion

整理者:Arden 江 | NJUPT 机器人工程 2025级
AI 助手整理 | 更新于:2026-03-07