wangshusen / DeepLearning

Other
3.56k stars 811 forks source link

FL联邦学习中,server对client恶意行为的侦测(方式的猜想) #7

Open David-Dingle opened 3 years ago

David-Dingle commented 3 years ago

机器学习是希望使用一个矩阵,高维空间,对数据特征特征进行模拟。 server如 google 维护一个全局的矩阵w_global。客户端的数据不满足独立同分布,其中本地数据记为 w_local_i, 其中i 为用户名。 给定一个标量 trust_Max 超参数,定义最大偏离的距离,定义某个客户 与 w 的”距离“的矩阵 distance_to_global_i = w - w_local_i (对应元素相减),检验一下distance_to_global_i 矩阵 L2 范数与 trust_Max 的关系。

大于阈值,代表该用户和大多数用户的使用习惯偏差过大,有蓄意攻击的可能。 但世界上还会存在少量其他用户 w_local_k 和他的 w_local_i 的分布近似,体现在两个“距离矩阵”的差 distance_to_global_i - distance_to_global_k 的新矩阵的L2 很小。意味着利用 google 提供的高维空间 w 拟合两个用户的习惯类似。

---以下,猜测的部分----

在i k中分别训练另一个网络 m_i 和 m_k,m 使用不同于 w 的网络结构、参数,但 m_i 和 m_k参数相同。训练相同epoch。 方法一:得到本地的训练评价acc_i 和 acc_k,交换 m,分别在异地验证m,得到对方m 在本地的评价。与先前的评价进行比较。 方法二:直接对 m_i 和 m_k 差的 L2进行度量,判断 m_1 和 m_k 是否相近。

// 猜测基于假设: // 如果两个客户的本地 wlocal 和 w_global 的 对应元素差相近,它们的数据更接近。 // 蓄意攻击者通过加噪声等方式修改本地数据,意图污染 w_global,会让本地数据变得很奇怪,和其他的善良的偏离者在 w 网络下表现类似,却在另一个高纬空间的投影,新的网络 m 中表现不同。(我的猜测,不知道有没有可能。恶意用户 i 修改数据会让数据变得和谁都不像,在 w 中呈现和善良的用户 k 相近的表现,只是偶然。并不会在 m 中 依然接近 k)

还有一种通用方式(应对某些恶意用户 i 他的 w_local_i 并不过分偏离 w_global): 找一个用户k,他的 w_local_k 和 w_local_i 距离很近。server命令他们根据参数列表 temporary_table(临时生成的一组网络参数,包括层数、行列数量)。i 和 k 依据 table 训练网络 m, 交叉验证异地表现。