Background & Motivation
基于元学习、度量学习或者迁移学习的方法大多数都依赖在 base 类上训练的 pre-trained knowledge,之后的做法都大同小异:冻结 backbone,利用 Support Set 直接微调或者利用度量函数来微调网络的 Head 部分。
Motivation 是迁移学习中直接将 base 类数据训练出的网络参数迁移到 novel 类不是最优的办法,因为可能会存在“偏见”或者“阻碍”对 novel 类的检测/分类。尽管 base 类和 novel 类的数据域特征差别没有很大,但还是很可能影响精度。因此提出了 Partial Transfer(P-Transfer)部分迁移的范式。Meta-SGD 和 MAML++ 也对不同层的网络采用了不同的学习率,但都是基于 MAML。
Partial Transfer
如果在预训练模型上不冻结网络,使用 novel 类数据微调网络中的所有层,精度会下降。因此 Partial Transfer 是通过冻结或微调预训练模型中的特定层来实现转移部分知识。
目标函数是找到使迁移学习精度达到最高的参数学习率:
![]()
Vlr 是微调阶段网络中每一层的学习率,W 是网络的参数。Partial Transfer 包含三步:基类预训练、进化搜索和部分迁移:

在预训练模型上通过算法在 Support Set 上找到最佳的学习率(只找不改变模型参数),再在 backbone 上用这个学习率在 Query Set 上对模型完成迁移学习,重点在第二步进化搜索。随着网络深度的加深,其搜索空间也不断增大:

其中 m 是簇中学习率的个数,K 是网络的层数。采用的方法是遗传算法,包括繁殖、交叉和突变阶段:

这篇博客探讨了在迁移学习中,全层微调和仅微调头部可能存在的问题,提出了PartialTransfer方法,通过遗传算法寻找最优层间学习率。研究发现,对于base类和novel类差异较大的情况,部分迁移能有效提高精度。此外,还介绍了BatchNorm和GroupNorm在小样本情况下的影响,以及DropBlock在防止过拟合中的作用。LabelSmoothing作为一种正则化技术,改善了交叉熵损失函数在应对标注噪声时的表现。
最低0.47元/天 解锁文章
1206

被折叠的 条评论
为什么被折叠?



