这是在 ICML 2022 上发表的一篇关于分析和缓解自动架构搜索(NAS)中权重共享带来的干扰问题的文章,论文从共享权重的梯度相似性出发分析了影响干扰程度的两种因素并提出相应的方法提高权重共享的 NAS 算法的效率与性能。
论文标题:
Analyzing and Mitigating Interference in Neural Architecture Search
论文链接:
https://proceedings.mlr.press/v162/xu22h.html
论文作者:
徐进、谭旭、宋恺涛、罗人千、冷燚冲、秦涛、刘铁岩、李建
自动架构搜索(NAS)被广泛的用来自动化地发现高性能的架构,并在众多领域取得了不错的效果。传统的 NAS 算法需要每次采样一个模型并从头训练这个架构直到收敛才能获得这个架构的性能指标。为了加快训练过程,权重共享被 Pham 等人于 2018 年提出。
简而言之,权重共享是构建一个超网络,所有架构都是这个超网络中的一个有向无环图,不同架构在公共节点上的权重被共享。因此,权重共享方法不是从头开始对每个架构进行独立训练,而是在每个训练步骤将架构采样为子模型或超网的子图,并继续对先前共享算子的权重进行训练。由于较低的计算成本和具有竞争力的性能,权重共享引起了广泛关注。
尽管众多基于权重共享的算法在近些年被提出,但是许多研究者都发现,权重共享下的子架构的排序与真实的架构的性能的排序之前的相关性比较低。即使是同一个 batch 的训练数据,共享算子也会从具有不同架构拓扑的子模型接收不同的梯度方向进行优化,这种梯度优化上的干扰会导致子模型训练不足和性能评估不准确,严重影响了子模型的排序准确性。对于包含不同类型的候选算子(例如卷积和多头注意力)和众多子模型的复杂搜索空间,这种现象尤其严重。
虽然之前的研究工作已经注意到干扰问题,并根据经验发现干扰与搜索空间大小等因素相关,但很少讨论干扰的本质原因以及如何减轻干扰。通过我们的定量分析,我们观察到对
共享算子的干扰与两个子模型之间存在的不同算子的数量呈正相关
。干扰的主要原因是架构的拓扑随着训练过程随机变化,在这种过程中,不同架构拓扑共享的算子可能在前向过程中接收来自不同输入的激活,并在后向过程中接收来自不同输出的梯度。这样,共享算子被不同的子模型向不同方向优化,造成干扰。因此,我们基于这种分析并做了实验发现,
强制算子的输入和输出与所有子模型的平均输入和输出相似,并且发现可以减少干扰 。
基于我们的分析,我们从不同的角度提出了两种缓解干扰(MAGIC)的方法:1)MAGIC-T:减少相邻采样步骤中架构拓扑的变化;2)MAGIC-A:对齐不同子模型的共享算子的输入和输出。对于 MAGIC-T,我们首先分析了常用的随机单路径 one-shot 算法(Guo et al., 2020),发现相邻采样步骤之间的梯度干扰程度与两个架构之间的不同算子的数量正相关。当搜索空间越大,随机采样的到两个架构差异性可能就越大,干扰就越严重。
为了最小化干扰,我们提出一种新的采样算法使得采样的模型能够逐渐改变共享算子的拓扑环境。采样时,我们让当前采样的子模型仅仅与上一步采样的子模型只有一个算子不同来减少相邻梯度更新时的干扰。
对于 MAGIC-A,我们选择子模型中当前训练条件下验证准确率最高的模型作为 Anchor 模型,将所有采样训练的子模型的隐藏层的输入和输出都与 Anchor 模型对齐。当任何子模型的性能优于 Anchor 模型时,就可以替换 Anchor 模型,这样不断的得到更好的 Anchor 模型。最后,MAGIC-T 和 MAGIC-A 两种方法可以一起结合 (MAGIC-AT) 进一步的减少干扰,提高性能。通过这些技术,MAGIC-AT 得以高效的且更加准确的对子架构进行排序并搜索出更加优越的架构。
▲ 图一:前向传播与反向传播示意图。多个路径在共享的算子在会发生梯度的相互干扰。
如图一 所示,在一个超网络中,我们假设选择 C 个子模型,它们仅在第 2 层不同。然后我们在第 1 层比较它们在
上的梯度。为了测量不同子模型之间
的梯度相似度,我们将梯度展平并计算它们的余弦相似度。较低的余弦相似度表示梯度差异较大,因此对共享算子的干扰更大。
梯度可能受到各种因素的影响,包括输入数据、超网的权重和选定的子模型。为了研究仅由不同子模型引起的梯度变化,我们首先使用单路径 one-shot NAS 算法(Guo et al., 2020)训练一个超网络。然后,我们冻结超网的权重,只研究在同一批训练数据下不同子模型引起的梯度。超网以 N 层的链式组织。每层包含
中的所有候选运算符,其中 C 是预定义的候选运算符的数量。子模型是从底层到顶层的单一路径。
因此,超网中有
个可能的子模型。为了研究更具挑战性的环境中的干扰,我们采用了混合 BERT 搜索空间,包括几个流行的候选算子——多头注意力(MHA)、前馈网络(FFN)和卷积(CONV),并做 BERT Pre-training 进行实验。
具体来说,为了研究同一类型算子内部和不同类型算子之间的干扰,我们使用候选算子 O={MHA6, MHA8, FFN, FFN', CONV3, CONV5},其中 MHA6 是具有 6 个头的 MHA,CONV3 是卷积核大小为 3 的卷积, FFN' 是具有稍大内部隐藏层的 FFN。为了排除不同算子参数大小的影响,我们进一步调整算子的内部隐藏大小,以确保它们具有相似的参数大小(详见附录 A)。
我们在 32 个 NVIDIA P40 GPU 上使用 batchsize= 1024 个句子训练一个 N = 12 层的超网络,直到 62,500 步。然后我们冻结超网,通过输入同一批数据(2048 个句子的 batch)来研究不同子模型的梯度。
热力图中相似度矩阵第 1 行第 3 列的 MHA6-FFN-0.50 是指两条路径之间的算子
梯度的余弦相似度为 0.50,其中一条路径的第2层的算子为 MHA6,而另一条路径是 FFN。我们可以发现 1)虽然不同的子模型只有一个算子不同,但梯度余弦相似度仍然不高,说明不同的子模型实际上可以导致它们共享的算子上的梯度方向非常不同;2)同类型算子比不同类型算子梯度干扰小(余弦相似度大),说明混合搜索空间中的干扰往往比同类型算子更严重。
对于混合搜索空间,虽然所有子模型都是在同一个任务下训练的,但不能保证算子在不同的子模型上学习相同的变换。换句话说,算子在不同子模型上的输入和输出是不同的。它促使我们明确地强制算子的输入和输出相似,以减少这种干扰。为此,我们重新训练了一个超网络。
具体的来说,在每个训练步骤,我们首先随机选择 C 个子模型并计算它们在每一层的平均输入和输出。然后,我们随机抽取一个子模型进行训练,并通过逐层计算其输入和输出之间的 MSE 损失以及平均损失来添加额外的对齐训练目标(参见论文附录)。最后,我们冻结超网络并重新计算梯度余弦相似度。
▲ 图三:(左)统计输入输出对齐情况的梯度相似性;(右) 两个子架构的算子差异的数量与其共享权重的关系
图三(b)所示,我们可以观察到,
通过将共享算子的输入和输出对齐到与平均输入和输出相似,可以减少梯度干扰 。
我们进一步将分析扩展到更一般的情况:在 m 个运算符中不同的子模型。具体来说,我们选择从第二层到第(m + 1)层不同的 C 个子模型,并获得类似的余弦相似度矩阵。然后我们计算余弦相似度矩阵的平均值,以通过改变 m 个算子来表示平均干扰。
结果如图三(c)所示,
两个子模型之间对共享算子的干扰与它们之间不同算子的数量正相关 。
它表明,在复杂搜索空间的训练过程中随机抽样子模型可能会造成严重干扰,因为它们的架构拓扑可能有很大不同。尽管分析是在冻结超网并提供同一批数据的条件下进行的,但我们关于哪些因素影响干扰的发现是普遍的,并且可以帮助开发新的方法来减轻训练期间的干扰。
根据之前的分析,两个子模型的拓扑差异越大,对共享算子的干扰越大。给定一个具有 N 层和 C 个候选算子的超网络,之前的单路径 NAS 方法平均每一次相邻采样中,改变了
个算子(N 层(算子)并且算子不同的概率是
)。
现代算法通常采用具有数十层的巨大搜索空间。对于这样的搜索空间,在相邻采样步骤之间采样的两个子模型差异很大,并且共享算子的梯度相互干扰,这不利于训练收敛。为了减轻这种干扰,我们提出 MAGIC-T 来逐渐改变拓扑环境。具体来说,在每个训练步骤中,MAGICT 通过将最后一步采样的子模型中的一个算子随机替换为另一个算子来获得当前步的采样子模型来应用前向和后向计算梯度更新。
尽管 MAGIC-T 在一次迭代中只替换了一个算子,但它并不是一个局部采样算法。事实上,随着采样步数 t 的增加,MAGIC-T 可以对整个搜索空间都进行采样,我们理论上证明了,当 t 足够大的时候,即
MAGIC-T 的节点分布和均匀采样之间的变化距离足够小。因此,MAGIC-T 可以像随机采样一样从整个搜索空间中采样不同的架构。
2.2 MAGIC-A:从输入输出对齐的角度减轻干扰
之前的分析中,我们发现使用共享算子的平均输入和输出进行对齐可以减少干扰。然而,它增加了 C 倍的计算成本,并限制了搜索算法的灵活性。因此,我们直接从搜索空间中选择一个表现最好的 anchor 模型来对齐其他子模型。同时, anchor 模型也被不断的迭代优化。采样子模型
和 anchor 模型
之间的输入和输出对齐损失定义为
其中,
表示第n层网络的输出。接着,对于采样的子模型
的训练目标是
其中,第一项 loss 表示有监督 loss(例如,掩码语言建模中的交叉熵损失)。因此对于 MAGIC-A 在每一步的优化步骤如下:
给定一个 batch 的数据和当前的 anchor 模型
,随机采样一个子模型
如果
的验证集上的分数超过 anchor 模型
,就把
设置为新的 anchor 模型
在这个过程中,anchor 模型不断被更优的子模型替代,以保证子网络始终在往更优的方向优化。
最后是实验部分。我们首先在BERT搜索空间上分析提出的方法对子模型的排序性能。
我们首先验证了 MAGIC-A 和 MAGIC-T 都能显著的提高排序性能 Kendall’Tau,且两者结合可以达到更好的效果。接着,我们分别对这两种方法做了进一步分析。
▲ 图四:MAGIC-T以及MAGIC-A的分析实验。
MAGIC-T 在每个训练步骤逐渐修改 k=1 个算子以减少干扰。我们通过改变 k 来进一步分析 MAGIC-T。根据 之前的分析,更多的拓扑变化(更大的 k)会导致对共享算子的干扰更严重。如图四(a)所示,可以清楚地观察到较大的 k 会导致较差的排序性能,这表明干扰对超网训练是不利的,我们提出的 MAGIC-A 可以有效地减轻干扰并提高超网的排名能力。
MAGIC-A 选择一个表现最好的 anchor 模型来对齐其他子模型的输入和输出以减少干扰。我们选择不同性能的 anchor 模型分析 anchor 模型对于该方法的影响。具体来说,我们在每个 epoch 结束时评估 10,000 个子模型,并选择一个 top p% 的子模型作为 anchor 模型。
然而,与表现最好的模型不同,确切的 top p% 模型差异很大,这导致在不同的时期选择不同的 anchor 模型。
在每个 epoch 中使用这样的 Anchor 模型来对齐其他模型可能会导致超网的不稳定优化。为了稳定的训练,当上一个时期中先前选择的 Anchor 模型脱离当前时期中顶级 p ± r% 模型(r=10)的范围时,我们替换 Anchor 模型。
我们用不同的 p 训练不同的超网络,并在图四(b)中呈现排名相关性以及余弦相似性结果。可以观察到,排名在前 30% 以内的合适的 anchor 模型足以对齐输入和输出并减少干扰,更好的 anchor 模型可以获得稍好的结果。然而,选择一个表现不佳的模型作为 Anchor 模型对超网训练有负面影响。
接下来,我们把 MAGIC-A 和 MAGIC-T 结合在一起,称为 MAGIC-AT,并用来进行架构搜索以验证方法搜索架构的有效性。首先我们在较大规模的 110M 的场景下的 BERT 预训练任务上进行了架构搜索并与之前的改进训练目标的算法进行了对比。如表二所示,我们的方法可以在同等模型大小下,显著提高下游 8 个不同任务的分数。
进一步的,我们在 BERT 模型压缩的设置上进行了对比,利用搜索得到的 60M 的模型做 logits 蒸馏与之前的各种工作(架构搜索以及各种蒸馏技巧)进行了对比,我们的方法搜索的架构可以得到更好的性能。
为了证明算法在不同的搜索空间的有效性,我们进一步在 MobileNet V2 搜索空间上做了架构搜索,并基于标准的 ProxylessNas 的代码在 ImageNet 任务上进行 re-training。从表四的结果上可以发到,我们在以卷积为核心的搜索空间中,同样可以搜索出更加优异的架构。
结论: 我们定量分析了神经架构搜索中共享权重干扰的原因,并开发了两种方法:MAGIC-T 和 MAGIC-A,以减轻干扰。实验验证了 MAGIC-T 和 MAGIC-A 可以分别减轻干扰并提高排序能力,将它们结合起来可以获得更好的性能。BERT 预训练的 10 个自然语言处理数据集和 MobileNet-V2 搜索空间上的 ImagetNet 分类任务在内的广泛实验表明了我们提出的方法的有效性和通用性。
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读 ,也可以是学术热点剖析 、科研心得 或竞赛经验讲解 等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品 ,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬 ,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱: hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02 )快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」 也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」 订阅我们的专栏吧