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 智能手机等设备还使用了 级联架构 实现扬声器的验证,以确保安全性。 视觉唤醒词。视觉唤醒词使用图像类似替代唤醒词的功能,通过对图像做二分类表示存在与否。例如,设计一个智能照明系统,在检测到人的存在时启动,并在人离开时关闭。同样,野生动物摄影师可以使用视觉唤醒功能在特定的动物出现时启动拍摄,安防摄像机可以在检测到人活动时启动拍摄。 下图全面展示当前 TinyML 机器学习的应用概览。 图 3 TinyML 的机器学习用例。图片来源:NXP。 TinyML 工作机制 TinyML 算法的工作机制与传统机器学习模型几乎完全相同,通常在用户计算机或云中完成模型的训练。训练后处理是 TinyML 真正发挥作用之处,通常称为“深度压缩”(deep compression)。 图 4 深度压缩示意图。来源:[ArXiv 论文](https://arxiv.org/pdf/1510.00149.pdf). 模型蒸馏(Distillation) 模型在训练后需要更改,以创建更紧凑的表示形式。这一过程的主要实现技术包括剪枝(pruning)和知识蒸馏。 知识蒸馏的基本理念,是考虑到较大网络内部存在的稀疏性或冗余性。虽然大规模网络具有较高的表示能力,但如果网络容量未达到饱和,则可以用具有较低表示能力的较小网络(即较少的神经元)表示。在 Hinton 等人 2015 年发表的研究工作中,将 Teacher 模型中转移给 Student 模型的嵌入信息称为“黑暗知识”(dark knowledge)。 下图给出了知识蒸馏的过程: 图 5 深度压缩过程图。 图中 Teacher 模型是经过训练的卷积神经网络模型,任务是将其“知识”转移给称为 Student 模型的,参数较少的小规模卷积网络模型。此过程称为“知识蒸馏”,用于将相同的知识包含在规模较小的网络中,从而实现一种网络压缩方式,以便用于更多内存受限的设备上。 同样,剪枝有助于实现更紧凑的模型表示。宽泛而言,剪枝力图删除对输出预测几乎无用的神经元。这一过程通常涉及较小的神经权重,而较大的权重由于在推理过程中具有较高的重要性而会得到保留。随后,可在剪枝后的架构上对网络做重新训练,调优输出。 图 6 对蒸馏模型知识表示做剪枝的图示。 量化(Quantization) 蒸馏后的模型,需对此后的训练进行量化,形成兼容嵌入式设备架构的格式。 (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |