行业动态】
人工智能的火爆,也带旺了许多新名词,比如“机器学习”。与让机器按照既定的程序执行指令的传统工作方式不同,基于人工智能神经网络(ANN)的机器学习,其核心是让机器能够在没有人工输入和干预的情况下自动学习和改进其操作或功能,这让机器看上去具有了自我学习和进化的能力,表现得更为“智能”。这对于应付一些复杂、无法提前预知情况下的判断和决策尤为关键,比如让车辆在无人驾驶的状态针对路况环境做出正确的反应。
机器学习的兴起
让机器进行“学习”的模式,也像极了人类大脑进行学习和认知的过程。首先,需要用一组数据对于ANN进行“训练”,让ANN具备某一类“知识”;之后,机器就可以从过去的训练中汲取知识和经验,在新情况出现时基于训练有素的ANN进行“推理”,做出准确的判断。
实际上机器学习并不是一个新概念,之所以这两年火起来,自有其原因。从人工智能的ABC(A:算法;B:大数据;C:算力)三要素来看,算法虽然很“网红”,但实质上突破性的进步有限,很多现在用的算法不过是将尘封多年的成果拿出来换个脸而已,而后两者的发展才是机器学习兴起的决定性作用。
过去20年间随着数字化和互联网的发展,人类积累了大量的数据,而前几年大数据概念的兴起和应用,更是为机器学习做了良好的铺垫,让人们可以获取大量可用于机器学习“训练”的数据。而算力方面,不断提升的处理器技术为机器学习提供了坚固的基石,可以禁得起更复杂和更深层次的ANN的考验。比如针对计算资源消费大户的“训练”阶段,人们就发展出了GPU、FPGA、TPU、异构处理器等多种计算平台,去应对算力挑战。
机器学习所需的算力的提升,除了得益于底层硬件处理器平台的进步,还有一个不可忽视的重要因素,就是云计算的发展。以云计算为核心的集中式的大数据处理模式,将以前分散的计算资源集中到了云端,也让以前看来不可能完成的计算任务成为可能。所以云计算也成为整个人工智能发展的一个重要基础性支撑技术。
图1,机器学习催生了很多创新的人工智能应用,比如无人驾驶
从云到边缘
不过时至今日,集中式的云计算模式也遇到了挑战。大家逐渐发现,大量的人工智能应用和机器学习场景是发生在更为靠近用户的网络边缘节点端的,如果凡事都要上传到云端进行分析判断,然后再将指令下发到边缘节点进行处理,这么“漫长”的数据通信链路会受制于网络传输带宽的影响,产生不能接受的延时,同时还有诸如安全、功耗等方面的挑战。
这一云计算的瓶颈必然促使人们重新考虑合理配置计算资源,提供一个更为合理和高效的计算体系架构,于是“边缘计算”应运而生了。与集中式的云计算不同,边缘计算要做的是,不必再将数据传到遥远的云端进行处理,而是在边缘侧就地解决,让边缘端的嵌入式设备去完成实时性的数据分析和智能化处理。这实际上遵循的是一个“在正确的时间将正确的数据放在正确的位置处理”的策略,由此而形成的“云+边缘端”的混合计算模式对于未来的物联网架构影响深远。
具体到基于机器学习的人工智能应用场景,在部署其计算体系时也自然会考虑到上述“从云计算向边缘计算”的发展趋势,合理配置计算资源,令数据处理的效能最大化。对此,目前大家普遍的共识就是:充分利用云端算力,在云端去完成ANN的“训练”工作,而将“推理”放在网络边缘节点设备中进行,进而形成一个完整高效的机器学习系统。这有助于降低网络拥塞风险,提升处理实时性,增强用户隐私保护,甚至在无法联网的情况下也能启用“推理”功能。
举个例子,比如一个人脸识别系统,可以将在云端受过“训练”的ANN部署到本地用户端,当摄像头捕捉到人脸信息后,会利用本地嵌入式设备的处理器去完成“推理”工作,将其与本地数据库中存储的人脸信息库进行比对,完成人脸识别的工作。这就是一个典型的“训练在云端、推理在边缘”的例子。
图2,边缘计算架构
嵌入式系统上的机器学习
当然,虽然上面这种“云端一体”的计算架构看上去很美,但在实施过程中还是会面临诸多问题。一个最直接的问题是——在网络边缘端工作的嵌入式设备,通常都是处于资源受限的状态,功耗、成本、外形尺寸等方面的制约使其无法具备像云端系统那样“奢侈”的计算能力。因此想要实现“在嵌入式系统上跑机器学习”,就需要从硬件设计到软件部署,做出特殊化的安排。不过从另一个角度来看,这恰恰是给嵌入式系统设计带来了新的机遇,使其虽然身处网络“边缘”,但实则成为了大家关注的“中心”。
在嵌入式机器学习方面,整个产业链已经积极行动起来了。比如作为产业链上游的嵌入式处理器技术供应商,ARM就宣布推出了机器学习处理器,以及神经网络机器学习软件ARMNN。ARMNN可以在现有神经网络框架(如TensorFlow或Caffe)与在嵌入式Linux平台上运行的底层硬件处理器之间实现桥接,让开发人员方便地将机器学习框架和工具,无缝地在底层嵌入式平台上运行。
ARM推出的ARMNN软件实现了机器学习所需的神经网络框架与嵌入式硬件之间的桥接
而在产业链的另一端,互联网巨擘和云计算提供商态度也很积极。如2017年的GoogleI/O年会上,Google发布了针对基于ARM的Android平台的TensorFlowLite;2018年3月阿里云在云栖大会·深圳峰会上,也宣布推出了首个IoT边缘计算产品LinkEdge,将自身的云计算优势下探到网络边缘端,为提升人工智能的应用效率打造云、端一体的协同计算体系。
上述发端自产业链两极的尝试,最终会在某些契合点上“握手”并形成合力,成为嵌入式机器学习的推手。那时,嵌入式机器学习的“火”想必又会上升到一个更高的温度