Py学习  »  机器学习算法

为什么微型化是机器学习的未来?

Python程序员 • 5 年前 • 400 次点击  

       当Azeem要我在CogX上发表演讲时,他让我突出一个让观众信服的要点。几年前,我的首要任务就是让人们相信深度学习是一场真正的革命,而不仅仅是一种时尚,已经有足够多旗舰产品应用深度学习的先例,这似乎已经证明了一切。我比大多数人先了解这个事实,不是因为我是一位具有深刻洞察力的先知,而是因为我花了很长时间对这项技术进行了亲手实验。我对深度学习的价值充满信心,因为我亲眼看到了它在一系列应用中的有效性,其广泛应用只是一个时间问题。

       在这里我要谈论另一种我可以肯定的趋势,并且会产生同样的影响,但这种影响并不是众所周知的。我确信机器学习可以应用于微型低功耗芯片,而且这种组合将解决我们目前无法解决的大量问题。这就是我将在CogX上讨论的内容,在这篇文章中,我将更详细地解释为什么我很确定。

微型计算机已经很便宜且已广泛应用


      市场非常分散,很难获得准确的数字,但最乐观的估计是,今年将销售超过400亿个微控制器,并且考虑到产品的持续性,可能会有数千亿的微控制器(或MCU)正在服役。微控制器是包含一个可能只有几千字节RAM的小型CPU芯片包,并且嵌入在日常消费品,医疗,汽车和工业设备中。它们的设计目的是使用非常少量的电能,价格足够便宜,几乎可以集成于任何实物商品,今年的平均价格预计将低于50美分。

       目前微型控制器并没有引起太多关注,因为它们通常用于替代汽车、洗衣机或遥控器上的老旧机电系统。控制设备的逻辑与以前的模拟电路和继电器相比几乎没有什么变化,只有一些小工具可能稍有不同,诸如可编程遥控按钮或根据降雨强度改变速度的雨刮器等。对制造商来说最大的好处是标准控制器可以用软件进行编程,从而不需要为每项任务定制电子设备,因此微控制器的出现让制造过程变得更加简单、成本更加低廉。

电能是限制因素

       任何需要市电的设备在使用时都有诸多不便。它们仅限于在有布线的地方使用,即使有布线,也可能因实际原因而难以插入新的设备,例如在工厂或手术室里。将某些设备放在房间的角落意味着需要有线运行或用诸如以太网供电之类的替代方案。将市电压电压转换为电路板电压的电子设备可能会很昂贵且浪费能源。即使便携式设备如手机或笔记本电脑也需要频繁充电。

       智能产品的制胜法宝是可以在任何地方部署,并且不需要维护,如充电或更换电池。实现这个目标的最大障碍是大多数电子系统消耗电量较大。以下是一些智能手机常见组件电能消耗的粗略数据(更多详细信息,请参阅我的旧帖子):

  • 显示屏功率大约400毫瓦。

  • 有源蜂窝无线通信组件功率大约800毫瓦。

  • 蓝牙功率大约100毫瓦。

  • 加速度计是21毫瓦。

  • 陀螺仪是130毫瓦。

  • GPS是176毫瓦。

       微控制器本身功率可能只有1毫瓦甚至更低,但外设功率很大。一枚纽扣电池大概能提供2500焦耳的电能,因此即便耗电为毫瓦级,电池也只能维持一个月左右。当然,目前大多数产品都使用空占比和睡眠模式来避免持续耗电,即便如此,电量消耗还是很大。

CPU和传感器几乎不耗电,无线通信组件和显示器耗电很多

       从这些数字中可以总结出一点,处理器和传感器可以将功耗降至微瓦级别(例如高通的Glance视觉芯片、能量采集CCD或耗能仅数百微瓦的麦克风),但显示器尤其是无线通信组件有着更高的功耗,即使是低功耗的wifi和蓝牙使用时耗能也达数十毫瓦。移动数据似乎需要大量的电能。有这样一条规则,一个操作所需的能量与你发送比特的距离成正比。CPU和传感器发送数据的距离只有几毫米,能耗较低,无线通信组件发送数据数米远或更远,能耗更高。即使技术总体上有所改善,我也没有看到这种关系会发生根本性变化。事实上,我预测计算和无线通信的能耗差距会变得更大,因为在我看来减少计算能耗的前景更大。

我们捕获了超出所需的传感器数据

       几年前,我曾与一些从事微型卫星拍摄影像工作的工程师进行了交谈。他们的问题是,他们使用高清视频摄像机,但他们的卫星内存太小,无法存储太多数据,并且每隔几小时才能利用有限的带宽资源把数据下载到地球基站。我意识到几乎所有传感器都面临同样的问题。甚至家用摄像头也受到无线带宽的限制。这方面的一个典型例子是,我一个朋友家12月份的宽带数据量远高于全年其他时间,他深入研究发现,这是因为圣诞期间闪烁的灯光使视频流压缩比急剧下降,因为有更多的帧差异!

       还有更多的例子,可穿戴设备和手机上的加速度计只用于唤醒设备或计步,并未检测更复杂的活动。

