论文阅读笔记,本人保留自用
研究动机
- 自适应攻击者(adaptive adversary)的定义还不够明确,使得对后门检测能力的评估和对 FL 防御进行比较变得更加复杂
- 传统的损失函数依赖固定的参数,手工寻找合适的参数耗费的成本很高
- 对涉及可能在某些指标内形成有效值范围的不平等的约束的处理仍不清楚
优点
- 使用增广拉格朗日优化,实现自动调整超参数
- 能同时适应多个指标的约束(本文使用2个)
- 适用于不同的数据集、模型架构、超参数
- 测试 FL 防御所需的运行时间可以加快 15 倍。
- 采用一种记忆机制来保留最满意的解决方案(论文未具体说明)
Overview
- 对模型进行正常良性训练
- 获取防御方法使用的每个指标的合法值
- 通过良性模型的最小值和最大值形成每个指标的有效范围
- 攻击者开始训练特定数量的无约束中毒周期(周期数可以根据想要达到的后门准确率设置或者直接设为固定值)。与Bagdasaryan 等人的经典设置不同,先训练无约束模型的动机在于,对于隐秘后门嵌入来说,中毒数据率(PDR)通常很低,因此,即使是中毒模型,其演化方向也与良性模型大致相同。
- 为了缓解在中毒训练期间引入的可疑模型指标值范围偏离良性值的情况,攻击者初始化了增广拉格朗日优化方法,该方法遵从步骤 3 中产生的范围约束。在这种约束优化模式下进行训练,直到获得足够好的解。(在约束训练期间,模型训练优化器禁用momentum和decay。这一决定基于这样的基本原理:动量考虑了先前的更新步骤,并且如果先前的更新步骤满足一个方向的范围约束,则由于它们的竞争性质,它可能会违反相反方向上的相同约束。另一方面,衰减作为参数正则化的一种形式,充当惩罚项。由于已经纳入了自己构建的惩罚项,因此需要防止任何外部惩罚项的影响。)
- 一旦所有限制条件都得到充分满足,攻击者就会终止程序,并向聚合服务器提交经过调整的中毒模型。根据防御指标,这些模型现在被认为是不可疑的。
约束优化
约束优化是在遵守一组约束条件的前提下,寻找问题的最优解的过程。
这些约束可以包括变量限制、变量之间的关系或必须满足的其他指定条件。
罚函数法
罚函数法又称乘子法,是将约束优化问题转换为无约束最优化问题的方法之一。其基本思想就是通过在原始的目标函数中添加一个障碍函数(也可以理解成惩罚函数)来代替约束条件中的不等式约束。如果当前解不满足约束条件,就在目标项上加上一个正向的惩罚(这里考虑的都是最小化问题),强迫当前解往可行域的方向走。至于正向惩罚的力度,取决于所用的映射函数,即惩罚函数。
等式约束
ρ
k
{ρ}_{k}
ρk是惩罚因子,取值范围[0,∞]。惩罚因子是用来权衡损失和分类间隔的权重。
g
i
(
x
)
{g}_{i}(x)
gi(x)约束项加上平方的原因:不满足约束要加上一个正向的惩罚。为了保证正向这个条件,同时方便后期求导,就给约束项加上了平方。
由此,约束问题转化为非约束问题,即当 G ( x ) k {G(x)}_{k} G(x)k取最优解时, g i ( x ) {g}_{i}(x) gi(x)趋近于0。因为如果不趋近于0的话,惩罚项将会是非常大的正数,整个式子无法取得最小值。因此求解该非约束问题就能得到原约束问题的近似解。
不等式约束
首先需要明确在x的可行域中, h j ( x ) ≤ 0 {h}_{j}(x)\leq 0 hj(x)≤0 。对于上述式子,可以拆成两个式子进行理解,即当惩罚项取0(x在可行域)和取 ρ k ∑ j = 1 m h j ( x ) 2 {ρ}_{k}\sum ^{m}_{j=1} {{{h}_{j}(x)}^{2}} ρk∑j=1mhj(x)2(x不在可行域)的时候。
- x在可行域,惩罚函数值等于原来的目标函数值:
H ( x ) k = f ( x ) {H(x)}_{k}=f(x) H(x)k=f(x) - x不在可行域,惩罚函数值等于原来的目标函数值加上一个很大的正数:
H
(
x
)
k
=
f
(
x
)
+
ρ
k
∑
j
=
1
m
h
j
(
x
)
2
{H(x)}_{k}=f(x)+{ρ}_{k}\sum ^{m}_{j=1} {{{h}_{j}(x)}^{2}}
H(x)k=f(x)+ρkj=1∑mhj(x)2
对于不等式约束,引入惩罚函数的意义在于可以将约束条件直接写入到目标函数里面,这样我们直接求新的函数的极小值就可以了,而不必借助于未知乘子。
拉格朗日乘数法
该方法能够在等式约束下找到约束优化的最优解。该方法需要引入附加变量,即拉格朗日乘子
λ
\lambda
λ ,以便将约束纳入优化问题。
通过对函数变量进行求偏导,使偏导数为0,从而得到相应的方程组,最终解得
x
∗
{x}^{*}
x∗和
λ
∗
{\lambda}^{*}
λ∗的值,即求得最优解。
增广拉格朗日
对于一个带有多个等式约束和不等式约束的优化问题,可以将其转化为一个无约束的优化问题。
与罚函数法相比,它通过添加第二个模仿拉格朗日乘子的惩罚项来防止惩罚因子
ρ
k
{ρ}_{k}
ρk 升级到无穷大。该方法的目的是计算最优解,同时将
ρ
k
{ρ}_{k}
ρk保持在可接受的范围内甚至固定。通过迭代调整,拉格朗日乘子的值被细化,使它们趋向更合适的值,如方程第二行所示。
在第k步迭代,给定惩罚因子
ρ
k
{ρ}_{k}
ρk和乘子
λ
i
{\lambda}_{i}
λi,
L
(
x
,
ρ
,
λ
)
k
{\mathcal{L}(x,\rho ,\lambda )}_{k}
L(x,ρ,λ)k的最小值点
x
k
+
1
{x}^{k+1}
xk+1应满足梯度条件
∇
x
L
(
x
k
+
1
,
ρ
k
,
λ
k
)
=
∇
f
(
x
k
+
1
)
+
∑
i
∈
n
(
λ
i
k
+
ρ
k
g
i
(
x
k
+
1
)
)
∇
g
i
(
x
k
+
1
)
=
0
(1)
\nabla _{x} \mathcal{L}\left ( x^{k+1} ,\rho_{k}, \lambda ^{k}\right ) = \nabla f\left (x^{k+1} \right ) +\sum_{i\in n}\left (\lambda_{i}^{k} + \rho _{k}g_{i}\left ( x^{k+1} \right ) \right )\nabla g_{i}\left ( x^{k+1} \right )=0 \tag{1}
∇xL(xk+1,ρk,λk)=∇f(xk+1)+i∈n∑(λik+ρkgi(xk+1))∇gi(xk+1)=0(1)
上式满足的KKT条件(对最优解
(
x
∗
,
λ
∗
)
({x}^{*},{\lambda}^{*})
(x∗,λ∗)的梯度条件)为
∇
f
(
x
∗
)
+
∑
i
∈
n
λ
i
∗
∇
g
i
(
x
∗
)
=
0
(2)
\nabla f\left (x^{*} \right ) +\sum_{i\in n}\lambda_{i}^{*}\nabla g_{i}\left ( x^{*} \right )=0 \tag{2}
∇f(x∗)+i∈n∑λi∗∇gi(x∗)=0(2)
也就是论文提到的:
为保证上述(1)(2)在最优解处的一致性,对充分大的k,应满足
λ
∗
≈
λ
i
k
+
ρ
k
g
i
(
x
k
+
1
)
,
∀
i
∈
n
(3)
{\lambda}^{*}\approx {\lambda}^{k}_{i}+{\rho }_{k}{g}_{i}\left ( x^{k+1} \right ) ,\forall i\in n \tag{3}
λ∗≈λik+ρkgi(xk+1),∀i∈n(3)
即等价于
g
i
(
x
k
+
1
)
≈
1
ρ
k
(
λ
i
∗
−
λ
i
k
)
(4)
{g}_{i}\left ( x^{k+1} \right )\approx \frac{1}{\rho _{k} } \left ( \lambda _{i}^{*} - \lambda _{i}^{k}\right ) \tag{4}
gi(xk+1)≈ρk1(λi∗−λik)(4)
通过上述流程,增广拉格朗日函数可以合理更新乘子,即通过控制
(
λ
i
∗
−
λ
i
k
)
\left ( \lambda _{i}^{*} - \lambda _{i}^{k}\right )
(λi∗−λik)降低约束违反度。因为根据约束违反度满足的公式,当
λ
i
k
\lambda _{i}^{k}
λik足够接近
λ
i
∗
\lambda _{i}^{*}
λi∗时,
g
i
(
x
k
+
1
)
{g}_{i}\left ( x^{k+1} \right )
gi(xk+1)将远小于
1
ρ
k
\frac{1}{\rho _{k}}
ρk1。
上式可以作为(3)的一个截断近似,可以作为算法中乘子的更新方式。
KKT条件
KKT条件扩展了拉格朗日乘数法的使用,以纳入不等式约束。通过引入额外的不等式约束乘子来表述优化问题,表示为
μ
\mu
μ
KKT 条件建立了确定候选解
x
∗
{x}^{*}
x∗ 是否最优的标准
KKT条件包括:
- 原问题可行条件,确保满足原始的约束条件,公式(10)
- 平稳性,要求拉格朗日函数的一阶导数为零,公式(11)
- 对偶可行性,指定不等式约束的乘子必须是非负的,公式(12)。2和3合称对偶可行条件。
- 互补松弛条件,确保如果满足不等式约束但不为零,则相应的乘子为零,从而截断总体目标函数
可以说,如果满足所有 KKT 条件,则点 x ∗ {x}^{*} x∗ 是最优的(对于凸优化)
互补松弛条件:
关于拉格朗日优化的相关问题,强烈建议大家看一下下面这个视频,讲解得非常清晰且通俗易懂。
【“拉格朗日对偶问题”如何直观理解?“KKT条件” “Slater条件” “凸优化”打包理解】
橙色部分是5个约束条件相交的部分,5个约束条件为5条直线,相交部分表示直线小于0的部分。
λ
>
0
\lambda > 0
λ>0 时,对应的约束条件为图中左上的顶点(由2条直线相交得到),梯度方向和目标函数的梯度方向相同,起到了约束作用,因此是紧致的;
λ
=
0
\lambda = 0
λ=0 时,对应的约束条件为其余直线,梯度方向和目标函数的梯度方向相反,并未起到约束作用,因此是松弛的
下图所有的约束条件都是松弛的
增广拉格朗日优化在本文中的应用
- 传统的损失函数,通过手动调整
α
∈
[
0
,
1
]
\alpha∈[0, 1]
α∈[0,1] 来权衡性能和自适应强度
针对上面这种攻击方式的防御方案,构建一种无法同时优化上述2个损失项的场景,让攻击者无法权衡性能和自适应强度。
- 数学表示
将1中的式子使用数学符号进行抽象建模,表示为一种约束优化问题
- 处理固定的α值
选择一个初始 α k \alpha_{k} αk值,并在连续的优化轮次 k k k 中逐渐增加它的值。这种方法允许在优化过程中逐步调整 α \alpha α 值,使模型能够适应并“强化”实际 α k \alpha_{k} αk 的所需约束值。const 参数在slow-but-safe适应和fast适应之间提供了一种折衷,但有忽视主要任务的风险,这可能会降低主要任务的性能。
- 解决病态效应
当惩罚参数
α
k
\alpha_{k}
αk 接近无穷大时,惩罚函数的微小改变可能会对整体损失产生重大影响,这种效应称为病态效应。通过引入一个带有模拟拉格朗日乘子 λ 的附加惩罚项,避免了
α
k
\alpha_{k}
αk 接近无穷大来实现最优解。
α
k
\alpha_{k}
αk 可以固定表示为特定值
α
a
l
\alpha_{al}
αal ,该值应该足够大以主导整个函数并确保凸性。然而,准确的
α
a
l
\alpha_{al}
αal 值并不是一个敏感参数,也没有引入一个新的难以找到的超参数。在每个优化步长
k
k
k 后,根据当前解
x
k
x_{k}
xk的约束违反情况更新 λ
对增广拉格朗日函数求x的偏导:
最后得到λ的更新式:
- 不等式约束
当增加图方框4所示的表达式来考虑不等式约束时,应使罚函数在满足约束的情况下不影响优化。解决方法是使用平方松弛变量
s
2
s^2
s2 将不等式约束转换为等式约束。
这允许像标准的增广拉格朗日方法那样处理不等式约束,但以需要优化的额外变量s为代价。将上面的等式替换到方框4中,得到:
接下来求
s
2
s^2
s2 的偏导并令等式为0,计算
s
2
s^2
s2 的最优值
s
2
∗
s^{2*}
s2∗
由于
s
2
s^2
s2 恒正,并且只有当
h
(
x
)
≤
0
h(x)≤0
h(x)≤0 时存在,因此可以利用方程中的最大值函数来修正方程的解,如下:
将上述拉格朗日函数进行变换,得到:
上面的式子在变换的时候比较巧妙,首先是在保证原式值不变的前提下构造了一些额外的项,然后通过提取公因子和完全平方公式来进行化简。
再将
s
2
∗
s^{2*}
s2∗ 代入上式,得到最终形式:
- 多约束
为了容纳多个不等式约束,引入一个和项,并为每个约束分配单独的变量 μ j \mu_j μj 。在数学上,该方法等价于不等式约束的增广拉格朗日方法,从而保证了该方法的最优收敛性。解决了在 Bagdasaryan 等人提出的经典方法中,没有明确支持多约束的问题。
- 范围约束
由于对抗性训练依赖于每个指标的有效值范围,因此有必要形成适应一个范围的多个不等式约束。然而,由于形成一个范围的这两个相反的约束相互竞争,可能会导致在满足另一个的同时违反一个约束。在数学上可以表示为,当满足约束
h
(
x
)
≤
0
h(x)≤0
h(x)≤0 时,由于 max 函数中的
μ
\mu
μ 值较大,惩罚项
m
a
x
(
0
,
μ
+
α
a
l
h
(
x
)
)
max(0,\mu+\alpha_{al}h(x))
max(0,μ+αalh(x)) 并没有设置为零。
因此,在满足约束条件时,手动设置
μ
\mu
μ 为0。可由对偶松弛条件证明。
当 h ( x ) < 0 h(x)< 0 h(x)<0 时, μ \mu μ 必须为0。
实验
- 数据集:CIFAR10、GTSRB、MNIST
- 模型:ResNet-18、SqueezeNet、CNN
- 客户端数量:20
- 恶意客户端数量:9(中毒模型率45%)
- 数据分布:IID(non-IID会导致模型具有显著差异,指标的有效值范围扩大,便于对手投毒。即对于本文的方法,IID分布的攻击难度更大)
- 训练周期:10
- 评估指标:局部模型和全局模型之间的余弦距离和欧几里德距离。计算这些指标的总和版本,其中包括计算基于参数的距离和聚合结果
实验从单指标和多指标两个维度进行测试,每个维度的实验包括模型子部分和细粒度。还与Bagdasaryan等人的方法进行了对比。对参数的影响进行了实验,参数包括后门植入的方式、FL的轮数、数据分布情况、数据集、模型架构。以及对收敛性和运行时间的评估。最后测试了AutoAdapt的应用。
单指标
在第8个周期激活约束优化。当满足约束条件时,训练继续进行,不受惩罚项的影响,有效地实现了无约束操作。一旦约束再次被违反,约束模式自动被重新激活。
单指标-模型子部分
foolsgold防御主要是分析模型的最后一层。因此,对模型子部分的实验用于测试AutoAdapt是否能够专门适应最后一层。
图5显示这些值位于可行指标范围的边缘,攻击者可以通过调整每个客户端指标的值的范围来改善
单指标-细粒度
考虑到防御可以逐层分析模型的可能性,作者调整 ResNet-18模型的所有层与良性值范围保持一致,这涉及到为 7 层合并 14 个不等式约束。
第一排:未使用AutoAdapt
第二排:使用AutoAdapt
第三排:Bagdasaryan等人的方法(模型替换)
AutoAdapt 展示了适应所有施加的约束的能力
多指标
通过合并余弦距离和欧几里得距离来重复之前的实验。目的是展示 AutoAdapt 有效同时适应和容纳多个指标的能力。
多指标-模型子部分
最后一层同时适应余弦和欧氏距离得到了良好的结果,证明了基于各种度量方法选择性地适应特定的模型部分的可行性。(未提供图)
多指标-细粒度
对中毒模型进行了Cosine和Euclidean距离的逐层适应,得到了28个约束。在28个约束条件中,有2个没有完全满足,但效果已经非常显著。
与Bagdasaryan等人的方法进行对比
Bagdasaryan等人的方法能够适应轻量级场景(橙色),但不能适应具有许多约束的复杂分层场景(红色),而AutoAdapt能适应所有场景。
参数对自适应的影响
后门植入方式
- 像素触发器后门:使用余弦距离,后门在所有层中都能被检测到
- 标签翻转后门:使用余弦距离,后门在两层中能被检测到
使用AutoAdapt能保证模型的所有层的后门都无法被检测到
FL轮数
在第20轮和第50轮设置中,观察到后门在Cosine和Euclidean度量的所有层中都是可见的。因此,作者基于这些指标对所有层进行了调整,并在所有情况下都实现了完全自适应,并确认AutoAdapt不受FL轮数和全局模型收敛水平的影响。
数据分布情况
将non-IID的比例设为0.5,基于余弦和欧几里得度量进行了逐层适应。这种情况下,获得合适结果所需要的周期与IID相比增加了3个。
前面提到说non-IID攻击难度更低,所以这里增加了3个周期作者觉得比较惊讶,但是也并未解释原因。
在这种情况下依然能够有效,得出结论,本地数据集的数据分布不会显着影响 AutoAdapt 的有效性。
数据集
使用MNIST和GTSRB数据集进行实验,均采用像素触发后门的方式(CIFAR10使用的是语义后门,是CIFAR10特有的),结果表明,无论使用何种数据集,结果都保持稳定,证明 AutoAdapt 独立于特定应用场景。
模型架构
- CIFAR10训练的SqueezeNet
- MNIST训练的CNN
- 像素触发后门模式
实验证明AutoAdapt 表现出独立于 FL 框架内的特定模型架构的能力。
对收敛性的影响
目的:测试 AutoAdapt的行为与满足的约束和整体模型性能的收敛相关
左图是默认情况下余弦距离的适应:
蓝色线代表指标值,黄色线代表下约束,紫色线代表上约束
右图表示相对应的约束违规值:
黄色线代表下约束,紫色线代表上约束
当满足约束时,该值变得小于零
在第11个周期左右,度量值(蓝色)略高于上限阈值时,上限约束(紫色)很快就会被激活,表明 AutoAdapt按预期发挥作用,并收敛于满足强加约束的解决方案。
为了证明 AutoAdapt 的使用不会阻碍模型收敛,在默认场景下对客户端模型进行了为期 100 个周期的全面训练实验。
监控两个关键指标:模型更新梯度的大小(L2 Norm)和每个时期结束时训练数据的损失。
- 红色虚线作为对照,未使用AutoAdapt
- 左图蓝色线表示模型梯度大小
- 垂直的虚线表示约束优化的开始
- 右图绿色的线表示有约束情况下的训练数据的损失
作者还训练了一个相同的客户端模型,没有任何调整,但从第8个周期开始动量和权重衰减设置为零(在上述100个周期的训练中,约束优化模式从第8个周期开始激活),确保原始损失值和梯度大小保持可比。
如图 10 所示,代表受约束和无约束模式的线表现出高度重叠,表示偏差最小,可以证明在训练过程中,AutoAdapt 对模型收敛的影响可以忽略不计。
运行时间评估
进行十次实验,取平均运行时间比较。
- 第一列展示的是未使用AutoAdapt的默认情况的运行时间。
- 第二列展示的是Bagdasaryan等人的方法的运行时间。
- 第三列展示的是第8个周期约束优化被激活后的3个周期的运行时间。
- 最后一列展示的是最后一个受约束周期的结果
第二列因为需要找到合适的
α
\alpha
α 所以耗费时间很长。
与“无适应”场景相比,AutoAdapt 引入了 34% 的开销,这是正常的,因为对手需要计算额外的损失。
结论:AutoAdapt 可以实现更快、更全面的防御测试。
AutoAdapt的应用
目的:证明 AutoAdapt 针对实际防御机制的有效性。将 AutoAdapt 建立为一种有价值的适应工具,可应用于广泛的防御策略。
-
简单的聚类防御
原理:利用余弦度量并对结果值采用 HDBSCAN 聚类。
实验结果:应用 AutoAdapt 来调整模型时,中毒模型在指标中变得不明显,导致单个良性模型(异常值)被修剪。在新的聚合模型中实现了 100% 的后门准确率 (BA)。 -
FoolsGold
原理:根据余弦距离分析模型的最后一层,分析更新之间的距离
实验过程:调整最后一层,使其与全局模型对齐
实验结果:绕过防御 -
Krum 和 M-Krum
原理:根据与全局模型的欧几里德距离选择单个模型或模型子集的平均值作为新的全局模型
实验过程:将模型调整为欧几里德距离中看似良性的值。通过利用 AutoAdapt 在所有模型之间强制执行类似的距离,算法在有利于指标内邻居密度的同时,只选择中毒模型。
实验结果:在新的全局模型中实现 100% BA
(全文完)