题目: Energy-Efficient and Robust Middleware Prototyping for Smart Mobile Computing
作者: Saideep Tiku, Sudeep Pasricha
出处:Proceedings of the 28th International Symposium on Rapid System Prototyping: Shortening the Path from Specification to Prototype
时间: October 19 - 20, 2017
伴随着智能手机越来越普及,智能手机的功能也越来越丰富,然而智能手机电池的发展却远远落后于智能手机其他软硬件的发展,如图1,据调查显示,在过去七年,手机处理器,容量等指标增长了超过20倍,而手机电池的电量却只增长了两倍,尤其是在当下,智能手机的电量成为制约智能手机产业发展的重要因素。在电池理论没有突破的前提下,使用算法更高效率的用电,节约电量,延长电池寿命就成了目前最流行的方向。
图 1 需求电量和实际电量的差异
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。智能手机的中间件是一个独立的服务程序,在智能手机中负责连接操作系统和应用程序,对其进行设计和改进,不会触及复杂的操作系统,也不会影响现有的应用程序,因此提高用电效率的优化适合在中间件进行。
伴随着智能手机的普及,每天大量的数据被产生,手机更加强大的计算能力和更加精细化的操作系统为处理这些数据,为用户提供更好的服务提供了可能。但是当下的智能手机的发展却被电池冷却技术和容量所困扰。本文通过分析智能手机耗电的因素,通过机器学习算法,对用户行为进行预测,在不影响用户体验的前提下,对智能手机的显示,CPU,无线接口,云端计算和室内定位的用电效率进行优化。作者提出了一种新颖的,基于用户与手机设备交互的中间件框架AURA(Application and user-interaction aware energy management middleware framework)以达到延长手机使用时间和电池寿命的目的。AURA不仅可以优化CPU等原件的耗电,还可以学习用户行为,使得该中间件可以满足和适应不同用户的需求。
主体思路:通过研究用户使用手机的习惯和关注点,对用户与手机的交互进行预测,对于用户不关注或者无用的部分的消耗进行削减,来节约用电。与此同时,利用积累的数据,辅助智能手机更准确的完成定位等功能,以提升系统功能的鲁棒性。下文将分别从显示,CPU,无线接口,云计算和室内定位等方面依次介绍。
①显示:根据先前的研究和作者自身的用户调查显示,在用户与手机进行交互的过程中,用户只会关心特定的信息,并且人类对颜色亮度等变化的察觉能力是有限额,因此对于用户相对不关注的部分和察觉不到变化的部分,我们可以通过根据用户额使用习惯,缓慢降低其亮度等方式降低屏幕耗电。
②CPU:通过其他研究,作者发现用户与手机的交互是存在一定延迟的。如图2,手机用户接到了一条来自Facebook的推送,从用户接到这个推送,到用户看到,理解并作出反应是需要一定的时间的,在此期间,我们可以降低CPU的电压和频率,来达到省电的目的。在论文中,作者将应用分成了七类,不同类型的应用采用不同的降压降频的策略。同时,作者采用了强化学习的算法,使得算法可以适应不同的用户个体。作者将这种算法和目前最流行的节电算法比较,相较于后者,作者的算法可以下降平均17%的耗电量。
图 2 用户感知延迟
图 3 论文中对感知延迟的解决方案
③无线接口:无线接口包括WiFi接口,3G,4G,GPS等接口,这些接口导致了大约25%的电量耗散,但实际上,这些接口几乎是时时刻刻都是开启的,但是大多数情况下,这些接口不会全部用到,比如在使用4G接口的时候用户可能不会使用WiFi接口,而且使用什么接口往往是与用户正在使用的APP和用户所处的位置有关。因此,我们同样使用机器学习的手段进行预测,在合适的时候把用户不使用的接口关闭掉。
④云计算:为了节约电量,目前有一种解决方案是采用云计算的方式将部分复杂运算交给云端,再由云端传回结果,达到节约本地计算资源,节省电量的目的。已有研究成果认为这种方式比本地计算更省电量,但是作者认为先前的研究并不严谨,条件太过理想化,云端计算的耗电量要考虑很多因素,比如WiFi信号强弱和3G或4G信号强弱。作者同样通过机器学习的手段,根据信号强弱,数据类型,云端性能等因素,选择适宜的时机进行云端计算。与其他论文的方法做对比,作者的方法节约了30%的电量并且响应速度提高了20%。
⑤室内定位:因为室内GPS信号较弱,因此单纯使用GPS信号难以在室内准确定位,因此许多定位软件在这种情况下回通过监控周围的信号,通过这些信息来准确定位,但这会带来电量的大量消耗,而且效果也不是很理想,针对这种情况,作者也是通过积累过往的数据,通过机器学习的手段进行预测,最后的结果是作者设计的中间件可以通过更少的信息来准确定位,也就达到了节电的目的。最后的结果显示,相较于比较原始的方法,虽然论文中的方法能耗略有上升,但定位的准确度大大提升。
图 4 室内定位能耗和误差对比图
作者在论文中运用到了多种机器学习的技术,但是在论文中,作者并没有提出新的算法,而是将过往的经典算法依次使用到作者开发的中间件中,通过实验,找寻最优的算法。下面列举的是在论文实验中表现比较好的几种算法。
贝叶斯分类算法:是统计学的一种分类方法,它是一类利用概率统计知识进行分类的算法。该算法简单,分类准确率高,速度快,适用于中间件的算法。在本论文中,作者将其应用到为应用分类以选择使用的降压降频策略上。
强化学习:是智能体以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使智能体获得最大的奖赏,强化学习不同于连接主义学习中的监督学习,主要表现在教师信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统RLS(reinforcement learning system)如何去产生正确的动作。由于外部环境提供的信息很少,RLS必须靠自身的经历进行学习。通过这种方式,RLS在行动-评价的环境中获得知识,改进行动方案以适应环境。本论文具体使用的强化算法是Q-learning和马尔科夫决策过程。
K最近邻分类算法(KNN):KNN是通过测量不同特征值之间的距离进行分类。它的思路是,如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
支持向量机:支持向量机(Support Vector Machine, SVM)的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大。SVM是用来解决二分类问题的有监督学习算法,在引入了核方法之后SVM也可以用来解决非线性问题。
线性判别分析:线性判别分析(linear discriminant analysis,LDA)是一种监督学习的降维技术,是对费舍尔的线性鉴别方法的归纳,这种方法使用统计学,模式识别和机器学习方法,试图找到两类物体或事件的特征的一个线性组合,以能够特征化或区分它们。所得的组合可用来作为一个线性分类器,或者,更常见的是,为后续的分类做降维处理。
主成分分析技术:主成分分析技术(principal component analysis,PCA)旨在利用降维的思想,把多指标转化为少数几个综合指标。在本论文中,用于处理选取的特征太多的情况。主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标(即主成分),其中每个主成分都能够反映原始变量的大部分信息,且所含信息互不重复。这种方法在引进多方面变量的同时将复杂因素归结为几个主成分,使问题简单化,同时得到的结果更加科学有效的数据信息。
智能手机的电量问题一直是困扰智能手机业发展的一个重要问题,在大数据和人工智能兴起的背景下,作者希望通过机器学习的手段缓解智能手机遇到的硬件问题。总的来说,作者以收集和分析用户行为为基础,通过机器学习预测用户行为,降低手机不必要的消耗,以达到提高手机使用时长和寿命的目的。经过作者的调查,使用作者开发的中间件,在不影响用户体验的前提下,可以有效降低用电量,缓解手机用电量不足的问题。
在结果展示中,作者也提到,他的算法并不是对所有的用户都是省电的,尽管该中间件对用户行为的预测准确度很高但是对于某些用户,正确预测其行为并不能带来能耗的减少。正如作者所说,这种节电算法本来就是一个trade off的过程,我们要在算法带来的消耗和预测带来的损耗减少中做一个权衡,而实验结果告诉我们,对于有些用户的行为pattern,论文中的权衡是不合适的。
另外,这种算法个人觉得有十分大的局限性。论文中设计的中间件对手机系统的干预过多,目前的智能手机市场竞争十分激烈,用户体验才是最重要的质量属性,手机的续航能力反而在用户需求中相对靠后。表面上看,作者设计的中间件对用户行为有很高的预测准确率,使用这个中间件,也能带来电量的显著下降,但对于手机,用户的行为是十分不确定的,需求也是十分多样,并且是在不断变化的,而且安卓机型千变万化,手机应用也是姿态万千,这种预测和干预一旦出现一点点问题,都会导致用户体验的大大降低。作者的调查的用户基数也太小了,极有可能出现作者没有注意到的问题。
这篇论文最大的贡献不是在于算法,论文中使用的算法可以说都是非常简单和经典的算法,事实上,从节能的角度考虑,作者也不可能使用太复杂的算法,而是在于作者通过引用其他论文的研究成果和自己的调查,发现真正影响智能手机能耗和鲁棒性的因素,并证明自己的方法确实可以对这些因素进行优化。在这一方面,作者做了十分精细的工作,给了非常多的参考资料和自己做的实验和调查。并且,在做对比方法的时候,作者将能用到的经典的机器学习的方法都用到了,给了十分充足的证据。这说明,对于做科研,除却创造力之外,耐心细致的调查也十分重要,分析遇到的问题,找到实际的痛点,这样子做出的科研成果才有意义。
另外,论文使用手机中间件作为搭载优化算法的载体也是一个很好的思路。考虑到安卓操作系统的复杂性,想在操作系统上直接做文章是比较困难的,而手机应用的权限有限,并且针对不同的机型,差异很大,这个时候,连接操作系统和手机应用的中间件就成了一个很好的实现载体。
其实不仅仅是智能手机,所有受困于电量的嵌入式设备都可以使用文章的所使用的技术。通过收集数据的方式进行分析和预测,进而避免不必要的消耗。考虑到其实大部分的嵌入式设备没有太强的处理能力,因此这种技术最适宜应用的地方应该是电动汽车。在电动汽车中专门做一个相关的软件程序,与电动汽车的监控程序绑定在一起,分析用户开车时涉及电力相关的行为,通过深入分析这些行为,结合汽车相关的知识,在保障用户安全的前提下,使电动车节电。
现在使用软件对硬件的表现进行优化是一个十分热门的方向,例如华为的GPU Turbo技术,就在市场上取得了很好的反响,一些游戏大作,其热销也往往与它对不同机型的良好优化有关,我们可以看到,在这个领域,是大有可为的。
对于这篇论文的不足,首先,我觉得这篇论文还是有点太学术化了,有闭门造车之嫌。目前市面上的手机制造商都会在原生安卓的基础上自己定制,我相信,在降低手机能耗方面,各路手机大厂一定会对此作出权衡和优化,而且这些一年可以出货一亿台的大厂,他们能拿到的数据和对这些问题的理解一定会远远超过大学的科研人员。而且在论文中,我虽然看到他们用三星,谷歌,HTC的手机进行测试,但是参与测试的用户太少,给出的结论在这方面不够有说服力,从论文中看,也没有说有哪些厂商最后用到了他们的技术,对于这种和现实生产极其紧密的技术,如果不能实用化,我认为意义是不大的。
论文是要通过优化使手机更节电并且提升手机功能的鲁棒性,但是除了最后一部分室内定位提高了精确度之外,我很少有发现讲解鲁棒性的地方,而且按照我的理解,在降低能耗的时候鲁棒性很难提高,特别是作者设计的中间件直接去管理手机应用的开闭,这其实有时候会影响用户的体验,甚至是有些危险的行为。
关于这些问题的改进,我认为,首先,做这样的实验应该和具体的手机厂商做合作,比如华为三星,最好的话,开发出的中间件可以在实际用户中进行使用,通过用户的反馈来判断这种中间件到底好用不好用。如果找不到厂商合作,也应该扩大测试用户的数量,并且衡量标准应当再具体再细节一些,毕竟对于手机用户而言,数据是没有意义的,只有实实在在的体验效果才能衡量这篇论文的好坏。
本篇论文的作者利用大数据的技术,对电池的使用做了优化,取得了不错的效果,这是值得肯定的,但是巧妇难为无米之炊,硬件还是所有软件的基础,在电池的理论技术取得突破之前,这些优化只能在一定程度上延长手机的使用时间,依然改变不了智能手机在用电方面的窘境。而在今年,许多关于手机电池的技术都取得了突破,快充技术不断发展和普及,容量更大,充电速度更快的石墨烯电池也马上就要投入生产,配合着越来越先进的机器学习算法,手机的性能可以进一步被解放,为用户带来更优秀的应用和更好的使用体验。