针对可穿戴设备深度学习应用模型分载系统及方法与流程

文档序号:15077946发布日期:2018-08-03 05:38阅读:371来源:国知局

本发明涉及软件技术领域,尤其涉及人工智能,具体涉及是一种通过自适应性模型分载来优化可穿戴设备上运行的深度学习应用的系统及方法,适用于开发部署运行在可穿戴设备上的深度学习应用。



背景技术:

深度学习(Deep Learning)是一种机器学习算法,同时也是人工智能领域的一个重要分支。从快速发展到实际应用,短短几年时间里,深度学习颠覆了语音识别、图像分类、文本理解等众多领域的算法设计思路,渐渐形成了一种从训练数据出发,经过一个端到端(end-to-end)的模型,然后直接输出得到最终结果的一种新模式。在可穿戴设备上,深度学习技术也获得了广泛的应用。例如,在智能眼镜中依靠深度学习进行高准确率的人脸识别;在智能手表中通过深度学习进行精确的文本翻译等。

深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段,“特征学习”是目的。

区别于传统的浅层学习,深度学习的不同在于:

1)强调了模型结构的深度,通常有5层、6层,甚至上百层的隐层节点;

2)明确突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。

与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。正是由于以上的特点,运行深度学习模型需要大量的计算资源,使得其在可穿戴设备上的部署极具挑战性。考虑到一些应用的实时性,和可穿戴设备上电量的限制,需要专门的硬件或算法来加速深度学习模型的运行。

传统的针对可穿戴设备的计算优化是计算卸载(Offloading),其试图通过将计算密集型的工作卸载到云端(cloud)以加速其运算。

这种方法有两个较大的缺陷:

1)计算卸载需要较快的网络连接作为支持,但是在现实条件下这个前提难以被满足;

2)计算卸载需要将数据通过无线网络传输到远端服务器上,这其中可能会导致隐私数据的泄露。

与之相对的,一种新的计算模型,边缘计算(Edge Computing)成为很多终端应用部署的趋势。边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。本发明将这种边缘计算的概念应用在可穿戴设备间,并针对深度学习算法的特点定制其模型的分载方法。



技术实现要素:

针对可穿戴设备(智能手表,智能眼镜等)上运行深度学习应用(如人脸识别,增强现实,文字翻译等)可能面临的计算资源不足的问题,本发明的目的在于提供一种针对可穿戴设备深度学习应用模型分载系统及方法,作为自动化深度学习运行和优化框架,其核心思想是根据当前运行时环境(包括硬件,负载,网络状况等)寻找最优的模型分载方式,将一部分子模型的运算卸载到配对的移动手机上。

本发明采取的技术方案为:

针对可穿戴设备深度学习应用模型分载系统,包括:

预测模型模块,用以预测运行该深度学习应用模型的各层所需的时间与电量作为预测数据;

开发者接口模块,用以作为将模型分载算法和数据引入深度学习应用中的接口;

状态信息收集模块,用以收集硬件信息以及应用模型运行时状态,作为分载依据;

模型分载决策模块,加载模型分载算法和数据,用以获取全部可能的分载情况,然后根据分载依据及预测数据从中搜索最优的分载方式;依据该最优分载方式将深度学习应用模型分载为两个子模型。

进一步地,所述预测模型模块通过构建深度学习各种连接层和激活层运行速度和消耗电量的预测模型进行预测,所述预测模型输入是一深度学习层的种类和参数,输出是在一硬件上运行该深度学习层所需的时间与电量。

进一步地,所述应用模型运行时状态包括:可穿戴设备以及与其配对的智能移动终端上处理器的负载和工作频率、网络情况。

进一步地,用以获取全部可能的分载情况,然后根据分载依据及预测数据从中搜索最优的分载方式包括;

对于线性的深度学习模型,遍历每一条边将其作为一个割,将整个模型分为两个部分;

对于非线性的深度学习模型,对模型中计算量小的节点进行剪枝;将模型中重复的子结构合并为一个节点。

对应前述系统实现的分载方法,其步骤为:

预测运行该深度学习应用的各层所需的时间与电量,作为预测数据;

将模型分载算法和数据引入深度学习应用中;

收集硬件信息以及应用运行时状态,作为分载依据;

该模型分载算法和数据用以获取全部可能的分载情况,然后根据分载依据及预测数据从中搜索最优的分载方式;依据该最优分载方式将深度学习应用模型分载为两个子模型。

进一步地,通过构建深度学习各种连接层和激活层运行速度和消耗电量的预测模型进行预测,所述预测模型输入是一深度学习层的种类和参数,输出是在一硬件上运行该深度学习层所需的时间与电量。

进一步地,所述应用模型运行时状态包括:可穿戴设备以及与其配对的智能移动终端上处理器的负载和工作频率、网络情况。

进一步地,还包括:其中一子模型在可穿戴设备上执行结束后,将中间结果传输到智能移动终端上作为输入继续执行另一个子模型,最后将运算结果返回。

