【论文复现3】算法2——Clustered sampling based on model similarity

该博客探讨了联邦学习中针对样本量和梯度的两种攻击策略。首先,介绍了基于样本量的算法2,通过层次聚类和权重更新来防御恶意攻击。实验表明,单纯改变数据量对梯度的影响较小。随后,讨论了直接篡改梯度的影响,结果显示这种攻击会使算法2偏离目标模型。最后,指出在局部模型的梯度计算中进行攻击无效,原因是攻击的客户端可能未被选中参与训练。

【论文代码复现2】Clustered sampling based on sample size_admin11111111的博客-CSDN博客https://blog.csdn.net/admin11111111/article/details/120817883        接着上篇的来写。

一、算法2流程:

1. 根据梯度计算相似性矩阵,相似性用cosine来衡量。

2. 对相似性矩阵进行层次凝聚聚类,cluster之间的距离用ward方式衡量。

3. 根据聚类结果得到新的权重矩阵,(最大的10种类——worker数量最多,权重保持不变)

4. 剩余的类别的权重更新,得到新的权重矩阵distri_cluster作为clients被抽样的概率矩阵,抽样的clients子集的样本作为训练数据集进行训练。

注:此处权重不是模型参数,而是作为clients被抽样的概率权重。

def get_clusters_with_alg2(
    linkage_matrix: np.array, n_sampled: int, weights: np.array
):
    """Algorithm 2"""
    epsilon = int(10 ** 10)

    # associate each client to a cluster
    link_matrix_p = deepcopy(linkage_matrix)
    augmented_weights = deepcopy(weights)


    for i in range(len(link_matrix_p)):
        idx_1, idx_2 = int(link_matrix_p[i, 0]), int(link_matrix_p[i, 1])

        new_weight = np.array(
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值