迁移学习中的模型微调(fine-tune)问题

本文介绍迁移学习,即在数据量不足时,用大数据集预训练卷积网络,再用于新数据集训练。阐述三个主要迁移学习场景,包括固定特征提取层参数、微调卷积网络等。还给出根据新数据集数量和与原始数据集相似度确定微调策略,以及限制预训练模型、用小学习率等实用建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Transfer Learning(迁移学习)

模型训练过程中,很少有人会在数据量不够充足的时候从头开始训练整个卷积网络。通常情况下,一般会使用一个大的数据集对卷积网络进行预训练(例如使用数据集ImageNet,它包含120万张图片,共1000个类别)然后将训练的模型作为预训练模型初始化卷积网络,或者将提取特征的卷积层参数固定,然后再进行训练。

三个主要迁移学习场景如下

1)固定特征提取层的卷积参数。使用ImageNet对卷积网络进行预训练,然后修改最后面的全连接层,同时固定特征提取层的卷积参数,进行新数据集的训练。

2)微调卷积网络。可以微调所有卷积层,也可以将头几层卷积层参数固定(防止过拟合),只微调高维部分的卷积。网络机构当中头几层卷积层包含更多的一般特征(日边沿检测和颜色检测),这些特征在许多任务中都非常有用,但是后面的卷积就会变得更加注重类别间的细节。(我的理解是,网络结构从数据输入层开始,头几层卷积层包含的信息更加具有普适性,而越是往后,卷积层学习到的特征就更加注重类别之间的特征);

3)预训练模型

when and how to fine-tune?

怎样确定使用那种迁移学习?尽管因素众多,但是有两个最终要的因素:a)新数据集的数量;b)是否和原始数据集相似(也就是图像内容和类别是否不同);但是请铭记于心:头几层卷积层包含的信息更加具有普适性,而越是往后,卷积层学习到的特征就更加注重类别之间的特征,下面有四个主要的策略:

1)新数据集和原始数据集分布相似,且数量较小:不适合微调卷积层,容易导致过拟合;又因分布与原数据分布相似,所以高维特征与新数据集也是相关的,所以最好只微调先行分类层(fc层);

2)新数据集和原始数据集分布相似,且数量较大:可微调整个网络;

3)新数据集和原始数据集分布不相似,且数量较小:由于数据量小最好只微调fc层,又由于不相似,所以最好不要微调后几层卷积(top layers)。但是如果是使用SVM分类器进行训练可以从网络的前几层(bottom layer)就开始微调;

4)新数据集和原始数据集分布不相似,且数量较大:直接微调整个网络;

pratical advice

1)限制预训练模型

2)学习率:使用小的学习率;

原文链接:https://cs231n.github.io/transfer-learning/#tf

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值