由美国宇航局推动开始的电子产品小型化成为整个消费品行业(的趋势)。现在我们把贝多芬的完整作品带在领章上使用耳机听。

本文转自雷锋网,如需转载请至雷锋网官网请求授权。

由美国宇航局推进开端的电子产品小型化成为整个消费品职业(的趋势)。现在咱们把贝多芬的完好著作带在领章上运用耳机听。—天体物理学家、科学评论员尼尔-德格拉斯-泰森(Neil deGrasse Tyson)[......]超低功耗嵌入式设备的遍及,再加上像TensorFlow Lite for Microcontrollers这样的嵌入式机器学习结构的引进,将使人工智能驱动的物联网设备大规划分散。— 哈佛大学副教授 Vijay Janapa Reddi

微型机器学习:下一次AI革新  机器学习 人工智能 计算机 第1张嵌入式设备的细小机器学习(TinyML)概述

这是关于微型机器学习系列文章的第一篇。本文的意图是向读者介绍微型机器学习的理念及其未来的潜力。关于详细运用、完结和教程的深化评论将在该系列后续文章中进行。

简介

在曩昔的十年里,拜访处理器速度的进步和大数据的呈现,咱们见证了机器学习算法的规划成倍增长。开端,模型小到可以运用中央处理单元(CPU)内的一个或多个内核在本地机器上运转。

不久之后,运用图形处理单元(GPU)进行核算成为处理较大数据集的必要条件,并且拜访引进了依据云的服务,如SaaS渠道(如Google Colaboratory)和IaaS(如Amazon EC2 Instances),变得愈加简略完结。此刻,算法依然可以在单机上运转。

最近,咱们看到了专门的运用专用集成电路(ASIC)和张量处理单元(TPU)的开展,它们可以包装出约8个GPU的功率。这些设备现已增强了在多个体系之间分布式学习的才能,以测验树立得到更多更大的模型。

最近,跟着GPT-3算法(2020年5月发布)的发布,这种状况到达了高峰,它具有一个包含1750亿个神经元的惊人网络架构—比人类大脑中存在的神经元数量(约850亿)多出一倍。这比有史以来创立的下一个最大的神经网络Turing-LG(2020年2月发布,包含约175亿个参数)的神经元数量多10倍以上。有估量称,该模型的练习本钱约为1000万美元,耗电量约为3GWh(约为三座核电站一小时的发电量)。

尽管GPT-3和Turing-LG获得的成果值得称赞,当然也天然导致了一些业内人士对人工智能职业日益增长的碳脚印提出了批判。不过,这也有助于激起人工智能学界对愈加节能核算的爱好。这样的主意,比方更高效的算法、数据标明和核算,几年来一直是一个看似不相关范畴的焦点:微型机器学习。

微型机器学习(tinyML)是机器学习和嵌入式物联网(IoT)设备的穿插范畴。该范畴是一门新式的工程学科,有或许给许多职业带来革新性的改动。

tinyML的首要职业受益者是在边际核算和节能核算范畴。TinyML源于物联网(IoT)的概念。传统的物联网概念是将数据从本地设备发送到云端进行处理。一些人对这个概念提出了必定的忧虑:包含隐私、推迟、存储和能效等等。

动力功率。传输数据(经过电线或无线)是十分耗能的,比机载核算(详细来说是乘积单元)耗能约一个数量级。开发可以自己进行数据处理的物联网体系是最节能的办法。AI前驱们评论这种 "以数据为中心 "的核算理念(相关于云办法的 "以核算为中心")现已有一段时间了,现在咱们开端看到它的发挥。

隐私。传输数据或许会被侵略隐私。这些数据或许会被歹意行为者阻拦,并且当数据被储存在一个单一的方位(如云端)时,其本质上变得不那么安全。经过将数据首要保存在设备上并尽量削减通讯,这可以进步安全性和隐私性。

存储。关于许多物联网设备来说,它们获取的数据是没有价值的。幻想一下,一个监控摄像头每天24小时记载一栋大楼的进口。在一天中的很大一部分时间里,摄像头的录像是没有用途的,拜访没有任何事情发生。经过具有一个更智能的体系,只需在必要的时分才会激活,就需求更低的存储容量,并削减传输到云端所需的数据量。

延时。关于规范的物联网设备,比方亚马逊Alexa,这些设备将数据传输到云端进行处理,然后依据算法的输出回来呼应。从这个意义上说,该设备仅仅通向云模型的快捷网关,就像自己和亚马逊服务器之间的信鸽。这个设备很笨,彻底依托网速来发生成果。假如你的网络速度很慢,亚马逊的Alexa也会变得很慢。关于具有板载主动语音辨认功用的智能物联网设备来说,拜访削减了(乃至没有)对外部通讯的依靠,所以推迟会下降

这些问题导致了边际核算的开展,即在边际设备(坐落云的 "边际 "的设备)上履行处理活动的主意。这些设备在内存、核算和功率方面遭到资源的高度束缚,然后引发了更高效的算法、数据结构和核算办法的开展。

这样的改善也适用于更大的模型,这或许会使机器学习模型的功率进步一个数量级,而对模型的准确性没有影响。举个比如,微软开发的Bonsai算法可以小到 2 KB,但其功用乃至可以比典型的 40 MB kNN 算法,或许 4 MB 神经网络更好。这个成果听起来或许并不重要,但在巨细只需1/10000的模型上,相同的精度是适当惊人的。这么小的模型可以在Arduino Uno上运转,Arduino Uno的可用内存为2 KB,简而言之,你现在可以在一个5美元的微控制器上树立这样一个机器学习模型。

咱们正处在一个风趣的十字路口,机器学习正在两种核算范式之间分叉:以核算为中心的核算和以数据为中心的核算。在以核算为中心的范式中,数据是由数据中心的实例进行储藏和剖析的,而在以数据为中心的范式中,处理是在数据的原始本地完结的。尽管咱们好像正在敏捷走向以核算为中心范式的上限,但以数据为中心范式的作业才刚刚开端。

在现代国际中,物联网设备和嵌入式机器学习模型正变得越来越无处不在(估计到2020年末,活泼设备将超越200亿台)。其间许多你或许底子没有注意到。智能门铃、智能恒温器、当你说两句话时就会 "唤醒 "的智能手机,乃至仅仅拿起手机。本文的剩下部分将更深化地重视 tinyML 的作业原理,以及当时和未来的运用。

微型机器学习:下一次AI革新  机器学习 人工智能 计算机 第2张 云端的层次结构(资源:eBizSolutions)

TinyML的比如

之前,杂乱的电路是设备履行各种动作的必要条件。现在,机器学习使得将这种硬件 "智能 "笼统成软件的或许性越来越大,使得嵌入式设备越来越简略、轻盈、灵敏。

嵌入式设备中的机器学习运用所面对的应战是适当大的,但在这一范畴现已获得了很大的开展。在微控制器上布置神经网络的要害应战是低内存占用、有限的功率和有限的核算。

或许TinyML最显着的比如是在智能手机内。这些设备永久主动倾听 "唤醒词",如Android智能手机的 "Hey Google",或iPhone上的 "Hey Siri"。经过智能手机的首要中央处理单元(CPU)来运转这些活动,现代iPhone的CPU主频为1.85GHz,将在短短几个小时内耗尽电池。关于大多数人每天最多运用几回的东西来说,这种程度的耗费是不行承受的。

为了处理这个问题,开发者们发明晰专门的低功耗硬件,可以由小电池(如圆形CR2032 "硬币 "电池)供电。这使得这些电路即便在CPU不运转时也能坚持活泼,根本上只需屏幕不亮就可以。

这些电路的功耗可以低至1毫瓦,运用规范CR2032电池可以供电长达一年。

看上去好像不像是,但这是个大问题。动力是许多电子设备的束缚要素。任何需求市电的设备都被束缚在有线路的地址,当十几个设备呈现在同一个地址时,很快就会变得不堪重负。市电是低效且贵重的。将市电电压(在美国的作业电压约为120V)转化为典型的电路电压规划(一般为约5V),会糟蹋许多的动力。任何有笔记本充电器的人在拔掉充电器时或许都会知道这一点。在电压转化进程中,充电器内部变压器发生的热量在电压转化进程中被糟蹋掉了能量。

即便是带电池的设备也会遭到电池寿数有限的影响,这就需求频频的对接。许多消费类设备的规划都是电池只能坚持一个作业日。TinyML设备可以用硬币巨细的电池持续作业一年,这意味着它们可以被放置在偏僻的环境中,只需在必要时才进行通讯以节约动力。

唤醒词并不是咱们看到的仅有无缝嵌入智能手机的TinyML。加快计数据被用来判别是否有人刚刚拿起手机,然后唤醒CPU并翻开屏幕。

明显,这些并不是TinyML仅有或许的运用。事实上,TinyML为企业和业余爱好者供给了许多令人兴奋的时机,可以生产出更智能的物联网设备。在一个数据变得越来越重要的国际里,将机器学习资源分配到长途方位中受内存束缚设备的才能或许会对数据密集型职业发生巨大的优点,如农业、气候猜测或地震学。

毫无疑问,赋予边际设备以履行数据驱动处理的才能,将为工业流程带来办法改动。举个比如,假如设备可以监测农作物,并在检测到土壤湿度、特定气体(例如,苹果老练时会开释乙烷)或特定大气条件(例如,劲风、低温或高湿度)等特征时宣布 "协助 "信息, 将极大地促进作物成长,然后进步作物产值。

作为另一个比如,智能门铃或许会装置一个摄像头,可以运用面部辨认来确认谁在现场。这可以用于安全意图,乃至可以用于当有人在场时将门铃的摄像头输送到房屋中的电视,以便居民知道谁在门口。

tinyML现在首要重视的两个方面是:

要害字发现。大多数人现已了解这个运用程序。"Hey Siri "和 "Hey Google "是要害词的比如(一般与“ hotword”或“ wake word”同义运用)。这类设备接连倾听来自麦克风的音频输入,并被练习成只对特定的声响序列做出反响,而这些声响序列与学习到的要害词相对应。这些设备比主动语音辨认(ASR)运用更简略,运用的资源也相应较少。某些设备(例如Google智能手机)运用级联架构来供给扬声器验证以确保安全性。

视觉唤醒词。有一种依据图画的类似于唤醒词的办法,称为视觉唤醒词。把这些词看作是对图画的二进制分类,以阐明某些东西要么存在,要么不存在。例如,一个智能照明体系或许被规划成当它检测到一个人的存在时发动,当他们脱离时封闭。相同,野生动物摄影师可以运用这一点在特定的动物存在时摄影, 或许当他们发现有人时,可以运用安全摄像机拍照相片。

下面是TinyML当时机器学习运用事例的更广泛概述。

微型机器学习:下一次AI革新  机器学习 人工智能 计算机 第3张 TinyML的机器学惯用例(来历图片:NXP)。

TinyML怎么作业?

TinyML算法的作业办法与传统的机器学习模型根本相同。一般状况下,模型是在用户的核算机上或云端进行惯例练习。练习后才是真实的tinyML作业开端的当地,这个进程一般被称为深度紧缩。

微型机器学习:下一次AI革新  机器学习 人工智能 计算机 第4张 深度紧缩进程示意图。来历:ArXiv。

模型蒸馏

练习后,然后以创立具有更紧凑标明办法的模型的办法改动模型。剪枝和常识蒸馏是用于此意图的两种此类技能。

常识蒸馏的根本思想是,大型网络内部具有必定的稀少性或冗余性。尽管大型网络具有较高的表征才能,但假如网络容量没有饱满,它可以在一个较小的网络中以较低的表征才能(即较少的神经元)来标明。Hinton等(2015)将教师模型中的嵌入信息称为 "暗常识",以转移到学生模型中去。

下图阐明晰常识蒸馏的进程。

微型机器学习:下一次AI革新  机器学习 人工智能 计算机 第5张

深度紧缩进程的示意图。在这个图中,"教师 "是一个练习有素的卷积神经网络模型。教师的使命是将其 "常识 "转移到一个参数较少的卷积网络模型,即 "学生 "身上。这个进程被称为常识蒸馏,用于将相同的常识封装在一个较小的网络中,供给了一种紧缩网络的办法,使它们可以在更多内存束缚的设备上运用。来历:ArXiv。

在这张图中,"教师 "是一个经过练习的神经网络模型。教师的使命是将其 "常识 "转移到一个参数较少的小网络模型—"学生 "身上。这个进程用于将相同的常识封装在一个较小的网络中,供给了一种紧缩常识标明的办法,然后紧缩了神经网络的巨细,使它们可以在更多的内存束缚的设备上运用。

相同,修剪也有助于使模型的标明愈加紧凑。广义上讲,剪枝企图去除那些对输出猜测供给很少功效的神经元。这一般与小的神经权重有关,而大的权重则拜访其在推理进程中的重要性更大而被保存。然后在修剪后的架构上对网络进行再练习,以微调输出。

微型机器学习:下一次AI革新  机器学习 人工智能 计算机 第6张

为提炼模型的常识表征而进行修剪的示意图

量化

经过蒸馏,模型在练习后被量化为与嵌入式设备架构兼容的格局。

为什么要进行量化呢?幻想一个运用ATmega328P微控制器的Arduino Uno,它运用8位算术。要在Uno上运转模型,抱负状况下,模型权重有必要存储为8位整数值(而许多台式电脑和笔记本电脑运用32位或64位浮点标明)。经过量化模型,权重的存储量削减了4倍(从32位到8位值的量化),而精度的影响一般可以忽略不计(一般在1-3%左右)。