这对于机器学习意味着什么
       如果你接受上述观点,那很明显,有一个巨大的市场正等着正确的技术来解锁。我们需要一些东西来适配于廉价的微控制器,它们消耗电量非常少,依靠计算而不是无线通信,并且可以将我们浪费的传感器数据转化为有用的东西。这就是机器学习,特别是深度学习的要弥补的空白。

深度学习是计算密集型工作和并且在微控制器上运行良好

       我喜欢深度学习,因为它们几乎总是计算密集型的。我工作中的其它类应用程序都受到内存访问速度的限制,结果通常不可预测。相比之下,神经网络的大部分时间用于矩阵运算,其中相同的数字以不同的组合重复使用。这意味着CPU花大部分时间进行算术运算以将两个缓存数字相乘,而从存储器中获取新值的时间要少得多。

       这一点非常重要,因为从DRAM读取数值消耗的电量可以是算术运算的上千倍。这似乎是距离/能量关系的另一个例子,因为DRAM在物理上远比寄存器更远。相对较低的内存要求(仅几十或几百千字节)也意味着可以使用较低功率的SRAM或闪存进行存储。这使得深度学习应用非常适合微控制器,尤其是当使用8位运算代替浮点运算时,因为微控制器通常已经具有非常适合的类DSP指令。这个想法并不是特别新颖,苹果和谷歌都将这类芯片应用于永久在线的语音识别网络,但机器学习或嵌入式设备开发领域中很多人似乎都没有意识到深度学习和微控制器可以高度融合。

深度学习可以非常节能

       关于每个操作的皮焦耳我思考了很久。这是CPU单个算术运算消耗多少能量的度量标准,如果我知道给定神经网络运行一次需要多少操作,我可以粗略估计它将消耗多少能量。例如,MobileNetV2图像分类网络的最小配置占用了2200万个操作数(每次乘加两个操作数)。如果我知道一个特定的系统需要5皮焦来执行单个操作,那么将需要(5皮焦* 22,000,000)= 110微焦能量来执行。如果我们每秒钟分析一帧,那么功率只有110微瓦,纽扣电池就可以持续使用近一年。这些数字都在当前DSP的运算范围这内,我乐观估计效率会不断提高。这意味着运行现有神经网络的能源成本已经完全在电池供电设备的预算范围之内,并且随着神经网络模型架构和硬件的改进,效率可能会进一步提高。

深度学习使传感器数据变得有意义

       在过去的几年中,由于使用神经网络,我们突然能够采集图像、音频或加速度计等噪声信号,并能从中提取含义。由于我们可以在微控制器上运行这些网络,并且传感器本身消耗电量很小,因此可以处理更多目前被我们忽略的传感器数据。例如,我希望所有设备都有简单的语音接口。通过输入一个小的词汇表,再加上一个图像传感器来检测视线,我们应该能够更轻松控制所处环境中的几乎所有设备,而无需通过按下按钮或使用手机应用程序来控制它们。我希望一个语音接口组件价格低于五十美分,依靠纽扣电池供电可以使用一年,我相信我们现有的技术已经可以实现了。

       另一个例子,我很想拥有一个电池供电的微型图像传感器,可以通过编程来查找特定农作物害虫或杂草等物体,并在发现危害物体时发出警报。这些传感器可以散布在田间,以更环保的方式指导诸如除草或杀虫等干预措施。

       一名工厂管理员对“Hans”的描述就是一个工业方面的实例。Hans是一位资深工程师,每天早上沿着机器行走,将手放在每台机器上,然后倾听,之后根据经验和直觉告诉工头哪台机器必须进行脱产维修。每个工厂都有这样一个工程师,但他们都将面临退休。如果您可以将钮扣电池供电的加速度计和麦克风固定在每台机器上(“网络Hans”),它们可以识别常规操作并在异常时发出信号。您就可以在问题真正发生之前发现它们。

       我可能梦想过一百种其他类似的产品,但说实话,最让我兴奋的是,我并不知道这些新设备将如何使用,只是因为它们背后的技术非常引人注目,将会出现我无法想象的全新应用。对我来说,我就像个八十年代的孩子,当出现第一台家用电脑时,我不知道电脑会变成什么样子,当时大多数人都用它来玩游戏或存储地址簿,但是我知道会有很多可能性,一个全新的世界将会出现。

外卖”信息

       召开面对面会议而不是发送文档的唯一原因是需要情感沟通。我想与CogX观众分享是,我对机器学习在微型设备上的应用前景充满信心,虽然博客文章并不能完全替代现场演讲,但我希望我已经在这里传递了一些信息。我不知道未来的细节,但我知道,基于微型、廉价、电池供电芯片的机器学习正在崛起,一些让人惊叹的新应用即将出现!


英文原文:https://petewarden.com/2018/06/11/why-the-future-of-machine-learning-is-tiny/
译者:钱利鹏



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/OZzU3ILbtb
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/13722
 
400 次点击