深度迁移学习:最简单的深度迁移——Finetune(微调)

Hi,大家好,我是半亩花海。在上节说明了迁移学习的第三类方法:子空间学习之后,本文主要将介绍深度迁移学习**------** 最简单的深度迁移--Finetune**(微调)**。Finetune利用预训练网络针对新任务进行调整,避免了从头训练网络的高成本。文章阐述了Finetune的必要性:预训练网络具有强大的泛化能力,但需要针对特定任务进行调整。Finetune通过固定网络前层参数、微调后层参数,显著提升训练效率和模型性能。此外,Finetune还可用于特征提取,替代传统手工特征方法。实验证明,基于深度网络的特征提取在图像分类等任务上具有显著优势。


目录

一、为什么需要已经训练好的网络?

[二、为什么需要 finetune?--以猫狗分类为例(预训练-微调)](#二、为什么需要 finetune?--以猫狗分类为例(预训练-微调))

[三、Finetune 的优势](#三、Finetune 的优势)

[四、Finetune 的扩展](#四、Finetune 的扩展)

[DeCAF 特征提取](#DeCAF 特征提取)

五、参考资料


深度网络的 finetune 也许是最简单的深度网络迁移方法。Finetune,也叫微调、finetuning,是深度学习中的一个重要概念。简而言之,finetune 就是利用别人已经训练好的网络,针对自己的任务再进行调整。从这个意思上看,我们不难理解 finetune 是迁移学习的一部分。

一、为什么需要已经训练好的网络?

在实际的应用中,我们通常不会针对一个新任务,就去从头开始训练一个神经网络。这样的操作显然是非常耗时的。尤其是,我们的训练数据不可能像 ImageNet 那么大,可以训练出泛化能力足够强的深度神经网络。即使有如此之多的训练数据,我们从头开始训练,其代价也是不可承受的。

那么怎么办呢?迁移学习告诉我们,利用之前已经训练好的模型,将它很好地迁移到自己的任务上即可。


二、为什么需要 finetune?--以猫狗分类为例预训练-微调

因为别人训练好的模型,可能并不是完全适用于我们自己的任务。可能别人的训练数据和我们的数据之间不服从同一个分布;可能别人的网络能做比我们的任务更多的事情;可能别人的网络比较复杂,我们的任务比较简单。

++举一个例子来说,假如我们想训练一个猫狗图像二分类 的神经网络,那么很有参考价值的就是在 CIFAR-100 上训练好的神经网络++ (预训练-微调)。但是 CIFAR-100 有 100 个类别,我们只需要 2 个类别。此时,就需要针对我们自己的任务,固定原始网络的相关层,修改网络的输出层, 以使结果更符合我们的需要。

下图展示了一个简单的 finetune 过程。从图中我们可以看到,我们采用的预训练好的网络非常复杂,如果直接拿来从头开始训练,则时间成本会非常高昂。我们可以将此网络进行改造,固定前面若干层的参数,只针对我们的任务,微调后面若干层。这样,网络训练速度会极大地加快,而且对提高我们任务的表现也具有很大的促进作用。
一个简单的 finetune 示意图


三、Finetune 的优势

Finetune 的优势是显然的,包括:

  • 不需要针对新任务从头开始训练网络,节省了时间成本;
  • 预训练好的模型通常都是在大数据集上进行的,无形中扩充了我们的训练数据,使得模型更鲁棒、泛化能力更好;
  • Finetune 实现简单,使得我们只关注自己的任务即可。

四、Finetune 的扩展

在实际应用中,通常几乎没有人会针对自己的新任务从头开始训练一个神经网络。Finetune 是一个理想的选择。

Finetune 并不只是针对深度神经网络有促进作用,对传统的非深度学习也有很好的效果。例如,Finetune 对传统的人工提取特征方法就进行了很好的替代。我们可以使用深度网络对原始数据进行训练,依赖网络提取出更丰富更有表现力的特征。然后,将这些特征作为传统机器学习方法的输入。这样的好处是显然的:既避免了繁复的手工特征提取,又能自动地提取出更有表现力的特征。

DeCAF 特征提取:

比如,++图像领域的研究,一直是以 SIFT、SURF 等传统特征为依据++ 的,直到 2014 年,伯克利的研究人员提出了DeCAF 特征提取方法 [Donahue et al., 2014],直接使用深度卷积神经网络 进行特征提取。实验结果表明,该特征提取方法对比传统的图像特征,在精度上有着无可匹敌的优势。另外,也有研究人员用卷积神经网络提取的特征作为 SVM 分类器的输入 [Razavian et al., 2014],显著提升了图像分类的精度。

DeCAF, Deep Convolutional Activation Feature,是一种基于预训练深度卷积神经网络(CNN)的图像特征提取方法,主要用于将图像块转换为高维特征向量,以供后续分类或检测任务使用。该方法的核心思想是利用在大规模图像数据集(如ImageNet)上预训练好的深度CNN模型(如Decaf模型),将其作为通用的特征提取器,迁移到其他特定领域的小数据集任务中,从而避免从头开始训练模型。


五、参考资料

1. 王晋东《迁移学习简明手册》(PDF版) https://www.labxing.com/files/lab_publications/615-1533737180-LiEa0mQe.pdf#page=82&zoom=100,120,392

2. 《迁移学习简明手册》发布啦! https://zhuanlan.zhihu.com/p/35352154

相关推荐
OBS插件网6 分钟前
OBS直播如何给人脸加口罩特效?OBS口罩特效插件下载安装教程
人工智能·数码相机·语音识别·产品经理
LitchiCheng11 分钟前
Mujoco 如何添加 Apriltag 并获得相机视野进行识别
人工智能·python·开源
想用offer打牌19 分钟前
一站式了解Agent Skills
人工智能·后端·ai编程
一切尽在,你来22 分钟前
LangGraph快速入门
人工智能·python·langchain·ai编程
阿杰学AI1 小时前
AI核心知识110—大语言模型之 AI Collaboration Manager(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·aigc·人机交互·ai协作管理员
SCLchuck1 小时前
人工智能-概率密度估计
人工智能·python·概率论·概率密度估计
王解1 小时前
AI Agent记忆模块进化史:从临时缓存到认知架构的设计范式
人工智能·缓存·架构
琅琊榜首20202 小时前
AI+编程实战:小说高效改编短剧全指南
人工智能
新缸中之脑2 小时前
Graphlit: AI代理的上下文图层
大数据·人工智能
用户986356545702 小时前
肝了一个周末,终于把 n8n 自动化工作流完美部署了(附私有化防坑指南)
人工智能