导 读
只搜索cell,然后不断的堆叠起来,实际上只要网络堆叠的够深,性能并不会太差;
一些operation的结构参数非常接近,比如两个op的结构参数分别是20.2%,20.1%,似乎选择20.2%和20.1% 并没有太大的差别;
一开始是在整个Net上进行训练,但是选取的时候只是选择一个子网络,中间可能会出现一些问题。
引言
作者最后提出的ProxylessNAS在CIFAR-10和ImageNet的实验验证了「直接搜索」和「为硬件定制」的有效性。在CIFAR-10上,作者新提出的模型仅用5.7M参数就达到了2.08%的测试误差。对比之前的最优模型AmoebaNet-B,ProxylessNAS仅用了六分之一的参数量就达到了更好的结果。在ImageNet上,ProxylessNAS比MobilenetV2高了3.1%的Top-1正确率,并且在GPU上比MobilenetV2快了20%。在同等的top-1准确率下(74.5%以上),ProxylessNAS的手机实测速度是当今业界标准MobileNetV2的1.8倍。在用ProxylessNAS来为不同硬件定制神经网络的同时,作者发现各个平台上搜索到的神经网络在结构上有很大不同。这些发现为之后设计高效CNN结构提供新的思路。
相关背景
因此,作者提出了一个简单而有效的方案来解决上述限制,称为ProxylessNAS,其直接在目标任务和硬件上学习结构而不依赖于Proxy。作者还移除了先前NAS工作中的重复块的限制:所有stage都可以自由的选择最适合的模块,并允许学习和指定所有块。为此,将体系结构搜索的计算成本(GPU时间和内存)降低到相同水平的常规训练,为了直接在目标硬件上学习专用网络结构,在搜索时我们也考虑了硬件指标。
在CIFAR-10和ImageNet上的实验中,从直接性和专业性的角度出发,提出的新方法可以获得较强的实证结果。在CIFAR-10上,新模型仅需5.7M参数即可达到2.08%的测试误差。在ImageNet上,新模型比MobileNetV 2提高了3.1%,获得了75.1%的top-1精度,同时速度为1.2倍。主要的贡献可归纳如下:
ProxylessNAS是第一个在没有任何代理的情况下直接学习大规模数据集上的CNN结构的NAS算法,同时仍然允许大的候选集并消除重复块的限制。它有效地扩大了搜索空间,实现了更好的性能;
为NAS提供了一种新的路径级剪裁视角,显示了NAS与模型压缩之间的紧密联系。通过使用path-level binarization将内存消耗节省一个数量级;
提出了一种新的基于梯度的方法(作为一个正则函数),来处理硬件目标(如:延迟)。针对不同的硬件平台:CPU/GPU/FPGA/TPU/NPU,ProxylessNAS实现了针对目标硬件CNN结构定制。据所知,这是第一个来研究不同硬件结构下的专用神经网络结构的文章;
广泛的实验证明了Directness和Specialization的优势。它在不同硬件平台延迟限制下,在CIFAR-10和ImageNet上实现了最好的性能。作者还分析了专用于不同硬件平台的高效CNN模型的偏好,指出不同硬件平台需要不同的神经网络结构。
技术方法
Over-parameterized网络的构建
为了解决这个问题,考虑将从n个候选对象中选择一条路径的任务分解为多个二进制选择任务。直觉是,如果一条道路是在某一特定位置上的最佳选择,那么与任何其他路径相比,它应该是更好的选择。
HANDLING NON-DIFFERENTIABLE HARDWARE METRICS
除了准确率之外,在设计高效神经网络结构的时侯,延迟是另一个非常重要的目标。与可以使用损失函数的梯度优化的准确率不同,延迟这一指标是不可微的。在本节中,我们提出了两种算法来处理这种不可微分的目标。
通过将缩放因子λ2(>0)乘以控制精度和延迟之间的权衡,将网络的预期延迟合并到正常的损失函数中。最后的损失函数如上图所示(右)。
对于二进制参数,我们有以下更新:
实验结果
在CIFAR-10和ImageNet上进行了实验。不同于之前的NAS工作,作者直接在目标数据集上进行神经网络结构学习,为目标硬件进行优化,同时允许每一个block自由地选择操作。
在移动端,与MobilenetV2相比,提出的ProxylessNAS在维持同等的延迟的前提下,TOP-1准确率提升了2.6%。此外,在各个不同的延迟设定下,新模型大幅优于MobilenetV2:为了达到74.6%的精度,MobilenetV2需要143ms的推理时间,而新模型仅需要78ms(1.83x)。
与MnasNet相比,新模型在提升0.6%Top-1的同时保持略低的推理时间。值得一提的是,新模型所消耗的搜索资源要比Mnas少得多(1/200)。
下图展示了在三个硬件平台上搜索到的CNN模型的详细结构:GPU/CPU/Mobile。
我们注意到,当针对不同平台时,网络结构呈现出不同的偏好:
1)GPU模型短而宽,尤其是在feature map较大时;
2)GPU模型更喜欢大MBConv操作(如:7x7 MBConv6),而CPU模型则倾向于小操作。这是因为GPU比CPU有更高的并行度,因此它可以更好地利用大MBConv。
另一个有趣的观察是,当特征图被下采样时,所有的网络结构都倾向于选择一个更大的MBConv。这可能是因为MBConv操作有利于网络在下采样时保留更多信息。值得注意的是,这是之前强制block之间共享结构的NAS方法无法发现的。
END
论文: https://arxiv.org/pdf/1812.00332.pdf
代码:https://github.com/MIT-HAN-LAB/ProxylessNAS
计算机视觉战队正在组建深度学习技术群,欢迎大家私信申请加入!
如果想加入我们“计算机视觉战队”,请扫二维码加入学习群。计算机视觉战队主要涉及机器学习、深度学习等领域,由来自于各校的硕博研究生组成的团队,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。