技术应用-中国电源产业网-新能源与电源官方网站

移动智能终端基于神经网络的人工智能技术与应用

2020-08-24   

中国电源产业网

导语:智能移动终端的人工智能技术飞速发展,其技术成果已经逐步从科学研究转化为实际应用,其主要技术包括神经网络模型和人工智能推理框架。本文从技术构架到应用部署,对移动智能终端的人工智能技术进行了深入剖析,并对未来终端人工智能技术发展提出预测。

解谦1  钱承2  张睿3  刘䫺4

(中国信息通信研究院泰尔终端实验室 北京100191

中国合格评定国家认可中心 北京100081) 

摘要:智能移动终端的人工智能技术飞速发展,其技术成果已经逐步从科学研究转化为实际应用,其主要技术包括神经网络模型和人工智能推理框架。本文从技术构架到应用部署,对移动智能终端的人工智能技术进行了深入剖析,并对未来终端人工智能技术发展提出预测。

关键词:移动智能终端;人工推理框架;神经网络模型


Artificial intelligence technology and application of mobile intelligent terminal based on Neural Network

XieQian1  Qian Cheng2  ZhangRui3  LiuHong4

Abstract:Artificial intelligence technology of intelligent mobile terminal develops rapidly, and its technological achievements have been gradually transformed from scientific research to practical application. Its main technologies include neural network model and Artificial Intelligence Computing framework. This article introduces the technical framework and application deployment, then predicts the development of terminal artificial intelligence technology in the future.

Key words:Mobile intelligent terminal;Artificial Intelligence Computing framework; Neural network model

1 引言

自从1956年,达特茅斯会议上几个计算机科学家提出人工智能的概念以来,它已经经历了50多年的长足的发展,成为一门广泛的交叉和前沿科学。近年来随着基于神经网络的深度学习算法的出现,又在AI领域掀起了新的浪潮。从2017年开始,我们每天接触的智能手机和平板电脑等移动终端设备上,出现了越来越多的AI应用或服务,如图像识别、人脸识别、语音识别等。目前这些在移动终端上运行的AI应用,主要使用基于神经网络的深度学习技术,使我们的设备越来越智慧,为我们提供更方便,更有趣的服务。

基于神经网络模型的深度学习技术通过训练和推理两个步骤实现,训练是推理的前提和基础。只有经过完善训练的神经网络才能快速高效地从输入的数据中推理出结论。

2 人工智能技术在移动智能终端上的应用

在终端上的人工智能技术主要通过神经网络实现,基于神经网络模型的深度学习技术分为训练和推理两个步骤,训练是推理的前提和基础。只有经过完善训练的神经网络才能快速高效地从输入的数据中推理出结论。

使用人工智能技术的应用可以通过没有明确的程序或规则的情况下执行任务。传统的应用编程会制定相应的计算逻辑或规则让终端处理,但神经网络则可以通过程序员提供的各种样本进行训练,从数据集中自动学习。神经网络由多个层组成,包括输入层和输出层,以及至少一个隐藏层。各层中的神经元会学习越来越抽象的数据表示法。

通常在终端上实现AI推理有两种实现形式。一种是端云结合的AI技术,用户的终端充当信息采集器,收集信息后通过网络将数据传递给云端,由云端强大的AI处理能力处理完成后,将结果通过网络传回给用户,这种方式能提供丰富的服务,适用于对响应速度较低的应用场景,比语音助手,在线翻译等。另一种是在终端上直接进行人工智能处理,由于功能定位和功耗的限制,移动端多用来进行推理计算,它通常基于神经网络模型和端侧人工智能推理框架,通过终端提供的AI算力迅速处理任务,满足低响应时间,高安全可靠性以及在任意使用环境下(如无网络)使用AI场景,比如图像实时处理等。这种技术无需网络支持,在没有信号覆盖的区域也可以使用,而且数据不会流出终端,能更好的保护用户隐私,但对终端的算力和功耗有一定要求。

3 典型人工智能推理框架