进一步地,获取全部可能的分载情况包括;

对于线性的深度学习模型,遍历每一条边将其作为一个割,将整个模型分为两个部分;

对于非线性的深度学习模型,对模型中计算量小的节点进行剪枝;将模型中重复的子结构合并为一个节点。

进一步地,根据分载依据及预测数据从中搜索最优的分载方式的依据如下:

使整体端到端的时间/电量最少;时间/电量的消耗包括在可穿戴设备上运行一子模型、数据传输、在智能移动终端上运行另一子模型。

通过采取上述技术方案,本发明有效消除在可佩带的智能设备上执行深度学习应用模型存在的瓶颈及限制,现有的可佩带设备和移动设备在硬件资源上的巨大的异质性以及运行时环境的复杂性,为开发者开发和测试高效可运行的深度学习应用带来了巨大的挑战。本方案旨在将这些复杂的算法与框架统一成开发者友好的运行库,从而帮助开发者不需要了解底层的硬件、算法、与模型分载的细节,即可开发出在可佩带上高效、健壮、用户友好地运行。

附图说明

图1为本发明一实施例中针对可穿戴设备深度学习应用模型分载系统的架构示意图图,图中标示了各模块的交互执行步骤。

具体实施方式

工作原理:

基于一个现实的观察:几乎每一个用户都会随身携带智能手机,可穿戴设备通常都会通过蓝牙或者无线网与智能手机配对,然后连入网络。智能手机的计算速度往往比由于形状大小受限的可穿戴设备更快。例如,在智能手表LG Urbane Watch上运行一个深度学习的模型需要大约10倍于在一个智能手机Nexus 6上所需的时间。但同时也存在如下现象,并不是每一个深度学习模型,在任何情况下都适用于卸载到智能手机。是否卸载,如何卸载,往往取决于两者硬件条件的对比,网络延迟,智能手机上的负载等。

本发明正是基于对上述工作原理的认识,给出一种针对可穿戴设备深度学习应用的自适应模型分载系统及方法,从而优化可穿戴设备运行深度学习应用的方式。

为了对本发明实施例中的技术方案进行清楚、完整的描述。下面将结合本发明实施例中的附图。

结合图1,本实施例中提供一种针对可穿戴设备深度学习应用模型分载方法,其步骤包括:

1)构建深度学习各种连接层和激活层运行速度和消耗电量的预测模型(Prediction Model)。这些预测模型输入是一个深度学习层的种类和参数,输出是在某一个特种硬件上运行该深度学习层所需的时间与电量。需要指出的是,这里的预测模型不同于所要解决优化的深度模型本身:前者是对后者在运行时所需时间和电量资源的一种预测,是由本发明根据所需引入的。

2)深度学习应用的开发者通过导入本发明框架,以作为开发者接口模块的API(Application Programming Interface应用程序编程接口)的方式将模型分载的算法和数据引入应用中。同时,开发者可以指定运行该深度学习模型的优化目标:延迟或者电量。

3)深度学习应用在真正运行时,是通过一次或数次调用模型的前向(interference)算法实现的。在开始模型运算之前,框架首先会收集运行时状态,包括硬件性能,与智能手机之间配对的网络延迟,设备负载等,然后结合1)中构建的预测模型,找到所有模型分载中所需时间最小,或者电量消耗最少的一种。此时,原模型M被分解为M1和M2。

4)根据3)中得到的结果,首先在本地穿戴式设备上执行M1,获得的中间结果通过网络传输到智能手机上,作为M2的输入,然后将M2的结果返回,作为整个模型的执行结果。其中,模型的部分执行在现在的通用深度学习框架如TensorFlow,Caffe上都被支持,可以直接使用,只需要提供框架输入层的名字和输出层的名字即可。

本发明的架构如图1所示,除了预测模型需在线下针对不同硬件构建而成,其余模块共同组成运行时框架,其具体技术方案如下。

(1)模型分载决策模块。该模块是整个框架的核心,它负责决策是否需要对模型进行分载以及如何分载。深度学习的模型计算分载是指将一个完整的模型分成两个子模型,前面一部分的结果在本地穿戴式设备上执行结束后,将中间结果传输到智能手机上作为输入继续执行另一个子模型,最后将运算结果返回。这个决策涉及到两个关键的步骤:获得所有可能的分载情况(搜索空间),然后从中搜索最优的分载方式。

对于一个线性的深度学习模型,其分载方式是很容易确定的:只需要遍历每一条边把它作为一个割,将整个模型分为两个部分。一个深度为n的模型,它的切分方法有n+1种,包括两个极端情况:全都在本地执行以及全都在远端智能手机执行。

但是对于很多深度学习模型,如LSTM和GoogLeNet,它们并不是一个简单的线性结构,可能会有分叉和交汇的节点层。这时候,试图获得它所有的分载方式将会变成一个O(2n)复杂度。为了优化这个搜索空间,本发明提出了两种递进的优选策略。

