NeurIPS 2022 | Dropout中丢掉的位置真的都有助于缓解过拟合吗?
前言
Dropout 是一种能够有效缓解过拟合的正则化技术,被广泛应用于深度神经网络当中。但是被 dropout 所丢掉的位置都有助于缓解过拟合的吗?我们被 NeurIPS 2022 接收的论文在研究了注意力中的 dropout 后发现:不同注意力位置对过拟合的作用并不一致,如果丢弃了不恰当的位置甚至会加速过拟合。基于这一发现,我们提出了一种归因驱动的 Dropout(AD-DROP),该方法选择高归因的位置进行 Drop,从而实现更具针对性的 dropout。
论文链接:
代码链接:
介绍
本文涉及两个方面的背景知识:1)Dropout;2)归因分析(Attribution)。
Dropout [1]:原始的 dropout 以一定的概率随机地从网络中选取部分神经元丢弃,使得神经元之间不能协同适应,从而提升网络的泛化性能,达到缓解过拟合的目的。在 dropout 的基础上,衍生了许多变体,如:Concrete Dropout,DropBlock,AutoDropout,Mixout,R-Drop 等。但是许多的工作都遵循了 dropout 的固有模式,即以一定的采样概率随机地采样子结构进行丢弃。 Attribution [2]:归因是一种可解释的方法,旨在将模型的输出归结到输入特征上,为输入特征分配不同的分数,以衡量不同输入特征对模型最终预测的贡献程度。常见的归因方法包括基于扰动的 [3]、基于注意力的 [4]、基于梯度的。其中基于梯度的方法又包括:梯度本身 [5]、输入乘梯度 [6] 、积分梯度 [7] 等。
虽然随机采样的 dropout 被证明是一种能够有效缓解过拟合的手段,但是现有的工作缺乏深入地探究这些所丢弃的 units 对缓解过拟合的作用。在这项工作中,我们结合自注意力归因 [8] 来尝试研究这一问题。
前置实验
自注意力归因可以为注意力位置分配不同的归因分数(代表对预测的贡献程度,通常认为归因分数越高,对预测越重要)。那么一个自然而言的想法就是:如果按归因分数的大小来丢掉注意力位置,会发生什么?因此,我们在三个数据集(MRPC/SST-2/QNLI)上做了一个实验(附录B):
1. 首先微调好一个 roberta-base 模型;
2. 然后,在验证集上,计算注意力每个位置的归因分数(注意:为了计算方便,直接采用梯度本身,而非积分梯度,实验中发现积分梯度也有一致的现象;此外,采用真实标签对应的逻辑输出进行归因。)
3. 设置不同的比例,把注意力矩阵中每一行中的位置,按“归因分数低到高/归因分数高到低”的位置通过添加 attention mask 来 drop 掉,结果如下:
在三个数据集上,观察到了几乎一致的现象:
1. 从低到高 drop,一开始模型会快速拟合标签(接近 100% 准确率),随后趋势保持平稳,最后由于丢弃掉过多的信息准确率大幅度的下降;
2. 从高到低 drop,模型性能首先快速下降,随后趋势变缓,最后由于丢弃掉过多的信息可能存在一个上升趋势。可以理解:基于真实标签的梯度归因“泄露”了标签信息,从而使得丢弃掉归因分数“低/高”的位置可以快速“拟合/远离”真实标签。这一实验恰恰说明,不同注意力位置的作用是不一致的。
上述实验是基于微调好的模型做的,为了进一步验证这两种 mask 策略对模型训练的影响,我们在训练过程中也应用了两种 mask 策略,并与原始微调和随机 Dropout 比较(具体实现细节见论文 2.2 节),结果如下:
红色线代表不施加注意力的 dropout(原始微调)。绿色线为施加随机 dropout,与红色线相比,轻微缓解了过拟合,验证集的最小 loss 更低;蓝色线代表 drop 掉 30% 低归因的位置,可以看到模型快速过拟合训练集,但是在验证集上没有收敛(loss 震荡)。
黄色线代表 drop 掉 30% 高归因的位置,与红色线和绿色线相比,这种策略显著降低了模型的收敛速度,同时验证集能正常收敛,但是验证集最小 loss 要略高于红色线和绿色线(存在欠拟合)。上述实验说明:
不同注意力位置对过拟合的作用并不一致,如果丢弃了不恰当的位置甚至会加速过拟合; 缓解过拟合的方向是 drop 高归因的位置,但同时需要防止产生欠拟合。
方法
3.1 AD-DROP
基于上述发现,我们设计了一种新的 dropout 模式:AD-DROP(Attribution-Driven Dropout)。AD-DROP 与原生 dropout 的区别如下:
原始 dropout 在每一行中随机的丢弃位置,高归因与低归因位置的丢弃率相同;而 AD-DROP 中,首先选定一个高归因分数的候选区域,然后从中再随机的 drop(施加随机的好处在于,不至于丢弃全部的高归因信息,导致缺乏必要的预测信息无法收敛)。AD-DROP 关注于 drop 高归因的区域,以达到缓解过拟合的目的,实现过程包含如下四个步骤:
在每一个 batch 中,对于输入 x ,首先经过第一次前向计算,得到模型的预测输出,将预测概率最大的类别作为伪标签。计算伪标签对应的逻辑输出对每一个注意力矩阵的梯度/积分梯度,得到归因矩阵 。 在归因矩阵中,每一行选取归因分数最高的 p 部分(比例值)作为候选丢弃区域;然后以概率为q 的随机 dropout 应用于候选丢弃区域,产生 mask 矩阵。进行第二次前向计算,此时加入得到的 mask 矩阵,计算出 loss 用于最终的参数更新。
这里采用伪标签进行归因的原因有两点:1)如果采用真实标签归因会泄露标签信息,并导致训练和推理不一致;2)AD-DROP 的目的是抑制模型对当前预测而言高归因位置的依赖,可能能够纠正预测错误的样本。
3.2 交叉微调
我们进一步设计了一种交叉微调(Cross-tuning)策略,以防止在应用 AD-DROP 时,高归因的位置被过度丢弃,从而提升训练的稳定性。交叉微调策略即交替执行原始的微调 epoch 与带有 AD-DROP 的 epoch。算法如下:
实验和分析
我们主要在 GLUE 基准上验证了 AD-DROP 的有效性,并做了许多的消融分析实验。
总体实验结果:在验证集上,AD-DROP 在 BERT 和 RoBERTa 上平均提升了 1.98 和 1.29 个点;在测试集上,AD-DROP 在 BERT 和 RoBERTa 上平均提升了 0.87 和 0.62 个点。
消融实验:对比了不同算归因的方式(梯度 GA、积分梯度 IGA、注意力 AA、随机 RA),发现梯度相关的归因要好于其他的方式;此外伪标签要好于真实标签;交叉微调要好于不加交叉微调。
交叉微调的影响:在两个关键参数 p 和q 的搜索范围 [0.1,0.9] 内,观察验证集结果的分布情况,交叉微调可以显著提升 AD-DROP 在不同参数下的有效性。
参数的敏感性分析:在搜索范围内,将 AD-DROP 对比原始微调结果的差异归一化后进行可视化,发现 AD-DROP 在 BERT 上对引入的两个超参数不敏感,大部分情况下都能 work,而在 RoBERTa 上则需要仔细的参数搜索,猜测原因可能是 RoBERTa 进行了更有效地预训练,更不容易产生过拟合。
参考文献
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:[email protected]
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
微信扫码关注该文公众号作者