人工智能 AI 正在加快速度从云端走向边缘,进入到越来越小的物联网设备中。

人工智能 AI 正在加快速度从云端走向边际,进入到越来越小的物联网设备中。而这些物联网设备往往体积很小,面临着许多应战,例如功耗、延时以及精度等问题,传统的机器学习模型无法满足要求,那么微型机器学习又怎么呢?

边际AI新方法TinyML,超低功耗,在边际设备进行机器学习  AI 机器学习 人工智能 第1张

在 NASA 的推进下,小型化的电子产品成为了一个完好的消费品职业。现在咱们能够把贝多芬的悉数音乐作品放在翻领针上用耳机听。——天体物理学家兼科学评论员尼尔 · 德格拉斯 · 泰森 (Neil deGrasse Tyson)

超低功耗嵌入式设备随处可见,再加上用于微控制器的 TensorFlow Lite 等嵌入式机器学习结构的引进,这些使得人工智能驱动的物联网设备大规划遍及。——哈佛大学副教授 Vijay Janapa Reddi

边际AI新方法TinyML,超低功耗,在边际设备进行机器学习  AI 机器学习 人工智能 第2张

嵌入式设备的微型机器学习(TinyML)示意图。

本文关于微型机器学习系列文章的第一篇,旨在向读者介绍微型机器学习的概念及其未来的潜力。后续文章将深化评论特定运用、完成和相关教程。

TinyML 简介

在曩昔的十年里,咱们现已看到,拜访处理器速度的进步和大数据的呈现,机器学习算法的规划呈指数级增加。开端模型很小,在本地核算机上能够运用 CPU 中的一个或多个内核运转。

不久之后,运用 GPU 的核算成为处理更大数据集的必要条件,而且拜访引进了云服务,如 SaaS 渠道(谷歌 Google Colaboratory)和 IaaS(Amazon EC2 Instances),核算变得愈加简略取得。此刻,算法依然能够在单机上运转。

近来,专用集成电路(ASIC)和张量处理单元(TPU)的开展,它们能够包容 8GPU 左右的功率。这些设备增强了跨多个体系散布学习的才能,并企图开展越来越大的模型。

跟着 GPT-3 算法(2020 年 5 月)的发布,这种状况达到了极点,其网络结构包括惊人的 1750 亿个神经元——是现在存在于人类大脑中的两倍多(约 850 亿)。这是有史以来第二大神经网络神经元数量的 10 倍——Turing-NLG(2020 年 2 月发布,包括约 175 亿个参数)。一些人估量称,模型的练习本钱约为 1000 万美元,运用了大约 3 GWh 的电力(大约是三个核电站一小时的发电量)。

尽管 GPT-3 和 Turing-NLG 的成果值得赞扬,但一些业内人士批判人工智能工业的碳脚印越来越大。可是,这也有助于激起人工智能界对更节能核算的爱好。比方更有用的算法、数据表明和核算,它们一直是微型机器学习的焦点。

微型机器学习(TinyML)是机器学习和嵌入式物联网(IoT)设备的交集。该范畴是一门新式的工程学科,有或许使许多职业发生革新性革新。

TinyML 的职业受益者是边际核算和节能核算,其源于物联网(IoT)的概念。物联网的传统理念是将数据从本地设备发送到云上进行处理。一些人对这个概念提出了以下几个方面的忧虑:隐私、推迟、存储和动力功率。

动力功率:传输数据(经过电线或无线)是十分耗能的,比板载核算(特别是乘积单元)的耗能多一个数量级。开发能够自己进行数据处理的物联网体系是最节能的办法;

隐私:传输数据或许会侵略隐私。数据或许被歹意的参与者截获,而且当数据存储在一个单一的方位(如云)时,其安全性就会下降。经过将数据保存在设备上并尽量削减通讯,能够进步数据安全性和隐私性;

存储:对许多物联网设备来说,所取得的数据毫无价值。幻想一下,一个安全摄像头一天 24 小时都在记载一座大楼的进口。在一天的大部分时刻里,摄像机的镜头毫无用处,拜访什么都没有发生。经过一个更智能的体系,必要时激活,下降存储容量,传输到云端所需的数据量会削减;

