CSCI3230 L06 · Part 5/5 ESTR: Transfer learning
课程:CSCI3230 (ESTR3108) Fundamentals of Artificial Intelligence · 2025T1 本讲:L06,第 5 部分 / 共 5 部分(主 Outline 四部分,另附 ESTR 扩展) · 原件 L06-Neural-Network-Basics-2025T1.pdf(本地课件) p.74–91 定位:旧版预习材料,尚非已取得的 2026T1 L06;ESTR尾部:复用已有表示,再适配新任务。 前后:上一份 Summary
从已有模型开始
扩展范围与动机(p.74–76)
这是旧版讲义的 ESTR3108 扩展。 p.74 单独写 ESTR3108,p.75 的 Outline 只有 Transfer learning。它不应被当作 CSCI3230 本学期已确认必需的内容;前面网络基础还没稳固时,先完成结构、反传与训练。
p.76 的问题很实际:训练大网络很费时间和数据,已有模型已经学过一些模式,能否保留有用部分,避免每个新任务都从零开始?这就是**迁移学习(transfer learning)**的动机。
p.76 Can we reuse them?
类比是已经会骑自行车的人学另一辆车,不从“怎样保持平衡”全部重学。但这只是直觉:模型没有人的理解,它复用的是参数和由这些参数计算出来的表示。迁移是否有用,要看新任务的数据与目标,不能由类比保证。
什么会迁移(p.77–79)【新】
p.77 描述从相关问题中转用知识。具体到网络,前面若干层把原始输入变成一组特征,后面层用特征做最终判断。我们可能保留前面的计算,改后面的判断。
p.77的背景具体追溯到Thorndike与Woodworth(1901)关于相似情境之间的学习迁移;直觉定义强调保留解决一个问题时得到的知识,用于不同但相关的问题。原页列出的相关领域为机器学习、AI、数据挖掘、信息工程;应用还包括计算机视觉、自然语言处理、医疗、机器人和推荐系统。这是原页的历史/范围介绍,不意味着所有这些应用使用同一种参数迁移流程。
p.78 以 CNN 为例:早层往往对边缘、方向和颜色等局部模式有响应;后层更贴近原任务的物体部件或类别。这是理解可迁移性的常见趋势,不是保证某一层“只懂边缘”、另一层“只懂猫”的严格分工。
图(p.79):AlexNet 首层过滤器的彩色小块。 元素:标注 ,表示 64 个过滤器,每个有 3 个通道、空间大小 11×11;不是 64 张训练图片。 看什么:已经学到的权重呈现方向边缘、颜色等结构,说明从训练中得到的参数并非只能作为随机数重新扔掉。
补充自取一个很小的表示例子。 设特征提取器 将原始输入 x 变成两个数 。下标 表示它内部的旧参数;我们暂时不管原始 x 有多少维,只知道输出 h 是 2 维。新任务的线性头使用 、偏置 0,分数为 。如果前两维特征对新任务仍有用,只学习这个新 w 就可能比重新学习全部特征省数据。
这里 2、1 只是演示数值,不代表可以把真实网络隐藏维度直接命名成两个可解释的人类概念。
顶层特征与冻结(p.80–82)
p.80 用网络高层表示做 L2 最近邻检索:每行左侧是测试花、象、船、南瓜或奶牛,右侧是特征空间中接近的图像。相近的是网络表示,不一定是原始像素逐个相近;同一物体可能换背景仍靠近。
p.81 展示将 ImageNet 的 1000 类输出层换成新任务 C 类的输出层,其余层冻结。若保留的特征维度为 d,新分类头的矩阵在行向量约定下是 ,偏置长 C;它必须适配新类别数,不能直接保留旧 1000 类名字。
p.81的具体层序从输入开始是:Conv-64两层→MaxPool→Conv-128两层→MaxPool→Conv-256三层→MaxPool→Conv-512三层→MaxPool→Conv-512三层→MaxPool→FC-4096→FC-4096→FC-1000。数字表示输出通道数或全连接单元数,箭头沿前向方向。新小数据集把末项改为FC-C并重新初始化,只训练该层,冻结下面全部层;p.82更大数据的图进一步开放两个FC-4096,下面卷积部分仍冻结。这两个具体例子展示“训练更多层”的含义,不是规定所有迁移任务都必须采用此架构。
**冻结(freeze)**表示训练时不更新某些参数,不表示跳过它们的前向计算。新图像仍必须经过旧特征提取器,才能得到 h;只是优化器不修改旧的 。
继续补充小例:h=(2,1)、w=(1,−1)、目标实数为 2,暂用半平方损失帮助看更新对象。预测为 1,残差 −1,头部梯度为 ,偏置梯度 −1。学习率 0.1 后,新头部权重为 (1.2,−0.9)、偏置 0.1,新预测为 。特征 h 保持 (2,1),因为提取器被冻结。
这个演示是回归头,不是 p.81 的分类实验。分类时会把 C 个分数变成 softmax 概率,损失也相应换成交叉熵;“只更新新头部”这一原则相同。
p.82 在新数据更多时训练更多高层,而底层继续冻结。更多可调参数提供适应能力,也需要更多数据约束,避免仅记住少量新样本。
操作顺序与任务差异(p.83–85)
p.83–84 的路线可以慢慢分成几个决定,而不是一条“下载模型后训练”的口号:
- 明确新输入的表示、标签与输出维数;确认旧特征适不适合。
- 保留预训练参数作为起点,将不匹配的旧分类头换掉。
- 冻结特征部分,先训练新头,让它学会使用现有表示。
- 若验证效果不足,再尝试解冻靠后的层,用较小步长适配。
- 比较新方案与前一个方案的独立验证表现,而不是只看训练 loss 更低。
p.84更具体地建议从最后的FC与最后的Conv向前尝试,效果不足再向较早层移动。原页列阅读线索为Yosinski、Clune、Bengio、Lipson(NeurIPS 2014)《How transferable are features in deep neural networks?》,http://arxiv.org/abs/1411.1792 。这里保留书目,未将未重读论文的结论扩充为本次独立验证。
第 4 步的“微调(fine-tuning)”是继续更新已有参数;从头训练则从随机初始化开始。只训练新头与微调旧层不是完全相同的操作。
表(p.85):新数据量与域相似度的四格建议。
| 新数据量 | 与旧数据很相似 | 与旧数据很不同 |
|---|---|---|
| 很少 | 在顶层特征上训练线性分类器 | 较困难;可尝试不同深度的特征加线性分类器 |
| 较多 | 微调少数层 | 微调更多层 |
为什么是这四格?数据少,调整太多参数容易被少数样本牵着走;数据多,才有更多证据支持调整。任务相似,旧高层表示可能直接有用;差异大,高层可能过度专门化,甚至早层假设也未必适合。表格是课件的策略建议,不是保证收益的定理。
补充:负迁移指复用旧知识反而损害新任务。如果旧模型强调与新目标无关的模式,保留它也可能是限制。所以应与合理的基线比较,不能把“预训练过”当质量证明。
补充 · 冻结权重与固定层的运行行为不是一回事(通识讲解;演示数据不属于原题)。
冻结通常指不更新选中参数;但一层还可能包含不属于普通可训练权重的运行状态,或按训练/评价模式改变行为。例如带运行均值的归一化层可能更新统计量,Dropout 在训练模式仍会随机丢弃激活。因此“冻结骨干”不自动等于每次给同一输入都产生完全相同的特征。
制定迁移方案时分别写清:哪些参数进入优化器,哪些层使用训练或评价行为,预处理是否匹配原模型。先用同一输入重复前向,观察差异来自预期随机性还是配置错误;不要将所有差异解释成权重被更新。具体框架的冻结与模式接口应以实际代码为准,本段是在解释要区分的机制,不声称替原讲义运行了迁移实验。
补充:冻结权重与固定网络行为要分别检查
冻结一个参数,含义是本轮优化不更新它;不意味着该层不参与前向,也不意味着梯度不能经过该层传往更前面的可训练模块。自编标量链 、,其中系数2固定、可训练。损失 对 的梯度仍为 ,固定层的局部导数2必须保留。若为了“冻结”把整个输出从计算图断开,就无法训练前面的 。
另外,有些模块除了权重还包含随训练数据更新的统计量,或训练时才开启的随机行为。是否更新参数、是否启用训练行为,是两个问题。制定迁移流程时应写清:哪些权重可训练、哪些统计量更新、哪些随机模块开启,以及输入归一化是否与预训练模型一致。
如果只在固定特征提取器后训练一个新头,且主体前没有可训练模块,则可预先计算特征来节省重复运算;若主体还要微调,缓存的旧特征会在权重变化后失效。这个条件解释了“先抽特征再训练”和“端到端微调”为何不能仅凭名字互换。
步长和模型来源(p.86–88)
p.86 建议微调时从原学习率的约十分之一尝试。假设是旧权重已经处于有用位置,大步可能破坏它。这个比例是起点,不是必须遵守的常数;新随机头与旧层也可能需要不同的更新幅度(补充策略)。
看一个补充自取的单参数比较:某旧参数为 0.50,本次梯度为 2。学习率 0.1 改到 0.30,学习率 0.01 改到 0.48。较小步长保留更多原值,但如果旧特征并不适合,保留它也未必更好。要把“少破坏”和“更适合新任务”分开评估。
p.87 列 model zoo 作为已发布模型入口,这只是说明可以寻找预训练权重,不表示每个下载项都符合新任务。使用时还要核对模型架构、输入尺寸、归一化方式、类别头和权重版本;相同模型名称也不能代替这些具体条件。
p.87原模型入口为 https://modelzoo.co/ ,截图列OpenPose(姿态/关键点)、Mask R-CNN(检测与实例分割)、pytorch-CycleGAN-and-pix2pix(配对或非配对图像转换)、FastPhotoStyle(照片风格化)、vid2vid(视频转换)、maskrcnn-benchmark(检测与实例分割实现)。截图的星数、框架标签属于当时目录状态,不能当作当前可用性或性能比较。
图(p.88):上方从图像训练 CNN 后分类,下方从预训练 CNN 接新任务并微调。 看什么:新任务训练的是新标签对应的映射,不能只换页面上显示的类名却继续使用原分类头解释输出。
医疗、文本与语音(p.89–91)
图(p.89)把自然图像预训练与医学影像任务之间画上迁移箭头及问号。它提出“是否能迁移”的问题,不给临床有效性结论。自然照片与特定医学图像的数据分布、纹理、灰度和目标均可能不同,必须在相应任务上验证;本篇不据图推断医疗能力。
p.90 的文本例用预训练语言模型再接情感分类器:句子 “The movie was good” 标 1,“The movie was horrible” 标 0。共享表示可用来识别词语与上下文,但新分类头仍需要学习这些表示如何对应情感标签。图里的预训练目标与下游标签目标不同,迁移不等于将旧输出直接当新答案。
p.90把预训练模型明确标为BERT,左边用Wikipedia与书籍表示预训练文本、目标是language modeling;右边将句子送入pre-trained model再进classifier,输出情感0/1。图的连接表示保留语言表示、为情感添加判别层;下方长评论的“Negative or Positive?”是新输入要回答的问题,并非要求把原预训练词预测当情感标签。
p.91 的语音图展示三条路线:设备端个性化、用大模型表示训练小模型、用下游数据微调整体。它们共享“复用已有表示”,但更新哪些参数、需要多少计算以及部署位置不同。不能仅因都叫 transfer learning 就认定实现完全一样。
p.91三路线共享图底部Google server上的Large speech dataset训练出的网络:设备端路线把模型送到终端,用on-device data个性化微调;小模型路线用大模型抽embeddings,与小下游数据集的labels一起训练small model;整体微调路线用large downstream dataset更新较完整网络。原图展示数据与模型流向,没有给这三种路线的延迟、准确率或设备规格,不能按箭头大小推算成本。
小检查:冻结以后还能学习吗
设整个特征提取器被冻结,只有新头部可训练。训练若改善,是不是说明被冻结的权重也变了?若全部层都被冻结、也没有新可训练参数,优化器还能通过更新参数适应新任务吗?
参考答案
第一问不是:改善可以完全来自新头学习如何组合固定特征,旧提取器仍不变。第二问没有可更新参数,便不存在通常意义上的参数训练;只能使用固定模型做推断或另外引入可学习部分。冻结的对象和可训练参数清单必须先明确。
这篇的核心是做出明确选择:哪些表示保留、哪些参数允许改、用什么新数据与验证方法判断适配是否有效。它是 ESTR 旧版扩展学习路线,不将其写成 CSCI3230 当前必考要求。
本讲核心考点
- 区分从头训练、冻结特征训练新头、微调旧层(p.81–86)。
- 冻结禁止更新,不禁止前向计算;输出头维数应符合新任务(p.81–83)。
- 数据量和域差异共同影响调整范围,四格表是建议不是保证(p.85)。
- 明确这是 2025T1 ESTR3108 扩展,不能据此声明当前 CSCI3230 教学或考试要求。
附录
先完成正文的小检查;无需借助额外考试题才能理解本节。
来源与证据
- 原件:L06-Neural-Network-Basics-2025T1.pdf(本地课件);对应页区间见文件头及各节标题。本页是 2025T1 旧材料预习,不代表 2026T1 已讲进度。页码按当前 91 页 PDF,不能直接用仍标到 103 的旧页脚号。p.74 起为 ESTR3108 扩展。
- 数字演示凡非课件原例均明确标为“补充自取”;这些例子用于理解,不是教师布置的作业。
- 附录中的历史题面保留其文件名、年份和题号,与当前作业区分;它们不能证明本学期考试范围。正文的学习检查是通识练习,不作出题预测。