【DeepZero】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、背景

ZO(Zeroth-Order, ZO)代表零阶,所谓零阶泛指所有不经过求梯度,得到梯度的方法
FO(First-Order, FO)代表一阶,通过白盒的权重反向传播等求梯度的方法获得梯度

二、RGE还是CGE?

ℓ ( θ ) \ell (\theta) (θ) 表示我们希望在优化变量 θ θ θ R \mathbb{R} Rd(例如神经网络的模型参数)上最小化的损失函数。ZO 优化器只通过提交输入(即 θ \theta θ 的实现)和接收相应的函数值与目标函数 ℓ \ell 进行交互。它对常用的基于一阶梯度的算法稍作修改,通过基于函数值的梯度估计来近似一阶梯度算法。当由于损失函数的黑箱性质而难以进行显式微分,或由于对能效的担忧而不希望进行显式微分时,这一点就非常重要。

RGE 和 CGE 是两种常用的基于 ℓ \ell 的有限差分的梯度估计器。RGE 通过 随机扰动 θ 来获取有限差分,而 CGE 则使用θ的确定性坐标扰动。 ▽ ^ \hat{\bigtriangledown} ^θ ℓ ( θ ) \ell (\theta) (θ) 表示相对于 θ 的 FO 梯度 ▽ \bigtriangledown θ ℓ ( θ ) \ell (\theta) (θ)的估计值。

1.RGE

RGD方法的正式定义如下:
∇ ^ θ ℓ ( θ ) = 1 q ∑ i = 1 q [ ℓ ( θ + μ u i ) − ℓ ( θ ) μ u i ] \hat{\nabla}_{\boldsymbol{\theta}} \ell(\boldsymbol{\theta})=\frac{1}{q} \sum_{i=1}^{q}\left[\frac{\ell\left(\boldsymbol{\theta}+\mu \mathbf{u}_{i}\right)-\ell(\boldsymbol{\theta})}{\mu} \mathbf{u}_{i}\right] ^θ(θ)=q1i=1q[μ(θ+μui)(θ)ui]
在 RGE 中, u i \mathbf{u}_{i} ui表示第 i 个随机扰动方向向量,例如从标准高斯分布 N \mathcal{N} N(0, I) 中抽取, μ μ μ > 0 是扰动大小(又称平滑参数), q q q 是用于获取有限差分的随机方向数。

以 q = 1为例。当 μ → 0 时,RGE 中的有限差分 ℓ ( θ + μ u i ) − ℓ ( θ ) μ \frac{\ell(\theta+μ\mathbf{u}_{i})-\ell(\theta)}{μ} μ(θ+μui)(θ)收敛于函数 ℓ \ell 在点 θ \theta θ 方向 u \mathbf{u} u 的方向导数 ℓ \ell ( θ ) (\mathbf{θ}) (θ),即 ℓ \ell ( θ ) (\mathbf{θ}) (θ) := limμ→0 ℓ ( θ + μ u i ) − ℓ ( θ ) μ \frac{\ell(\theta+μ\mathbf{u}_{i})-\ell(\theta)}{μ} μ(θ+μui)(θ)
由于: 某一点某一方向导数 = 该方向的方向向量 × 该点梯度。 某一点某一方向导数 = 该方向的方向向量 × 该点梯度。 某一点某一方向导数=该方向的方向向量×该点梯度。
所以 ℓ \ell ( θ ) (\mathbf{θ}) (θ) := limμ→0 ℓ ( θ + μ u i ) − ℓ ( θ ) μ \frac{\ell(\theta+μ\mathbf{u}_{i})-\ell(\theta)}{μ} μ(θ+μui)(θ) = u \mathbf{u} uT ▽ \bigtriangledown θ ℓ ( θ ) \ell(\mathbf{θ}) (θ)

那么,表达式 ℓ \ell ( θ ) u (\theta)\mathbf{u} (θ)u 可以得出 E \mathbb{E} E [ [ [ ℓ \ell ( θ ) u (\theta)\mathbf{u} (θ)u ] ] ] = E \mathbb{E} E [ [ [ ( u u (\mathbf{u}\mathbf{u} (uuT ) ) ) ▽ \bigtriangledown θ ℓ ( θ ) ] \ell(\mathbf{θ})] (θ)] = ▽ \bigtriangledown θ ℓ ( θ ) \ell(\mathbf{θ}) (θ) (要求 E \mathbb{E} E [ ( u u [(\mathbf{u}\mathbf{u} [(uuT ) ] )] )] = 1)。这意味着 ℓ \ell ( θ ) u (\theta)\mathbf{u} (θ)u ▽ \bigtriangledown θ ℓ ( θ ) \ell(\mathbf{θ}) (θ) 的无偏梯度估计值。

