译者 | 朱先忠
审校 | 梁策 孙淑娟
深度学习模型最初的成功归功于拥有大量内存和GPU集群的大型服务器。深度学习的前景催生了一个为深度神经网络提供云计算服务的行业。因此,在几乎无限的云资源上运行的大型神经网络变得非常流行,这对于具有充足预算的科技公司尤其如此。
但与此同时,近年来也出现了另一种相反的趋势,即为边缘设备创建机器学习模型。这些被称为微型机器学习(TinyML)的模型适用于内存和处理能力有限、互联网连接不存在或有限的设备。
IBM和麻省理工学院(MIT)联合开展的一项最新研究工作解决了卷积神经网络(CNN)的峰值内存瓶颈问题。这是一种深度学习体系结构,对计算机视觉应用尤其重要。在NeurIPS 2021会议上提交的一篇论文中详细介绍了称为一种McUnETV2的模型,该模型能够在低内存和低功耗微控制器上运行卷积神经网络(CNN)。
1.为什么会出现微型机器学习(TinyML)?
虽然云端深度学习非常成功,但并不适用于所有情况。事实上,许多应用程序往往都需要在硬件设备上直接完成推理任务。例如,在一些如无人机救援这样的任务环境中,互联网连接是无法保证的。在医疗保健等其他领域,隐私要求和法规约束等也使得将数据发送到云端进行处理变得非常困难。对于需要实时机器语言推断的应用程序来说,往返云计算所造成的延迟更是令人望而却步。
上述所有必需满足的条件使得机器学习设备在科学上和商业上都具有吸引力。例如,iPhone手机现在就有不少运行面部识别和语音识别的应用程序,安卓手机也可以直接运行翻译软件。此外,Apple Watch已经可以使用机器学习算法来检测运动和ECG模式(注:ECG即心电图一词electrocardiogram的缩写,又称EKG,是一种测试实验,用于记录引发心跳的电信号序列的时间节点和强度。通过分析ECG图像,医生可以更好地诊断心率是否正常和心脏功能是否存在问题)。
上述这些设备上的ML模型在一定程度上是由支持神经网络紧凑、计算和存储效率更高的技术进步而实现的。同时由于硬件技术的进步,这样的ML模型在移动设置上的实现也成为可能。现在,我们的智能手机和可穿戴设备比30年前的高性能服务器拥有更多的计算能力,有些甚至配置专门的协处理器来实现机器语言推理。
TinyML将边缘AI向前推进了一步,使得在微控制器(MCU)上运行深度学习模型成为可能,尽管微控制器比我们口袋里和手腕上携带的小型计算机还要受限于资源。
另一方面,微控制器价格低廉,平均售价不到0.50美元,它们几乎无处不在,可以嵌入到从消费行业到工业设备的各个方面。同时,它们没有通用计算设备中的资源,而且大多数都没有操作系统。微控制器的CPU很小,只有几百KB的低功耗内存(SRAM)和几兆字节的存储空间,而且没有任何网络设备。它们大多没有主电源,多年来都是必须使用纽扣电池。因此,在MCU上安装深度学习模型可能为许多应用开辟新的道路。
2.卷积神经网络中的内存瓶颈
卷积神经网络(CNN)的架构
为了将深度神经网络缩小到适合小型内存计算设备的大小,人们已经进行了多次努力。然而,这些努力大多集中在减少深度学习模型中的参数个数方面。例如,“剪枝”便是一种流行的优化算法,它通过删除模型输出中不重要的参数来缩小神经网络。
剪枝方法的问题在于它们不能解决神经网络的内存瓶颈。深度学习库的标准实现需要将整个网络层和激活层映射加载到内存中。不幸的是,经典的优化方法不会对神经网络的早期计算层做出任何重大改变,尤其是在卷积神经网络中。
这会导致网络不同层的大小不平衡,并导致“内存峰值”问题:即使网络在修剪后变得更轻量级,运行它的设备也必须拥有与最大层相同的内存。例如,在流行的TinyML模型MobileNetV2中,早期层计算达到的内存峰值约为1.4兆字节,而后期层的内存占用非常小。要运行该模型,设备将需要与模型峰值相同的内存。由于大多数MCU的内存不超过几百KB,所以它们无法运行MobileNetV2的现成版本。
MobileNetV2是一种针对边缘设备进行优化的神经网络,但它的内存峰值约为1.4兆字节,这使得许多微控制器无法访问它。
另一种优化神经网络的方法是减小模型的输入大小。较小的输入图像需要较小的CNN即可执行预测任务。然而,减少输入大小本身就存在挑战,并不是对所有计算机视觉任务都有效。例如,对象检测深度学习模型对图像大小非常敏感,当输入分辨率降低时,其性能会迅速下降。
由上图易知,图像分类ML模型(橙色线)比目标检测模型(蓝色线)更容易降低分辨率。
3.MCUNetV2基于补丁的推理
为了解决卷积神经网络的内存瓶颈问题,研究人员创建了一个名为MCUNetV2的深度学习体系结构,可以将其内存带宽调整到微控制器的极限。MCUNetV2是在同一科研小组之前的成果基础上开发的,该工作已被NeurIPS 2020大会接受并成功提交。
MCUNetV2背后的主要思想是“基于补丁的推理”,这是一种在不降低CNN准确性的情况下减少其内存占用的技术。MCUNetV2没有将整个神经网络层加载到内存中,而是在任何给定时间加载并计算该层的较小区域或“补丁”。然后,它逐块迭代整个层并组合这些值,直到计算整个层的激活部分。
图中左侧是经典深度学习系统计算一整层的情形,而右侧给出的是MCUNetV2一次计算一个补丁,从而减少DL推理的内存需求。
由于MCUNetV2一次只需要存储一片神经元,因此它在不降低模型分辨率或参数的情况下大幅降低内存峰值。研究人员的实验表明,MCUNetV2可以将内存峰值降低至八分之一。
MCUNetV2能够将深度学习模型的内存峰值降低至八分之一
基于补丁的推理在节省内存的同时也带来了计算开销的权衡问题。麻省理工学院(MIT)和IBM的研究人员发现,在不同的体系结构中整体网络计算可能会增加10-17%,这显然不适用于低功耗的微控制器。
为了克服这个限制,研究人员重新分配了神经网络不同区块的“感受野”(注:在CNN中,第n层特征图中一个像素对应作为第1层的输入图像的像素数,即为该层的感受野“receptive field”,简称“RF”)。在CNN中,感受野是在任何时刻可被处理的图像区域。更大的感受野需要更大的补丁和补丁之间的重叠。当然,这就会产生更高的计算开销。通过缩小网络初始块的感受野并扩大后期的感受野,研究人员能够将计算开销减少三分之二以上。
感受野的重新分配有助于将MCUNetV2的计算开销减少三分之二以上
最后,研究人员观察到,MCUNetV2的调整在很大程度上取决于ML模型架构、应用程序以及目标设备的内存和存储容量。为了避免手动调整每个设备和应用程序的深度学习模型,研究人员使用了“神经算法搜索”,这是一个使用机器学习自动优化神经网络结构和推理调度的过程。
研究人员在几个内存容量较小的微控制器模型上测试了不同应用中的深度学习架构。结果表明,MCUNetV2优于其他TinyML技术,能够以较小的内存需求和较低的延迟实现在图像分类和目标检测方面达到更高的精度。
如下图所示,研究人员正在使用实时人物检测、视觉唤醒词和人脸/口罩检测等方式使用MCUNetV2。
译者注:此处展示的仅是youtube.com网站上展示的使用MCUNetV2的视频中的一幅截图。
4.TinyML应用程序
在2018年一篇题为《机器学习程序的未来为何如此微小》(Why the Future of Machine Learning is Tiny)的文章中,软件工程师皮特·沃登(Pete Warden)认为,MCU上的机器学习极其重要。沃登写道:“我相信机器学习可以在小型、低功耗芯片上运行,这种结合将解决我们目前无法解决的大量问题。”
由于传感器和CPU的进步,我们从世界各地获取数据的能力大大增强。但我们通过机器学习模型处理和使用这些数据的能力却受到网络连接和云服务器访问的限制。正如沃登所说,处理器和传感器比蓝牙和WiFi等无线电发射机更节能。
沃登写道:“移动数据的物理过程似乎需要大量的能量。一次操作所需的能量与发送比特的距离成正比似乎是一条规则。CPU和传感器发送仅需要几个毫米发送比特数且价格便宜,而无线电发送的代价则需要几米甚至更大距离才发送几比特数据,而且价格昂贵……很明显,一个有巨大潜力的市场正等待着用正确的技术来开辟。我们需要一种能在廉价微控制器上工作的设备,它使用的能源非常少,依赖于计算而不是无线电,它能把我们所有浪费的传感器数据变成有用的数据。这就是机器学习,特别是深度学习将要填补的空白。”
由于MCUNetV2和TinyML在其他方面也取得了进步,沃登的预测很快会变成现实。在未来的几年里,我们可以期待TinyML能够进入到家庭、办公室、医院、工厂、农场、道路、桥梁等的数十亿微控制器中,从而有望实现以前根本不可能实现的应用。
原文链接:https://thenextweb.com/news/tinyml-deep-learning-microcontrollers-syndication
译者介绍
朱先忠,51CTO社区编辑,51CTO专家博客、讲师,潍坊一所高校计算机教师,自由编程界老兵一枚。早期专注各种微软技术(编著成ASP.NET AJX、Cocos 2d-X相关三本技术图书),近十多年投身于开源世界(熟悉流行全栈Web开发技术),了解基于OneNet/AliOS+Arduino/ESP32/树莓派等物联网开发技术与Scala+Hadoop+Spark+Flink等大数据开发技术。
以上是微型机器学习有望把深度学习嵌入微处理器的详细内容。更多信息请关注PHP中文网其他相关文章!