微型机器学习:下一次AI革新  机器学习 人工智能 计算机 第7张8位编码进程中量化差错的阐明(然后用于重建32位浮点数)。(来历:TinyML书)

在量化进程中,一些信息或许会拜访量化差错而丢掉(例如,在浮点标明法上为3.42的值在整数渠道上或许被切断为3)。为了处理这个问题,量化感知(QA)练习也被提出来作为一种代替计划。QA练习首要是在练习进程中束缚网络只运用量化设备上可用的值(见Tensorflow示例)。

赫夫曼编码

编码是一个可选的过程,有时会经过最大功率的办法存储数据来进一步减小模型的巨细:一般是经过闻名的Huffman编码。

编译

一旦模型被量化和编码后,它就会被转化为一种可以被某种办法的轻型神经网络解说器解说的格局,其间最盛行的或许是TF Lite(巨细约500 KB)和TF Lite Micro(巨细约20 KB)。然后,该模型被编译成C或C++代码(大多数微控制器作业的言语,以便有效地运用内存),并由解说器在设备上运转。

微型机器学习:下一次AI革新  机器学习 人工智能 计算机 第8张

TInyML运用程序的作业流程(来历:Pete Warden和Daniel Situnayake编撰的TinyML)

tinyML的大部分技巧都是在处理杂乱的微控制器国际。TF Lite和TF Lite Micro之所以如此之小,是拜访任何不必要的功用都已被删去。不幸的是,这包含有用的才能,如调试和可视化。这意味着,假如在布置进程中呈现过错,就很难分辨出发生了什么。

此外,尽管模型有必要存储在设备上,但模型还有必要可以进行推理。这意味着微控制器有必要有足够大的内存,以便可以运转(1)其操作体系和库,(2)神经网络解说器(如TF Lite),(3)存储的神经权重和神经架构,以及(4)推理进程中的中心成果。因而,在tinyML的研讨论文中,常常引证量化算法的峰值内存运用量,以及内存运用量、乘积单元(MAC)数量、精度等。

为什么不在设备上练习?

在设备上进行练习会带来额定的杂乱性。拜访数值精度的下降,要确保充沛练习网络所需的精度水平变得十分困难。规范台式核算机上的主动微分办法大约准确到机器精度。核算导数的精度到达10^-16是令人难以置信的,但运用8位值的主动微分会导致较差的成果。在反向传达进程中,这些导数会被复兼并终究用于更新神经网络参数。在数值精度如此之低的状况下,这种模型的精度或许会很差。

也便是说,神经网络现已运用16位和8位浮点数进行练习。

第一篇研讨在深度学习中下降数值精度的论文是2015年Suyog Gupta及其搭档的论文Deep Learning with Limited Numerical Precision。这篇论文的成果很有意思,它标明32位浮点标明法可以削减到16位定点标明法,而精度根本没有下降。但是,只需在运用随机舍入时才会呈现这种状况,拜访均匀而言,它会发生的无偏成果。

2018年,王乃刚及其搭档在“Training Deep Neural Networks with 8-bit Floating Point Numbers”一文中,运用8位浮点数练习了一个神经网络。拜访在反向传达进程中需求坚持梯度核算的保真度(运用主动微分可以到达机器精度),因而运用8位数字而不是推理来练习神经网络要完结的应战要困难得多。

核算功率怎么?

也可以对模型进行定制,使其核算功率更高。广泛布置在移动设备上的模型架构,如MobileNetV1和MobileNetV2便是很好的比如。这些本质上是卷积神经网络,它们重塑了卷积运算以使其具有更高的核算功率。这种更高效的卷积办法被称为深度可分离卷积。还可以运用依据硬件的功用剖析和神经网络结构查找来优化体系结构的推迟,本文不触及这些问题。

下一场AI革新

在资源有限的设备上运转机器学习模型的才能为许多新的或许性敞开了大门。开展愈加节能的规范机器学习,这将有助于消除对数据科学对环境影响的忧虑。此外,tinyML答应嵌入式设备具有依据数据驱动算法的新式智能,这可以用于从预防性保护到在森林中勘探鸟声等任何事情。

尽管一些机器学习从业者无疑会持续扩展模型的规划,但一种新的趋势正在向更节约内存、核算和动力的机器学习算法开展。TinyML还处于萌发阶段,这方面的专家很少。我主张有爱好的读者查阅参考文献中的一些论文,这些论文都是tinyML范畴的一些重要论文。这个范畴开展敏捷,在未来几年内将成为人工智能在工业范畴的一个新的重要运用。请重视这个范畴。

转载请说明出处
知优网 » 微型机器学习:下一次AI革新

发表评论

您需要后才能发表评论