2.CGE

SGE方法定义如下:
∇ ^ θ ℓ ( θ ) = ∑ i = 1 d [ ℓ ( θ + μ e i ) − ℓ ( θ ) μ e i ] \hat{\nabla}_{\boldsymbol{\theta}} \ell(\boldsymbol{\theta})=\sum_{i=1}^{d}\left[\frac{\ell\left(\boldsymbol{\theta}+\mu \mathbf{e}_{i}\right)-\ell(\boldsymbol{\theta})}{\mu} \mathbf{e}_{i}\right] ^θ(θ)=i=1d[μ(θ+μei)(θ)ei]

在 CGE 中, e i \mathbf{e}_{i} ei 表示标准基向量, ℓ ( θ + μ e i ) − ℓ ( θ ) μ \frac{ℓ(θ+μ\mathbf{e}_{i})-ℓ(θ)}{μ} μ(θ+μei)(θ) 提供了第 i 坐标 θ i \mathbf{θ}_{i} θi ℓ ( θ ) \ell(θ) (θ) 偏导数的有限差分估计。

在 CGE 中由于 e i \mathbf{e}_{i} ei是标准基向量(第 i i i 位为1,其他为0),可以理解为对每个维度的确定方向进行一次无偏估计,由于每次只估计一个维度,其他维度为0,最后只需将每个维度求和。

疑问:这里RGE和CGE对于q和d的要求应该不同,RGE应该是可以灵活要求,CGE应该有取值要求

3. RGE和CGE对比

3.1 RGE 和 CGE 的函数查询成本对比

根据 (1),RGE 需要 O(q) 次查询,而 CGE 需要 O(d) 次查询。与 CGE 相比,RGE 可以灵活地指定 q < d,以减少函数求值次数。[q < d的原因猜测:由于DNN,参数可能很多,所以需要的d多]。

3.2 RGE 和 CGE 的精度对比

为此,我们进行了一项初步调查,在 CIFAR-10 上同时使用 RGE 和 CGE 训练不同规模的基本卷积神经网络(CNN)。为确保公平比较查询复杂度,我们将 RGE 中的查询次数 q 设置为等于 CGE 中的问题大小 d。
Alt

图1显示所学 CNN 的测试精度与模型参数数(相当于模型查询次数)的对比,训练方法由 FO-SGD、基于 ZO-RGE 的 SGD 和基于 ZO-CGE 的 SGD 指定。

我们观察到,CGE 可以达到与 FO 训练相当的测试精度,并且明显优于 RGE。这一实验凸显了 CGE 在优化精度方面优于 RGE,即使后者使用 q = d。

3.3 CGE 与 RGE 的计算成本对比

训练 CNN 时,CGE 的计算效率也优于 RGE。
Alt

图2不同训练方法的计算时间与模型大小(相当于模型查询次数)的关系

图片显示了不同训练方法的计算时间与模型大小的关系,凸显了CGE 比 RGE 的计算效率更高

为了详细考察 CGE 的效率优势,我们将单个 ZO 梯度估计的计算分为四个阶段:
  ①生成方向向量,即 u i \mathbf{u}_{i} ui e i \mathbf{e}_{i} ei
  ②扰动模型权重,即 θ + μ u i θ + μ\mathbf{u}_{i} θ+μui θ + μ e i θ + μ\mathbf{e}_{i} θ+μei
  ③计算有限差分的模型推理;
  ④梯度估计的其他算术运算。

表1:RGE 和 CGE 的 ZO 训练在四个阶段中每次迭代的平均计算时间,比较是针对不同参数数(d)的训练模型进行的,参数数从 730 到 12610 不等