在终端直接进行人工智能处理,核心技术将使用端侧的人工智能推理框架,它能够依靠神经网络模型用来进行推理计算,进行如图像识别、目标检测、语义分割、人脸识别、语音识别等多种图像、视频、语音类人工智能应用。一些主流的端侧人工智能计算框架如下:

(1)Tensor Flow Lite:是谷歌公司2017年年底公布的AI框架,它是Tensorflow的衍生,专门用来部署在移动终端和嵌入式设备的轻量级的框架,体量小、延迟低的深度学习框架[1]。

表1列出TensorFlow Lite运行一些典型神经网络模型的性能数据(使用浮点模型)。

1600995714(1).jpg

表1  TFLite性能数据

2)苹果Core ML框架:把事先训练好的模型,在移动终端进行推理,并返回结果。其实,Core ML是提供了一套底层算法库,目前Core ML框架已经能支持神经网络、树组合、支持向量机、广义线性模型、特征工程和流水线模型等算法模型的运算,只要基于这些算法架构训练出来的模型,Core ML都可以支持推理。

(3)Qualcomm NPE SDK:支持在移动终端上运行,无需连接到云端。高通NPE支持Caff、Caff2和TensorFlow模型,可以运行经过训练的一个或多个神经网络模型[3]。

(4)华为HiAI:提供云端芯三层AI生态,具体参见图1。

1600995831(1).jpg

图1  华为AI生态

HiAI Foundation不仅支持模型编译、加载、运行及模型销毁等AI管理接口,而且支持基本的算子计算接口,包括卷积、池化、全连接等。HiAI Engine能轻松将多种AI能力与APP集成,让APP更加智慧强大,它的能力包括计算机视觉框架、自动语音识别框架、自然语言理解框架等[2]。

(5)小米MACE:是深度学习框架,针对不同的移动端平台做了专门的优化。图2展示了MACE的整体架构。

ca91d70215a07bdf0a84d4ba0122723.png

图2  MACE构架

(6)MTK NeuroPilot AI:拥有完整的API支持,将提升终端硬件的性能并优化其功耗。支持TesorFlow、Caffe等现有的AI架构;支持Android和Linux操作系统。

本文将剖析如何在终端上直接进行基于网络的人工智能技术。

4 移动智能终端人工智能总体构架

在终端上运行人工智能技术需要端侧人工智能推理框架的支持,总体构架如图3所示。

 image.png

                  图3 移动终端推理技术构架

应用层基于终端操作系统进行开发,提供全部功能的实体,向上面向用户,通过UI用户界面向用户提供服务,向下通过调用人工智能推理框架,驱动终端硬件处理AI任务。目前,主流的移动端操作系统包括Android、iOS均支持人用智能技术。不同于通常的移动应用,除了提供UI界面、功能逻辑、数据储存等功能外,人工智能技术的应用还需要调用人工智能推理框架进行AI任务处理,主要包括数据获取、传递及AI处理结果的展现。

人工智能推理框架是终端人工智能技术的核心,它能在终端上调用芯片的计算能力运行神经网络模型。通常推理框架包括模型转换工具和深度学习编译器两个组件。模型转换工具可以将神经网络模型转换成推理框架支持的格式,深度学习编译器用于在移动终端上运行转换后的神经网络模型。端侧的人工智能推理框架包括通用框架和专用框架。通用框架指能跨平台运行,能在多种芯片平台上运行的人工智能推理框架,如Tensorflow Lite、Caffe 2 等。专用框架指仅能在指定的部分芯片平台上运行的人工智能推理框架,如高通的SNPE、华为的HiAI。

