• 迁移学习 - 微调


    什么是与训练和微调?

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

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

    网络架构

    一个神经网络一般可以分为两块

    • 特征抽取将原始像素变成容易线性分割的特征
    • 线性分类器来做分类

    在这里插入图片描述

    微调

    在这里插入图片描述

    微调中的权重初始化

    在这里插入图片描述

    训练

    是一个目标数据集上的正常训练任务,但使用更强的正则化

    • 使用更小的学习率
    • 使用更少的数据迭代

    源数据集远复杂与目标数据,通常微调效果更好。

    重用分类器权重

    • 源数据集可能也有目标数据中的部分标号
    • 可以使用预训练好模型分类器中对应标号对应的向量来做初始化

    固定一些层

    神经网络通常学习有层次的特征表示

    • 低层次的特征更加通用
    • 高层次的特征则更跟数据集相关

    可以固定底部一些层参数,不参与更新

    • 更强的正则

    总结:

    • 微调通过使用在大数据上得到的预训练好的模型来初始化模型权重来完成提升精度
    • 预训练模型质量很重要
    • 微调通常速度更快、精度更高
  • 相关阅读:
    uniapp开发微信小程序-用户授权登录和获取手机号码
    ChatGLM 大模型炼丹手册-理论篇
    Csharp中表达式树
    微机原理与接口技术:微型计算机输入输出接口 详细笔记与例题
    基础数据结构之链表相关的一些问题
    【网络安全】通过Redis2.x实现ssh未授权访问
    「笔耕不辍」常见远程调用协议
    2023-2024-1-高级语言程序设计-简单程序设计(作业)
    Day15-Python基础学习之PySpark
    使用 mockito 进行单元测试
  • 原文地址:https://blog.csdn.net/weixin_45682053/article/details/134070035