在这里插入图片描述

  在第①阶段,RGE 由于生成随机高斯向量而耗费了计算时间,而 CGE 由于以坐标方式估计梯度,因此不需要这一步。
  在第②阶段,无论参数大小如何,RGE 都比 CGE 需要更多的计算时间。这是因为 RGE 在一次查询中扰动了所有模型权重,而 CGE 每次查询只扰动一个模型权重坐标。
  在第③阶段,两种 ZO 算法的计算时间都随着参数数量的增加而增加,耗时相近。
  在第④阶段,无论参数大小如何,RGE 所需的计算时间仍然多于 CGE。这是因为 RGE 需要执行额外的算术运算(如求和运算)来汇总多个查询,而 CGE 是以坐标方式处理多个查询,因此计算效率更高。

结果表明,在①和②阶段,RGE 所需的时间比 CGE 长得多。相比之下,CGE 可以 " Free "生成基向量,并通过坐标索引操作对模型权重进行扰动。RGE 的计算效率损失在于每次查询都需要生成 d 维扰动向量并将其整合到整个模型中。因此,我们发现 CGE 比 RGE 具有更高的时间效率

基于 CGE 在精度和计算效率上都优于 RGE,我们选择 CGE 作为首选的 ZO 梯度估计器

三、DeepZero

CGE 的一个宝贵特性是跨坐标有限差分的解缠,这表明降低 CGE 的查询复杂度与修剪正在优化的模型权重是一致的。有鉴于此,我们建议将 ZO 优化与剪枝梯度相结合,为 ZO 深度模型训练设计一种更有效的归纳偏置

1.ZO-GraSP(零阶梯度信号保存)权重剪枝

目前有效的剪枝方法将模型训练作为中间步骤。因此,这些方法并不适合通过零阶反馈生成器(ZO oracle)寻找稀疏性。为了应对上述挑战,我们从免训练剪枝方法(即初始化剪枝)中汲取灵感。在这个系列中,梯度信号保存(gradient signal preservation, GraSP)是一种通过随机初始化网络的梯度流来识别 DL 的稀疏性先验的方法。虽然 GraSP 仍然需要 FO 和二阶导数信息,但我们可以只使用函数查询来估计这些导数,从而设计出 GraSP 的 ZO 版本(称为 ZO-GraSP)。

具体来说,GraSP 为模型初始化 θ 分配剪枝分数(用 S 表示),这些分数反映了剪枝权重后梯度流的变化:
S = − θ ⊙ ( H g ) , H = ∇ θ , θ 2 ℓ ( θ ) , g = ∇ θ ℓ ( θ ) \mathbf{S}=-\boldsymbol{\theta} \odot(\mathbf{H g}), \mathbf{H}=\nabla_{\boldsymbol{\theta}, \boldsymbol{\theta}}^{2} \ell(\boldsymbol{\theta}), \mathbf{g}=\nabla_{\boldsymbol{\theta}} \ell(\boldsymbol{\theta}) S=θ(Hg),H=θ,θ2(θ),g=θ(θ)
其中, ℓ \ell 是模型训练的损失函数, ⨀ \bigodot 表示逐元素相乘, H g \mathbf{Hg} Hg 表示Hessian-gradient 乘积。利用 ZO 学习范式,我们可以先将 Hessian-gradient 乘积近似为两个梯度(即 ▽ \bigtriangledown θ ℓ ( θ + μ g ) \ell(\mathbf{θ}+\mu\mathbf{g}) (θ+μg) ▽ \bigtriangledown θ ℓ ( θ ) \ell(\mathbf{θ}) (θ))之间的有限差分,方向为 g \mathbf{g} g,平滑参数为 μ μ μ
E ( H g ) = E ( ▽ θ , θ 2 ℓ ( θ ) ⋅ g ) = E ( ▽ θ ℓ ( θ + μ g ) − ▽ θ ℓ ( θ ) μ g T ⋅ g ) = E ( ▽ θ ℓ ( θ + μ g ) − ▽ θ ℓ ( θ ) μ ) \mathbb{E}(\mathbf{Hg}) =\mathbb{E}(\bigtriangledown_{\theta,\theta}^{2}\ell(\theta)·\mathbf{g}) = \mathbb{E}(\frac{\bigtriangledown_{\theta}\ell(\theta+\mu\mathbf{g})-\bigtriangledown_{\theta}\ell(\theta)}{\mu}\mathbf{g}^{T}·\mathbf{g}) = \mathbb{E}(\frac{\bigtriangledown_{\theta}\ell(\theta+\mu\mathbf{g})-\bigtriangledown_{\theta}\ell(\theta)}{\mu}) E(Hg)=E(θ,θ2(θ)g)=E(μθ(θ+μg)θ(θ)gTg)=E(μθ(θ+μg)θ(θ))
其次,我们将 FO 梯度 ▽ \bigtriangledown θ ℓ \ell 替换为 ZO 梯度估计值 ▽ ^ \hat{\bigtriangledown} ^θ ℓ \ell 。将两者结合,就得到了 ZO-GraSP:
S ^ : = − θ ⊙ ∇ ^ θ ℓ ( θ + μ g ^ ) − ∇ ^ θ ℓ ( θ ) μ . \hat{\mathbf{S}}:=-\theta\odot\frac{\hat{\nabla}_\theta\ell(\theta+\mu\hat{\mathbf{g}})-\hat{\nabla}_\theta\ell(\theta)}{\mu}. S^:=θμ^θ(θ+μg^)^θ(θ).