潜在要素:关于规范的物联网设备,如 Amazon Alexa,这些设备将数据传输到云进行处理,然后根据算法的输出回来呼应。从这个意义上说,这个设备仅仅一个通往云模型的快捷门户,就像你和亚马逊服务器之间的「信鸽」。这个设备适当愚笨,彻底依靠互联网的速度来发生成果。假如你的网速很慢,Amazon Alexa 也会变慢。关于具有机载主动语音辨认功用的智能物联网设备来说,拜访削减了对外部通讯的依靠性,因而推迟下降了。

这些问题导致了边际核算的开展,即在边际设备(云的边际设备)上履行处理活动。这些设备在内存、核算和功耗方面都受到了极大的资源约束,这使得更高效算法、数据结构和核算办法得以开展。

这些改善相同适用于较大的模型,或许会使机器学习模型的功率进步一个数量级,而不影响精确度。例如,微软开发的 BonsAI 算法能够小到 2KB,但比典型的 40MB kNN 算法或 4MB 神经网络功用更好。这个成果听起来或许不重要,可是相同精确度的模型巨细却降到了万分之一,这是很可观的。这么小的模型能够在运用 2 KB RAM 的 Arduino Uno 上运转——简而言之,你现在能够在一个 5 美元的微控制器上树立这样一个机器学习模型。

机器学习正在向两种核算范式分解:以核算为中心的核算和以数据为中心的核算。在以核算为中心的范式中,数据由数据中心的典范进行存储以及剖析,而在以数据为中心的范式中,在本地完成对源数据的处理。尽管以核算为中心的范式好像正在敏捷走向一个极限,但以数据为中心的范式才刚刚开端。

物联网设备和嵌入式机器学习模型变得越来越遍及,估计到 2020 年末将超越 200 亿台活动设备,许多设备你或许还没注意到。智能门铃、智能恒温器、以及说几个单词就能唤醒或许拿起就能唤醒的智能手机。本文的其余部分将更深化地重视 tinyML 的作业原理,以及当时和未来的运用。

边际AI新方法TinyML,超低功耗,在边际设备进行机器学习  AI 机器学习 人工智能 第3张

