(2条消息) 【论文复现3】算法2——Clustered sampling based on model similarity_admin11111111的博客-CSDN博客https://blog.csdn.net/admin11111111/article/details/121072203#comments_19068693

一、对于梯度的修改

接着上篇的思路,只有在local_learning中对梯度进行修改才算是真正意义上的worker遭受到攻击。于是有下面的代码:

def local_learning(model, mu: float, optimizer, train_data, n_SGD: int, loss_f, k):model_0 = deepcopy(model)for _ in range(n_SGD):features, labels = next(iter(train_data))features_ = features.to(DEVICE)  # 1013labels_ = labels.to(DEVICE)  # 1013optimizer.zero_grad()predictions = model(features_)batch_loss = loss_f(predictions, labels_)batch_loss += mu / 2 * difference_models_norm_2(model, model_0)batch_loss.backward()# 1122 改变4个worker的梯度AT = 1  # 设置攻击者类型if AT == 0:attack_type = backwardelif AT == 1:attack_type = random_attackelif AT == 2:attack_type = same_value_attackelse:raise Exception("No such type of attack!")# 1124attacker_count = 0ATTACK_WORKER = 4  # 设置攻击者数量if attacker_count < ATTACK_WORKER:for param in model.parameters():param.grad = attack_type(param.grad)attacker_count += 1optimizer.step()

实验结果:

很明显,对于worker的攻击产生效果了。不过这个攻击worker占比40%还是太高了。接下来需要对比一下,10%,20%,30%的情况看看。

???还有一个疑问点有待解决,在backward和same_value_attack时,会报错:The condensed distance matrix must contain only finite values。至于为什么会出现NaN可能与聚类的ward方法有关。

不过在StackOverflow上有相关的解答,明天试试看。ValueError: The condensed distance matrix must contain only finite values. in python - Stack Overflowhttps://stackoverflow.com/questions/68039205/valueerror-the-condensed-distance-matrix-must-contain-only-finite-values-in-py

二、 对于样本量的修改

之前修改样本量是直接在算法里面改的,虽然效果一样,但这个也是不合理的。因为这里给的是weights数组来表示各个worker的数据量占比大小的,因此只需要调整weights数组即可,然后也实现了对于篡改worker的数据量也能影响到算法稳定性。实验结果如下:

这里也是修改了四个worker的数据量,让他们的数据量占比提高10倍,其实真实数据量还是相同的。

至此,符合预期的结果都出来了。接下来进一步的想法就是改变聚类方法或者相似性方法了。

【总结】Clustered Sampling 小结相关推荐

  1. 【论文代码复现2】Clustered sampling based on sample size

    [论文代码复现]Clustered Sampling: Low-Variance and Improved Representativity for Clients Selection in Fede ...

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

    [论文代码复现2]Clustered sampling based on sample size_admin11111111的博客-CSDN博客https://blog.csdn.net/admin1 ...

  3. 【论文代码复现】Clustered Sampling: Low-Variance and Improved Representativity for Clients Selection in Fede

    目录 一.前言 二.论文内容概要 1. 论文背景: 2. 已有解决方案 3. 论文方法 三.实验 1. 实验设置 2. 代码 3. 修改后试验结果和论文结果对比: 参考: 一.前言 1. 论文地址: ...

  4. mysql库表散列_数据库表--hash clustered table

    Hash clustered table与索引聚簇表非常相似,只有一个主要区别:聚簇键索引被一个hash函数所取代,表中的数据就是索引.所以没有物理索引 hash clustered table也有副 ...

  5. 数据不动模型动-联邦学习的通俗理解与概述

    关注公众号,发现CV技术之美 联邦学习是一种机器学习设定,其中许多客户端(例如:移动设备或整个组织)在中央服务器(例如:服务提供商)的协调下共同训练模型,同时保持训练数据的去中心化及分散性.联邦学习的 ...

  6. 综述:联邦学习隐私保护

    1. What does literature study? 本文分析并展望了联邦学习中的隐私保护技术的研究进展和趋势.简要介绍联邦学习的架构和类型,分析联邦学习过程中面临的隐私风险,总结重建.推断两 ...

  7. Simplify and Robustify Negative Sampling for Implicit Collaborative Filtering (Nips‘20) 论文小结

    摘要 在基于隐式反馈的协同过滤中,负采样(negative sampling)是从大量的unlabeled data中获取负样本标签比较常用和流行的方法.然而,负采样的效率和有效性这两个问题仍然没有被 ...

  8. Oracle Clustered Table

    本文主要介绍Oracle Clustered Table.Oracle集群表分为B*树索引集群表(B* tree index clustered table)和散列集群表(hash-clustered ...

  9. SQL Server 2016 查询存储性能优化小结

    SQL Server 2016已经发布了有半年多,相信还有很多小伙伴还没有开始使用,今天我们来谈谈SQL Server 2016 查询存储性能优化,希望大家能够喜欢 作为一个DBA,排除SQL Ser ...

最新文章

  1. android 自定义控件TextInputSelectBox用法
  2. postgresql中自定义函数脚本的备份及恢复
  3. C# 获取对象 大小 Marshal.SizeOf (sizeof 只能在不安全的上下文中使用)
  4. 刚刚,阿里云上线六大“战疫情”项目
  5. java ee jstl_Java EE之JSTL(下)
  6. sf | 判断点线面等几何对象的空间位置关系
  7. 关于8086七种寻址方式的练习
  8. 【字幕制作】从IDX/SUB到PGS的小白入门教程
  9. NPDP|程序员转产品经理好转吗?
  10. Ubuntu 20.04LTS 搜狗输入法不显示图标
  11. spring mvc
  12. 巧用foxmail同步qq邮箱的通讯录
  13. 疫情对2020春招有什么影响?
  14. 342_Linux Mint使用国内的软件源
  15. 51Nod-1526-分配笔名
  16. 一个超赞的智慧园区地图导航解决方案,如何实现园区路线导航?
  17. 小松鼠邮件(squirrelmail)服务器部署(squirrelmail+Postfix)
  18. 打造爆款产品需要注意什么
  19. 上帝掷骰子:APP Store是赌场不是金矿
  20. 最新版 Office 三国杀,体验式寻找最强电子表格

热门文章

  1. 对图片base64加密
  2. vb获取系统临时目录 temp
  3. C++基础:运算符优先级
  4. 移动web开发,ios下移除input默认样式
  5. linux里面短ping,详解Linux系统中ping和arping命令的用法
  6. 190911 CSP-S 2019模拟
  7. “Hello World!”团队第七周召开的第六次会议
  8. ElasticSearch学习_陶文6_【03】把 Elasticsearch 当数据库使:简单指标
  9. 常用对象操作:(4)
  10. Lua脚本语言学习总结 入门、复习Lua语言看这一篇就够了