S ^ \hat{\mathbf{S}} S^ 中保存对于每个权重的重要性(或者权重的分数),对其进行排序,然后去除 S ^ \hat{\mathbf{S}} S^ 中权重重要性前p%小的,来得到最终的剪枝掩码。如果剪枝掩码中的某个元素为1,则表示对应的参数应该保留;如果为0,则表示应该剪枝该参数。
在实践中,我们发现通过对 S ^ \hat{\mathbf{S}} S^ 中的条目进行排序而确定的剪枝掩码对 ZO 梯度估计误差具有弹性。因此,我们利用查询次数相对较少(q < d)的 RGE 来实现 ZO-GraSP。 这在不影响剪枝性能的情况下降低了函数查询成本;见表 2 和表 3。A2 和 Tab. 经验证明见表 A2 和表 A3。我们的研究结果表明,ZO-GraSP 的性能明显优于随机剪枝,其剪枝模型的准确性可与 FO-GraSP 相媲美。

我们使用查询数 q = 192(小于模型大小 d)的 RGE 实现了 ZO-GraSP,并将其性能与随机剪枝和 FO-GraSP 进行了比较。所有 GraSP 变体都在随机初始化的模型参数 (θ) 上执行。表 A2 和表 A3 分别列出了(CIFAR-10、ResNet-20)和(CIFAR-10、ResNet-18)数据-模型设置中的剪枝性能与模型剪枝率的对比。这里通过测量 CIFAR-10 上稀疏模型的测试精度来评估剪枝性能。为了评估模型剪枝的影响,我们使用 FO SGD 作为稀疏模型训练的优化方法。正如我们所看到的,我们提出的 ZO-GraSP 方法在各种剪枝比例下的测试精度与 FO-GraSP 相当,并且明显优于随机剪枝。

表 2:不同模型剪枝方法在(CIFAR-10、ResNet-20)上的性能比较

在这里插入图片描述

表 3:不同模型剪枝方法在(CIFAR-10、ResNet-18)上的性能比较

在这里插入图片描述

2. Sparse-CGE(将稀疏性与 CGE 相结合)

将稀疏性与 CGE 相结合。由于 CGE (1) 中的有限差分可通过权重分解,因此很容易将稀疏性纳入 CGE。为了保留训练密集模型的精度优势,我们在 CGE 中加入梯度稀疏性,而不是权重稀疏性。这可以确保我们在权重空间中训练一个密集模型,而不是训练一个稀疏模型,在稀疏模型中直接应用由 ZO-GraSP 确定的稀疏性。 S Z O − G r a S P S_{ZO-GraSP} SZOGraSP 成为 ZO-GraSP 发现的未剪枝模型权重坐标集。稀疏性诱导(sparsity-induced CGE)的 CGE 计算公式为:
∇ ^ θ ℓ ( θ ) = ∑ i ∈ S Z O − G r a S P [ ℓ ( θ + μ e i ) − ℓ ( θ ) μ e i ] . (Sparse-CGE) \hat{\nabla}_\theta\ell(\theta)=\sum_{i\in\mathcal{S}_{\mathrm{ZO-GraSP}}}\left[\frac{\ell(\theta+\mu\mathbf{e}_i)-\ell(\theta)}{\mu}\mathbf{e}_i\right].\quad\text{(Sparse-CGE)} ^θ(θ)=iSZOGraSP[μ(θ+μei)(θ)ei].(Sparse-CGE)
显然,Sparse-CGE(稀疏-CGE) 将原始 CGE 的查询复杂度从 O ( d ) O(d) O(d) 降为 O ( ∣ S Z O − G r a S P ∣ ) O(|S_{ZO-GraSP}|) O(SZOGraSP),其中 ∣ S Z O − G r a S P ∣ |S_{ZO-GraSP}| SZOGraSP 表示坐标集 S Z O − G r a S P S_{ZO-GraSP} SZOGraSP 的元素个数。

