[人工智能-深度学习-46]:FineTuning(微调)、Transfer Trainning(迁移学习)的理论基础与深度解析

2023-11-12

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/121312417


目录

第1章 前言:常见的工程诉求与特点

第2章 神经网络的网络架构

2.1 神经网络的网络架构

2.2  神经网络的三类主攻方向

第2章 什么是Fine-Tuning(微调)

2.1 什么是Fine-Tuning

2.2 决定是否需要Fine Tunning

2.2 使用Fine-Tuning常见场合

2.3 实现Fine-Tuning的方法

第3章 什么是Transfer Trainning(迁移学习)

3.1 什么是迁移学习

3.3 迁移学习的好处

3.4 没有迁移学习的弊端或困境

3.5 迁移学习在人工神经网络中的实现方法

第4章 常见可以被迁移的预定义网络

第5章 建立统一的软件工程架构



第1章 前言:常见的工程诉求与特点

(1)数据集欠缺

个人的数据集小,无法提供向ImageNet这样的大数据集,但又想利用在ImageNet上训练的模型好的模型,为我所用,即基于在一些知名的数据集上训练好的模型,在进一步的训练,以满足自己的应用场景的需求,而无需重头开始训练。

(2)分类数多变

个人特定的应用,分类的种类与Image(1000种分类)等知名数据集的分类的种类不同,我们想在已经训练好模型的基础上,做适当的重新训练,以支持我们自己的分类数目,如100分类。

(3)防止过度训练,即过拟合

在训练的过程中,能够把在测试集上准确率最好的模型给存储下来,而不是存储后来一次的训练模型,因为大多数情况下,随着训练次数的增加,有可能在某个时间点后,再训练的化,就会出现过拟合的情形。

(4)选择最优的中间结果

训练的过程是耗时的,我们期望能够把训练过程中,反馈优秀的模型给保留下来,而不是等到模型训练好在保存模型,这样防止在训练过程中出现异常,如掉电等因素,导致前面的训练功亏一篑。

(5)在前序训练模型的总体结果基础之上继续训练

有时候,我们期望训练的时候,不是从头开始,也不是完全采用官网上的预训练好的模型,而是基于我们上次训练好的模型的基础之上,进一步的训练。

(6)对训练模型的参数选择性的重新训练

有时候,需要基于已有的模型,锁定部分的网络,如图像特征发现的卷积网络,而只需要训练与特定的数据集强相关的全连接网络。这样,一方面节省了训练资源与实践,另一方面,充分利用他人或之前的训练成果。

上述问题,是大部分人工智能工程应用中涉及到的问题,他们不需要重新设计网络,不需要重新训练,他们尽可能的利用已有的训练好的网络,做最小的问题,来满足自身的工程应用。

所有上述问题,无论是因为数据集的缺乏,还是处于加速训练的考虑,我们都期望基于前序的训练的结果之上,进一步的训练,而无需没都重头开始训练。这就迁移学习和Fine Tunning要处理的问题。

第2章 神经网络的网络架构

2.1 神经网络的网络架构

要回答上述问题,我们就需要别人训练好的神经网络进行解构。

确认哪些组件或环节是异变的,重构或重新训练。

哪些组件是稳定的,可以被复用,甚至可以完全不用修改。

哪些组件需要微调。

如下是典型的人工神经网络的主要逻辑处理单元或组件。

网络的前端的卷积层,用于通用的特征提取

网络的后端的全连接层或卷积层,用于根据提取的特征进行分类

2.2  神经网络的三类主攻方向

(1)稳定的卷积层(这部分通常学者、大组织的主攻领域)

用于特征提取,对于图像的特征提取,与特定图像关系不大,可以完全复用,是属于稳定层

当然,稳定是相对于的,用图像训练的特征提取的卷积层,用于语音识别就不合适了。

全局层的网络规模是最大的,需要训练的资源也是最大的,因此,如果能够复用卷积层,实际上可以节省大量的时间和资源。

(2)异变的输入数据、输出种类、全连接层(这部分是小微组织的主攻领域)

特定的工程应用,差别最大的是这三部分,其中只有全连接层属于神经网络

这也是本文的落脚点和重点要讨论的地方!!!

(3)用于逻辑处理的数据集预处理与后处理(这部分是中等组织的主攻领域)

这部分,大多数情况是稳定的。

但这部分也是整个系统系统,优化最大的地方,是性能优化的重点领域。

