深度学习教程:使用 Learn2Compress 来压缩神经网络模型

本教程由深度学习中文社区(dl.tustcs.com)发布

前言

成功的深度学习模型往往需要大量的计算资源、内存和动力来训练和运行,一旦您想让它们能在移动设备和物联网设备上表现良好,往往就会碰壁了。通过移动端机器学习,您可以直接在设备上运行推理,无论连接状况如何,都可以保护数据隐私,不受任何访问权限的制约。移动端的 ML 系统,例如 MobileNets 和 ProjectionNets,通过优化模型效率来解决移动设备上的资源瓶颈。但是,如果您想为您的个人移动应用程序培训自己定制的设备型号,那该怎么办呢?

在 Google I / O 开发者年会上,发布了 ML Kit 工具包,让所有移动开发人员都可以使用机器学习。其中的 “Learn2Compress” 技术提供了自动模型压缩服务,这是 ML 工具包的核心功能之一,也将很快上线。 Learn2Compress 可以在 TensorFlow Lite 中实现自定义的移动端深度学习模型,可在移动设备上高效运行,开发人员无需担心内存和速度优化问题。

工作原理

Learn2Compress 融合了之前研究工作中介绍的学习框架,如 ProjectionNet,并结合了几种最先进的技术来压缩神经网络模型。 它将用户提供的大型预训练 TensorFlow 模型作为输入,执行训练和优化,在精度损失最小的情况下自动生成尺寸较小,内存效率更高,功效更高,推理速度更快的即用型移动端模型。

深度学习教程:使用 Learn2Compress 来压缩神经网络模型

用于自动生成设备上的 ML 模型的 Learn2Compress

为此,Learn2Compress 使用多种神经网络优化和压缩技术,包括:

  • 通过删除对预测最不重要的权重或操作(例如低评分权重)来缩小模型的大小。这对于涉及稀疏输入或输出的设备模型非常有效,尺寸可以缩小 2 倍,同时保留 97% 的原始预测质量。
  • 量化技术在训练重的应用特别有效,并且可以通过减少用于模型权重和激活的比特数来提高推理速度。例如,使用 8 位定点代替浮点数可以加速模型推理,降低功耗,并进一步将尺寸减小 4 倍。
  • 遵循师生学习策略使用联合培训和精馏方法- 我们使用一个更大的教师网络(在本例中,用户提供的 TensorFlow 模型)来训练一个紧凑型的学生网络(设备上的模型),其准确性损失最小。
深度学习教程:使用 Learn2Compress 来压缩神经网络模型

联合训练和精馏压缩学生模型

教师网络可以固定(如精馏)或联合优化,甚至可以同时训练不同大小的多个学生模型。 因此,与单一模型不同,Learn2Compress 可以一次性生成多个大小不一和推理速度不同的移动端模型,并让开发人员选择一个最适合其应用程序需求的模型。

这些和其他技术(如转移学习)也使压缩过程更有效,并且可以扩展到大规模数据集。

实际效果如何呢?

为了证明 Learn2Compress 的有效性,我们使用它来构建紧凑的移动端模型,这些模型包括用于图像和自然语言任务的几个最先进的深度网络,如 MobileNets,NASNet,Inception,ProjectionNet 等。对于给定的任务和数据集,我们可以生成多个推理速度和模型大小不同的移动端模型。

深度学习教程:使用 Learn2Compress 来压缩神经网络模型

各种尺寸的 Learn2Compress 模型和全尺寸 Baseline 网络在 CIFAR-10(左)和 ImageNet(右)图像分类任务中的精度。 用于生成 CIFAR-10 和 ImageNet 任务使用的的压缩变体的学生网络分别使用 NASNet 和 MobileNet 启发的架构进行建模

对于图像分类,Learn2Compress 可以生成适合于移动应用的具有良好预测精度的小型快速模型。 例如,在 ImageNet 任务中,Learn2Compress 实现的模型比 Inception v3 Baseline 小22倍,比 MobileNet v1 Baseline 小 4 倍,精确度仅下降 4.6-7%。 在 CIFAR-10 上,联合训练具有共享参数的多个 Learn2Compress 模型,比单个 Learn2Compress 大型模型培训时间仅多 10%,但是产生了 3 种压缩模型,尺寸缩小 94 倍,速度提高 27 倍,成本降低 36 倍,预测质量良好(90-95%TOP-1 精度)。

深度学习教程:使用 Learn2Compress 来压缩神经网络模型

CIFAR-10 图像分类任务的 Baseline 和 Learn2Compress 模型的计算成本和平均预测延迟(在 Pixel 手机上)。 Learn2Compress 优化模型使用 NASNet 风格的网络架构

Learn2Compress 在开发人员用例中的表现如何呢? 例如,钓鱼爱好者的社交平台 Fishbrain 利用 Learn2Compress 将现有的图像分类云模型(大小为 80MB +,Top-3 准确度为 91.8%)压缩到更小的移动端模型,尺寸小于 5MB,精度却差不多。在某些情况下,我们观察到由于更好的正则化效应,压缩模型甚至可能略优于原始大模型的精度。


分享到:


相關文章: