Regularized Mask Tuning: Uncovering Hidden Knowledge in Pre-trained Vision-Language Models
先前大量在CLIP模型上的有效微调方法只考虑了通过添加额外模块学习特定任务知识,没有探索冻结的CLIP参数,本文采用掩码调整(Mask Tuning)探索视觉语言模型VLM的良好学习知识结构,并揭示其中针对特定任务领域的隐藏知识。
神经生理学领域,已经发现大脑皮层中神经元对各种视觉特征表现出不同知识。这些知识分布在不同神经元中,这些神经元具有特定功能并相互协同工作,成为神经通路(neural pathway)。当有新环境知识到来,神经元将会与过去学到的旧知识进行比较。VLM中参数作为神经元表现,负责记忆数据中知识。因此选择合适的参数作为参数路径有利于揭示下游任务的关键知识。
掩码调整
为了揭示预训练权重中隐藏的有价值知识,本文目标是识别下游任务所需的权重,称为神经通路,以促进少样本学习。本文以图像编码器的参数\theta为例进行分析。给定\theta=(\theta_{1},\ldots.\theta_{n})^{T}\in \Theta,本文目标是学习二进制掩码矩阵M^{bin}作为下游相关神经通路:
\theta_{\mathcal{M}}:=\theta\odot M^{bin}
通过仅利用预训练权重子集的参数,就足以迁移到下游域。因为上式中二值化函数是不可微的,本文算法考虑实值掩码权重M,然后通过逐元素阈值二值函数获得M^{bin}。使用\frac{\partial L_{ce}}{\partial M^{bin}}作为\frac{\partial L_{ce}}{\partial M}的粗估计器更新M。二值化掩码M^{bin}=\mathcal{I}[M>\alpha],其中\alpha是硬阈值。
尽管这种方法能够有效地识别最适合下游任务的参数旁路,但要训练的掩码参数绝对数量可能会过多。因此,至关重要的是设计一种评估参数重要性的方法,通过这些重要参数识别相关神经通路。该方法代表一种更平衡的方法,在计算和整体性能之间取得了微妙平衡。本文目标是确定可以有效迁移到下游任务的权重子集,同时保留有关模型一般信息。
为了实现这一点,本文分析了在目标数据集上训练后每层权重掩码M随CE损失的变化\Delta=\sum \gamma * \frac{\partial L_{ce}}{\partial M}。参数来于两种类型的层:MHSA层和MLP层。图3给出了11个数据集上训练掩码权重时的平均\Delta。可以看出MHSA有相对更高的\Delta。另外MHSA层是模型总参数的20%,并实现了相同的性能。这表明注意力掩码M_{a}^{bin}在微调时起到重要作用。本文称该方法为Attention Mask Tuning(AMT)。

梯度衰减正则性
SGD原理是随机选择一小部分训练实例计算损失函数的梯度。它可以帮助避免过度拟合,因为它为梯度更新添加了一定程度的随机性。这有助于防止算法陷入局部极小值,并鼓励对解空间的探索。但在少样本场景中,通常从整个数据集导出小批量数据计算梯度。该方法缺乏SGD随机性,这可能导致模型对训练数据的过拟合。
为了使本文的二值化调整方法更好地适应少样本场景,本文开发了梯度衰减正则性(Gradient Dropout Regularity)形式,以减少出现的过拟合量,并帮助模型更好地推广到新领域。将零成本预测视作为一般知识,将下游任务标签视作为特定目标知识。之后引入它们之间的KL散度以正则化梯度。为了实现梯度衰减真各项,首先定义梯度保持纯度(Gradient Retaining Purity)\mathcal{P}:
\mathcal{P}=\frac{1}{2}(1+\frac{\text{sgn}(\nabla L_{ce})(\nabla L_{ce}+\nabla L_{kl})}{|\nabla L_{ce}|+|\nabla L_{kl}|})
有两种方式描述\nabla L_{ce}和\nabla L_{kl}。首先它们符号是相同的目标特异性意味着少样本下游知识优化方向与一般知识是兼容的。因此可以安全地更新梯度\nabla L_{ce}。其次,它们符号再更新位置是不同的,这表明\nabla L_{ce}优化二值化掩码将导致预训练的一般知识的损失,这表明少样本下游知识与一般知识冲突。这种情况下,在对分类模型进行优化请款修改,在\nabla L_{kl}监督下通过随机梯度丢弃正则化优化分类模型。
\mathcal{P}=\left\{\begin{array}{ll} 1, & \text { if } \nabla \mathcal{L}_{\mathrm{ce}} \cdot \nabla \mathcal{L}_{\mathrm{kl}} \geq 0 \\ \left(1+\frac{\nabla \mathcal{L}_{\mathrm{ce}}+\nabla \mathcal{L}_{\mathrm{kl}}}{\left|\nabla \mathcal{L}_{\mathrm{ce}}+\right| \nabla \mathcal{L}_{\mathrm{kl}} \mid}\right) / 2, & \text { if } \nabla \mathcal{L}_{\mathrm{ce}}>0 \text { and } \nabla \mathcal{L}_{\mathrm{kl}}0 \end{array}\right.
定义梯度丢弃函数M_{ce}:M_{ce}=\mathcal{I}[\mathcal{P}>U]。优化过程可以描述为:
M_{\alpha}\leftarrow M_{\alpha}-\gamma*(1-l+l*\mathcal{I}[\mathcal{P}>U])*\frac{\partial L_{ce}}{\partial M_{a}^{bin}}