只用剪枝后的权重估计梯度,剪枝的权重并不是去掉,而是不进行梯度估计、权重的更新,只参与模型的输出。

将 Sparse-CGE 集成到 ZO 优化中可能有两种直接方法。 M 1 \mathcal{M}1 M1 :这种方法是交替使用 ZO-GraSP 和基于 CGE 的 ZO 优化。每次迭代时, S Z O − G r a S P S_{ZO-GraSP} SZOGraSP 都会根据上一次迭代的模型权重进行更新,然后用于构建 Sparse-CGE,以便在当前迭代中更新θ。 M 2 \mathcal{M}2 M2 :这种方法是在 ZO 训练之前进行剪枝。也就是说,在模型初始化时进行 ZO-GraSP,然后将得到的 S Z O − G r a S P S_{ZO-GraSP} SZOGraSP 应用于 Sparse-CGE ,并在训练过程中保持固定。

M 1 \mathcal{M}1 M1 M 2 \mathcal{M}2 M2 都有局限性。 M 1 \mathcal{M}1 M1 需要反复调用 ZO-GraSP 来更新 S Z O − G r a S P S_{ZO-GraSP} SZOGraSP,导致 ZO 模型训练的查询成本较高。 M 2 \mathcal{M}2 M2 通过在训练前执行 ZO-GraSP 来解决查询复杂性问题,但它只能在训练后生成一个较小的模型。众所周知,重剪枝模型会导致性能下降(例如表 2 中的 95% 稀疏模型)。

因此,由于需要平衡查询效率和训练效果,我们提出了面向 ZO-GraSP 的动态稀疏性模式(ZO-GraSP-oriented dynamic sparsity pattern),它利用 ZO-GraSP 来确定层剪枝率 (layer-wise pruning ratios,LPR),从而捕捉 DNN 的可压缩性。具体来说,我们在 ZO 训练之前从 ZO-GraSP 中获取随机初始化权重的 LPRs,这与 M 2 \mathcal{M}2 M2 一样具有查询效率。然而,与 M 2 \mathcal{M}2 M2 不同的是,只有当这些 LPR 得到遵守时 (经过ZO-GraSP后,该层仍然未达到先前确定LPRs),LPR 才允许在 θ 中随机排列稀疏梯度的位置。(目前理解:只有不满足LPR,才会执行算法一第四行的随机得到一个 S t S_{t} St,否则不)

这使得我们可以模仿 M 1 \mathcal{M}1 M1,在模型权重更新和 S Z O − G r a S P S_{ZO-GraSP} SZOGraSP 更新之间交替进行,后者通过 LPR 引导的随机更新稀疏模式来实现。因此,ZO 优化可以使用由 LPR 指导的动态稀疏性模式迭代更新 Sparse-CGE 来训练密集模型。总之,我们的建议既有 M 2 \mathcal{M}2 M2 的查询效率,又有 M 1 \mathcal{M}1 M1 的训练效果,从而将 ZO-GraSP 均衡地集成到了 ZO 训练中。

3. 重复使用中间特征

