预训练与微调

本文深入解析深度学习中预训练(pre-training)与微调(finetuning)的概念,阐述其在CNN领域的应用与优势,帮助读者理解如何利用预训练模型提高图像分类任务的效率与效果。

预训练(pre-training/trained)和微调(fine tuning)这两个词经常在论文中见到,今天主要按以下两点来说明。

  • 什么是预训练和微调?
  • 它俩有什么作用?

什么是预训练和微调

  • 你需要搭建一个网络模型来完成一个特定的图像分类的任务。首先,你需要随机初始化参数,然后开始训练网络,不断调整直到网络的损失越来越小。在训练的过程中,一开始初始化的参数会不断变化。当你觉得结果很满意的时候,你就可以将训练模型的参数保存下来,以便训练好的模型可以在下次执行类似任务时获得较好的结果。这个过程就是 pre-training。
  • 之后,你又接收到一个类似的图像分类的任务。这时候,你可以直接使用之前保存下来的模型的参数来作为这一任务的初始化参数,然后在训练的过程中,依据结果不断进行一些修改。这时候,你使用的就是一个 pre-trained 模型,而过程就是 fine tuning。

所以,预训练 就是指预先训练的一个模型或者指预先训练模型的过程;微调 就是指将预训练过的模型作用于自己的数据集,并使参数适应自己数据集的过程。

预训练和微调的作用

在 CNN 领域中,实际上,很少人自己从头训练一个 CNN 网络。主要原因是自己很小的概率会拥有足够大的数据集,基本是几百或者几千张,不像 ImageNet 有 120 万张图片这样的规模。拥有的数据集不够大,而又想使用很好的模型的话,很容易会造成过拟合。

所以,一般的操作都是在一个大型的数据集上(ImageNet)训练一个模型,然后使用该模型作为类似任务的初始化或者特征提取器。比如 VGG,Inception 等模型都提供了自己的训练参数,以便人们可以拿来微调。这样既节省了时间和计算资源,又能很快的达到较好的效果。

参考

[1]. What is pretraining in deep learning & how does it work?

[2]. CS231n: Convolutional Neural Networks for Visual Recognition


转载链接:https://www.jianshu.com/p/330ee6e7ceda
来源:简书
 

### Transformer 架构的预训练微调 #### 预训练方法 Transformer架构中的预训练通常涉及大规模无标注语料库的学习过程。此阶段的目标是在未标记的数据集上训练模型以获取通用的语言表示能力。常见的预训练任务包括掩码语言建模(Masked Language Modeling, MLM),即随机遮蔽输入序列的一部分单词,让模型预测这些被遮盖掉的内容;以及下一句预测(Next Sentence Prediction, NSP),用于理解两个句子间的关联性[^2]。 对于特定类型的Transformer变体如BERT (Bidirectional Encoder Representations from Transformers),会利用上述两种策略来进行有效的预训练。这种做法使得模型能够在后续的任务中更好地泛化到未曾见过的新样本上去[^3]。 ```python from transformers import BertTokenizer, BertForPreTraining import torch tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertForPreTraining.from_pretrained('bert-base-uncased') input_ids = tokenizer("Here is some text to encode", return_tensors='pt')['input_ids'] outputs = model(input_ids) prediction_logits, seq_relationship_logits = outputs.prediction_logits, outputs.seq_relationship_logits ``` #### 微调方法 当完成预训练之后,为了适应具体的下游任务,则需对已有的参数进行调整——这就是所谓的“微调”。在这个过程中,开发者可以根据具体应用场景的需求,在相对较小规模但带有标签的信息集合上来继续优化网络权重。例如,在情感分类或者命名实体识别这样的监督学习环境中,只需少量迭代即可获得不错的效果改进[^4]。 值得注意的是,由于经过充分预训练后的Transformer已经具备了一定程度上的特征提取能力和上下文感知力,因此即使只用有限数量的例子也能快速收敛至较优解附近。这不仅提高了开发效率,同时也降低了数据收集成本和技术门槛。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值