迁移学习花式Finetune方法大汇总

2023-10-28

如果觉得我的算法分享对你有帮助,欢迎关注我的微信公众号“圆圆的算法笔记”,更多算法笔记和世间万物的学习记录~

迁移学习广泛地应用于NLP、CV等各种领域,通过在源域数据上学习知识,再迁移到下游其他目标任务上,提升目标任务上的效果。其中,Pretrain-Finetune(预训练+精调)模式是最为常见的一种迁移学习方法。例如NLP中的预训练Bert模型,通过在下游任务上Finetune即可取得比直接使用下游数据任务从零训练的效果要好得多。

虽然在预训练模型上Finetune能取得非常好的效果,我们经常使用Finetune方法,但是你是否有想过这种Finetune方法有没有什么优化方法?如何Finetune对最终效果好坏有非常大的影响。例如,在Finetune时我们会考虑要迁移预训练网络的哪些层,哪些层需要冻结,哪些层需要随着模型一起Finetune。实际应用时,我们往往需要尝试不同的迁移方法和Finetune策略来达到最优效果。目前学术界也有很多创新性较强的花式Finetune方法研究。本文介绍了来自2018年以来ICML、CVPR等顶会的7篇论文,总结了Finetune的四种类型招式,通过更科学的Finetune方式,提升迁移学习效果。

1. 招式1:使用Pretrain模型做约束

在Finetune阶段,如果我们可用于Finetune的目标任务数据量较少时,很有可能出现过拟合现象,严重影响模型效果;或者在Finetune过程中出现知识遗忘问题(catastrophic memory),把Pretrain阶段学到的有用知识遗忘,丢了西瓜捡了芝麻。为了解决这种问题,学术界提出利用Pretrain模型作为约束,指导Finetune的过程,让Finetune得到的模型更加鲁棒。具体包括:直接使用Pretrain模型的参数作为约束、使用Pretrain模型的中间层表示作为约束、使用Pretrain模型对不同特征注意力强度作为约束。

为了防止模型在Finetune阶段过拟合目标任务数据,或忘记了Pretrain阶段学到的有意义知识,Explicit inductive bias for transfer learning with convolutional networks(ICML 2018)这篇文章介绍了一种使用Pretrain模型参数约束Finetune过程的方法:通过添加Pretrain模型参数和Finetune模型参数之间的某种正则化损失,让Finetune后的模型参数和最开始的Pretrain模型参数更加相似。文章中尝试了多种正则化方法,通过最终的实验发现,一个简单的L2正则效果最好,即对于Pretrain模型和Finetune模型的对应层的参数计算L2距离,作为Finetune过程中损失函数的一部分,公式如下(w为Finetune参数,w0位Pretrain参数):

通过L2正则化的方法拉近Pretra

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

迁移学习花式Finetune方法大汇总 的相关文章

随机推荐