
Adaptive Random Feature Regularization on Fine-tuning Deep Neural Networks
研究背景
随着深度学习的发展,微调(fine-tuning)已成为训练深度神经网络的标准方法,特别是在目标数据集较小时。然而,微调仍面临过拟合问题,尤其是在目标数据集非常有限的情况下。为了缓解过拟合,之前的研究提出了多种方法,如维持源数据集知识或引入正则化项(如对比损失)。但这些方法要么需要辅助的源信息(如源标签或数据集),要么计算成本高昂。
研究意义
本文提出了一种简单且有效的方法,称为自适应随机特征正则化(AdaRand),旨在帮助微调模型的特征提取器自适应地改变特征向量的分布,以适应下游分类任务,而无需辅助源信息和额外的计算成本。AdaRand通过最小化特征向量与从类条件高斯分布中采样的随机参考向量之间的差距,并在微调过程中动态更新这些条件分布,以实现更好的性能。
文献综述
正则化方法:
早期方法:通过最小化源模型和目标模型之间的参数差距或中间输出差距来维持源知识。
近期方法:利用辅助源信息(如源分类标签和源数据集)来提高性能,但这些信息并不总是可用。
不依赖源信息的方法:通过修改特征向量或任务头来适应下游任务,但这些方法可能增加内存和计算成本。
随机特征正则化(RandReg):
RandReg通过ℓ2损失惩罚特征提取器,使其输出特征向量与从固定类无关先验分布(如均匀分布)中采样的随机参考向量接近。
RandReg虽然简单有效,但其性能增益依赖于预训练方法和先验选择,且在某些情况下可能导致特征范数和熵减小。
具体方法
条件先验概述:
AdaRand采用类条件高斯分布作为先验分布,以生成随机参考向量。这些向量根据输入数据的类标签进行采样,有助于模型形成紧凑的类条件特征簇。
自适应先验更新:
在微调过程中,AdaRand动态更新条件先验的参数,使其接近当前特征分布,并保持类之间的距离。这通过两个损失项实现:类内损失(ℓintra)鼓励先验参数接近当前特征均值;类间损失(ℓinter)惩罚先验参数之间的相似性。
算法流程:
初始化条件先验参数,通过预训练模型在目标数据上计算的特征均值和方差来设置。
在微调过程中,使用随机参考向量正则化特征提取器,并通过梯度下降更新模型参数和先验参数。
图1:RandReg与AdaRand的直观比较
内容:图1直观展示了RandReg与AdaRand两种方法在特征正则化上的差异。解释:RandReg:使用固定且类无关的先验分布(如均匀分布)来生成随机参考向量,并通过最小化特征向量与参考向量之间的差距来正则化特征提取器。这种方法可能导致特征集中在局部区域,不利于类间分离。AdaRand:采用自适应的类条件高斯先验分布,该分布根据训练过程中的特征统计量动态更新。通过这种方法,AdaRand能够引导特征向量形成更适合目标分类任务的分布,同时保持类间的距离,从而提高分类准确性。公式1是优化目标函数,旨在最小化分类损失(L cls(θ))和正则化损失(L reg(ϕ))的加权和。θ表示模型参数,包括特征提取器参数ϕ和分类器权重W;λ是正则化项的权重。
公式2,分类损失函数,计算模型预测fθ(x)与实际标签y之间的交叉熵损失。E(x,y)∈D表示对数据集D中的所有样本取期望。
公式3,正则化损失函数,通过计算特征提取器输出gϕ(x)与随机参考向量z之间的ℓ2距离来惩罚特征提取器。E x∈D表示对数据集D中的所有样本取期望。
表1: RandReg在不同预训练方法和先验分布下的性能
解释:该表展示了在不同预训练方法和不同先验分布下,RandReg在Cars数据集上的Top-1测试准确率。主要观察发现包括:RandReg的性能依赖于预训练方法和先验分布的选择。对于特征尺度较小的预训练模型(如Barlow Twins),均匀分布和标准高斯分布效果较好;而对于特征尺度较大的模型(如ImageNet Classification),使用预计算统计量的高斯分布效果最佳。在某些情况下(如SimCLR),RandReg的性能甚至不如没有随机性的ℓ2特征正则化(FNP)。特征熵的估计公式,用于衡量特征向量的多样性。d是特征向量的维度,N是数据集大小。该公式假设特征向量在ε球内的概率密度是常数。
交叉熵损失关于分类器权重W的梯度的范数平方。该公式表明梯度范数与特征范数∥g ϕ(x )∥22成正比,特征范数较小可能导致梯度消失,从而影响模型训练。K是类别数,f θ(x )k ]是模型对第k类的预测概率,δyk是指示函数,当y=k时为1,否则为0。
公式(6)定义了特征向量g_ϕ(x)和标签y之间的互信息I(g_ϕ(x); y)。互信息衡量了两个随机变量之间的共享信息量。其中,H(g_ϕ(x))表示特征向量的熵(多样性),H(g_ϕ(x)|y)表示在给定标签y条件下特征向量的熵(紧密度)。
图2:特征统计量在训练过程中的变化
内容:图2展示了在训练过程中,不同方法下特征向量的范数、熵、训练损失、梯度范数和互信息的变化情况。解释:特征范数(Feature Norm):RandReg导致特征范数逐渐减小,而AdaRand则能够防止这种情况,保持较大的特征范数。特征熵(Feature Entropy):RandReg同样导致特征熵减小,降低特征的多样性;AdaRand则能够保持较高的特征熵。训练损失(Training Loss):AdaRand的训练损失低于RandReg,表明其正则化效果更好。梯度范数(Gradient Norm):由于AdaRand保持较大的特征范数,其梯度范数也高于RandReg,有助于模型训练。互信息(Mutual Information):AdaRand提高了特征与标签之间的互信息,表明其学习到的特征表示更有效。公式(7)定义了条件先验分布p(z),它是一个混合高斯分布,由各个类别的条件分布p(z|y_k)和类别先验p(y_k)的加权和组成。
公式(8)表示从条件先验分布中采样参考向量z_i。对于输入x_i,根据其标签y_i从对应的高斯分布N(µ_{y_i}, σ^2_{y_i}I)中采样参考向量z_i。
公式(9)和(10)用于初始化条件先验分布的均值µ_k和方差σ^2_k。这些参数通过计算预训练模型在目标数据集上每个类别的特征向量的均值和方差来得到。N_k表示类别k的样本数量,g_ϕ^s表示预训练的特征提取器。
公式11,AdaRand方法中的自适应先验更新目标函数,由类内损失(ℓintra)和类间损失(ℓinter)组成。
公式12,类内损失,计算每个类的先验均值µk与当前批次中该类特征的运行均值¯µk之间的距离之和,并平均到所有类。D(·)是距离函数,K是类别数。
公式13,类间损失,计算每对类先验均值µk和µl之间的距离,并对所有类对取负和,再平均到所有类对。旨在最大化类间距离。
公式14,运行均值的更新公式,使用指数移动平均(EMA)方法。α是控制过去信息衰减的参数,ˆµk是当前批次中类k的特征均值。
公式15,当前批次中类k的特征均值计算公式,B_k是批次中属于类k的样本数,g ϕ(x_i)是样本x_i的特征向量。