当前位置: 首页 > news >正文

深度学习之微调

 在现代深度学习领域,精细调整(Fine-tune)已经成为一种非常重要的技术手段。

 预训练模型

在介绍finetune之前,先了解一下什么是预训练模型。在搭建一个网络模型来完成一个特定的图像分类的任务时,首先,需要随机初始化参数,然后开始训练网络,不断调整直到网络的损失越来越小。在训练的过程中,一开始初始化的参数会不断变化。当结果很满意的时候,就可以将训练模型的参数保存下来,以便训练好的模型可以在下次执行类似任务时获得较好的结果。这个过程就是pre-training

之后接收到一个类似的图像分类任务。这时候,就可以直接使用之前保存下来的模型的参数作为这一任务的初始化参数,然后在训练的过程中,依据结果不断进行一些修改。这时候使用的就是一个pre-training/trained 模型,而过程就是fine-tuning

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

微调的概念

为什么使用微调?首先要了解卷积网络的核心是:

1. 浅层卷积提取基础特征,比如边缘,轮廓等;
2. 深层卷积提取抽象特征,比如整个脸型;
3. 全连接层根据特征组合进行评分分类。

而预训练模型的特点是:使用大型数据集进行训练,具备提取浅层基础特征和深层抽象特征的能力。使用微调不仅可以有效避免从头开始训练,浪费时间和资源的问题,而且可以一定程度上解决模型泛化能力低的问题。

使用微调的场合

什么情况下使用微调呢?

首先,使用的数据集与预训练模型的数据集相似,如果不太相似,比如使用的预训练模型是自然场景下的图片训练的,而目标任务是人脸识别,效果可能就没有那么好了。因为人脸的特征和自然景物的特征提取是不同的,所以相应的参数训练后也是不同的。

其次当使用自己搭建的CNN模型准确率太低的时候也可以考虑使用微调。

在实践中更常用的是,对于拥有较小的数据集,只需对那些经过大型数据集训练过的预训练模型结构进行微调,就可以达到快速训练模型的效果。

http://www.lryc.cn/news/192234.html

相关文章:

  • 【# 完美解决 node.js 模块化后报错 ReferenceError: require is not defined】
  • Jackson忽略json数组中null元素
  • 基于SpringBoot的网上订餐系统
  • 【04】基础知识:React组件实例三大核心属性 - state
  • SpringBoot 过滤器filter当中的自定义异常捕获问题
  • 实验3:左右循环LED灯
  • 行业追踪,2023-10-13
  • 【实用小工具】一键分离音频中的纯人声~
  • 如何在虚幻引擎中渲染动画?
  • Hadoop3教程(三):HDFS文件系统常用命令一览
  • 2023年中国手机回收量、手机回收价值及行业细分现状分析[图]
  • 格式转换 ▏Python 实现Word转HTML
  • 自己在家给电脑重装系统Win10教程
  • 198、RabbitMQ 的核心概念 及 工作机制概述; Exchange 类型 及 该类型对应的路由规则;了解什么是JMS。
  • 怎样理解伦敦金交易的点差
  • mysql主从工作原理、搭建
  • PHP实现赛邮【SUBMAIL】短信通知
  • 完整的电商平台后端API开发总结
  • 游戏中的随机——“动态平衡概率”算法
  • AUTOSAR汽车电子嵌入式编程精讲300篇-基于 FIFO 和优先级序列 CAN 总线系统(续)
  • C# InformativeDrawings 生成素描画
  • 关于网络协议的若干问题(一)
  • 电脑重做系统---win10
  • HTML基础入门02
  • 【C++】如何使用RapidXML读取和创建XML文件
  • 《UnityShader入门精要》学习3
  • 使用Python将MP4视频转换为图像
  • 【Vue Router 3】入门
  • SpringMVC中@RequestMapping注解的详细说明
  • Java - 发送 HTTP 请求的及其简单的方法模块 - hutool