数码小王|TinyML:下一轮人工智能革命( 三 )


毫无疑问 , 赋予边缘设备执行数据驱动处理的能力 , 将为工业过程中的计算范式带来转变 。 举个例子 , 如果能够监测农作物并检测到诸如土壤湿度、特定气体(例如苹果成熟时会释放出乙烷)等特征或特定的大气条件(例如大风、低温或高湿度等) , 将极大地促进作物的生长 , 提高作物的产量 。
另一个例子是 , 在智能门铃中可安装摄像机 , 使用面部识别确定到场的来访者 。 这将实现安防功能 , 甚至可以在有人到场时将门铃摄像头输出到屋内电视屏幕 , 以便主人了解门口的访客情况 。
目前 , TinyML主要的两个重点应用领域是:
关键字发现 。 大多数人已经非常熟悉此应用 , 例如“你好 , Siri”和“你好 , Google”等关键字 , 通常也称为“热词”或“唤醒词” 。 设备会连续监听来自麦克风的音频输入 , 训练实现仅响应与所学关键字匹配的特定声音序列 。 这些设备比自动语音识别(automaticspeechrecognition , ASR)更简单 , 使用更少的资源 。 Google智能手机等设备还使用了级联架构实现扬声器的验证 , 以确保安全性 。 视觉唤醒词 。 视觉唤醒词使用图像类似替代唤醒词的功能 , 通过对图像做二分类表示存在与否 。 例如 , 设计一个智能照明系统 , 在检测到人的存在时启动 , 并在人离开时关闭 。 同样 , 野生动物摄影师可以使用视觉唤醒功能在特定的动物出现时启动拍摄 , 安防摄像机可以在检测到人活动时启动拍摄 。下图全面展示当前TinyML机器学习的应用概览 。
数码小王|TinyML:下一轮人工智能革命
文章图片
图3TinyML的机器学习用例 。 图片来源:NXP
TinyML工作机制
TinyML算法的工作机制与传统机器学习模型几乎完全相同 , 通常在用户计算机或云中完成模型的训练 。 训练后处理是TinyML真正发挥作用之处 , 通常称为“深度压缩”(deepcompression) 。
数码小王|TinyML:下一轮人工智能革命
文章图片
图4深度压缩示意图 。 来源:ArXiv论文
模型蒸馏(Distillation)
模型在训练后需要更改 , 以创建更紧凑的表示形式 。 这一过程的主要实现技术包括剪枝(pruning)和知识蒸馏 。
知识蒸馏的基本理念 , 是考虑到较大网络内部存在的稀疏性或冗余性 。 虽然大规模网络具有较高的表示能力 , 但如果网络容量未达到饱和 , 则可以用具有较低表示能力的较小网络(即较少的神经元)表示 。 在Hinton等人2015年发表的研究工作中 , 将Teacher模型中转移给Student模型的嵌入信息称为“黑暗知识”(darkknowledge) 。
下图给出了知识蒸馏的过程:
数码小王|TinyML:下一轮人工智能革命
文章图片
图5深度压缩过程图
图中Teacher模型是经过训练的卷积神经网络模型 , 任务是将其“知识”转移给称为Student模型的 , 参数较少的小规模卷积网络模型 。 此过程称为“知识蒸馏” , 用于将相同的知识包含在规模较小的网络中 , 从而实现一种网络压缩方式 , 以便用于更多内存受限的设备上 。
同样 , 剪枝有助于实现更紧凑的模型表示 。 宽泛而言 , 剪枝力图删除对输出预测几乎无用的神经元 。 这一过程通常涉及较小的神经权重 , 而较大的权重由于在推理过程中具有较高的重要性而会得到保留 。 随后 , 可在剪枝后的架构上对网络做重新训练 , 调优输出 。
数码小王|TinyML:下一轮人工智能革命
文章图片
图6对蒸馏模型知识表示做剪枝的图示
量化(Quantization)
蒸馏后的模型 , 需对此后的训练进行量化 , 形成兼容嵌入式设备架构的格式 。
为什么要做量化?假定对于一台ArduinoUno , 使用8位数值运算的ATmega328P微控制器 。 在理想情况下要在Uno上运行模型 , 不同于许多台式机和笔记本电脑使用32位或64位浮点表示 , 模型的权重必须以8位整数值存储 。 通过对模型做量化处理 , 权重的存储规模将减少到1/4 , 即从32位量化到8位 , 而准确率受到的影响很小 , 通常约1-3% 。