一、预训练的概念
预训练是指在目标任务训练前,先在大规模无标注或弱标注数据集上训练模型,使其学习通用特征表示的过程。
在训练中发现,准确率最开始随着epoch的增加而增加。随着循环的更新,参数在不断发生更新。
所以参数的初始值对训练结果有很大的影响:
-
如果最开始的初始值比较好,后续训练轮数就会少很多
-
很有可能陷入局部最优值,不同的初始值可能导致陷入不同的局部最优值
二、经典的预训练模型
1.CNN架构预训练模型
CNN预训练模型是在**大规模标注图像数据集(如ImageNet,含120万张图像、1000个类别)**上完成训练的CNN模型,其核心价值在于:
- 预训练阶段:模型从海量图像中学习通用的视觉特征(从底层的边缘、纹理,到中层的形状、部件,再到高层的物体语义),无需你从零训练;
- 迁移学习阶段:将预训练模型的权重作为初始化,针对你的下游任务(如猫狗分类、缺陷检测)用少量数据微调,大幅降低训练成本、提升效果。
|-------------------------|--------------------------|-------------------------------|----------------------|
| 模型名称 | 核心特点 | 预训练优势 | 适用场景 |
| VGG16/VGG19 | 简洁的重复卷积块(3×3 小卷积),结构规整 | 特征提取稳定,权重通用易迁移 | 通用图像特征提取(入门首选) |
| ResNet50/101/152 | 引入残差连接,解决深层网络梯度消失问题 | 可训练极深网络,高级语义特征表达能力强 | 绝大多数视觉任务(工业界主流) |
| Inception v3(GoogLeNet) | 多尺度卷积(1×1、3×3、5×5)+ 降维设计 | 高效利用计算资源,捕捉多尺度特征 | 资源受限的场景 |
| MobileNet v1/v2/v3 | 深度可分离卷积,轻量化设计 | 参数量仅为 ResNet 的 1/10,速度快 | 移动端 / 嵌入式设备(如手机 APP) |
| EfficientNet | 复合缩放(深度、宽度、分辨率) | 以更少参数达到更高精度(同参数量下精度远超 ResNet) | 追求精度 + 效率的场景 |
2.Transformer类预训练模型
Transformer 是 2017 年谷歌提出的基于自注意力机制 的模型架构,彻底改变了 NLP、多模态等领域的预训练范式。与 CNN 擅长捕捉局部视觉特征不同,Transformer 天生适合处理序列数据 (文本、时序信号)和全局依赖关系(如长文本中的语义关联),其预训练模型通过 "自监督学习 + 迁移学习",成为目前 AI 领域最核心的技术底座之一。
适用于较大尺图像(如224x224),在CIFAR10上需上采样图像尺寸或调整Patch大小。
|------------------|--------------|-------------------------|-------------------------------|
| 模型 | 预训练数据集 | 核心特点 | 在CIFAR10上的适配要点 |
| ViT-Base | ImageNet-21K | 纯Transformer架构,参数量8600万 | 图像Resize至224x224,Patch大小设为4x4 |
| Swin Transformer | ImageNet-22K | 分层窗口注意力,参数量8000万+ | 需调整窗口大小适配小图像 |
| DeiT | ImageNet | 结合CNN归纳偏置,参数量2200万 | 轻量级Transformer,适合中小尺寸图像 |
3.自监督预训练模型
无需人工标注,通过 pretext task(如掩码图像重建)学习特征,适合数据稀缺场景。
|---------|--------|--------------|------------------|
| 模型 | 预训练方式 | 典型数据集 | 在CIFAR10上的优势 |
| MoCo v3 | 对比学习 | ImageNet | 无需标签即可迁移,适合无标注数据 |
| BEiT | 掩码图像建模 | ImageNet-22K | 特征语义丰富,微调时收敛更快 |
三、常见的分类预训练模型介绍
1.预训练模型的发展史
CNN 架构发展脉络
(1)早期探索(1990s-2010s):LeNet 验证 CNN 可行性,但受限于计算和数据。
(2)深度学习复兴(2012-2015):AlexNet、VGGNet、GoogLeNet 通过加深网络和结构创新突破性能。
(3)超深网络时代(2015 年后):ResNet 解决退化问题,开启残差连接范式,后续模型围绕效率(MobileNet)、特征复用(DenseNet)、多分支结构(Inception)等方向优化。
2.预训练模型的训练策略
相较于之前用自己定义的模型有以下几个注意点
-
需要调用预训练模型和加载权重
-
需要resize 图片让其可以适配模型
-
需要修改最后的全连接层以适应数据集
其中,训练过程中,为了不破坏最开始的特征提取器的参数,最开始往往先冻结住特征提取器的参数,然后训练全连接层,大约在5-10个epoch后解冻训练。
主要做特征提取的部分叫做backbone骨干网络;负责融合提取的特征的部分叫做Featue Pyramid Network(FPN);负责输出的预测部分的叫做Head。