有一定规模的公司,如果想要从众多公司中脱颖而出,超越大部分的对手,但有没有能力、没有精力设计出一个全新的网络,对数据的预处理和后处理,就是他们有别于其他对手重要的手段。

第2章 什么是Fine-Tuning(微调)

2.1 什么是Fine-Tuning

Fine Tuning,中文为微调。

它在保留现有网络架构参数值得基础之上,重新训练,进行微小的调整,它不涉及对网络参数进行裁剪和重构,因此,Fine-Tuning是一种整体性、全局的的、微小的改良。

Fine:杰出的;优秀的; 细粒的; 细微的;细小的; 

Tune:为…调音;调准;对…调谐;使适应;调节; 

锁定某个频道之后的微调,去掉杂音,使得声音更加的清晰,这就是Fine Tuning。

如果需要重新选择频道,就不是FineTuning了。

2.2 决定是否需要Fine Tunning

决定如何使用迁移学习的因素有很多,这是最重要的只有两个:

(1)新数据集的大小

数据集的大小,决定是否需要微调、训练具有特征提取能力的卷积层。

(2)新数据和原数据集的相似程度

新数据和原数据集的相似度,决定了是否能够共享卷积层和全连接层。

  • 新数据集与原数据集只有属于同一种类型,才能直接锁定、利用已经训练好的特征提取的卷积层。图像与语音不完全不同的数据集,就不能复用卷积层。
  • 新数据集与原数据集只有属于同分类,才能微调全连接层。各种狗的分类、各种花的分类,可以利用全局层,但不能利用全连接层,就需要重新训练全连接层。

2.2 使用Fine-Tuning常见场合

下面讨论4种常见的场合

(1)与原数据集相似度大 + 新数据集比较小

新数据集比较小,如果整体fine-tune可能会过拟合;网络规模大,训练数据集小,是导致过拟合一个重要的原因。

自身的数据集太小,不足以训练需要大量数据的、具有特征提取能力的卷积层。

适合只FineTuning全连接层

(2)与原数据集相似度大 + 新数据集比较大

因为新数据集足够大,适合fine-tune整个网络。

(3)与原数据集相似度小 + 新数据集比较大

由于数据集相似度差,原先网络的特征提取功能,不一定适合新数据集,需要训练网络。

且因为新数据集足够大,可以重新训练整个网络。

(4)与原数据集相似度小 + 新数据集比较小

原数据集不相似,需要Fine-Tuning或重新训练整个网络。

但因为新数据集小,又不足以有能力训练整个网络。

这就比较尴尬了,最好重新选择预训练网络。

2.3 实现Fine-Tuning的方法

  • 基于当前的网络架构和网络参数值,使用新的数据集对整个网络重新训练。
  • 基于当前的网络架构和网络参数值,锁定卷积层,只对全连接层进行重新训练。

第3章 什么是Transfer Trainning(迁移学习)

3.1 什么是迁移学习

Transfer Learning Definition:
Ability of a system to recognize and apply knowledge and skills learned in previous domains/tasks to novel domains/tasks.

凡是能够利用过去学习的经验为今所用,即将某个领域或任务上学习到的知识或模式应用到不同但相关、相似的领域或问题中,都称为迁移学习。

从上述定义可以看出,迁移学习相对于Fine-Tuning,是一个更加广泛的概念。

心理学中,它指的是是一种学习对另一种学习的影响,指在一种情境中获得的技能、知识或态度对另一种情境中技能、知识的获得或态度的形成的影响。

迁移:一种学习对另一种学习的影响,教育,在线教育,好看视频 (baidu.com)

迁移不仅存在于某种经验内部,而且也存在于不同的经验之间。比如,数学学习中审题技能的掌握可能会促进物理、化学等其他学科审题技能的应用;语言学习中丰富的词汇知识的掌握将促进阅读技能的提高,而阅读技能的提高又可以促进更多的词汇知识的获得。知识与技能之间相互迁移。

3.2 人工神经网络的可迁移的过去经验

  • 已经标注过的数据集(即使已经过期)
  • 已有的神经网络的架构(可以后续优化的基础)
  • 神经网络已经学习、训练获得的以后的参数(可以作为后续学习的初始条件)

3.3 迁移学习的好处

(1)对提高解决问题的能力具有直接的促进作用