如 (1) 所示,CGE 对每个参数进行逐元素扰动。因此,如图 1 所示,我们可以重复使用紧接扰动层之前的特征,并执行剩余的前向传递操作,而不是从输入层开始。基于 CGE 的模型训练的上述特点被称为 “特征重用”。更具体地说,假设 f θ ( x ) f_{θ}(x) fθ(x) 是一个具有参数 θ 和输入 x 的深度模型。
f θ ( x ) = f θ > l ( z l ) = f θ L ∘ f θ L − 1 ∘ ⋯ ∘ f θ l + 1 ⏟ f θ > l ( ⋅ ) ∘ f θ l ∘ ⋯ ∘ f θ 1 ( x ) ⏟ z l = f θ 1 : l ( x ) , f_{\boldsymbol{\theta}}(\mathbf{x})=f_{\boldsymbol{\theta}_{>l}}(\mathbf{z}_l)=\underbrace{f_{\boldsymbol{\theta}_L}\circ f_{\boldsymbol{\theta}_{L-1}}\circ\cdots\circ f_{\boldsymbol{\theta}_{l+1}}}_{f_{\boldsymbol{\theta}>l}(\cdot)}\circ\underbrace{f_{\boldsymbol{\theta}_l}\circ\cdots\circ f_{\boldsymbol{\theta}_1}(\mathbf{x})}_{\mathbf{z}_l=f_{\boldsymbol{\theta}_{1:l}}(\mathbf{x})}, fθ(x)=fθ>l(zl)=fθ>l() fθLfθL1fθl+1zl=fθ1:l(x) fθlfθ1(x),
其中, f θ l f_{\boldsymbol{\theta}_l} fθl 表示模型的第 l l l 层, L L L 是模型层的总数,◦ 是函数合成运算。根据 (4),如果对第(l + 1)层及其后续层(即 θ > l θ_{>l} θ>l)进行坐标式权重扰动,则可以通过保持第 l 层之前的中间特征(即 zl)不变,有效地获得与这些扰动权重相对应的模型输出。当扰动更深层(即更大的 l)的参数时,这种效率会更加明显。图 3 比较了基于 CGE 的 ZO 训练在有特征重用和无特征重用情况下的运行时间。从经验上看,有特征重用的 CGE 训练时间缩短了 2 倍。

4. 坐标式有限差分的并行化。

由于 CGE 将参数扰动与前向传递相一致,因此可以实现模型训练的并行化。如果存在 M 个进程(跨多个 GPU),我们可以根据参数坐标分解 CGE (1),得到

∇ ^ θ ℓ ( θ ) = ∑ i = 1 M g ^ i , g ^ i : = ∑ j ∈ S i [ ℓ ( θ + μ e j ) − ℓ ( θ ) μ e j ] \hat{\nabla}_{\boldsymbol{\theta}} \ell(\boldsymbol{\theta})=\sum_{i=1}^{M} \hat{\mathbf{g}}_{i}, \quad \hat{\mathbf{g}}_{i}:=\sum_{j \in \mathcal{S}_{i}}\left[\frac{\ell\left(\boldsymbol{\theta}+\mu \mathbf{e}_{j}\right)-\ell(\boldsymbol{\theta})}{\mu} \mathbf{e}_{j}\right] ^θ(θ)=i=1Mg^i,g^i:=jSi[μ(θ+μej)(θ)ej]

其中, S i S_{i} Si 是分配给进程 1 ≤ i ≤ M 1 ≤ i ≤ M 1iM 的活动参数集。这种解耦特性使我们可以通过分布式机器扩展前向传递,从而显著提高训练速度。我们将这种有限差分的并行化称为 “前向并行化”。值得注意的是,前向并行化不同于用于 FO 分布式训练的传统数据并行化(Goyal 等人,2017 年;You 等人,2018 年)。我们的方法避免了使用过大批次规模的数据并行化可能导致的性能损失,因为过大批次规模会导致优化器因缺乏随机性而陷入次优局部最小值。

四、ZO-GraSP-oriented-LPR-guided ZO training(由层剪枝率引导、面向ZO-GraSP的ZO训练)

在这里插入图片描述

算法 1:ZO-GraSP-oriented-LPR-guided ZO training算法

算法 1 展示了实现面向 ZO-GraSP-LPR 引导的 ZO 训练的算法步骤。初始化时,算法通过应用我们提出的 ZO-GraSP 获取未剪枝模型权重的坐标集 S Z O − G r a S P S_{ZO-GraSP} SZOGraSP。随后,算法会计算由 S Z O − G r a S P S_{ZO-GraSP} SZOGraSP 得出的分层剪枝率,用 S l a y e r \mathcal{S}_{layer} Slayer 表示。然后利用 S l a y e r \mathcal{S}_{layer} Slayer 估算(Sparse-CGE) ∇ ^ θ ℓ ( θ ) \hat{\nabla}_\theta\ell(\theta) ^θ(θ)。最后,通过在当前权重 θ 中,将估计的稀疏梯度减去来更新模型权重。
在这里插入图片描述

