联邦学习入门笔记(四)— 基于差分隐私的FL(ii)

本文首发于我的博客,
原文地址请点击这里!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

本文详细介绍了DP(差分隐私)+FL(联邦学习)的实现方法,笔者经过一年多的学习,基本上摸清了这个领域的一些套路,这里做一个总结。

距离上次发表联邦学习相关的文章已经是一年多前了,笔者接触这个领域差不多也有快两年的时间了,那时候笔者还是本科生,现在已经是快毕业的师兄了(逃),这两年对FL和DP的理解变化很大,应该说是对这个领域已经较为了解了,两年前写基于差分隐私的FL(i)这篇文章时,笔者对很多概念和算法描述的可能并不是特别到位,这里请大家以这篇文章的描述为准。

笔者的开源FL+DP代码:基于差分隐私的联邦学习代码库

基于DP的FL算法

为了简单起见,这里只讲解Client端的过程,以添加Laplace噪音为例,假设Client端收到来自Server的初始参数为 w s \mathbf{w}_s ws,学习率为 η \eta η,本地数据集为 D \mathcal{D} D,梯度裁剪的Clip为 C C C,损失函数为 l ( D , w s ) l(\mathcal{D}, w_s) l(D,ws)当前这一轮的隐私预算 ϵ \epsilon ϵ,那么基于DP的Client端算法为:

  • 接受来自Server的初始参数 w s \mathbf{w}_s ws

  • 通过前向传播和反向传播计算出梯度 g \mathbf{g} g

    其中计算的过程应该为,首先计算出 D \mathcal{D} D中每条数据 D i \mathcal{D_i} Di的梯度 g i \mathbf{g_i} gi,进行梯度裁剪:

    g i = g i m a x ( 1 , ∣ g i ∣ / C ) \mathbf{g_i} = \frac{\mathbf{g_i}}{max(1, |\mathbf{g_i}| / C)} gi=max(1,gi∣/C)gi

    然后再求平均值,把这个过程写成公式就应该是: g = 1 ∣ D ∣ ∑ g i = 1 ∣ D ∣ ∑ a r g   m i n w s l ( D i , w s ) \mathbf{g} = \frac{1}{|\mathcal{D}|} \sum \mathbf{g_i} = \frac{1}{|\mathcal{D}|} \sum arg \ min_{\mathbf{w_s}} l(\mathcal{D_i}, \mathbf{w_s}) g=D1gi=D1arg min<

评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值