当前提示学习的问题
(a) Top:在CoOp和CoCoOp的训练过程中,基类的测试准确率先提高后下降。(b)底部:新类别的测试精度不断下降,远低于零样本CLIP。
为什么CoOp会过度拟合
根据第4-A节给出的观察结果,我们从早期和后期训练阶段( { v t } t = 1 10 \{v_t\}^{10}_{t=1} {vt}t=110和 { v t } t = 31 50 \{v_t\}^{50}_{t=31} {vt}t=3150)采样的检查点中分别计算两组特征向量( U e a r l y U^{early} Uearly和 U l a t e r U^{later} Ulater),分别表示相应的梯度流。然后,我们从相同的初始嵌入中重新运行CoOp两次,并强制两个训练过程朝向这两个梯度流的主要组件。与[45]和[47]类似,我们将每个训练步骤的梯度乘以投影矩阵 U T U ∈ R ( d × M ) × ( d × M ) U^TU \in \mathbb{R}^{(d\times M)\times (d\times M)} UTU∈R(d×M)×(d×M), CoOp的更新公式可以改写为
注意,我们在这里稍微滥用了符号,因为 v v v和 ∂ L c e ( v ) / ∂ v \partial L_{ce}(v)/\partial v ∂Lce(v)/∂v都是矢量化的。我们省略了 U U U的上标不失一般性。 α \alpha α表示学习率。事实上,梯度向量 ∂ L c e ( v ) / ∂ v \partial L_{ce}(v)/\partial v ∂Lce(v)/∂v被投影到由特征向量张成的低秩子空间上。这样,与特征向量 U U U正交方向上的分量就可以消去。因此,当我们将Eq.(6)中的U指定为 U e a r l y U^{early} Uearly和 U l a t e r U^{later} Ulater时,整个训练过程被强制向相应的方向发展。
正如图所示。 U U U分别为 U e a r l y U^{early} Uearly和 U l a t e r U^{later} Ulater时训练过程中基类测试集准确率的比较。数据集是Caltech101。过拟合现象发生 U U U是 U l a t e r U^{later} Ulater的时候,可以使用 U e a r l y U^{early} Uearly来缓解。
我们以1-shot设置下的Caltech101[40]数据集为例。如图4所示, U U U为 U e a r l y U^{early} Uearly,在整个训练过程中,测试集性能上升到最佳状态,从未下降过。相比之下,当 U U U为 U l a t e r U^{later} Ulater后,测试集性能与原始CoOp具有相似的趋势。这样的实验结果表明,CoOp在后期训练阶段确实偏向于虚假特征,从而导致过拟合现象。
评论。我们在上面的实验中强调了这样一个事实,当把 U U U指定为 U l a t e r U^{later} Ulater后,测试性能先提高后下降,而不是像原来的CoOp那样从第31个epoch到第50个epoch一直下降。这可以解释为PCA过程(参见Eq.(5))采用一组无序的嵌入检查点作为输入。因此,计算的特征向量 U l a t e r U^{later} Ulater反映学习特征方向而不是轨迹方向。如下图所示,
解决办法
子空间提示调整(SubPT)
步骤1:执行提示调优,并在每个epoch结束时保存嵌入检查点 v t v_t vt。
步骤2:计算优势特征向量 U e a r l y = { u 1 , … , u r } U^{early}=\{u_1,\ldots,u_r\} Uearly={u1,…,ur}保存的检查点个数 V e a r l y = { v 1 , … , v t e a r l y } V_{early}=\{v_1,\ldots,v_{t_{early}}\} Vearly={v1,…,vtearly}在规定的早期训练阶段(见式(5))。 t e a r l y t_{early} tearly表示早期训练阶段的最后阶段。 r r r表示特征向量的个数( r ≤ t e a r l y r\le t_{early} r≤tearly)。
步骤3:从相同的初始点重新运行提示调优,并在整个训练过程的早期将反向传播中的梯度投影到 U e a r l y U^{early} Uearly所张成的低秩子空间上(参见Eq.(6))。
其中 U = U e a r l y U=U^{early} U=Uearly。
新颖特征学习器(NFL)
由于CoOp只对训练集中的基本类别进行优化,因此不可避免地会损害对新类别的零样本能力。因此,零样本CLIP仍然可以作为规范CoOp训练的好老师。在本节中,我们提出了新颖特征学习者(NFL)来增强泛化能力,而不需要任何图像训练数据。具体来说,NFL鼓励CoOp和zero-shot CLIP在新颖类别上的文本特征相似性。
新类选择。我们考虑以下两个场景。如果在训练过程中未知新的类别名称(如少样本分类),则我们从1000个ImageNet[48]类别中随机选择 n n n个类别,与训练集中的基本类别不相交。在实验中,由于当 n n n从100增加到1000时,NFL带来的性能增益保持相似,因此为了计算方便,我们将 n n n固定为100。此外,如果在训练过程中已知新的类别名称(例如从基础到新颖的分类),那么我们直接将这些新的类别名称用于NFL。
特征相似度损失。由于零样本CLIP具有很强的泛化能力,我们提出最小化 { w i } i = C + 1 C + n \{w_i\}^{C+n}_{i=C+1} {wi}i=C+1C+n(text encoder输出的文本特征)和 { w i ∗ } i = C + 1 C + n \{w^*_i\}^{C+n}_{i=C+1} {wi∗}i=C+1C+n(zero-shot clip输出的文本特征)之间的特征相似性,以提高对新类别的学习提示嵌入的性能。我们选择余弦相似度作为特征损失函数,将NFL表示为
由于NFL不需要所有图像训练数据,我们可以方便地将其作为额外的损失项,总损失记为
文章详情链接:https://blog.csdn.net/weixin_50917576/article/details/143216055?spm=1001.2014.3001.5501
参考资料
论文下载(TCSVT, 2023)
https://arxiv.org/pdf/2211.02219
代码地址
https://github.com/machengcheng2016/Subspace-Prompt-Learning
标签:Overfitting,CoOp,Prompt,Tuning,训练,NFL,Uearly,early,类别 From: https://blog.csdn.net/weixin_50917576/article/details/143215891