首先,一些计算量很小的节点可以被剪枝。实验证明,一个深度学习模型的95%以上的时间和电量都消耗在少数几个节点(卷积层,全连接层,池化层,激活层)之上,因此其余节点都可以被剪枝,从而整个图的节点数会大量减少。其次,复杂的深度学习模型通常都具有重复的子结构,这些子结构可以被合并为一个节点,从而加速获取所有有效分载情况的过程。从一个较大的图中挖掘频繁出现的子图是图挖掘领域的重要方向,在学术界已经有多种成熟的算法。本发明采用的是Mohammed ElSeidy等人于2014年提出的GRAMI频繁子图挖掘算法。

成功获取一组分载情况之后,就需要从中确定最适合当前环境的分载方式,即使得整体端到端的时间(电量)最少。时间(电量)的消耗包括在可穿戴设备上运行模型M1,数据传输,以及在智能手机上运行模型M2。计算的方法是对每一种分载情况,分别计算M1和M2中所有层的时间(电量)消耗,然后直接相加即可得到M1和M2所需要的总的时间(电量)。这里需要结合(4)中的状态信息收集模块和(6)中的预测模型来确定每一种分载情况所需要的时间(电量)。

(2)开发者接口模块。该模块负责向上提供开发者使用的接口API。与现在流行的开源深度学习框架一样,本发明框架允许开发者从存储中加载深度学习模型,向其中输入N维的张量数据,运行模型的前向算法,最后从中提取出指定层的输出数据。此外,开发者还可以指定优化目标(延迟或者电量),对于需要实时处理显示的应用如人脸识别,开发者可以设置为延迟优化;对于那些对延迟不敏感的应用如用户健康状况预测,可以设置为电量优化。除了以上需要开发者提供的信息以外,其它技术细节都被在以下的模块中,开发者不需要真正了解底层模型是如何分载的,这使得该发明更易于用于开发部署。

(3)数据传输模块。该模块负责可穿戴设备与智能手机之间的数据传输,包括深度学习模型的同步,中间运算结果和最终结果的传输等。具体的通讯协议会考虑硬件与系统的支持。例如在Android设备上,使用蓝牙或者Wifi作为传输方式,如果当前没有配对智能手机,则会通知模型分载决策模块,使得其完全运行在本地的可穿戴设备上。

(4)状态信息收集模块。该模块负责收集硬件信息以及运行时状态,后者包括但不限于当前可穿戴设备以及智能手机上处理器(CPU和GPU)的负载和工作频率,网络情况(是否配对,带宽)等。这些状态都会影响模型的运行速度,进而影响最终决策的模型分载选择。这些信息有些通过被动地获取,如CPU工作频率可以在需要的时候通过读取系统文件获得;有些通过轮询的方式更新,如每隔1分钟查看网络状况。

(5)深度学习算法驱动模块。该模块嵌入系统中,但是其实现可以用现有的通用框架,对开发者而言不需要直接使用,开发者只需要使用API模块;该模块真正执行深度学习模型的前向算法,可以用任意流行的框架所替代,如TensorFlow,Caffe2等。它需要支持深度学习算法的部分执行,即以任意节点为输入和输出,执行中间的节点运算。

(6)预测模型。与以上运行时模块不同,预测模型通过线下针对不同硬件配置训练而成。模型的输入是深度学习层的种类(卷积,全连接,池化等)及其参数(如卷积层中的输入矩阵大小,卷积核大小以及步长),输出是这一层所需要运行的时间及其电量。实验发现利用决策树+线性回归模型即可对这些层达到很高的预测准确率。如在Nexus 6设备中,用该模型对卷积,全连接,池化和激活层进行时间预测,决定系数(coefficientof determinationR2)分别达到0.993,0.927,0.945和0.998(1为最佳)。其中训练数据由我们自己通过设置不同的参数并在Nexus 6上运行记录时间生成。

下面提供一个具体的应用实例。该实例模拟了用户在实际生活中的一个实际需求。

以通过智能手表进行语音识别为例。通过智能手表的功能,用户可以很方便地在不打开手机的情况下接收社交软件的语音聊天信息,如微信,qq等。但是如果用户正在开会,不方便接听对方发来的语音消息,则可以使用深度学习驱动的语音识别技术,将语音转换成文字从而直接在手表上显示。这里通常使用基于LSTM的RNN模型来实现语音识别技术。但是高准确率的多层LSTM通常需要较大的计算量,可能需要将部分模型计算分载到处理器更强大的手机上。通过我们的技术方案,开发者只需要直接调用翻译语音的API,不需要了解分载的细节,在动态执行时我们的技术方案会做最优决策。在我们的实验中发现相比较完全在本地执行所有模型和在手机端执行所有模型这两种策略,我们的方案可以减少21.8%和94.3%的运行时间,以及19.8%和84.7%电量。

尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1