Skip to content

About

在混合攻击环境下,针对异构多域多智能体系统的分布式优化算法的研究

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

HART-DGD: Hybrid Adaptive Robust Trust-based Distributed Gradient Descent

Python Status

在混合攻击环境下,针对异构多域多智能体系统的分布式优化算法的研究

简体中文


📖 项目简介

HART-DGD 是一个创新的分布式梯度下降算法,专门设计用于在异构多域多智能体网络中实现鲁棒的分布式优化,即使面对复杂的复合攻击场景(拜占庭攻击、漂移攻击、伪装攻击)也能保持稳定收敛。

🎯 核心问题

传统分布式梯度下降(DGD)算法在面对恶意攻击时存在严重缺陷:

  • ❌ 盲目信任所有邻居节点,无法识别攻击者
  • ❌ 固定策略,无法适应动态变化的攻击模式
  • ❌ 同质假设,无法处理异构网络的特殊性
  • ❌ 防御过度,正常情况下也付出高昂计算代价

✨ 我们的解决方案

HART-DGD 融合四大创新机制,实现智能防御与高效收敛的完美平衡:

  1. 🎯 事件触发检测(Event-Triggered Detection)

    • 实时识别攻击,按需启动防御
    • 正常情况下保持快速收敛
  2. 🏗️ 双层共识架构(Dual-Layer Consensus)

    • 域内快速共识 + 跨域保守融合
    • 防止恶意信息在域间传播
  3. ⚖️ 自适应置信度权重(Adaptive Trust Weighting)

    • 动态学习节点可靠性
    • 双向更新机制(奖励+惩罚)
  4. 🧠 元学习学习率(Meta-Learning Learning Rate)

    • 根据梯度震荡自适应调整
    • 加速收敛并提高稳定性

🚀 快速开始

环境要求

Python >= 3.8
networkx >= 2.8
matplotlib >= 3.5
numpy >= 1.21
scipy >= 1.7

运行基础实验

# 运行完整实验(对比HART-DGD vs 传统DGD)
python main.py

# 运行快速验证实验
python basic_experiment.py

📊 实验结果

真实运行数据

在20节点网络、20%节点遭受复合攻击的场景下:

网络配置:

  • 总节点数:20
  • 总边数:66
  • 攻击节点:4个(2个拜占庭 + 1个漂移 + 1个伪装)
  • 攻击比例:20%

性能对比:

算法 平均误差 最大误差 收敛率 性能提升
传统DGD ~3.0×10³⁰ ~3.0×10³² 0% -
HART-DGD 0.71 0.95 100% ~10²⁹倍↑

核心优势

✅ 算法稳定性 - HART-DGD完全收敛,传统DGD灾难性发散 ✅ 误差控制 - 最终误差仅0.71,传统DGD数值爆炸至10³⁰量级 ✅ 收敛保证 - 所有正常节点100%收敛,传统DGD完全失效 ✅ 抗攻击能力 - 在20%节点攻击下仍能稳定运行

关键发现:传统DGD在伪装攻击激活后(第30轮)立即发散,而HART-DGD始终保持稳定!

可视化结果

图1:收敛性对比 - 稳定 vs 灾难性发散

收敛对比

关键观察:

  • 左图(HART-DGD):参数在合理范围(0-5)内稳定收敛
  • 右图(传统DGD):第30轮伪装攻击激活后数值爆炸,对数坐标下参数值达到10³²量级

图2:误差演化与最终性能

误差分析

关键观察:

  • 左图:HART-DGD误差快速下降至<1,传统DGD在第30轮后误差爆炸
  • 右图:最终误差对比显示HART-DGD改进幅度达到**~10²⁹倍**(对数坐标)

图3:攻击场景与性能指标

场景指标

关键观察:

  • 左图:网络中80%节点正常,20%节点受攻击(2拜占庭+1漂移+1伪装)
  • 右图:在平均误差、最大误差和收敛率三个维度,HART-DGD全面优于传统DGD

🔬 为什么传统DGD会发散?

根本原因分析

  1. 伪装攻击的隐蔽性

    • 前30轮:攻击节点行为正常,积累信任
    • 第30轮后:突然发送恶意梯度(幅度×8)
  2. 传统DGD的盲点

    # 传统DGD的更新规则
    consensus = mean([x_self] + [x_neighbor for all neighbors])
    x_new = consensus - lr × gradient
    • 无法识别伪装节点
    • 恶意梯度被平等对待
    • 误差快速传播并放大
  3. 数值爆炸机制

    第30轮:正常收敛(误差~0.5)
    第31轮:伪装激活,恶意梯度注入
    第32轮:误差×10
    第50轮:误差×10⁵
    第100轮:误差×10²⁰
    第150轮:误差×10³⁰(数值溢出边缘)
    

HART-DGD如何防御?

  1. 事件触发检测(第30轮立即发现异常)

    deviation = |x_node - median(neighbors)|
    if deviation > 2.5 × MAD:  # 触发防御!
        enable_robust_consensus()
  2. 双层共识隔离

    • 域内:使用鲁棒平均(trim极值)
    • 跨域:使用中位数(完全免疫异常值)
  3. 置信度惩罚

    • 检测到异常后,降低该节点权重
    • 防止恶意信息继续传播

📁 项目结构

