DAY 45 预训练模型

一、预训练的概念

预训练是指在目标任务训练前,先在大规模无标注或弱标注数据集上训练模型,使其学习通用特征表示的过程。

在训练中发现,准确率最开始随着epoch的增加而增加。随着循环的更新,参数在不断发生更新。

所以参数的初始值对训练结果有很大的影响:

  1. 如果最开始的初始值比较好,后续训练轮数就会少很多

  2. 很有可能陷入局部最优值,不同的初始值可能导致陷入不同的局部最优值

二、经典的预训练模型

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.预训练模型的训练策略

相较于之前用自己定义的模型有以下几个注意点

  1. 需要调用预训练模型和加载权重

  2. 需要resize 图片让其可以适配模型

  3. 需要修改最后的全连接层以适应数据集

其中,训练过程中,为了不破坏最开始的特征提取器的参数,最开始往往先冻结住特征提取器的参数,然后训练全连接层,大约在5-10个epoch后解冻训练。

主要做特征提取的部分叫做backbone骨干网络;负责融合提取的特征的部分叫做Featue Pyramid Network(FPN);负责输出的预测部分的叫做Head。

@浙大疏锦行

相关推荐
小oo呆25 分钟前
【学习心得】Python协程
python
信誓旦旦的程序猿41 分钟前
【Python量化实战宝典 #22】涨跌停、连板情绪手册:情绪指标构建(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
gCode Teacher 格码致知1 小时前
Pandas教学-21:subplots的使用
python·pandas·1024程序员节
2601_967980111 小时前
Python开发的顶级开源项目全景图:2025-2026年生态概览
python·机器学习·开源项目·数据科学·生态概览
benchmark_cc1 小时前
量化开发中,什么时候应该停止手动下载股票数据?
python·数据分析·pandas·量化交易·1024程序员节·股票数据·quantdash
泡茶喝茶写代码2 小时前
A股量化策略回测实战:从行情数据到绩效评估(第 15 篇):新高新低策略
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
全栈练习生2 小时前
Jev 决策模型
python·ai·1024程序员节
LMT流氓兔2 小时前
第五单元——第十二课:把脚本整理成项目
java·数据库·python·langchain·1024程序员节
光依旧2 小时前
day-trader-skill实测:让Claude Code当交易助理,纯Python+确定性+fail-closed
python·量化交易·ai agent·a股·风控·claude code·开源项目实测
CCblandy3 小时前
前缀缓存命中率不靠引擎靠排列:本机仿真 3 轮,易变字段放开头 98.0%→0.0%
人工智能·python·算法·自然语言处理·性能优化