联邦学习基础

0x01 什么是联邦学习

  • 一种加密的分布式学习

    联邦学习本质上也是一种分布式机器学习技术/框架,但是他和和传统分布式系统还是存在明显差异:

    1.Server与Worker的关系:分布式系统中Server对Worker是完全所有权/控制权,但是在联邦学习中是是相对松散的,并没有所有权/控制权。这也导致了额外的挑战。

    2.不同设备数据的差异性:分布式机器学习的每个节点基本上是均衡的,而在联邦学习的架构里,Worker节点与节点之间的数据差距是无法保证的。在联邦学习架构中,不同worker,还有server不是在局域网内部,需要消耗大量的网络,并需要考虑网络的稳定性。

  • 与传统的分布式学习的区别:

    • 用户对自己的设备和数据有绝对控制权
    • Worker 节点不稳定:计算性能、网络延迟
    • 通信开销高于计算开销
    • worker节点的数据non-IID(非独立同分布)
    • 数据集是不平衡的(有的人喜欢拍风景、有的喜欢自拍;用户使用APP频率不同)

0x02 常见过程

普通过程:

  1. Server —> Worker:参数w
  2. Worker_i:利用w在本地数据集上训练,计算梯度gig_i;将gig_i发送给Server
  3. Server:计算g=g1+...+gmg = g_1+...+g_m;更新 w=wagw = w - a*g

Federated Averaging Algorithm:牺牲算力换取时间开销的降低

  1. Server —> Worker:参数w
  2. Worker重复以下循环:例如:5 epochs
    • 利用w训练模型、并计算梯度gig_i
    • 本地更新: w=wagw = w - a*g
  3. Worker —> Sever: wiw_i
  4. Server:接受数据;并更新$ w = \frac{1}{m}(w_i+…+w_m)$

0x03 联邦学习总结

  • 分布式学习
  • 目标:解决数据孤岛和隐私问题,在不分析数据的前提下、完成模型的训练;
  • 挑战:
    • non-IID data
    • slow communication

0x04 探索方向

  • Communication-efficient algorithms
  • Defense against privacy leakage
  • Robustness to Byzantine faults

0x05 常见方式

  • 横向联邦:特征空间足够、样本空间不足
  • 纵向联邦:样本空间足够、特征空间不足
  • 迁移联邦:特征和样本都不足,利用迁移学习