这是我在我的网站中截取的文章,有更多的文章欢迎来访问我自己的博客网站rn.berlinlian.cn,这里还有很多有关计算机的知识,欢迎进行留言或者来我的网站进行留言!!!
一、迁移学习的定义
**迁移学习(Transfer Learning)**是一种机器学习方法,它通过将一个预训练模型在源任务上学习到的知识迁移到目标任务上,从而提高目标任务的学习效率和性能。
通俗理解:
就像我们人类在学习新技能时会利用已有的经验一样,迁移学习让模型在面对新任务时,可以借助之前在类似任务中学到的知识,而不需要从头开始学习,大大节省了时间和资源。
二、迁移学习的过程

这幅图是关于迁移学习(Transfer Learning) 的示意图和说明。以下是详细讲解:
核心概念
迁移学习利用在一个任务(如大型图像分类)上预训练的模型,将其知识(已学习的特征表示)迁移到另一个相关但数据量可能较少的任务(如猫狗分类)上。
图示上侧:预训练模型(Pretrained Model)
-
输入数据:1 million images(100万张图像),用于监督预训练(Supervised pretraining)。
-
输出:1,000 output units(对应1000个类别,Cats,Dogs,Cars...)。
-
网络结构:包含4个隐藏层(Layer 1-4),每层有权重矩阵 W[l] 和偏置向量 bˉ[l](l=1,2,3,4)。
-
最上层(Layer 5):是原始输出层(W[5],bˉ[5]),对应1000个类别。
图示右侧:迁移学习的目标任务(Target Task)
-
新任务:分类10个类别(0,1,2,...,9),但数据量较少(例如只有100张的图像)。
-
迁移策略:
-
移除原始输出层(Layer 5),因为新任务的类别数(10)与原始任务(1000)不同。
-
替换为新的输出层(Layer 5'),其参数随机初始化,对应10个输出单元。
-
利用预训练模型的前4层(Layer 1-4)作为特征提取器,也就是说前4层的偏差和方差的值都是预训练中的值。
-
两种微调(Fine-tuning)选项
-
Option 1: Only train output layers parameters
-
冻结预训练模型的所有层(Layer 1-4),仅训练新添加的输出层(Layer 5')的参数。
-
适用场景:新数据集很小,过拟合风险高;预训练模型的特征提取能力很强。
-
-
Option 2: Train all parameters
-
解冻所有层(包括预训练层和新输出层),共同训练全部参数。
-
适用场景:新数据集较大;新任务与原始任务差异较大,需要调整特征提取器。
-
三、为什么迁移学习有效

这幅图解释了为什么迁移学习有效。
-
输入 :图像 x 被输入到神经网络中。
-
网络层级:网络的不同层级负责检测不同的特征:
-
第一层检测边缘(edges)。
-
第二层检测角点(corners)。
-
第三层检测曲线或基本形状(curves/basic shapes)。
-
-
特征图:下面的图像展示了每一层检测到的特征:
-
第一行显示了边缘检测的结果。
-
第二行显示了角点检测的结果。
-
第三行显示了曲线或基本形状检测的结果。
-
-
结论:迁移学习之所以有效,是因为不同任务可以使用相同的输入类型,并且预训练的网络已经学习到了对多种任务有用的通用特征。
四、迁移学习总结

-
下载预训练的神经网络参数:
-
这些参数是在与你的应用程序相同类型的大型数据集上预训练的(例如,图像、音频、文本)。
-
你可以使用这些预训练的参数,或者自己训练参数。
-
图中标注了"1M",可能表示预训练数据集的大小为100万。
-
-
在自己的数据上进一步训练(微调)网络:
-
使用自己的数据对预训练的网络进行进一步的训练,以适应特定的任务。
-
图中标注了"1000"和"50",可能表示进一步训练时使用的数据集大小,例如1000张图像或50个样本。
-
这是我在我的网站中截取的文章,有更多的文章欢迎来访问我自己的博客网站rn.berlinlian.cn,这里还有很多有关计算机的知识,欢迎进行留言或者来我的网站进行留言!!!