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

预训练是什么?

预训练是什么?

图像领域的预训练

在介绍图像领域的预训练之前,我们首先介绍下卷积神经网络(CNN),CNN 一般用于图片分类任务,并且CNN 由多个层级结构组成,不同层学到的图像特征也不同,越浅的层学到的特征越通用(横竖撇捺),越深的层学到的特征和具体任务的关联性越强(人脸-人脸轮廓、汽车-汽车轮廓)

img

由此,当领导给我们一个任务:阿猫、阿狗、阿虎的图片各十张,然后让我们设计一个深度神经网络,通过该网络把它们三者的图片进行分类。

对于上述任务,如果我们亲手设计一个深度神经网络基本是不可能的,因为深度学习一个弱项就是在训练阶段对于数据量的需求特别大,而领导只给我们合计三十张图片,显然这是不够的。

虽然领导给我们的数据量很少,但是我们是否可以利用网上现有的大量已做好分类标注的图片,比如 ImageNet 中有 1400 万张图片,并且这些图片都已经做好了分类标注。

img

上述利用网络上现有图片的思想就是预训练的思想,具体做法就是:通过 ImageNet 数据集我们训练出一个模型 A,由于上面提到 CNN 的浅层学到的特征通用性特别强,可以对模型 A 做出一部分改进得到模型 B(两种方法):

  • 冻结:浅层参数使用模型 A 的参数,高层参数随机初始化,浅层参数一直不变,然后利用领导给出的 30 张图片训练参数

  • 微调:浅层参数使用模型 A 的参数,高层参数随机初始化,然后利用领导给出的 30 张图片训练参数,但是在这里浅层参数会随着任务的训练不断发生变化

    img

通过上述的讲解,对图像预训练做个总结(可参照上图):对于一个具有少量数据的任务 A,首先通过一个现有的大量数据搭建一个 CNN 模型 A,由于 CNN的浅层学到的特征通用性特别强,因此在搭建一个 CNN 模型 B,其中模型 B 的浅层参数使用模型 A 的浅层参数,模型 B 的高层参数随机初始化,然后通过冻结或微调的方式利用任务 A 的数据训练模型 B,模型 B 就是对应任务 A 的模型。

预训练的思想

有了图像领域预训练的引入,我们在此给出预训练的思想:任务 A 对应的模型 A 的参数不再是随机初始化的,而是通过任务 B 进行预先训练得到模型 B,然后利用模型 B 的参数对模型 A 进行初始化,再通过任务 A 的数据对模型 A 进行训练。注:模型 B 的参数是随机初始化的。

案例

要去做一个猫狗分类任务,但只给100 张猫和狗的图片去进行模型训练,然后给一张图片让分出是猫还是狗,这样的问题是无法解决的,因为只有一百张图片训练出的模型,精度是非常的低的精度很低

但是,假设这时候知道个,有人做过的通过10w 张鹅和鸭的图片做了一个模型 A

因为原理上来说,深度学习模型的浅层是通用的(都是横竖撇捺)

模型 A,10w个鹅和鸭训练的模型,有100 层的 CNN

任务 B:100 张猫和狗的图片,分类 --》 通过冻结(浅层参数不变)和微调(浅层参数会跟着任务 B 训练而改变),尝试使用 A 的前 50 /100 层去完成任务 B

总结

练而改变),尝试使用 A 的前 50 /100 层去完成任务 B

总结

一个任务 A,一个任务 B,两者极其相似,任务 A 已经训练处一个模型 A,使用模型 A 的浅层参数去训练任务 B,得到模型 B

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

相关文章:

  • 深入解析Linux Bridge:原理、架构、操作与持久化配置
  • 使用构建缓存优化 Docker 镜像构建
  • 微软搁置水下数据中心项目——项目纳蒂克相比陆地服务器故障更少
  • 国产AI算力训练大模型技术实践
  • DS:二叉树的链式存储及遍历
  • C#中File类常见用法总结
  • CesiumJS【Basic】- #007 绘制直线段以避免地球曲率的影响
  • 解决文件或文件夹无法删除问题
  • 【报错】JDBC SQL语句表名报错 解决办法
  • 【Nvidia+AI摄像头】面向机器人双目视觉相机
  • Hive数据锁问题处理
  • 使用VisualBox+Vagrant搭建Centos虚拟机环境
  • PHP框架之Yii框架
  • 数组元素去重
  • Redis 的安装与部署
  • Applied Spatial Statistics(七):Python 中的空间回归
  • 如何关闭软件开机自启,提升电脑开机速度?
  • 如何培养员工的竞争意识
  • 2025秋招NLP算法面试真题(二)-史上最全Transformer面试题:灵魂20问帮你彻底搞定Transformer
  • redis初步认识(一)
  • Android 开发必备知识点及面试题汇总(Android+Java+算法+性能优化+四大组件……
  • 安装Cmakeffmpeglibssh
  • 计算机网络实验(9):路由器的基本配置和单臂路由配置
  • ArcGIS与Excel分区汇总统计三调各地类面积!数据透视表与汇总统计!
  • QML 中宽度、高度与隐式宽度/高度的区别及其应用场景
  • 如何利用AopContext.currentProxy()解决事务管理中的方法调用问题
  • VMware虚拟机下载安装Windows Server 2016
  • springboot vue 开源 会员收银系统 (7) 收银台的完善 新增开卡 结算
  • 虚拟现实环境下的远程教育和智能评估系统(十三)
  • 深入了解软件设计模式:创新应用与优化代码结构