DPdisPCA算法原理笔记

概要

本文简单理顺《Differentially Private Distributed Principal Component Analysis》论文中的算法原理,它主要提出了一种基于差分隐私的分布式PCA算法,研究了该算法在实验数据以及真实数据中的表现,在参数相同的情况下本算法取得了和没有隐私保护的算法相同级别的效果。

算法原理

一些数学公式上的符号定义
1、 S S S表示分布式中有 S S S个站点;
2、每个站点的数据集 D × N s D\times N_s D×Ns其中 s ∈ [ S ] s \in [S] s[S]表示有 D D D N s N_s Ns个样本量,样本集表示成 X s = [ x s , 1 , x s , 2 , . . . , x s , N s ] X_s=[x_{s,1},x_{s,2},...,x_{s,N_s}] Xs=[xs,1,xs,2,...,xs,Ns]
3、并且样本集的样本满足对 ∀ n ∈ [ N s ] \forall n \in [N_s] n[Ns]都有 ∣ ∣ x s , n ∣ ∣ 2 ≤ 1 , ∀ s ∈ [ S ] ||x_{s,n}||_2 \le 1, \forall s \in [S] ∣∣xs,n21,s[S],简单说就是观察样本符合均值中心化;
4、每个站点的协方差矩阵: A s = 1 N s X s X s T A_s=\frac{1}{N_s}X_sX_s^T As=Ns1XsXsT
5、各站点的总样本数: N = ∑ s = 1 S N s N=\sum_{s=1}^SN_s N=s=1SNs,整体样本: X = [ X 1 , X 2 , . . . , X S ] ∈ R D × N X=[X_1,X_2,...,X_{S}] \in \R^{D\times N} X=[X1,X2,...,XS]RD×N,整体样本的协方差: A = 1 N X X T A=\frac{1}{N}XX^T A=N1XXT

PCA和差分隐私的简单介绍参见:https://blog.csdn.net/superY_26/article/details/131140813

DPdisPCA算法的逻辑如下图:

图中for循环内的逻辑在每个站点执行,主要操作为:
1、计算各站点的协方差 A s A_s As
2、生成服从 N ( 0 , τ 2 ) N(0,τ^2) N(0,τ2)分布 τ = 1 N s ϵ 2 l o g ( 1.25 δ ) τ=\frac{1}{N_s\epsilon} \sqrt{2log(\frac{1.25}{\delta})} τ=Nsϵ12log(δ1.25) 的随机噪声 E E E
3、将协方差加入噪声 A s ^ = A s + E \hat{A_s}=A_s+E As^=As+E
4、求协方差的SVD: A s ^ = U Σ U T \hat{A_s}=U\Sigma U^T As^=UΣUT
5、 计算 P s = U R Σ R 1 2 , ( K < R < < D ) P_s=U_R\Sigma_R^{\frac{1}{2}}, \scriptsize (K<R<<D) Ps=URΣR21,(K<R<<D),并将其发送给aggregator。

循环外则是aggregator的操作:
1、整合每个站点发过来的 P s P_s Ps A c = 1 S ∑ s = 1 S P s P s T A_c=\frac{1}{S}\sum_{s=1}^SP_sP_s^T Ac=S1s=1SPsPsT
2、求 A c A_c Ac的SVD: A c = V Λ V T A_c=V\Lambda V^T Ac=VΛVT
3、按特征值排序去top K的特征向量得到 V K V_K VK

算法中各站点为什么发送 P s P_s Ps给aggregator?
【原因】算法中对于各站点发送截断的P_s是因为考虑通信成本的问题,降低通信量,提升性能。
最好的发送加入噪声的协方差 A s ^ \hat {A_s} As^进行汇总,然后求SVD值。这个被证明效果会更好。

实验结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值