图 3:SR 引导训练在(CIFAR-10,ResNet20)上的性能(测试准确率)与剪枝率的对比。

图 3 展示了 SR 引导训练优于另外两种替代方法,即基于 ZO-GraSP 和稀疏训练之间替代优化的 M1,以及基于模型训练前剪枝的 M2。为了检验 SR 将 ZO-GraSP 与模型训练相结合的效果,我们比较了 FO 训练机制(即使用 FO 方法训练得到的稀疏模型)中的剪枝性能。我们可以看到,SR 引导的训练始终优于 M1 和 M2 方法,随着剪枝率的增加,准确率的提高也越来越明显。随着剪枝率的增加,与原始密集模型的性能差距也在扩大。不过,与 FO 基准相比,我们的方法取得了最小的性能差距。

五、DeepZero 框架

我们引入了 DeepZero 框架,这是一种旨在利用 ZO 优化训练模型的新方法。该框架吸收了三个关键特征:实现以 ZO-GraSP 为导向的 LPR 引导的 ZO 训练、特征重用以及采用并行计算技术。DeepZero 框架的这些组成部分在算法 2 中进行了阐述。
在这里插入图片描述

六、实验

1、图片分类任务

1.1 实验设置。

本研究的重点是在 CIFAR-10 上训练 ResNet-20(参数为 270K)进行图像分类。我们采用 SGD(随机梯度下降)作为 FO 训练方法,权重衰减为 5 × 10-4,动量为 0.9。学习率为 0.1,由余弦衰减调度器控制。在 ZO 训练方案中,我们用 (Sparse-CGE) 替换 FO 梯度,平滑参数为 μ = 5 × 10-3。在实施 ZO-GraSP (3) 时,我们设置查询预算 q = 192,并使用与 CGE 相同的 μ。除非另有说明,权重稀疏率选为 90%,具体稀疏模式由 SR(智能比率)决定。在实施 DeepZero(算法 2)时,我们选择了 T = 50 的历时数。如无特殊说明,实验在 4 台英伟达 V100 GPU 上运行。我们将 DeepZero 与 FO 训练和两种 SOTA 无 BP 训练进行了比较: Pattern Search(Chiang 等人,2023 年)和 Input-Weight Alignment(Align-ada)(Boopathy & Fiete,2022 年)。

1.2 与 FO 训练的比较。

在图 4 中,我们比较了 DeepZero 训练的 ResNet-20 与 FO 配方训练的两个变体的准确性:
(1)通过 FO 训练获得的密集 ResNet-20;
(2)在 FO-GraSP 稀疏模式下通过 FO 训练获得的稀疏 ResNet-20。
我们可以看到,在 80% 到 99% 的稀疏度范围内,(1) 和使用 DeepZero 训练的模型之间仍然存在精度差距。这凸显了在深度模型训练中进行 ZO 优化所面临的挑战,即需要实现高稀疏性,以减少(Sparse-CGE)中的模型查询次数,从而扩展到 ResNet-20。值得注意的是,在 90% 到 99% 的稀疏度范围内,DeepZero 的表现优于 (2),这展示了 DeepZero 中梯度稀疏性与权重稀疏性(即直接训练稀疏模型)相比的优越性。我们提供了 DeepZero 的训练轨迹(图 4)、性能与数据批量设置的对比(图 5)以及训练时间与 GPU 数量的对比(图 6)。
在这里插入图片描述

图 4:DeepZero 与 FO 训练基线在 CIFAR-10 的 ResNet-20 上的比较。我们报告了每个实验 3 次独立运行的平均值和标准偏差。

在这里插入图片描述

图 5:DeepZero 和模式搜索在不同数据集大小的 CIFAR-10 ResNet-20 上的比较。所有实验均在单个英伟达 A6000 GPU 上完成。

在这里插入图片描述

图 6:使用不同校正方法对 5 次测试模拟进行校正后的低保真模拟与高保真模拟的平均 MAE 比较。误差条为 5 次测试模拟的 MAE 方差。

1.3与模式搜索的比较。