终端人工智能技术最终需要落实到硬件上进行计算处理。进行人工智能计算需要非常强的算力,传统的终端计算芯片已经不能很好地满足。CPU可以提供一定程度的算力,但由于其构架中包含很大比重的控制器、寄存器等部件,而相应用于计算的逻辑单元较少,所以在指令的处理/执行,函数的调用上有很好的发挥,但在数据处理方面能力较弱。GPU原设计用于进行图像处理,逻辑单元丰富,并行及图形处理更出色,相比于CPU能为人工智能计算提供更高的算力,但还是不满足终端对实际人工智能算力的要求。为适应人工智能技术的发展,主流芯片厂商推陈出新,推出了针对人工智能计算的AI硬件加速单元,如NPU、DSP等。DSP(Digital Signal Processing)即数字信号处理技术,DSP芯片即指能够实现数字信号处理技术的芯片。DSP芯片的内部采用程序和数据分开的结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,能够在执行图像处理应用中的计算负载当中发挥重要作用,如虚拟现实、增强现实、图像处理、视频处理、计算视觉等,还可以用来快速地实现各种神经网络模型的算法,比如高通骁龙芯片的HVX矢量扩展技术(DSP)和张量加速器HTA。

5 神经网络推理

在端进行人工智能任务,主要是进行推理计算,推理是通过模型运行数据以获得预测的过程,这个过程需要模型,编译器和输入数据,执行一般分为神经网络模型转换与加载、数据转换、神经网络模型的运行推理、推理结果输出。

5.1  神经网络模型的转换与加载

进行人工智能任务首先需要选择和使用神网络模型,神经网络模型是一种数据结构,这种数据结构包含了在解决特定问题时,训练得到的机器学习网络的逻辑和知识,用来对采集的数据进行计算和判断。搭建好神经网络模型后,并不能直接处理人工智能任务,首先需要使用大量数据对模型进行训练,当模型训练达到一定精度满足需求后才能进行推理应用。模型训练好后将包括模型结构和参数两部分,将二者绑定在一起称为冻结,冻结后的模型一般叫与训练模型,可见同一个神经网络模型通过不同的数据训练可以产生不同的预训练模型,而不同的预训练模型则用于处理不同的人工智能任务,因为模型的参数更适合于识别和处理不同的目标和对象。

image.png

表2  人工智能计算框架模型支持情况

预训练神经网络模型一般有人工智能计算框架生成,主流的人工智能框架包括Tensorflow、Caffe、ONNX等。端侧人工智能技术主要进行推理训练,所以一般在PC或云端将模型训练好后使用预训练模型进行部署,而部署之前则需要针对不同端侧人工智能推理框架进行模型转换,转换为各框架支持的特殊格式。不同的端侧人工智能推理框架支持不同的神经网络模型格式。如Tensorflow Lite只支持自家的Tensorflow模型,高通SNPE支持Tensorflow、Caffe、ONNX,华为HiAI支持Tensorflow、Caffe等,具体见表2。

神经网络模型的转换旨在各种设备上高效的执行,其主要有两个作用:适配人工智能推理框架;对模型进行压缩和优化。

端侧不同的人工智能推理框架只能运行特定格式的神经网络模型,支持的预训练神经网络模型一般无法直接在框架的编译器上运行,所以需要进行格式转换。一般每个端侧人工智能框架都提供模型转换工具,可以对支持的预训练神经网络模型进行转换,模型转换工具会根据硬件情况,对预训练模型在结构和参数方面进行优化,以提供更优的效果,这包括更高的准确率或更快的处理速度。模型转换工具在使用中也有一些限制,主要源自各端侧人工智能推理框架对模型算子的支持情况各有不同。如华为HiAI平台,其提供的模型转换工具能根据算子支持情况对预训练模型进行切割和拆分,当预训练模型的算子属于可支持范围内时,将模型直接转换成其指定的格式;当预训练模型的算子部分支持时,则转换时生成混合模型,将支持的算子部分指定到NPU上执行,对不支持的算子则回落到CPU上执行。

端侧人工智能推理框架的模型转换工具提供的另一个预训练模型的压缩和优化功能则是指模型的量子化过程。通常端侧处理的神经网络模型的参数和数据参数都是float类型,这类预训练模型能提供更高的准确率,但处理速度由于较慢,且适合在CPU或GPU上执行,而随着技术发展,终端提供的异构芯片中包括AI加速单元,如DSP、NPU等,这些AI加速单元能对人工智能计算提供更好的算力,这主要体现在对INT型数据的支持上,所以讲预训练的神经网络模型从float类型压缩成int类型,使模型更适合在AI加速度单元上执行,这一过程称为模型量子化。运行量子化模型虽然会带来一些精度上的损失,但由于大幅缩减了数据量,且能充分利用AI加速单元,所以讲为用户带来惊人的速度提升和功耗降低,更适合于移动终端的使用。量子化压缩效果见表3。

 1600996242(1).jpg