在学校情境中,大部分问题解决是通过迁移来实现的,要将校内所学的知识技能用于解决校外的现实问题,同样也依赖于迁移。要培养解决问题的能力,就必须从迁移能力的培养入手。

(2)是原有经验得以概括化、系统化的有效途径,是能力与品德形成的关键环节

只有通过广泛的迁移,原有经验才能得以改造,才能够概括化、系统化,原有经验的结构才能更为完善、充实,从而建立起能稳定地调节个体活动的心理结构,即能力与品德的心理结构。迁移是习得的知识、技能与行为规范向能力与品德转化的关键环节。

(3)迁移规律对于学习者、教育工作者以及有关培训人员具有重要的指导作用

应用有效的迁移原则,学习者可以在有限的时间内学得更快、更好,并在适当的情境中主动、准确地应用原有经验,防止原有经验的惰性化。教育工作者以及有关的培训人员应用迁移规律进行教学和培训系统的设计,在课程设置、教材选择、教学方法的确定、教学活动的安排、教学成效的考核等方面利用迁移规律,可以加快教学和培训的进程。

3.4 没有迁移学习的弊端或困境

  • 采用全新的、大量数据的数据集,并为数据集打标签。
  • 设计新的网络模型,网络的效果、性能不确定性大。
  • 即使利用现有的网络模型,但从零、从头训练网络的参数,耗时、耗资源、好力
  • 即使利用现有的网络模型,但自己训练的效果还不见得好于他人预训练好的模型参数。

3.5 针对于人工神经网络,过去的经验带来的好处有:

(1)弥补新数据集的不足

  • 在新数据集缺乏的情况下,直接利用原先的数据集 + 现有的数据集,组合成新的数据集,弥补新数据集的不足。

(2)减少网络设计的时间

  • 不需要重新设计整个网络架构,可以直接利用现有的网络架构
  • 在现有网络架构上进行修改,节省了重构网络架构是的时间

(3)节省网络训练的时间

  • 通过导入已训练好的模型参数,可以节省模型在新数据集上的收敛时间
  • 通过锁定模型的部分参数,节省模型在新数据集所需要消耗的资源

(4)拓展网络的新能力

  • 通过在已有模型上,重新训练,拓展模型性能能力
  • 通过修订、替代现有模型,重新训练,拓展模型性能能力

3.5 迁移学习在人工神经网络中的实现方法

(1)导入已有的数据集

(2)导入已有的神经网络的架构

(3)导入神经网络已经训练好的模型参数

(4)锁定部分网络参数(如卷积层参数),在新的数据集上重新训练全连接网络

(5)锁定卷积层、替换全连接层,在新的数据集上重新训练全连接网络

第4章 常见可以被迁移的预定义网络

AlexNet

VGG

ResNet

SqueezeNet

DenseNet

Inception v3

GoogLeNet

ShuffleNet v2

MobileNetV2

MobileNetV3

ResNeXt

Wide ResNet

MNASNet

EfficientNet

RegNe
 

第5章 建立统一的软件工程架构

详见后续章节,与深度学习强相关.......


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/121312417

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[人工智能-深度学习-46]:FineTuning(微调)、Transfer Trainning(迁移学习)的理论基础与深度解析 的相关文章

