如何理解卷积神经网络的结,卷积神经网络结构

卷积神经网络有哪些重要的技巧细节?

如何理解卷积神经网络的结,卷积神经网络结构


除了带你动手学深度学习,李沐大神还带你深挖卷积神经网络的各种实践「技艺」 。近日AWS的研究者研究了一系列训练过程和模型架构的改进方法,他们在多个神经网络架构和数据集上评估它们,并研究它们对最终模型准确率的影响 。自 2012 年 AlexNet 大展神威以来,研究者已经提出了各种卷积架构,包括 VGG、NiN、Inception、ResNet、DenseNet 和 NASNet 等,我们会发现模型的准确率正稳定提升 。
但是现在这些提升并不仅仅来源于架构的修正,还来源于训练过程的改进:包括损失函数的优化、数据预处理方法的提炼和最优化方法的提升等 。在过去几年中,卷积网络与图像分割出现大量的改进,但大多数在文献中只作为实现细节而简要提及,而其它还有一些技巧甚至只能在源代码中找到 。在这篇论文中,李沐等研究者研究了一系列训练过程和模型架构的改进方法 。
这些方法都能提升模型的准确率,且几乎不增加任何计算复杂度 。它们大多数都是次要的「技巧」,例如修正卷积步幅大小或调整学习率策略等 。总的来说,采用这些技巧会产生很大的不同 。因此研究者希望在多个神经网络架构和数据集上评估它们,并研究它们对最终模型准确率的影响 。研究者的实验表明,一些技巧可以显著提升准确率,且将它们组合在一起能进一步提升模型的准确率 。
研究者还对比了基线 ResNet 、加了各种技巧的 ResNet、以及其它相关的神经网络,下表 1 展示了所有的准确率对比 。这些技巧将 ResNet50 的 Top-1 验证准确率从 75.3%提高到 79.29%,还优于其他更新和改进的网络架构 。此外,研究者还表示这些技巧很多都可以迁移到其它领域和数据集,例如目标检测和语义分割等 。
论文:Bag of Tricks for Image Classification with Convolutional Neural Networks论文地址:https://arxiv.org/pdf/1812.01187.pdf摘要:图像分类研究近期的多数进展都可以归功于训练过程的调整,例如数据增强和优化方法的变化 。
然而,在这些文献中,大多数微调方法要么被简单地作为实现细节,或仅能在源代码中看到 。在本文中,我们将测试一系列的微调方法,并通过控制变量实验评估它们对最终准确率的影响 。我们将展示通过组合不同的微调方法,我们可以显著地改善多种 CNN 模型 。例如,我们将 ImageNet 上训练的 ResNet-50 的 top-1 验证准确率从 75.3% 提升到 79.29 。
本研究还表明,图像分类准确率的提高可以在其他应用领域(如目标检测和语义分割)中实现更好的迁移学习性能 。2 训练过程目前我们基本上都用小批量 SGD 或其变体训练神经网络,Algorithm 1 展示了 SGD 的模版过程(感兴趣的读者可以查阅原论文) 。利用广泛使用的 ResNet 实现作为我们的基线,训练过程主要分为以下六个步骤:随机采样一张图片,并解码为 32 位的原始像素浮点值,每一个像素值的取值范围为 [0, 255] 。
随机以 [3/4, 4/3] 为长宽比、[8%, 100%] 为比例裁减矩形区域,然后再缩放为 224*224 的方图 。以 0.5 的概率随机水平翻转图像 。从均匀分布 [0.6, 1.4] 中抽取系数,并用于缩放色调和明亮度等 。从正态分布 N (0, 0.1) 中采样一个系数,以添加 PCA 噪声 。图像分别通过减去(123.68, 116.779, 103.939),并除以(58.393, 57.12, 57.375)而获得经归一化的 RGB 三通道 。
经过六步后就可以训练并验证了,以下展示了基线模型的准确率:表 2:文献中实现的验证准确率与我们基线模型的验证准确率,注意 Inception V3 的输入图像大小是 299*299 。3 高效训练随着 GPU 等硬件的流行,很多与性能相关的权衡取舍或最优选择都已经发生了改变 。在这一章节中,我们研究了能利用低精度和大批量训练优势的多种技术,它们都不会损害模型的准确率,甚至有一些技术还能同时提升准确率与训练速度 。

推荐阅读