迁移学习(Transfer learning)

  • 动机
    1、将 在一个任务上训练的模型应用在一个相关的任务
    2、多用于深度学习,因为DNNs缺少数据,训练成本高
  • 方法
    1、特征提取(Word2Vec,ResNet-50 feature)
    2、在一个相关任务上训练模型并重用它
    3、在一个预训练好的模型上进行微调
  • 相关
    1、半监督学习
    2、极端情况下,zero-shot/few-shot learning
    3、多任务学习,一些标签数据适用于每个任务

预训练好的模型

  • 将一个神经网络分成:
    1、一个特征提取器(encoder),把原始像素转换成线性可分的特征
    2、一个线性分类器(decoder),做决策
    在这里插入图片描述

  • 预训练好的模型
    1、在一个大规模的数据集上训练的有泛化能力的神经网络
    2、特征提取器能够很好地泛化于:
    其他数据集(医学、卫星图片)
    其他任务(目标检测)

微调技术

  • 初始化新的模型
    1、初始化特征提取器,其中特征提取器的参数是预训练模型的参数
    2、随机初始化输出层
    3、在本地的小数据集上进行参数优化
    在这里插入图片描述
  • 以一个小的学习率训练少量步
    规范搜索空间

固定最底层

在这里插入图片描述

  • 神经网络按分级特征进行学习
    1、底层特征泛化得更好
    2、高层特征更特化于工作和数据集

模型网站

Tensorflow hub
TIMM

import timm
from torch import nn

model = timm.create_model('resnet18',pretrained=True)
model.fc = nn.Linear(model.fc.in_features,n_classes)
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