4  TFLite硬件支持情况

CPU中通常运行float浮点数,由于结构限制,无法为人工智能技术提供更多的算力,可以得到准确的推理结果,但执行速度较低,其优点在于适用性广泛,在所有的移动终端均可以运行,即使终端不具备GPU或AI加速单元。

GPU是设计用来完成高吞吐量的大规模并行工作的。因此,它们非常适合用在包含大量运算符的神经网络上,一些输入张量可以容易的被划分为更小的工作负载且可以同时执行,通常这会导致更低的延迟。在最佳情况下,用 GPU在实时应用程序上做推理运算已经可以运行的足够快。不同于CPU的是,GPU可以计算 16 位浮点数或者 32 位浮点数并且 GPU不需要量化来获得最佳的系统性能。使用GPU做推理运算还有一个好处就是它的能源效率。GPU可以以非常高效和优化的方式下进行计算,所以GPU在完成和 CPU一样的任务时可以消耗更少的电力和产生更少的热量。所以,让神经网络模型在GPU上执行可以获得准确率和速度的最佳平很体验。

NN API指Android Neural Networks API,是一个Android C API,专门为在移动设备上针对机器学习运行计算密集型运算而设计[4]。NNAPI旨在为编译和训练神经网络的更高级推理框架(如TensorFlow Lite、Caffe2等)提供一个基础的功能层。NNAPI支持通过以下方式进行推理:将 Android设备中的数据应用到先前训练的开发者定义模型。推理的示例包括为图像分类、预测用户行为以及选择针对搜索查询的适当响应。NN API能自动选择可执行的硬件,当终端支持DSP等AI硬件加速单元时,NN API可以指定使用AI硬件加速单元进行计算,尤其适合处理int型数据。当终端不支持AI硬件加速时,NN API也可以将数据分配给GPU处理,或回落至CPU进行处理(见图5)。

image.png

表3  量子化模型效果

5.2  数据转换

进行人工智能任务前,通常还需要对输入的数据进行预处理。以图像识别为例,神经网络模型多以卷积等操作对图像数据进行处理,其中涉及卷积核大小,步长等参数设置,这就对待处理的图片提出了要求。一般每种神经网络模型都对图片有特定的尺寸要求,比如Mobilenet模型可以支持处理224×224尺寸的图片。在处理人工智能任务,采集到的图片格式,尺寸都不相同,这就需要现将图片进行预处理,按照特定尺寸进行缩放或拉伸后,符合模型要求再做进一步处理。

图像进行预处理后就可以传入神经网络模型进行计算,为了适合终端硬件单元处理特性,通常需要将图像在内存中由文件格式转换ByteBuffer等线性变量进行处理。同时,根据模型的精度要求,对每个像素的值进行float类型转换或int类型的转换。

5.3  神经网络模型的运行与推理

此步骤涉及使用端侧人工智能推理框架对神经网络模型的进行部署和执行,包括构建编译器和分配数据张量。

人工智能推理框架其核心是人工智能编译器,编译器是一个库,它接收一个模型文件,执行模型文件在输入数据上定义的运算符或操作,并提供对输出的访问。大部分人工智能推理引通过API方式,以多种编程语言为开发人员提供接口,能支持大多数常见的移动操作系统,如在Android操作系统可以适用Java或C++执行推理,在iOS操作系统适用Swift或Objective-C语言编写等。在构建编译器过程中,可以指定加载的预训练神经网络模型,输入的数据和输出的数据,以及其他必要参数,如运行的精度,运行的硬件其他相关参数等。

1600995946(1).jpg

5  NN API构架

