迁移学习 - 微调

什么是与训练和微调?

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

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

网络架构

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

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

微调

微调中的权重初始化

训练

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

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

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

重用分类器权重

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

固定一些层

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

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

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

  • 更强的正则

总结:

  • 微调通过使用在大数据上得到的预训练好的模型来初始化模型权重来完成提升精度
  • 预训练模型质量很重要
  • 微调通常速度更快、精度更高
相关推荐
胖哥真不错1 小时前
基于MATLAB的朴素贝叶斯NB的数据分类预测方法应用
人工智能·机器学习·matlab·分类·数据挖掘·数据分类预测·朴素贝叶斯nb
摸鱼仙人~2 小时前
代理式变革:AI驱动的产品开发与DevOps战略指南
运维·人工智能·devops
赵英英俊2 小时前
Pythonday17
人工智能·机器学习
Morning的呀2 小时前
Class9简洁实现
pytorch·深度学习·机器学习
Greener_Pat2 小时前
【论文蒸馏】Recent Advances in Speech Language Models: A Survey
人工智能·语言模型·audiolm
学习的学习者2 小时前
CS课程项目设计2:交互友好的五子棋游戏
人工智能·python·课程设计·五子棋游戏
semantist@语校3 小时前
如何为“地方升学导向型”语校建模?Prompt 框架下的宇都宫日建工科专门学校解析(7 / 500)
人工智能·百度·ai·语言模型·langchain·prompt·github
猫头虎3 小时前
首个直播流扩散(LSD)AI模型:MirageLSD,它可以实时把任意视频流转换成你的自定义服装风格——虚拟换装新体验
人工智能·计算机视觉·音视频·实时音视频
美狐美颜SDK开放平台3 小时前
2025年直播美颜SDK技术前瞻:AI驱动的美白滤镜功能革新
图像处理·人工智能·神经网络·美颜sdk·直播美颜sdk·视频美颜sdk
Lum11043 小时前
AI驱动数据质量优化:破局数据治理难题
人工智能