1、白皮书简介近年来,机器学习作为一项技术在多个领域悄然兴起,用于构建具有高级功能的各种设备。例如:具有语音控制功能的智能扬声器,可对大量的语音命令进行语音识别。可穿戴的活动跟踪器,可基于陀螺仪、加速计和磁力计等传感器的输入数据来识别人体活动,如行走、站立和坐下。装有摄像头的智能门铃,具有人脸检测功能,一旦发现可疑人物,会自动触发报警系统,向主人的智能手机发送警报,并附有图像或视频。自动驾驶汽车,运用先进的计算机视觉技术来检测车辆和行人等。这些设备均运用了机器学习技术,经过训练,可从一个或多个传感器(如麦克风、陀螺仪和摄像头等)捕获到的数据中识别出某些复杂模式(如语音命令、人体活动、人脸和行人等)
2、。当识别出此类模式后,设备就能采取相应的行动。例如,识别出语音命令“播放音乐”时,智能扬声器就能启动歌曲播放。机器学习的主题就是算法具有自我学习能力,无需显式编程1。如图1所示,机器学习分为训练和推理两部分。初始图表机器学习框训练数据集带权重的最终图表经过训练的模型推断引擎新数据(传感器输入)决策未经训练的模型训练推理图1:机器学习中的训练与推理训练始于未经训练的模型,例如具有选定图结构的多层神经网络。在这些神经网络中,每一层都使用系数或权重集将输入数据转换为输出数据。我们使用Caffe或TensorFlow等机器学习框架,通过大型训练数据集来训练这种模型,从而得到经过训练的模型,例如,权重已
3、经过调准、可对输入数据进行分类的神经网络,能够对上述活动跟踪器中不同类型的人类活动进行分类。作者Pieter van der Wolf首席研发工程师,Synopsys Inc.Dmitry Zakharov高级软件工程师,Synopsys Inc.欢迎迈入机器时代面向智能物联网应用的低功耗机器学习技术2训练工作从未经训练的模型开始,例如具有选定图结构的多层神经网络。在这些神经网络中,每一层将输入数据转换为输出数据,并应用系数或权重集。模型基于Caffe或TensorFlow等机器学习框架并采用大型训练数据集进行训练。例如,训练后的模型是权重已经过调整,可对输入数据进行分类的神经网络,能够对上述
4、活动跟踪器中不同类型的人体活动进行分类。推理使用训练后的模型来处理传感器捕获到的输入数据,并运用通过训练获得的识别能力来推断出复杂模式。例如,推理可以检查输入数据是否与已经训练好的神经网络所能识别出的某个类别相匹配,如活动跟踪器设备中的“行走”或“坐下”。也就是说,推理是利用经过训练的模型来识别新数据的过程。推理常在现场进行。本文将重点讲述推理而不是训练。具体而言,本文将着重说明如何在可编程处理器上高效实现机器学习推理。机器学习推理的处理要求可能因应用不同而存在很大差异。影响处理要求的一些关键因素包括:输入数据速率:指传感器捕获数据样本的速率。例如,这些样本可以是来自摄像头的像素,也可以是来自
5、麦克风的脉冲编码调制(PCM)样本。输入数据速率的范围可以是每秒几十个样本,例如通过少量传感器来识别人类活动,也可以是每秒数十亿个样本,例如通过高清摄像头以高帧频捕获图像的高级计算机视觉应用。训练后模型的复杂度:指在推理过程中对一组样本(如输入图像)执行的操作数量。例如,在神经网络中,复杂性取决于图中的层数、每层的(多维)输入和输出映射的大小、以及计算输出映射时使用的权重数。低复杂度的神经网络一般不到十层,而高复杂度的神经网络则可以多达几十层 2。表1举例显示了几个机器学习应用的输入数据速率和模型复杂度机器学习应用输入数据速率训练后模型的复杂度人类活动识别10s Hz(少量传感器)低至中语音控
6、制10s kHz(如16 kHz)低至中人脸检测100s kHz(低分辨率和帧频)低至中高级计算机视觉100s MHz(高分辨率和帧频)高表1:例如机器学习应用的输入数据速率和模型复杂度从表1中可以看出,输入数据速率和模型复杂度之间可能存在显著差异。因此,机器学习推理的计算要求也可能相差很大。本书将重点讲述具有中低计算要求的机器学习推理。具体而言,我们将着重讲述可用于构建智能物联网边缘设备的机器学习推理。请注意,对于高端机器学习,Synopsys提供功能强大的DesignWare ARC EV处理器3在下一节,我们将进一步详细说明如何高效实现低/中端机器学习推理。我们将以DSP增强型Desig