稳健联邦学习:防御恶意客户端与投毒攻击

FreeGuideOnline 最新 2026-06-28

python def robust_aggregation(client_updates, method='rfa'): if method == 'median': stacked = torch.stack(client_updates) return torch.median(stacked, dim=0).values elif method == 'trimmed_mean': stacked = torch.stack(client_updates) sorted_vals, _ = torch.sort(stacked, dim=0) trim = int(len(client_updates) * 0.1) # 修剪10% trimmed = sorted_vals[trim:-trim] return torch.mean(trimmed, dim=0) elif method == 'rfa': return geometric_median(client_updates)