文 / 特邀文章做者,Qualcomm Technologies 的 Chen Feng、Terry Sheng、Jay Zhuo、Zhiyu Liang、Parker Zhang 和 Liang Shenhtml
来源 | TensorFlow 公众号网络
低功耗图像识别挑战赛 (LPIRC) 是一年一度的竞赛,主要从准确度、执行时间和能量消耗方面评估计算机视觉技术。今年的竞赛由 Google 和 Facebook 赞助,共分为三个赛道,其中赛道 1 的挑战目标是使用由 Qualcomm Snapdragon 835 移动平台支持的 Pixel 2 智能手机,在 10 分钟的时间限制内处理 20000 张图像,同时最大程度地保证图像分类的准确度。这次竞赛使用大型数据集做为训练数据,其中包含大约 120 万张 JPEG 图像,涵盖 1000 个不一样类别,同时使用 Holdout 图像集做为测试数据。架构
现实世界须要可以在移动设备上实时运行且可准确进行图像分类的神经网络模型,此项公开竞赛正是为此目的而举行。除准确度之外,计算效率对电池供电设备也相当重要。在竞赛中,咱们团队将易于量化的 MobileNet V2 架构与先进的量化后方案结合使用,并因绝佳速度和准确度拔得头筹。咱们使用每层计算好的最小和最大值插入 FakeQuantization 节点,以修改 TensorFlow 中的图表,并使用 TensorFlow Lite 将图表转化为用于硬件部署的.tflite 文件。框架
咱们的模型在单个 ARM CPU 上的每次推理中以 28 毫秒识别 20000 张图像时,实现了最高的准确度。机器学习
Qualcomm Technologies, Inc. 工程部副总裁 Mickey Aleksic 说:“这次挑战与咱们的 AI 战略完美契合,而赢得此次竞赛对于确立 Qualcomm Technologies 在机器学习中的重要地位以及推广设备中的 AI 大有帮助。”学习
在边缘设备上准确快速地识别图像须要执行如下步骤:测试
建立和训练一个神经网络模型,从而以浮点运算对图像进行识别和分类。优化
将浮点模型转化为定点模型,后者能够在边缘设备上高效运行,而不会出现延迟和准确度问题。google
咱们团队的模型基于 MobileNet v2 构建,但以 “易于量化” 的方式进行了修改。虽然 Google 的 MobileNet 模型经过使用可分离卷积结构成功缩小了参数大小和计算延时,但直接量化预训练的 MobileNet v2 模型可能会形成准确度降低。咱们的团队分析并找出了在此类可分离卷积网络中因量化而下降准确度的根本缘由,并在不使用量化感知从新训练的状况下解决了此问题。经过量化感知训练,模型可得到良好的准确度,而咱们的方法是一种替代方案,可以修改网络架构以解决量化问题,而无需从新训练。另外一种更为端到端的方法是使用 Google 的 ML 框架 Learn2Compress,经过优化多个网络架构和同时使用量化及其余技术(如提炼、剪枝和联合训练),直接从头开始训练高效的设备上模型或现有的 TensorFlow 模型。 注:Learn2Compress 连接 ai.googleblog.com/2018/05/cus…cdn
咱们的团队提出一种易于量化的高效可分离卷积架构做为解决方案,将深度和逐点卷积层之间的非线性操做(批量归一化和 ReLU6)所有移除,让网络学习合适的权重来直接处理批量归一化转换。此外,咱们还将全部逐点卷积层中的 ReLU6 替换为 ReLU。在使用 MobileNet v1 和 v2 模型进行的多项试验中,此架构在 8 位量化通道中展现出显著的准确度提高。
定义模型结构后,您即可在数据集上训练浮点模型。在量化后步骤中,咱们使用各类不一样的输入内容并针对训练数据中各个类别的单张图像运行模型,以收集最小和最大值以及每层输出的数据直方图分布。咱们选取最佳 “步长” 和 “偏移” 值(用 ∆ 表示)以用于线性量化,这能够在贪婪搜索期间最大限度地减少量化损失和饱和损失的总量。根据计算出的最小和最大值范围,TensorFlow Lite 提供了将图表模型转化为.tflite 模型的路径,以便在边缘设备上部署模型。
将计算移至 8 位并保留较高的准确度是在边缘设备上快速高效地运行模型的关键步骤。咱们的团队发现了此量化问题,分析并找出其根本缘由,而后解决了此问题。以后,咱们将这些发现应用于图像分类挑战赛,并看到咱们的理论成果变为了现实。您能够在咱们发表的论文《适用于 MobileNets 的易于量化可分离卷积架构》(A quantization-friendly separable convolution architecture for MobileNets) 中了解详情 (arxiv.org/abs/1803.08…)。