随机推荐

  • pandas parse_dates参数

    parse dates 表示将某一列设置为 时间类型 df pd read csv comptagevelo20152 csv sep index col Date parse dates Date parse dates将Date列设置为
  • ubuntu安装 VMware Tools

    1 安装VMware Tools 2 拷贝到 tmp目录下然后解压 cp VMwareTools 10 1 6 5214329 tar gz tmp cd tmp tar xzvf VMwareTools 10 1 6 5214329 ta
  • m3u8 文件格式详解

    简介 M3U8 是 Unicode 版本的 M3U 用 UTF 8 编码 M3U 和 M3U8 文件都是苹果公司使用的 HTTP Live Streaming HLS 协议格式的基础 这种协议格式可以在 iPhone 和 Macbook 等
  • 宏碁电脑开启虚拟化技术_CPU的虚拟化技术有何作用?CPU虚拟化技术如何开启?...

    我们都知道 不管是Intel的CPU 还是AMD的CPU都是支持虚拟化技术的 只要通过搭配主板的BIOS就可以开启虚拟化技术了 因为很多主板出厂时都是默认禁用虚拟化技术的 那么估计很多用户想问 开启CPU的虚拟化技术有什么作用呢 CPU虚拟
  • 紫光同创 FPGA 开发跳坑指南(一)—— 在线 debug

    最近在调试公司一个项目的千兆以太网通信链路 项目用到紫光同创的 FPGA 正好利用空余时间记录一下紫光同创 FPGA 的调试过程 目录 添加 debug core 生成比特流与启动 debug 在线 debug 添加 debug core
  • 机器学习各类算法思路总结二(梯度下降与数据标准化)

    梯度下降 求梯度 实际上 就是求导数 函数在某一个点处求偏导 当函数是一维函数的时候 梯度就是导数 梯度下降 实际上就是在比喻下山的过程 一个人被困在了山上 要下山 从山坡往山的最低点处走 但是山中的浓雾很大 路径无法确定 所以就必须利用自
  • Qt中的QSS Subcontrol

    QSS Subcontrol 普通的 QSS 和 CSS 没什么区别 难度不大 但除此之外 想要使用好 QSS 还必须得掌握好 subcontrol 这个在 CSS 里没有 是 Qt 独有的 什么是 subcontrol 一个复杂的 wid
  • windows安装youcompleteme

    通过vim plug 安装youcompleteme 安装clangd completer python install py clangd completer msvc 16 c系补全需提供编译参数给clangd 两种种方式 安装c 开发
  • windows10安装ubuntu双系统后开机直接进入windows

    windows开机cmd 输入 bcdedit set bootmgr path EFI ubuntu grubx64 efi 重启后 即可出现引导项
  • tkinter绘制组件(39)——滑动控件

    tkinter绘制组件 39 滑动控件 引言 布局 函数结构 响应按钮框架 响应按钮的表示 文本 响应移动 完整函数代码 效果 测试代码 最终效果 github项目 pip下载 结语 引言 swipecontrol直译滑动控件 参考WinU
  • Java实验5

    1 为某研究所编写一个通用程序 用来计算每一种交通工具行驶1000公里所需的时间 已知每种交通工具的参数都是3个整数A B C的表达式 现有两种工具Car007和Plane 其中Car007的速度计算公式为A B C Plane的速度计算公
  • C++:建立文本文件,输入短文放入文件,一行最多80字

    include
  • ddr3仿真遇到的问题

    一 问题现象 一次笔者在承接前任同事项目时 需要对部分功能进行仿真 上电测试时ddr3功能正确 但是仿真时ddr3报错 提示除法操作结果无穷大 如下图 二 解决办法 因为ddr3上电测试功能正常 基本的读写操作应该没有问题 问题大概率在dd
  • Pytorch 使用不同版本的 cuda

    在使用 Pytorch 时 由于 Pytorch 和 cuda 版本的更新 可能出现程序运行时需要特定版本的 cuda 进行运行环境支持的情况 如使用特定版本的 cuda 编译 CUDAExtension 引入的拓展模块等 为了满足应用程序
  • JavaScript中的事件和DOM操作

    JavaScript中的document 在html页面加载时 浏览器会为每一个标签创造一个对象 可以通过dom操作获得这个对象 多级标签只要多进行几次dom操作 就可以访问到对象 JavaScript中有个一个DOM操作 DOM是个英文缩
  • /system/bin/sh: ./xxx: can‘t execute: Permission denied

    adb shell在Android emulator下运行可执行文件时 报错 system bin sh xxx can t execute Permission denied 以为是权限问题 执行su进入root权限 然后执行chmod
  • Spring系列(spring全家桶)

    1 Bean 的作用域 1 Singleton 一个IOC容器只有一个 2 Prototype 每次调用getBean 都会生成一个新的对象 3 request 每个http请求都会创建一个自己的bean 4 session 同一个sess
  • USB基础知识总结

    1 USB基本概念介绍 USB Universal Serial Bus 通用串行总线 是1995年英特尔和微软等公司联合倡导发起的一种新的 PC 串行通信协议 它基于通用连接技术 实现外设的简单快速连接 达到方便用户 降低成本 扩展 PC
  • 表示因果的三种图:DAG, MAG and PAG

    表示因果的三种图 DAG MAG and PAG 1 DAG 2 MAG maximal ancestral graph 1 2 1 Mixed Graphs 2 2 Ancestral Graphs 2 3 Maximal Ancestr
  • [人工智能-深度学习-46]:FineTuning(微调)、Transfer Trainning(迁移学习)的理论基础与深度解析

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 121312417 目录 第1章 前言