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/

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 目标检测的定义 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 目标检测任务可分为两个关键的子任务,目标定位和目标分类。首先检测图像中目标的位置(目标定位),然后给出每个目标的具体类别(目标分类)。输出结果是一个边界框(称为Bounding-box,一般形式为(x1,y1,x2,y2),表示框的左上角坐标和右下角坐标),一个置信度分数(Confidence Score),表示边界框中是否包含检测对象的概率和各个类别的概率(首先得到类别概率,经过Softmax可得到类别标签)。 1.1 Two stage方法 目前主流的基于深度学习的目标检测算法主要分为两类:Two stage和One stage。Two stage方法将目标检测过程分为两个阶段。第一个阶段是 Region Proposal 生成阶段,主要用于生成潜在的目标候选框(Bounding-box proposals)。这个阶段通常使用卷积神经网络(CNN)从输入图像中提取特征,然后通过一些技巧(如选择性搜索)来生成候选框。第二个阶段是分类和位置精修阶段,将第一个阶段生成的候选框输入到另一个 CNN 中进行分类,并根据分类结果对候选框的位置进行微调。Two stage 方法的优点是准确度较高,缺点是速度相对较慢。 常见Tow stage目标检测算法有:R-CNN系列、SPPNet等。 1.2 One stage方法 One stage方法直接利用模型提取特征值,并利用这些特征值进行目标的分类和定位,不需要生成Region Proposal。这种方法的优点是速度快,因为省略了Region Proposal生成的过程。One stage方法的缺点是准确度相对较低,因为它没有对潜在的目标进行预先筛选。 常见的One stage目标检测算法有:YOLO系列、SSD系列和RetinaNet等。 2 常见名词解释 2.1 NMS(Non-Maximum Suppression) 目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样可以加快算法效率,其主要流程如下: 设定一个置信度分数阈值,将置信度分数小于阈值的直接过滤掉 将剩下框的置信度分数从大到小排序,选中值最大的框 遍历其余的框,如果和当前框的重叠面积(IOU)大于设定的阈值(一般为0.7),就将框删除(超过设定阈值,认为两个框的里面的物体属于同一个类别) 从未处理的框中继续选一个置信度分数最大的,重复上述过程,直至所有框处理完毕 2.2 IoU(Intersection over Union) 定义了两个边界框的重叠度,当预测边界框和真实边界框差异很小时,或重叠度很大时,表示模型产生的预测边界框很准确。边界框A、B的IOU计算公式为: 2.3 mAP(mean Average Precision) mAP即均值平均精度,是评估目标检测模型效果的最重要指标,这个值介于0到1之间,且越大越好。mAP是AP(Average Precision)的平均值,那么首先需要了解AP的概念。想要了解AP的概念,还要首先了解目标检测中Precision和Recall的概念。 首先我们设置置信度阈值(Confidence Threshold)和IoU阈值(一般设置为0.5,也会衡量0.75以及0.9的mAP值): 当一个预测边界框被认为是True Positive(TP)时,需要同时满足下面三个条件: Confidence Score > Confidence Threshold 预测类别匹配真实值(Ground truth)的类别 预测边界框的IoU大于设定的IoU阈值 不满足条件2或条件3,则认为是False Positive(FP)。当对应同一个真值有多个预测结果时,只有最高置信度分数的预测结果被认为是True Positive,其余被认为是False Positive。 Precision和Recall的概念如下图所示: Precision表示TP与预测边界框数量的比值 Recall表示TP与真实边界框数量的比值 改变不同的置信度阈值,可以获得多组Precision和Recall,Recall放X轴,Precision放Y轴,可以画出一个Precision-Recall曲线,简称P-R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值