Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

路雪 张倩参与

一步实现从TF到TF Lite,谷歌提出定制on-device模型框架

近日,谷歌在 Google I/O 发布了 ML Kit,其核心功能之一是「Learn2Compress」技术支持的自动模型压缩服务。Learn2Compress 可直接将 TensorFlow 模型压缩为 TensorFlow Lite 中的设备内置(on-device)模型,可在移动设备上高效运行,而无需担心内存优化和速度问题。

成功的深度学习模型的训练和运行通常需要大量的计算资源、内存和计算能力,这成为其在移动设备和物联网设备上表现良好的障碍。设备内置的机器学习技术使得在移动设备上运行推断成为可能,具有保护数据隐私和随处访问的优势,而无需考虑连接性。设备内置的机器学习系统(如 MobileNet 和 ProjectionNet)通过优化模型效率来解决移动设备上的资源瓶颈。但是,如果希望为自己的个人移动应用程序训练定制的设备内置模型,该怎么办呢?

近日,谷歌在 Google I/O 发布了 ML Kit,使所有移动开发人员都可以利用机器学习。即将推出的 ML Kit 核心功能之一是由我们的研究团队开发的「Learn2Compress」技术支持的自动模型压缩服务。Learn2Compress 支持 TensorFlow Lite 中的自定义设备内置深度学习模型,可在移动设备上高效运行,而无需担心内存优化和速度问题。用于图像分类的 Learn2Compress 将很快可用,研究者可以通过 ML Kit 获取。Learn2Compress 最初将提供给少数开发人员,并在未来几个月里扩大范围。如果希望使用此功能构建自己的模型,可以点击该链接进行注册:https://docs.google.com/forms/d/e/1FAIpQLSd7Uzx6eepXeF5osByifFsBT_L3BJOymIEjG9uz1wa51Fl9dA/viewform。

运行原理

Learn2Compress 是对 ProjectionNet 等之前论文中介绍的学习框架的概括,结合了几种最先进的压缩神经网络模型的技术。它将用户提供的大型预训练 TensorFlow 模型作为输入,执行训练和优化,然后自动生成规模较小、内存效率更高、功耗更低、推断速度更快且准确率损失最小的即用设备内置模型。


Learn2Compress 用于自动生成设备内置机器学习模型。

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

  • 修剪(pruning):通过删除对于预测结果影响最小的权重或运算(如得分低的权重)来缩小模型。该方法可以达到很好的效果,特别是对于涉及稀疏输入或输出的设备内置模型,这些模型可以被压缩到一半的大小,同时保留 97% 的原始预测质量。

  • 离散化(quantization):该技术在训练过程中特别有用,可以通过减少模型权重和激活值占用的位数提高推断速度。例如,使用 8 位定点表示法替代浮点数可以加速模型推断、减少能耗,并进一步将模型大小压缩到原来的 1/4。

  • 联合训练(joint training)和精炼(distillation):该方法使用老师-学生的学习策略,即使用较大的老师网络(该案例中是用户提供的 TensorFlow 模型)来训练一个紧凑的学生网络(设备内置模型),确保最小的准确率损失。
    使用联合训练和精炼方法学习紧凑的学生网络。

老师网络可以被固定(正如在精炼过程中)或联合优化,甚至同时训练多个不同大小的学生网络。因此,Learn2Compress 可以单次生成多个设备内置模型而不是一个,这些模型的大小和推断速度互不相同,开发者可以在其中选取最适合应用需求的模型。这些方法以及迁移学习等技术让压缩过程更加高效,并可更好地扩展到大规模数据集上。

性能如何?

为了展示 Learn2Compress 的有效性,谷歌研究者使用它构建多个图像和自然语言任务中当前最先进深度神经网络(如 MobileNet、NASNet、Inception、ProjectionNet)的紧凑设备内置模型。对于给定任务和数据集,谷歌生成多个不同推断速度和模型大小的设备内置模型。

不同大小的 Learn2Compress 模型和全尺寸基线网络在 CIFAR-10(左)和 ImageNet(右)图像分类任务上的准确率。用于生成 CIFAR-10 和 ImageNet 压缩变量的学生网络分别使用 NASNet 和 MobileNet 的变体架构进行建模。

对于图像分类,Learn2Compress 可以生成适用于移动端应用、具备较好预测准确率的小型快速模型。例如,在 ImageNet 任务上,Learn2Compress 模型的大小是 Inception v3 基线模型的 1/22、MobileNet v1 基线模型的 1/4,而准确率仅下降了 4.6-7%。在 CIFAR-10 上,使用共享参数联合训练多个 Learn2Compress 模型花费的时间仅比训练单个较大 Learn2Compress 模型多 10%,而获得的 3 个压缩模型大小是后者的 1/94,速度是后者的 27 倍,开销是后者的 1/36,且预测质量较好(90-95% 的 top-1 准确率)。

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

谷歌很兴奋地看到该模型在开发者用例上的优秀性能。例如,Fishbrain(钓鱼爱好者社交平台)使用 Learn2Compress 将现有图像分类云模型(大小 80MB+,top-3 准确率 91.8%)压缩成规模较小的移动端模型,大小仅有 5MB,而准确率与之前类似。在很多使用案例中,压缩模型的准确率甚至稍微优于原来的较大模型,原因在于前者更好的正则化效应(regularization effect)。

谷歌将继续改进 Learn2Compress,并扩展至图像分类以外的其他任务。谷歌很期待通过云端的 ML Kit 压缩服务实现这一目标。谷歌希望 Learn2Compress 能够帮助开发者更简单地自动构建和优化设备端 ML 模型,以便他们可以集中精力构建强大的 app,创造更酷的用户体验,包括计算机视觉自然语言处理和其他机器学习应用。


原文链接:https://ai.googleblog.com/2018/05/custom-on-device-ml-models.html

工程谷歌TensorFlow移动端
1
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

规范化技术

规范化:将属性数据按比例缩放,使之落入一个小的特定区间,如-1.0 到1.0 或0.0 到1.0。 通过将属性数据按比例缩放,使之落入一个小的特定区间,如0.0到1.0,对属性规范化。对于距离度量分类算法,如涉及神经网络或诸如最临近分类和聚类的分类算法,规范化特别有用。如果使用神经网络后向传播算法进行分类挖掘,对于训练样本属性输入值规范化将有助于加快学习阶段的速度。对于基于距离的方法,规范化可以帮助防止具有较大初始值域的属性与具有较小初始值域的属相相比,权重过大。有许多数据规范化的方法,包括最小-最大规范化、z-score规范化和按小数定标规范化。

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

MobileNets技术

MobileNet是专用于移动和嵌入式视觉应用的卷积神经网络,是基于一个流线型的架构,它使用深度可分离的卷积来构建轻量级的深层神经网络。通过引入两个简单的全局超参数,MobileNet在延迟度和准确度之间有效地进行平衡。MobileNets在广泛的应用场景中有效,包括物体检测、细粒度分类、人脸属性和大规模地理定位。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~