HART-DGD/
│
├── README.md                          # 项目说明文档
├── requirements.txt                   # 依赖库列表
├── main.py                           # 主程序入口
│
├── network.py                        # 异构网络构建
├── attacks.py                        # 扩展攻击模型
│   ├── Byzantine Attack             # 拜占庭攻击
│   ├── Drift Attack                 # 漂移攻击
│   └── Camouflage Attack            # 伪装攻击
│
├── core_hybrid_algorithm.py          # HART-DGD核心实现
├── core_hybrid_algorithm_enhanced.py # 增强版HART-DGD
├── baseline.py                       # 传统DGD基准
│
├── utils_evaluation.py               # 性能评估工具
├── utils_visualization.py            # 可视化工具
│
├── experiment_config.py              # 实验配置
├── basic_experiment.py               # 快速验证实验
│
└── results/                          # 实验结果
    └── figures/                      # 可视化图片
        ├── group1_convergence_comparison.png
        ├── group2_error_analysis.png
        └── group3_scenario_metrics.png

🔬 算法详解

伪代码

Algorithm: HART-DGD
Input: 网络G, 局部目标{aᵢ}, 迭代次数T
Output: 收敛解x*

1: 初始化 x⁰, confidence c⁰
2: for t = 1 to T do
3:   for each node i do
4:     // 【创新1】事件触发检测
5:     if DetectAttack(i, t) then
6:       // 【创新2】双层共识(防御模式)
7:       x̃ᵢᵗ ← TwoStageConsensus(i, t)
8:       αᵢᵗ ← MetaLearningLR(i, t) × 0.5
9:     else
10:      // 【创新3】置信度加权(快速模式)
11:      x̃ᵢᵗ ← ConfidenceWeightedConsensus(i, t)
12:      αᵢᵗ ← MetaLearningLR(i, t)
13:    end if
14:    // 参数更新
15:    xᵢᵗ⁺¹ ← x̃ᵢᵗ - αᵢᵗ ∇fᵢ(xᵢᵗ)
16:    // 【创新3】双向置信度更新
17:    UpdateConfidence(i, t)
18:  end for
19: end for

关键机制说明

1️⃣ 事件触发检测

基于**中位数绝对偏差(MAD)**的异常检测:

median_val = median([xⱼ for j in neighbors])
mad = median([|xⱼ - median_val| for j in neighbors])
is_attacked = |xᵢ - median_val| > 2.5 × (mad + ε)

2️⃣ 双层共识

先域内鲁棒共识,再跨域保守融合:

# 阶段1:域内共识(trim 20%极值)
intra_consensus = robust_average(same_domain_neighbors)

# 阶段2:跨域融合(中位数+动态权重)
inter_consensus = median(cross_domain_neighbors)
final = (1-β) × intra + β × inter  # β自适应调整

3️⃣ 自适应置信度

动态评估节点可靠性:

deviation = |xᵢ - median(neighbors)|
if deviation < threshold:
    confidence[i] *= 1.05        # 奖励
else:
    confidence[i] *= exp(-0.1×deviation)  # 惩罚

4️⃣ 元学习学习率

根据梯度震荡自适应:

oscillation = mean([|∇fᵢ(t) - ∇fᵢ(t-1)| for t in recent_history])

if oscillation > 1.0:      # 震荡大 → 减速
    lr = base_lr × 0.5
elif oscillation < 0.1:    # 稳定 → 加速
    lr = base_lr × 1.2
else:
    lr = base_lr

🎯 使用示例

基础使用

from core_hybrid_algorithm import HybridRobustDGD
from network import create_heterogeneous_network
from attacks import simulate_advanced_attack
import numpy as np

# 1. 创建异构网络
G = create_heterogeneous_network(
    num_agents=20, 
    domain_ratio=0.5,
    intra_prob=0.5,
    inter_prob=0.2
)

# 2. 设置局部目标
a_values = {n: np.random.uniform(1, 5) for n in G.nodes()}

# 3. 模拟攻击
G_attacked, attack_info = simulate_advanced_attack(
    G, 
    node_attack_ratio=0.25,
    byzantine_ratio=0.4,
    drift_ratio=0.3,
    camouflage_ratio=0.3
)

# 4. 运行HART-DGD
hart_algo = HybridRobustDGD(
    G_attacked, 
    a_values, 
    attack_info,
    lr_init=0.1,
    num_iters=150
)
history, confidence = hart_algo.run()

# 5. 评估结果
from utils_evaluation import evaluate_convergence
errors, avg_errors, overall_error = evaluate_convergence(
    history, a_values, G_attacked
)
print(f"最终误差: {overall_error:.4f}")

📈 实验复现

运行主实验

python main.py

预期输出:

======================================================================
混合鲁棒分布式梯度下降 - 完整实验
======================================================================

网络: 20节点, 66边
攻击: 2拜占庭, 1漂移, 1伪装

运行算法...

评估结果...

混合算法: 0.7108
传统DGD: 3017079800430312869084369256448.0000
性能提升: 100.0%

生成可视化...
✓ 图组1已保存: group1_convergence_comparison.png
✓ 图组2已保存: group2_error_analysis.png
✓ 图组3已保存: group3_scenario_metrics.png

实验完成!

🔍 关键创新与贡献

与现有工作的对比

特性 传统DGD Trimmed-DGD Median-DGD HART-DGD
攻击检测 ❌ ❌ ❌ ✅ 事件触发
异构网络 ❌ ❌ ❌ ✅ 双层共识
自适应信任 ❌ ❌ ❌ ✅ 动态置信度
学习率调整 固定 固定 固定 ✅ 元学习
数值稳定性 ❌ 发散 部分 部分 ✅ 完全稳定
伪装攻击防御 ❌ ❌ ❌ ✅ 实时检测

未来理论工作

  1. 扩展到非凸优化:当前理论主要针对凸函数
  2. 时变网络:动态拓扑下的收敛性分析
  3. Byzantine-resilient 最优性:是否达到理论下界?
  4. 隐私保护:与差分隐私的结合

🙏 致谢

本项目的开发得到了以下支持:

  • 开源工具:NetworkX, Matplotlib, NumPy

About

在混合攻击环境下,针对异构多域多智能体系统的分布式优化算法的研究

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages