
1.4.3 机器学习和边缘计算
机器学习,尤其是深度学习已经成为如今最热门的技术领域之一。不过,相比于火热的人工智能媒体报道和各种概念,真正落地和实际产生的成功案例还是相对比较少的。尤其对于传统企业来说,各种AI概念的应用和落地缺乏真正的应用载体和能够熟练应用AI技术的人才。在边缘计算领域中,人工智能的应用也是非常重要的一个方向。边缘计算在基于地理位置及需要低延迟和快速响应的应用领域中有着天然的优势,其与人工智能的结合是一个非常重要的发展方向。
最近十年中,深度学习、神经网络算法的成熟和计算机本身处理能力的增强,使很多以前非常困难的人工智能问题取得重大突破。比如机器图像识别和自然语言处理,原先研究人员使用过非常复杂的处理方法,如自然语言处理的主流技术是隐马尔科夫模型和其他模糊匹配的算法。而图像识别,尤其是人脸识别方面,曾经占据主导地位的是局部二值模式(LBP)特征方法。
但是,这些方法使用起来非常复杂,而且一直无法进一步提高准确度。当卷积神经网络(CNN)和循环神经网络(RNN)被分别用于图像识别和自然语言处理时,奇迹似乎发生了,长期停滞的机器学习领域出现了重大突破。例如,人脸识别的识别精确度从90%提高到了99%。神经网络技术似乎一夜之间成为沉寂已久的人工智能研究领域的一剂兴奋剂,各种优化算法如雨后春笋般出现,大量的科研人员和资金投入了这个领域。紧接着,阿尔法围棋(AlphaGo)使用深度学习算法和强化学习算法,在2016年以4∶1的成绩战胜了人类顶尖围棋棋手李世石。这些成绩的取得确实令人振奋。通过这些新的机器学习技术,我们能够通过训练神经网络模型去完成许多不同的任务。
尽管机器学习已经能够很好地完成许多原先需要借助人的干预才能够完成的任务,但还是有一些制约因素。对于比较复杂的内容识别,或者需要获得更好的准确度时,我们往往需要搭建更深、更大的神经网络,而神经网络的学习对数据的数量和质量也是高度依赖的。大型的神经网络和大量的样本数据,需要密集和强大的计算能力和存储能力,这些都只能够在数据中心提供的运算平台上实现。训练出来的大型神经网络的执行也需要一定的运算能力。由于在很多场景中,没有办法在现场部署复杂的高性能边缘设备,因此对模型的轻量化及设备的小型化提出了更高的要求。
如今,越来越多的工业和物联网应用需要依靠机器学习的算法和模型来自动化流程,并实现很多重要的功能。对于边缘低功耗设备有软硬件两个方面的改进,第一个是在不会严重影响模型预测精度的情况下,让人工智能识别模型更加简单,运行起来更快。现在有不少算法可以简化模型,如YOLO、Mobile、Solid-State Drive(SSD)和SqueezeNet。第二个是采用模型压缩技术,压缩模型会损失一定的精度,但是能够大大提高模型的执行速度。
在很多应用场景中,往往可以牺牲微小的精度来换取更高的执行效率。此外,硬件本身的运算能力也在不断提高。由于半导体技术的发展,在功耗不明显增加的情况下,通过新的工艺生产出来的芯片运算能力已经越来越强大了;同时,Intel、Google推出了可以即时插拔的图像处理器(GPU),可以方便而快捷地提升边缘设备的AI运算性能。在很多地方,还可以直接使用现场可编程门阵列(FPGA)进行机器学习模型的执行。
对于深度神经网络来说,要想获得精确的预测结果,大量的数据样本是必不可少的。事实上,数据的质量和数量在机器学习应用上的重要性是远远大于算法的改进的,这一点我们会在后面涉及机器学习的部分详细讨论。人工智能应用中的边缘设备需要承担一项重要任务,就是数据样本的收集和上传。为神经网络学习积累样本,确保有足够多且高质量的样本数据,用这些样本数据不断训练模型并保持模型的判断精度。我们并不需要收集在边缘端产生的所有数据,在边缘设备上的数据上传云端之前,边缘服务器可以先进行一些过滤和预处理。这些过滤和预处理功能包括去除噪声数据、质量不佳的原始样本;整理、压缩和标准化采集到的数据等。
最近几年,由于受到数据隐私保护、网络带宽限制及数据中心计算能力的制约,分布式机器学习,尤其是联邦学习,成为人工智能领域一个非常热门的研究方向。联邦学习的一个重要理念就是要把数据样本的存储和模型训练的计算分流到大量的边缘设备中。由于边缘设备的不稳定性、通信延迟和设备异构性,产生了很多实际问题,这些问题和挑战也同时给物联网和边缘计算领域带来了很多重大突破的机会。