在图5中,我们比较了DeepZero与模式搜索(Chiang等人,2023年)在深度模型训练方面的准确性和运行时间成本。已有研究表明,在低样本情况下,Pattern Search 能达到与 SGD 相当的测试精度,但随着数据样本数量的增加,其有效性仍不明确。为了研究这个问题,我们使用 DeepZero(梯度稀疏度为 90%)和模式搜索在 ResNet-20 和 CIFAR-10 上进行了实验,数据集大小从 100 到 32K 不等。我们将两种方法的总历元数固定为 40,以确保比较的公平性。结果表明,除 100 个数据集外,DeepZero 在所有数据集中的表现都优于模式搜索。此外,随着数据集规模的增大,DeepZero 相对于模式搜索的改进(准确率和效率)也在急剧扩大,这表明 DeepZero 具有卓越的可扩展性。

1.4与输入权重配准的比较

表 1 中,我们比较了 DeepZero 和 Align-ada 方法(Boopathy 和 Fiete,2022 年)在 CIFAR-10 上训练无 BP 神经网络的效果。虽然存在其他无 BP 训练方法(Lillicrap 等人,2014 年;Nøkland,2016 年;Baydin 等人,2022 年),但 Align-ada 脱颖而出,因为它适用于训练宽神经网络,并在 CIFAR-10 上实现了最先进的性能,例如,超越了反馈对齐(FA)(Lillicrap 等人,2014 年)和直接反馈对齐(DFA)(Nøkland,2016 年)等方法。为确保公平性,我们将 DeepZero 应用于(Boopathy & Fiete,2022 年)中的 8 层 CNN 架构,并在不同模型宽度下与 Align-ada 进行性能比较。我们注意到,512 宽度的网络是使用 Align-ada 训练的最宽模型。相比之下,我们用 DeepZero 训练的最大网络宽度为 64。我们的结果清楚地表明,与 Align-ada 相比,即使使用更窄的网络进行训练,DeepZero 的测试准确率也明显更高。这表明,DeepZero 性能的提高得益于其固有的优化优势,而不是仅仅依赖于使用更宽的网络。最后,值得注意的是,Align-ada 和其他无 BP 方法依赖于对计算图的访问,这使得它们高效但不适合黑盒应用。

在这里插入图片描述

表 1:DeepZero 与无 BP 方法在不同宽度的 8 层 CNN 上的性能对比。

2、其他黑盒应用

黑盒防御对抗性攻击。当 ML 模型的所有者不愿意与防御者分享模型细节以对抗对抗性攻击时,就会出现黑箱防御问题。这对现有的鲁棒性增强算法提出了挑战,这些算法使用 FO 训练直接鲁棒化白盒 ML 模型。为了克服这一挑战,引入了 ZO 优化,给定一个基于查询的黑盒图像分类器来设计白盒防御操作。为了解决 ZO 带来的维度挑战,ZO-AE-DS在白盒去噪平滑(denoised smoothing,DS)防御操作(待学习)和黑盒图像分类器之间引入了一个自动编码器(AE)。通过将 AE 的编码器与黑盒模块合并,ZO 优化的维度得以降低;示意图概览见附录 G 中的图 A7,详情见。ZO-AE-DS 的缺点是由于使用了 AE,对高分辨率数据集(如 ImageNet)的扩展性较差,从而影响了黑盒图像分类器输入图像的保真度,导致防御性能较差。相比之下,DeepZero 可以直接学习与黑盒分类器集成的防御操作,而不需要 AE。表 2 比较了 DeepZero 和 DeepZero 的防御性能。表 2 比较了 DeepZero 与 FO 防御(DS)和 ZO-AE-DS 的防御性能。为确保公平比较,我们每次梯度估计都使用相同数量的查询(1152 次)。按照的方法,我们选择了 ImageNet 的 10 个分类子集作为训练集。AE 和黑盒分类器分别是 DnCNN和 ResNet-50。按照的设置,通过认证准确率(CA)来评估防御性能。CA 使用基于 ℓ2 规范的输入扰动半径 r 来定义,r 越大表示对抗威胁越强。更多实验细节请参见附录 G。表 2 值得注意的是,当 r = 0 时,CA 等同于标准测试精度。这表明,DeepZero 不仅在对抗鲁棒性方面优于 ZO-AE-DS,而且在总体泛化性能方面也优于 ZO-AE-DS。

在这里插入图片描述

表 2:使用基于 FO DS 的防御(FO-DS)、ZO-AE-DS和我们提出的 DeepZero,在 ImageNet-10 上基于ℓ2-norm的扰动半径的 CA(%)对比。

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值