此外,其他端侧人工智能推理框架也能对硬件进行选择,如高通SNPE能读取芯片参数,并根据芯片能力,指定数据在CPU、GPU、DSP或AIP上执行,同时还能选择模型的运算精度。

华为HiAI能根据算子支持情况自动将数据分配给CPU或NPU上执行。

5.4  推理结果输出

当模型执行完毕后,将反馈推理结果,反馈的结果将以特定的数据结构向用户反馈。通常开发人员还需要对反馈的数据进行解释,将其转换为可理解的有意义的结果展示给用户。

在进行图像分类任务中,神经网络模型在处理完一张图片后,会反馈一个概率列表,包括神经网络模型认为该图片包括什么物体,且该物体可能的概率是多少。通常返回结果不止一组结果,反馈将通过概率高低,依次为用户提供多个可能的物体及其概率。

由于端侧人工智能技术使用预训练模型,在模型训练过程中使用的训练集,其中包括的物体种类是有限的集合。在执行推理计算后,反馈的结果也仅包括训练集训练过的物体种类。当推理的物体属于训练集中的物体时,通常神经网络模型有较好的识别率,当识别不属于训练集中的物体时,神经网络模型就无能为力了,它只能从训练集中的物体中挑出近似度最高的物体反馈给用户,而且通常这是错误的结果。所以在模型训练中需要尽可能覆盖更多的物体种类,或针对特定领域做更深度的训练。

6 结束语

人工智能技术可以让应用脱离编程逻辑的条条框框,为用户实现更多的可能性,提供更智慧的服务。在移动终端上产业链各环节也在加大研究和投入,芯片厂商通过技术发展为人工智能技术提高更高的算例,同时减低功耗,保证终端续航;终端厂商适配更优的人工智能计算框架,将个性化的服务集成到移动终端中;人工智能框架开发商则进一步优化框架,提升处理效率和兼容性,同时抓住用户痛点,训练更多更高效的神经网络模型为用户和第三方应用开者提供服务。未来的智能终端应该具备感知、理解、以及深度分析能力。还应该内置大量传感器,以及配备人工智能分析处理器,来充当人的眼睛、耳朵、鼻子、大脑,负责收集需要的声音、触感、方位、亮度、面部、情绪方面的信息。并且可以根据这些信息进行分析处理,最终给出推理结果。人工智能技术将涉足于更广泛的领域,提供更高效智能的服务,移动智能终端的用户体验也许将随着人工智能技术的发展发生颠覆性的提升。


【参考文献】

[1] https://tensorflow.google.cn/lite.

[2] https://developer.huawei.com/consumer/cn/doc/development/hiai-Guides/3140201.

[3] https://developer.qualcomm.com/docs/snpe/overview.html.

[4] https://developer.android.google.cn/ndk/guides/neuralnetworks/index.html.


作者简介

解谦,硕士毕业于北京邮电大学电子与通信工程专业,高级工程师,从事移动终端的新技术研究,测试及标准化工作;主要研究方向:移动终端人工智能技术与评测。

钱承,工程硕士毕业于北京交通大学,工程师,主要研究方向:质量、电磁、通信、医疗领域校准及相关技术研究工作。

张睿,硕士毕业于北京邮电大学,教授级高工,长期从事信息通信领域新技术、新产品的测试和研究工作;主要研究方向:无线电计量、电磁兼容测试、智能终端测试、通信产品性能和软硬件测试。

刘䫺,硕士毕业于北京邮电大学通信与信息系统专业 ,工程师,主要研究方向:人工智能与区块链相关技术研究。

 (此文章为原创,转载须白条通过)


编辑:中国电源产业网

来源:《电源工业》杂志

标签:

中国电源产业网官方在线QQ咨询:AM 9:00-PM 6:00
广告/企业宣传推广咨询:
活动/展会/项目合作咨询: 市场部
新闻/论文投稿/企业专访: 李先生
媒体合作/推广/友情链接: 市场部

中国电源产业网网友交流群:2223934、7921477、9640496、11647415

中国电源产业网照明设计师交流群:2223986、56251389

中国电源产业设计师QQ群:102869147

X