PDF地址:
后续更新
代码地址就不提供了,因为这个工作有点老了哈哈,但是凯明大神的想法真的很超前,之后会优先做凯明大神的论文系列,在当年还有很多小伙伴是评论说这个论文其实是一篇广告或者标准的实验报告,广告是因为凯明在此之前提出了GBN(后续会更新这个的笔记),然后这篇文章提及到了;实验报告是因为,这篇论文的实验细节还有数据处理的思路非常的自然严谨。
其他:这个笔记其实是21年做的,今天翻出来了哈哈。
介绍:
COCO上进行随机初始化(从零开始)训练,无需任何预训练,就可以达到竞争性目标检测和实例分割的准确性
如果:
(i)我们使用适当的归一化技术进行优化,
(ii)我们对模型进行了足够长的训练,以弥补前训练的不足,没有根本的障碍阻止我们从头开始训练
可以从零开始训练大型模型——比ResNet101大4倍——而不会过度拟合
(i) ImageNet预训练的加速收敛,特别是在培训
(ii) ImageNet预训练不会自动提供更好的正则化
(iii)当目标任务/指标对精确定位的空间预测更敏感时,ImageNet的预训练没有显示出任何好处
相关工作:
对象检测器是在没有预训练的情况下进行训练的——这一事实在今天多少被忽略了
从零开始获取更多的探测数据是可能的,并且可以达到90%的精确调整精度
重点是理解ImageNet在非专门化体系结构(即最初设计时没有考虑从零开始培训的模型)
证明了在从零开始训练时,即使没有做任何预训练的处理,也可以保持精确的调整精度
方法:
目标是通过控制实验来消除ImageNet预训练的作用,而无需ImageNet预训练就可以做到
架构改进不是我们的目的
在最小的修改下从头开始训练传统的体系结构
描述了我们认为唯一必要的两个修改,与模型归一化和训练长度有关
标准化:
图像分类器的训练需要标准化来帮助优化
(i)Group Normalization:作为最近提出的BN的替代方案,GN执行的计算与批处理维无关。GN的精度对批量尺寸不敏感
(ii) Synchronized Batch Normalization (SyncBN): 这是一个实现的bn与批统计计算跨多个设备(gpu)。这增加了使用许多gpu时BN的有效批处理大小,从而避免了小批处理
实验表明,GN和SyncBN都可以使检测模型从零开始训练
适当的规范化初始化,我们可以在不使用BN或GN的情况下通过随机初始化来训练使用VGGNet的对象检测器
收敛:
期望从随机初始化训练得到的模型能比从ImageNet预训练得到的模型收敛更快是不现实的忽略了这个事实,就会得出完全或错误的结论,即忽略了从零开始训练的模型的真正能力
即从零开始训练追求的不是收敛更快,而是精确度
零开始的模型必须学习低层次和高级层次的语义,因此为了更好地收敛,可能需要更多的迭代
ImageNet的预训练为100 epoch,微调采用2x schedule(在COCO上~24 epoch),随机初始化采用6x schedule(在COCO上~72 epoch)。在ImageNet中,实例数为1个(而在COCO中为7个),ImageNet中的像素数为224×224,COCO为800x 1333
随机初始化训练出来的模型要想很好地收敛,需要足够多的总样本(可以证明是在像素方面)
实验设置:
体系结构:
将训练区域建议网络(RPN)的端到端的与Mask R-CNN联合使用。GN/SyncBN用于替换所有“冻结的BN”(通道方向的仿射)层
学习速率调度:
研究了更长的训练,并且使用了类似的术语,例如,所谓的“6x时间表”有540k次迭代
第一个(大)学习率下训练时间更长是有用的,但在小学习率下训练时间更长常常导致过拟合
超参数:
所有其他超参数均遵循Detectron,特别地,初始学习率为0.02,重量衰减是0.0001,动量是0.9。所有模型使用同步的SGD在8个GPU上进行训练,每个GPU有2个小批量图像
Detectron中的Mask R-CNN默认不使用数据增强进行测试,以及只使用水平翻转增强进行训练
结果和分析:
训练从零开始,以匹配的准确性:
从零开始训练的模型在准确性上可以赶上那些经过微调的模型
COCO train2017分割中训练模型,该分割有118k(118287)图像,并在5k COCO val2017分割中进行评估。我们评估用于对象检测的边界盒(bbox)平均精度(AP)和用于实例分割的掩膜AP
Baselines with GN and SyncBN:
对于每一幅图,我们将随机初始化训练的模型与ImageNet预训练的微调模型之间的曲线进行比较
对于每种情况,我们研究了五种不同的调度,即2x到6x的迭代
我们将一个模型的五个调度叠加在同一个图中。AP曲线的跳跃是学习率降低的结果
(i)典型的微调周期(2x)对于预训练收敛到接近最优的模型很好,但对于从零开始训练的模型来说,这些周期是不够的
(ii)从零开始训练的模型可以赶上它们的微调对应,如果使用5x或6x的时间表实际上,当它们收敛到最优,它们的检测AP不会比微调对应的更糟
ImageNet的预训练主要在训练初期有助于加快对目标任务的收敛速度,但在最终的检测准确率上几乎没有提高的迹象
多个检测指标:
零开始训练的模型和经过预训练的模型具有相似的AP度量
对于APbox度量(使用高重叠阈值),从头开始训练比通过明显的边界进行微调(1.0或0.8 AP)更好
训练时间规模增大:
在不同的增强基线中也可以观察到,在进行培训之前和没有进行培训之前是可以比较的
使用Detectron实现的简单训练时间尺度增强:图像较短的一侧从[640,800]像素中随机采样
在从头训练时将周期增加到9倍,在ImageNet前训练时将计划增加到6倍
级联R-CNN:
作为一种专注于提高定位精度的方法,级联R-CNN附加了两个额外的阶段到标准的两阶段更快的R-CNN系统
为了节省从头开始的模型的运行时间,我们在没有级联的情况下从头开始训练Mask R-CNN,并在最后的270k迭代中切换到级联,注意到这并不能改变最终模型在训练前没有使用ImageNet的事实
定位监督主要由目标数据集提供,并不是基于分类的ImageNet预训练中明确提供的
不期望ImageNet的预培训能在这种设置中提供额外的好处
测试时间增加:
将结合来自多个缩放转换的预测来进一步执行测试时间的增加,就像Detectron中实现的那样
从零开始训练的模型并不比训练前的模型差。实际上,在这种情况下,从头开始训练的模型甚至更好一些
从零开始训练了一个明显更大的Mask R-CNN模型,尽管模型很大,但没有明显的过拟合
对于这个大型模型,预训练也不能提高结果
与以往从零开始训练的结果对比:
没有证据表明没有经过ImageNet预处理的模型可以和ImageNet预处理的模型相比有可比性
ImageNet的预训练几乎没有什么好处,随机初始化的训练可以在不增加训练迭代的情况下快速赶上
关键点检测:
从头开始训练的模型可以更快地赶上进度,即使没有增加训练迭代次数,它也可以与使用ImageNet预训练的模型进行比较
ImageNet的预训练由于缺少明确的定位信息,对关键点检测没有帮助
没有BN/GN的VGG网络:
需要某种形式的激活标准化(例如BN或GN)
使用适当的初始化规范化,就可以从头开始训练,而不需要激活规范化
使用vgg16作为骨干从头开始训练更快的R-CNN的行为
按照原来Faster R-CNN论文[37]及其vgg16架构来实现模型
使用完全相同的超参数微调和训练从零开始
训练前,VGG-16的完全收敛速度很慢。在11倍的时间表之后,从头开始训练的模型达到了类似的性能水平
用更少的数据从零开始训练:
35k COCO训练图像:
ImageNet预训练并不能自动帮助减少过拟合
对使用ImageNet预训练的模型重做网格搜索
从头开始训练我们的模型,使用完全相同的新超参数
尽管数据较少,但已经赶上了训练前的对应对象
10K COCO训练图像:
较小的训练集上重复相同的实验,训练集为10k COCO images
经过预训练的模型在迭代次数为60k时达到26.0 AP,但当训练次数更多时,其退化程度略有下降
1K COCO训练图像:
在10k图像中从零开始的训练同样准确,这令人惊讶。但是,对于任意小的目标数据,预期这种趋势将持续下去是不合理的
仅使用1k COCO训练图像(约为完整COCO图像的1/100,再次对预训练案例的超参数进行优化)重复同一组实验,并显示了训练损失
从零开始的训练并不会更糟,只是收敛得更慢而已
ImageNet预训练模型的AP为9.9,而从头开始的模型的AP为3.5
还进行了网格搜索,以优化从头开始的情况结果提高到5.4 AP,但没有赶上。这是由于严重缺乏数据而导致的严重过拟合的迹象
PASCAL VOC:
实例(和类别)越少,也会产生与培训数据不足类似的负面影响,可以解释为什么在VOC上从零开始的培训无法跟上COCO的进度
使用1k张COCO图像进行训练(显示为训练集中的损失)。模型为Mask R-CNN,采用R50-FPN和GN。与之前一样,我们使用预先训练的模型优化的超参数,并从随机初始化中对模型应用相同的超参数。随机初始化模型可以弥补训练损失,但验证精度(3.4 AP)低于预训练模型(9.9 AP)。
总结
作者总结了以下几个观点:
- 在不改变体系结构的情况下,对目标任务进行从头开始的训练是可行的; 从头开始训练需要更多的迭代才能充分收敛;
- 在许多情况下,从头开始训练的效果不会比ImageNet预训练的效果差,训练数据可低至10k张COCO图像;
- ImageNet预训练加速了目标任务的收敛;
- ImageNet预训练不一定有助于减少过拟合,除非我们进入一个非常小的数据空间(也就是图像都非常的接近,没有多样性);
- 如果目标任务对定位比分类更敏感,ImageNet预训练的帮助就会更小(这句话其实非常重要,一些任务可能更倾向于找到位置,如瑕疵检测、病变检测、计数检测,但是现在可能不适用了);
个人的一些看法:这篇论文的思路很严谨吗,给从零开始训练的研究者们提供了一个可行的思路(也可称作引证,证明这个方向其实还是有得做的),实际上绝大部分任务都是预训练,而且预训练也不再是ImageNet这种上古数据集,可能涉及更多域、更庞大、多样性更丰富,但这是18年的论文,还是respect的!