云的层级结构(图源:https://www.thinkebiz.net/what-edge-computing/)

TinyML 用例

在此之前,关于一个设备来说,杂乱的电路是必要的,这样能够履行各式各样的动作。现在,机器学习将这种硬件智能笼统成软件变得越来越有或许,使得嵌入式设备越来越简略、简便和灵敏。

TinyML 最明显的比方是智能手机。这些设备一般都有唤醒词,例如:安卓智能手机的「Hey Google」,或是 iPhone 的「Hey Siri」。智能手机经过 CPU 处理这些活动,现代 iPhone 的主中央处理器是 1.85 GHz,会在几个小时内耗尽电量。关于大多数人一天中最多运用几回的设备来说,这种程度的耗电量不行承受。

为了处理这个问题,开发人员开发了专用低功耗硬件,这种硬件能够由一个小电池(比方一个圆形的 CR2032 硬币电池)供电。这使得电路即便在 CPU 不运转的状况下(根本上是在屏幕不亮的时分)也能坚持活泼状况。

这些电路的功耗仅为 1mW,运用规范 CR2032 电池能够供电长达一年。动力是许多电子设备的约束要素。任何需求主电源供电的设备都受限于有线电路,当十几台设备徘徊呈现在同一方位时,线路就会敏捷超负荷。电力体系的功率很低,而且价格昂贵。将电源电压(在美国约为 120v)转化为典型的电路电压(一般约为 5 V)会糟蹋很多的能量。任何运用笔记本电脑充电器的人在拔下充电器时都或许知道这一点。充电器内变压器发生的热量在电压转化进程中糟蹋了能量。

即便是有电池的设备,电池的续航时刻也有限,需求频频地充电。许多电子产品的电池在规划时只能运用一个作业日。TinyML 设备能够用硬币巨细的电池持续作业一年,这意味着在偏僻环境中,只要在必要时才进行通讯,以节省动力。

单词唤醒并不是仅有一个无缝嵌入智能手机的 TinyML。加快计数据用于确认是否有人刚刚拿起了手机,这将唤醒 CPU 并翻开屏幕。

明显,这并不是 TinyML 仅有的运用。事实上,TinyML 为企业以及爱好者供给了出产更智能物联网设备的机会。数据变得越来越重要,将机器学习资源分配到偏僻地区内存有限的设备上,给数据密集型职业(如农业、天气预报或地震学)带来了优点。

毫无疑问,赋予边际设备履行数据驱动处理的才能,将为工业进程带来范式改变。例如,当设备检测到土壤湿度、特定气体(例如苹果老练时释放出乙烷)或特定大气条件(如劲风、低温或高湿度)等特征时,检测设备会发送有助于作物的信息,极大地促进作物成长,然后进步作物产值。

再举一个比方,一个智能门铃能够装置一个摄像头,经过面部辨认来确认谁在现场。这能够用于安全意图,或许乃至仅仅当有人在场时,门铃上的摄像机信号会传输到房子里的电视上,这样居民们就知道谁在门口。

现在,TinyML 的两个首要要点范畴是:

关键字发现。大多数人现已了解此类运用程序。「Hey Siri」和「Hey Google」是关键字的示例(一般与「hotword」或「wake word」同义运用)。这样的设备接连收听来自麦克风的音频输入,而且被练习为仅呼应特定的声响序列,这些特定的声响序列与学习的关键字相对应。这些设备比主动语音辨认 (ASR) 运用程序更简略,而且相应地运用了更少的资源。某些设备(例如 Google 智能手机)运用级联架构来供给扬声器验证以确保安全性;

视觉唤醒词。唤醒词有一个根据图画的类似物,称为视觉唤醒词。咱们能够把它幻想成一个图画的二值分类来表明某物是存在仍是不存在。例如,能够规划智能照明体系,使得其在检测到人的存在时发动,并在人脱离时封闭。相同,当存在特定的动物时,野生动物摄影师能够运用它来摄影,而当他们发现有人时,能够运用安全摄像机拍照相片。

下面显现了 TinyML 当时机器学惯用例的更广泛概述。

边际AI新方法TinyML,超低功耗,在边际设备进行机器学习  AI 机器学习 人工智能 第4张

TinyML 的机器学惯用例(源图画:NXP)。

TinyML 作业方式

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

边际AI新方法TinyML,超低功耗,在边际设备进行机器学习  AI 机器学习 人工智能 第5张

深度学习模型紧缩流程图(图源:https://arxiv.org/pdf/1510.00149.pdf)

模型蒸馏

练习完成后,模型会被修正,以创立一个表明方式更紧凑的模型。剪枝和常识蒸馏是两种常用办法。

常识蒸馏的根本思想是,较大的网络具有必定的稀少性或冗余性。尽管大型网络具有较高的表明才能,但假如网络容量不饱和,则能够在具有较低表明才能的较小网络(即较少的神经元)中进行表明。

下图演示了常识蒸馏的进程:

边际AI新方法TinyML,超低功耗,在边际设备进行机器学习  AI 机器学习 人工智能 第6张

深度紧缩进程图(图源:https://arxiv.org/pdf/1510.00149.pdf)

相同地,剪枝能够使模型表明更紧凑。广义上讲,剪枝企图去除对输出猜测影响较小的神经元。一般与较小的神经权重有关,而较大的权重拜访其在推理进程中的重要性而坚持不变。然后,网络在剪枝后的架构上从头练习,微调输出。

边际AI新方法TinyML,超低功耗,在边际设备进行机器学习  AI 机器学习 人工智能 第7张

为模型的常识表明蒸馏进行的剪枝。

量化

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

为什么需求量化?幻想一下,一个运用 ATmega328P 微控制器的 Arduino Uno,它运用 8 位运算。要想在 Uno 上运转一个模型,抱负状况下模型权重有必要存储为 8 位整数(而许多台式核算机和笔记本电脑运用 32 位或 64 位浮点表明)。经过量化模型,权重的存储巨细削减为本来的 4 分之一(如 32 位到 8 位值的量化),而对精确度的影响能够疏忽(一般约为 1–3%)。

边际AI新方法TinyML,超低功耗,在边际设备进行机器学习  AI 机器学习 人工智能 第8张

8 位编码进程中量化差错的示意图(图源:https://tinymlbook.com/)

此外,在量化进程中,拜访量化差错,一些信息或许会丢掉。为了处理这个问题,量化感知(QA)练习被提出并作为一种代替计划。

哈夫曼编码

哈夫曼编码是可变字长编码 (VLC) 的一种,该办法彻底根据字符呈现概率来结构异字头的均匀长度最短的码字。

编译

一旦模型被量化和编码,它就被转化成一种格局,该格局能够被某种方式的小型神经网络解说器解说,其中最盛行的或许是 TF Lite(巨细约 500kb)和 TF Lite Micro(巨细约 20kb)。然后将该模型被编译成 C 或 C++(大多数微控制器都能有用地运用内存),并由设备上的解说器运转。

边际AI新方法TinyML,超低功耗,在边际设备进行机器学习  AI 机器学习 人工智能 第9张

TinyML 运用程序作业流(图源:https://tinymlbook.com/)

TinyML 大部分技巧来自于处理杂乱的微控制器国际。TF Lite 以及 TF Lite Micro 之所以这么小是拜访一切不必要的功用都被删除了。不幸的是,一些有用的功用也被删除了,如调试和可视化。这意味着,假如在布置期间呈现过错,就很难判别发生了什么。

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

为什么不在设备上练习

在设备上进行练习会带来更多的「并发症」。拜访数值精度下降,很难确保充沛练习网络所需的精确率水平。规范台式核算机上的主动区别办法关于机器精度大约是精确的。以 10^-16 的精度核算导数令人难以置信,可是对 8位值运用主动微分将会导致较差的成果。在反向传达进程中,这些导数会组兼并终究用于更新神经参数。在如此低的数值精度下,模型的精确度或许很差。

话虽如此,神经网络现已运用 16 位和 8 位浮点数进行了练习。

2015 年,Suyog Gupta 及其搭档宣布的第一篇有关下降深度学习中的数值精度的论文是《Deep Learning with Limited Numerical Precision》。论文成果表明,32 位浮点表明方式能够削减为 16 位定点表明方式,而精确度几乎没有下降。但这是运用 stochastic rounding 算法的仅有状况, 拜访一般来说,它会发生无偏成果。

2018 年,Naigang Wang 及其搭档在其论文《Training Deep Neural Networks with 8-bit Floating Point Numbers》中运用 8 位浮点数练习了神经网络。拜访需求在反向传达期间坚持梯度核算的保真度(在运用主动微分时能够完成机器精度),因而运用 8 位数字来练习神经网络要比运用推理更有应战性。

核算功率怎么?

模型还能够进行裁剪,以进步核算功率。广泛布置在移动设备上的模型架构如 MobileNetV1 以及 MobileNetV2 便是很好的比方。这些本质上是卷积神经网络,它们从头界说了卷积运算,使其核算功率更高。这种更有用的卷积方式被称为深度可分离卷积。此外还能够运用根据硬件的装备以及神经架构查找来优化架构推迟,但这些在本文中没有触及。

下一次 AI 革新

在资源受限设备上运转机器学习模型的才能为许多新的或许性翻开了大门。AI 的开展或许使规范机器学习愈加节能,有助于削减人们对数据科学影响环境的忧虑。此外,TinyML 答应嵌入式设备被赋予根据数据驱动算法的新智能,这些算法能够用于从预防性保护到森林中的鸟叫声检测等任何方面。

尽管一些 ML 从业者无疑会持续扩展模型的规划,一个新的趋势是开发更多具有内存、核算和能耗功率的机器学习算法。现在,TinyML 仍处于起步阶段,未来开展的空间还很大。

转载请说明出处
知优网 » 边际AI新方法TinyML,超低功耗,在边际设备进行机器学习

发表评论

您需要后才能发表评论