Transfer Learning & Fine-tune (迁移学习与模型微调)
本文为《CS231n》的学习笔记
1. Transfer Learning 的几种形式
实际上,很少有人从头开始训练一个完整的卷积网络(随机初始化),因为拥有足够大小的数据集的情况相对较少。相反,常见的做法是在非常大的数据集(例如ImageNet,它包含120万个图像,包含1000个类别),然后将ConvNet用作初始化或固定的特征提取器,用于感兴趣的任务。三种主要的迁移学习场景如下:
1.1 ConvNet 作为固定的特征提取器
取一个在ImageNet上预先训练过的ConvNet,删除最后一个完全连接的层(该层的输出是像ImageNet这样的不同任务的1000个类分数),然后将ConvNet的其余部分作为新数据集的固定特征提取器。在AlexNet中,这将为每一张图像计算4096维的向量,包含紧靠在分类器前面的隐藏层激活函数值。我们称这些为特征的 CNN 编码。如果在ImageNet上对ConvNet进行训练时也对这些代码进行了阈值化(通常情况下),那么这些代码将被重新划分(即在零处阈值),这一点很重要。如果在 ImageNet 上对 ConvNet 进行训练时也对这些代码进行了阈值化(通常情况下),这些编码是经过 ReLU处理的,这对模型的效果比较重要。提取所有图像的4096-D编码特征