回顾

前言

本文是我在大学课外的学习知识的回顾

大创

大创是我入坑深度学习的契机

1项目结构

data文件夹存放各个数据集

AdvBox是百度的对抗攻击的库项目使用了其中的DeepFool攻击算法

Distance文件夹和Distance_vceg文件夹分别是DeepFool攻击和项目提出攻击算法得出的决策边界距离

adversial_MIA.py文件是主文件定义了各种参数是整个项目的运行文件

FL_model_data_init.py是联邦学习中模型的定义数据集的导入划分

FL_base_function.py是联邦学习的功能函数文件包括本地模型的运行本地模型平均得到全局模型

attack_function.py实现对抗攻击增加了噪声放大训练集样本和测试集样本的差异

attack.py为我改进HSJA的一个算法vceg

2联邦学习https://zhuanlan.zhihu.com/p/271785581

联邦学习针对的是数据不能共享的情况是一种分布式的框架分为客户端服务器端客户端有不同的数据但是出于隐私的保护不能共享就在客户端本地训练模型将得出的模型参数或梯度传给服务器端服务器端聚合平均或带权平均回传给客户端

  1. 所有客户端分别独立地在本地数据上进行训练
  2. 客户端对模型参数或者模型参数的梯度进行加密上传到服务器
  3. 服务器对搜集到的客户端的模型参数或者梯度进行聚合并且是安全聚合Secure Aggregation
  4. 服务器将模型下发到各个客户端

此中涉及到了许多问题比如

  • Non-IID问题由于数据来自各个客户端数据分布不再满足传统机器学习假设的数据独立同分布IID性质反而是非独立同分布Non-IID这种情况下如何保证各个客户端训练的模型依旧可以被有效地全局聚合Global Aggregation此外即便能聚合出好的模型如何将其部署下发到数据分布有所差异的客户端即模型个性化问题Personalization

    1由于客户端数据分布不一致在本地训练的模型往往分歧比较大因此可以在参数服务器上保留一些公共数据这些公共数据包含了客户端上所有分布下的数据可以用来矫正聚合的模型由于数据涉及隐私往往可以通过GAN训练一些伪造数据等等

    2Non-IID带来的问题主要是在于各个客户端上的梯度差异过大因此聚合时可能会不收敛或者难收敛因此需要加入正则化项限制客户端上模型训练和公有模型的差异

    3可以利用多任务学习技术来解决Non-IID问题此外还可以借助元学习Meta Learning增量学习Incremental Learning等范式

  • 数据传输问题联邦学习严重依赖于数据传输如何降低数据传输的开销以及如何确保通信不稳定的情况下系统依旧可以正常工作

  • 隐私保护措施什么是安全聚合怎么样才能做到安全多方计算Secure Multi-Party Computing, Secure MPC?

    现有的解决方法有差分隐私Differential Privacy同态加密Homomorphic Encryption等等

在两个数据集的用户特征重叠较多而用户重叠较少的情况下我们把数据集按照横向(即用户维度)切分并取出双方用户特征相同而用户不完全相同的那部分数据进行训练这种方法叫做横向联邦学习

在两个数据集的用户重叠较多而用户特征重叠较少的情况下我们把数据集按照纵向即特征维度切分并取出双方用户相同而用户特征不完全相同的那部分数据进行训练这种方法叫做纵向联邦学习

在两个数据集的用户与用户特征重叠都较少的情况下我们不对数据进行切分而可以利用迁移学习来克服数据或标签不足的情况这种方法叫做联邦迁移学习

3对抗攻击

对抗攻击英文为adversarial attack即对输入样本故意添加一些人无法察觉的细微的干扰导致模型以高置信度给出一个错误的输出深度神经网络模型的非线性导致的输入与输出映射的不连续性加上不充分的模型平均和不充分的正则化导致的过拟合使得对抗攻击成为可能

分为白盒攻击和黑盒攻击或者定向攻击和非定向攻击

白盒攻击对模型和训练集完全了解这种情况比较简单但是和实际情况不符合

黑盒攻击对模型不了解对训练集不了解或了解很少这种攻击和实际情况比较符合主要也是主要研究方向

定向攻击称为targeted attack对于一个多分类网络把输入分类误判到一个指定的类上

非定向攻击称为non-target attack只需要生成对抗样本来欺骗神经网络可以看作是上面的一种特例

DeepFool白盒攻击到决策边界的距离作为噪声

HSJA黑盒攻击

实验室