1,TinyML 是机器学习和嵌入式 IoT 设备的交叉领域,是一门新兴的工程学科,具有革新许多行业的潜力。
TinyML 的主要受益者,是边缘计算和节能计算领域。TinyML 源自物联网 IoT 的概念。物联网的传统做法,是将数据从本地设备发送到云端处理。一些人对这一方式在隐私、延迟、存储和能源效率等方面存在疑虑。
- 能源效率。无论通过有线还是无线方式,数据传输都非常耗能,比使用乘积累加运算单元(multiply-accumulate units,MAU)的本机计算高出约一个数量级。最节能的做法,是研发具备本地数据处理能力的物联网系统。相对于“以计算为中心”的云模型,“以数据为中心”的计算思想已得到了人工智能先驱者的一些先期探讨,并已在当前得到了应用。
- 隐私。数据传输中存在侵犯隐私的隐患。数据可能被恶意行为者拦截,并且存储在云等单个位置中时,数据固有的安全性也会降低。通过将数据大部保留在设备上,可最大程度地减少通信需求,进而提高安全性和隐私性。
- 存储。许多物联网设备所获取的大部分数据是毫无用处的。想象一下,一台安防摄像机每天 24 小时不间断地记录着建筑物的入口情况。在一天的大部分时间中,该摄像机并没有发挥任何作用,因为并没有什么异常情况发生。采用仅在必要时激活的更智能的系统,可降低对存储容量的需求,进而降低需传输到云端的数据量。
- 延迟。标准的物联网设备,例如 Amazon Alexa,需将数据传输到云来处理,然后由算法的输出给出响应。从这个意义上讲,设备只是云模型的一个便捷网关,类似于和 Amazon 服务器之间的信鸽。设备本身并非智能的,响应速度完全取决于互联网性能。如果网速很慢,那么 Amazon Alexa 的响应也会变慢。自带自动语音识别功能的智能 IoT 设备,由于降低甚至是完全消除了对外部通信的依赖,因此降低了延迟。
上述问题推动着边缘计算的发展。边缘计算的理念就是在部署在云“边缘”的设备上实现数据处理功能。这些边缘设备在内存、计算和功能方面都高度受限于设备自身的资源,进而需要研发更为高效的算法、数据结构和计算方法。
2,TinyML 示例
以前,设备执行的各种操作必需基于复杂的集成电路。现在,机器学习的硬件“智能”正逐渐抽象为软件,使得嵌入式设备更加简单、轻量级和灵活。
使用嵌入式设备实现机器学习,需解决巨大的挑战,但在该领域也取得了长足的进步。在微控制器上部署神经网络,关键挑战在于低内存占用、功率受限和计算受限。
智能手机是最典型的 TinyML 例子。手机一直处于主动聆听“唤醒词”的状态,例如 Android 智能手机的“你好,谷歌”,以及 iPhone 的“你好,Siri”。如果通过智能手机的 CPU(主流 iPhone 的 CPU 已达 1.85 GHz)运行语音唤醒服务,那么电池电量会在短短几个小时内耗尽。这样的电量消耗是不可接受的,而语音唤醒服务大多数人每天最多使用几次。
为了解决这个问题,开发人员创建了可以用小型电池(例如 CR2032 纽扣电池)供电的专用低功耗硬件。即使 CPU 未运行(通常表现为屏幕并未点亮),集成电路也能保持活跃状态。
这样的集成电路消耗功率仅为 1mW,如果使用标准的 CR2032 电池,可供电长达一年。
虽然有些人不觉得这有什么了不起的,但这是非常重要的进步。许多电子设备的瓶颈就是能源。任何需要市电供应的设备,其使用都受电力布线位置的限制。如果同一位置部署了十几台设备,可能电源会很快不堪重负。市电的效率并不高,且代价昂贵。将电源电压(例如美国使用的 120V)转换为典型的电路电压范围(通常约为 5V),会浪费掉大量的能量。笔记本电脑用户在拔充电器时,对此都深有体会吧。充电器的内部变压器所产生的热量,就是在电压转换过程中被浪费掉的能量。
即使设备自带电池,电池续航也是有限的,需要频繁充电。许多消费类电子设备的电池,设计上可持续使用一个工作日。一些 TinyML 设备可以使用硬币大小的电池持续运行一年,这意味着可将此类设备部署在一些偏远的环境中,仅在必要时进行通信,以节省电源。
在一台智能手机中,唤醒词服务并非唯一无缝嵌入的 TinyML 应用。加速度计数据可用于确定用户是否刚拿起手机,进而唤醒 CPU 并点亮屏幕。
显然,这些并非 TinyML 的唯一用武之地。实际上,TinyML 为产品粉丝和企业提供了大量令人兴奋的应用,用于实现更智能的 IoT 设备。在当前数据变得越来越重要的情况下,将机器学习资源分发到远端内存受限设备的能力,为农业、天气预报或地震等数据密集行业提供了巨大机遇。
目前,TinyML 主要的两个重点应用领域是:
- 关键字发现。大多数人已经非常熟悉此应用,例如“你好,Siri”和“你好,Google”等关键字,通常也称为“热词”或“唤醒词”。设备会连续监听来自麦克风的音频输入,训练实现仅响应与所学关键字匹配的特定声音序列。这些设备比自动语音识别(automatic speech recognition,ASR)更简单,使用更少的资源。Google 智能手机等设备还使用了级联架构实现扬声器的验证,以确保安全性。
- 视觉唤醒词。视觉唤醒词使用图像类似替代唤醒词的功能,通过对图像做二分类表示存在与否。例如,设计一个智能照明系统,在检测到人的存在时启动,并在人离开时关闭。同样,野生动物摄影师可以使用视觉唤醒功能在特定的动物出现时启动拍摄,安防摄像机可以在检测到人活动时启动拍摄。
3,当前 TinyML 机器学习的应用概览
图 1 TinyML 的机器学习用例。图片来源:NXP
4,TinyML 工作机制
TinyML 算法的工作机制与传统机器学习模型几乎完全相同,通常在用户计算机或云中完成模型的训练。训练后处理是 TinyML 真正发挥作用之处,通常称为“深度压缩”(deep compression)。
图2 深度压缩示意图。来源: ArXiv 论文