13、传承学习与卷积神经网络调谐

13.1 传承学习

在实践中,很少有人从头开始训练整个卷积网络(使用随机初始化),因为具有足够大小的数据集是相对罕见的。相反,通常要在非常大的数据集(例如,ImageNet,它包含120万幅具有1000个类别的图像)上预处理ConvNet,然后使用ConvNet作为初始化或固定特征提取器,用于感兴趣的任务。三个主要的转移学习情景如下:

  • 将 ConvNet 作为特征提取器。取一个在ImageNet上预先训练的ConvNet,移除最后一个完全连接的层(该层的输出是ImageNet等不同任务的1000个类分数),然后将ConvNet的其余部分作为新数据集的固定特征提取器。在AlexNet中,这将为每个图像计算4096-D维向量,其中包含紧挨在分类器之前的隐藏层的激活。我们称这些特征为CNN代码。如果在ImageNet上的ConvNet的训练期间(通常是这样)对这些代码进行阈值处理,则这些代码就用ReLUd(即,在零处进行阈值处理),这对于性能很重要。为所有图像提取4096-D代码后,就可以为新数据集训练线性分类器了(例如,线性SVM或Softmax分类器)。
  • 调谐ConvNet。第二种策略不仅要在新的数据集上替换和重新训练ConvNet顶层的分类器,而且通过继续反向传播来微调预训练网络的权重。可以对ConvNet的所有层进行微调,或者可以保持一些较早的层是固定的(由于过拟合问题),仅微调网络的一些较高级别的部分。这是由于观察到ConvNet的早期特性包含对许多任务有用的更通用的特征(例如,边缘检测器或色斑检测器),但是ConvNet的较晚的层逐渐变得对包含在原始数据集中分类的细节更具体化。例如,在包含许多狗品种的ImageNet的情况下,ConvNet的表示能力的很大一部分可能只能专用于区分狗品种的特性。
  • 预训练的模型。由于现代ConvNets需要2-3周的时间在ImageNet上跨多个GPU进行训练,因此人们通常会在其他人公布的ConvNet版本的基础上进行微调来使用。例如,Caffe库有一个模型Zoo,人们分享他们的网络权重。

什么时候以及如何进行调谐? 如何决定在新的数据集上执行什么样的传承学习?这是几个因素的函数,但是两个最重要的因素是新数据集的大小(小或大)及其与原始数据集的相似性(例如,在图像的内容和类别方面类似于ImageNet,或者非常不同,例如显微镜图像)。请记住,ConvNet特性在早期层中更通用,而在后期层中更特定于原始数据集,这里有一些用于导航4种主要场景的常见经验法则:

  1. 新的数据集很小,类似于原始数据集。由于数据少,调谐ConvNet就不是一个好主意,这样会导致过拟合。由于数据与原始数据相似,因此我们希望ConvNet中的高级特性也与此数据集相关。因此,最好的想法可能是在CNN代码上训练线性分类器。
  2. 新的数据集很大,类似于原始数据集。因为我们有更多的数据,所以如果我们试图调谐整个网络,都不会导致过拟合。
  3. 新的数据集很小,但与原始数据集非常不同。由于数据很小,所以最好只训练线性分类器。由于数据集非常不同,因此最好不要从网络的顶部训练分类器。由于此网络包含更多数据集特定的特性,从早期的网络中的某层开始训练SVM分类器,可能会更好。
  4. 新的数据集很大,与原始数据集非常不同。由于数据集非常大,我们可以期望可以从头开始训练一个ConvNet。然而,在实践中,从一个已经训练好的模型中取得权重作为初始化权重往往都是有益的。在这种情况下,我们将有足够的数据和信心通过整个网络。

实践建议. 在做传承学习是还有少量的注意事项:

  • 预训练模型的约束条件。请注意,如果希望使用预先训练的网络,那么在可用于新数据集的架构方面可能会受到一些限制。例如,你不能随意从预先训练的网络中取出Conv层。然而,一些变化是直接的:由于参数共享,您可以轻松地在不同空间大小的图像上运行预训练网络。这在Conv/Pool层的情况中很明显,因为它们的正向函数独立于输入体积空间大小(只要步长“适合”)。对于FC层,这仍然适用,因为FC层可以转换为卷积层:例如,在AlexNet中,第一个FC层之前的最后汇聚层的大小是[6x6x512]。因此,对于FC层来说,这相当于具有6x6大小接收域的卷积层,并且应用填充0
  • 学习率。在调谐ConvNet权重时,与在新线性分类器上使用(随机初始化)权重计算新数据集的类分数相比,使用较小的学习速率来优化更常见。这是因为我们期望ConvNet的权重相对较好,所以我们不希望太快和太多地失真它们(尤其是当在它们之上的新的线性分类器从随机初始化开始训练时)

扩展阅读:

斯坦福大学计算机视图课程,青星大学 翻译整理

1、数据驱动的图像分类方法

2、最近邻分类器

3、k - 最近邻分类器及使用验证集取得超参数

4、线性分类: SVM, Softmax

5、优化方法:随机梯度下降法

6、反向传播

7、神经网络一: 建立网络架构

8、神经网络二:设置数据和损失

9、神经网络 三:学习与评价

10、神经网络案例学习

11、卷积神经网络:结构、卷积/汇集层

12、理解与可视化卷积神经网络

13、传承学习与卷积神经网络调谐

 

原文地址 http://cs231n.github.io/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值