迁移学习笔记

迁移学习通过在大规模数据集上预训练模型,然后针对特定任务进行微调,有效降低数据需求和提升模型性能。预训练模型常用于特征提取,其底层特征对多种任务具有普适性。微调时通常固定底层,只训练顶层,以保持通用特征并加速收敛。预训练模型资源丰富,如TensorFlow Hub和PyTorch模型库。微调在计算机视觉任务中广泛应用,如检测和分割。
摘要由CSDN通过智能技术生成

迁移学习

动机

  • 利用在一项任务上训练的模型执行相关任务

  • 由于DNN需要大量数据且训练成本高,因此在深度学习中很受欢迎

方法

  • 特征提取。

  • 针对相关任务培训模型并重新使用它

  • 从相关模型进行微调

相关性

  • 半监督学习

  • 在极端情况下,zero-shot/few-shot学习

  • 多任务学习,其中每个任务都有一些标记数据可用

迁移知识

  • 在普通大的数据集训练好后,把模型再迁移到自己的数据集上

预训练模型

将神经网络划分为

  • 特征提取器(编码器),将原始像素映射到线性可分特征
  • 线性分类器(解码器),进行决策

预训练模型

  • 在大规模通用数据集上训练的神经网络

  • 特征提取器可以很好的推广到其他数据集或者是任务

微调技术

  • 初始化新模型,使用预训练模型的特征提取器参数初始化特征提取器
  • 随机初始化输出层
  • 在局部最小值附近开始参数优化
  • 用一个小的学习率模型训练几个epochs,规范化搜索空间

固定底层

  • 神经网络学习到层级之间的特征
  • 低级的特征是普遍存在的,例如曲线、边、斑点
  • 高级特征更多特定于任务和数据集,例如分类标签
  • 在微调中,固定底层,从头开始训练顶层,这样保留低层的通用特性完整

预训练模型网址

import timm
from torch import nn

model = timm.create_model('resnet18', pretrained=True) 
model.fc = nn.Linear(model.fc.in_features, n_classes)
# Train model as a normal training job

应用

微调预训练模型被广泛应用于各种CV应用中

  • 检测、分割(相似的图像但不同的目标)
  • 医学、卫星图像(相同的任务,但不同的图像)

微调加速了收敛速度,可以获得相似的精度

总结

  • 大规模数据集上的训练前模型(通常是图像分类)
  • 使用针对下游任务的预训练模型来初始化权重
  • 微调可以加速收敛,可能提高精度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值