网络攻击正在发展。 通用网络钓鱼电子邮件的日子已经一去不复返了。 网络犯罪的未来是超个性化的,利用了容易获得的在线数据和AI来制作高度针对性的攻击。 想象一个知道您的工作的骗子

新当选的教皇狮子座(Leo Xiv)在对红衣主教学院的就职演讲中,讨论了他的同名人物教皇里奥XIII的影响,他的教皇(1878-1903)与汽车和汽车和汽车公司的黎明相吻合

本教程演示了如何使用模型上下文协议(MCP)和FastAPI将大型语言模型(LLM)与外部工具集成在一起。 我们将使用FastAPI构建一个简单的Web应用程序,并将其转换为MCP服务器,使您的L

探索DIA-1.6B:由两个本科生开发的开创性的文本对语音模型,零资金! 这个16亿个参数模型产生了非常现实的语音,包括诸如笑声和打喷嚏之类的非语言提示。本文指南

我完全同意。 我的成功与导师的指导密不可分。 他们的见解,尤其是关于业务管理,构成了我的信念和实践的基石。 这种经验强调了我对导师的承诺

AI 增强型矿业设备 矿业作业环境恶劣且危险重重。人工智能系统通过将人类从最危险的环境中移除并增强人类能力,帮助提高整体效率和安全性。人工智能越来越多地用于为矿业作业中使用的自动驾驶卡车、钻机和装载机提供动力。 这些 AI 驱动的车辆能够在危险环境中精确作业,从而提高安全性和生产力。一些公司已经开发出用于大型矿业作业的自动驾驶采矿车辆。 在挑战性环境中运行的设备需要持续维护。然而,维护会使关键设备离线并消耗资源。更精确的维护意味着昂贵且必要的设备的正常运行时间增加以及显着的成本节约。 AI 驱动

Salesforce首席执行官Marc Benioff预测了由AI代理商驱动的巨大的工作场所革命,这是Salesforce及其客户群中已经进行的转型。 他设想从传统市场转变为一个较大的市场,重点是

人力资源中AI的崛起:与机器人同事一起导航劳动力 将人工智能集成到人力资源(HR)不再是未来派的概念。它正在迅速成为新现实。 这种转变影响了人力资源专业人员和员工,DEM


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

记事本++7.3.1
好用且免费的代码编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境