更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)
以下是 AI 前线对 Pete Warden 这篇文章的翻译:
Azeem 邀请我在 CogX 上做一个演讲,希望我把演讲内容聚焦在某个点上。如果这件事情放到几年前,我会试图让人们相信深度学习是一场真正的革命,而不只是炒作,不过有太多的例子已经很好地回答了这个问题。我总是先于大多数人知道这个答案,并不是因为我是什么先知,只是因为我有机会花大量时间亲自参与这项技术实验。我对深度学习的价值充满信心,因为我亲眼看着它被应用在各种场景当中,而且我知道,能够阻碍它大范围部署的唯一因素是从研发到生产部署的速度。
不过,最后我选择了另一个主题,因为我对这个主题的发展趋势更有把握,而且它具有同等的影响力,只是人们还不了解。机器学习可以在低功耗的微型芯片上运行,将会解决很多目前无法解决的问题。在这篇文章中,我将详细地解释这一观点。
这个市场非常碎片化,所以很难获得准确的统计数字。不过目前最可靠的估计表明,今年销售的微控制器将超过 400 亿个,加上产品中集成的部分,这个数字可能会达到数千亿个。微控制器(MCU)包含了一个小型 CPU,可能仅有几 KB 的 RAM,并被嵌入到消费、医疗、汽车和工业设备中。它们的设计目标是使用非常少的能源,而且价格便宜,几乎可以嵌入到任何设备中,今年的平均价格预计将低于 50 美分。
不过,它们并没有得到太多的关注,因为它们通常被用于替代旧式机电系统的功能,比如汽车、洗衣机或遥控器上的电子模块。用于控制设备的逻辑与以前使用的模拟电路和继电器几乎没有区别,只是做了一些微调,比如增加可编程遥控按钮或根据降雨密度调整速度的防风雨刮器。对制造商来说,最大的好处是标准控制器可以用软件进行编程,不需要为每项任务定制电子设备,因此制造成本更低,流程也更简单。
任何依赖电源的设备都会面临多种障碍。它只能用在有布线的地方,而即使是在有布线的地方,也可能因为各种具体原因难以接入,比如在工厂地板上或手术室里。要把用电设备悬挂在房间的某个角落,需要电源线或以太网供电之类的替代方案。电压转换器可能很贵,而且浪费能源。即使是便携式设备(如电话或笔记本电脑)也需要频繁使用底座充电。
智能产品的终极目标是可以在任何地方部署,而且不需要维护,如安装底座或更换电池。实现这个目标的最大障碍是电子系统要使用多少能量。以下是一组来自 Smartphone Energy Consumption 的关于常用组件耗能的粗略数字:
显示屏可能使用 400 毫瓦。
有源单元收音机可能使用 800 毫瓦。
蓝牙可能使用 100 毫瓦。
加速仪是 21 毫瓦。
陀螺仪是 130 毫瓦。
GPS 是 176 毫瓦。
微控制器本身可能只用一毫瓦甚至更少,外围设备用的比较多。一枚纽扣电池可能提供 2500 焦的能量,即使是一毫瓦的耗能,也只能维持一个月左右。当然,目前大多数产品都使用周期性暂停和睡眠来避免持续耗能,但即使如此,预算仍然很紧张。
从这组数字可以看出,处理器和传感器可以将功耗降至微瓦范围(例如高通的 Glance 视觉芯片,甚至是能量采集 CCD 或麦克风仅消耗数百微瓦),但显示屏和无线电功耗很高,即使是低功耗的 WIFI 和蓝牙在激活时也要使用数十毫瓦。移动数据似乎也需要消耗大量的能量。似乎存在这样的一个规律,即一个操作所消耗的能量与发送比特的距离成正比。CPU 和传感器发送数据的距离只有几毫米,而且价格便宜,而无线电发送数据的距离有数米或更长,而且价格昂贵。即使总体上技术有所进步,我也不认为这种关系会发生根本性变化。事实上,我倒是希望计算单元和无线电之间的成本差距变得更大,因为这样就更有机会减少计算耗能。
几年前,我曾与一些从事微型卫星拍摄影像工作的工程师进行了交谈。他们基本上使用的是手机自带的相机,它们能够拍摄高清视频,但卫星上只有少量的内存来存储结果,并且每隔几小时通过有限的带宽下载到地球的基站上。我意识到几乎在所有部署传感器的地方都面临同样的问题,甚至家用相机也受到无线连接和网络带宽的限制。我有一个朋友,他 12 月份 ISP 的使用率远高于其他月份,因为圣诞节闪烁的灯光导致视频流压缩比急剧下降(有更多的帧差异)!
这类例子还有很多,比如可穿戴设备和手机上的加速仪只用于检测唤醒设备事件或基本的计步事件,但大多数复杂的活动检测都不会发生。
如果你接受了上述的所有观点,那么很明显,一个巨大的尚未开发的市场正等着用正确的技术去解锁。我们需要一些设备,它们使用便宜的微控制器,消耗非常少的能量,依赖计算单元而不是无线电,并将所有传感器数据转化为有用的东西。这就是机器学习,特别是深度学习可以填充的一个空白。
深度学习是计算密集型的,这点很重要,因为几乎所有的应用程序都受到内存访问速度的限制。相比之下,在训练神经网络时,大部分时间都用在计算大型矩阵上。这意味着 CPU 需要花大部分时间进行算术运算,而用在从存储器读取新值上的时间要少得多。
这一点非常重要,因为从 DRAM 读取数值比进行算术运算使用的能量要高出很多,可能是上千倍,因为 DRAM 在物理距离上比寄存器离得更远。低内存要求(几十或几百 KB)的设备可以使用较低功率的 SRAM 或闪存。因此,深度学习应用非常适合使用微控制器,尤其是当使用 8 位计算代替浮点时,因为 MCU 通常已经提供了非常合适的类 DSP 指令。这并非是新想法,苹果和谷歌已经在这类芯片上运行持续在线的语音识别网络,但在机器学习或嵌入式领域,很多人似乎都没有意识到深度学习和 MCU 是多么的匹配。
我花了很多时间研究一个操作需要消耗的皮焦耳,这个可以作为单个算术运算消耗多少能量的度量标准。如果我知道给定神经网络运行一次需要多少操作,就可以粗略估计它的功耗。例如,MobileNetV2 图像分类网络的最小配置使用了 2200 万个操作,如果我知道一个特定的系统需要 5 皮焦耳来执行单个操作,那么将需要(5 皮焦耳 *22,000,000=)110 微焦能量。如果我们每秒钟分析一帧,那么只需要 110 微瓦,一枚纽扣电池可以持续使用近一年。这些数字与目前可用的 DSP 相当,我希望能够看到效率不断得到提升。这意味着在当前硬件上运行现有神经网络的能量成本已经完全在持续在线的电池供电设备的预算范围之内,并且随着神经网络模型架构和硬件的改进,它可能会进一步提高。
在过去几年中,我们可以使用神经网络从图像、音频或加速仪中移除噪音信号,并从中提取价值。由于我们可以在微控制器上运行这些网络,并且传感器本身使用的功率很小,因此可以解释更多目前被我们忽略的传感器数据。例如,我希望几乎所有的设备都应该提供简单的语音接口。通过学习一个小型词汇表,或使用图像传感器进行眼球检测,我们有可能控制环境中所有的东西,而无需通过按下按钮或使用电话应用程序来控制它们。我希望能够看到一款语音接口组件,价格低于五十美分,可以使用纽扣电池供电一年,而且我相信使用现有的技术非常有可能实现这个目标。
举个例子,我很想拥有一个使用微型电池供电的图像传感器,可以通过编程来查找农作物害虫或杂草等物体,并在发现时发出警报。这些传感器可以散布在田间,并以更环保的方式为除草或喷洒杀虫剂等活动提供参考。
另一个与我密切相关的行业案例:工厂操作员每天早上经过一排一排的机器,将手放在每台机器上,倾听,然后基于经验和直觉告诉工头哪台机器需要进行脱机维修。如果可以将电池供电的加速仪和麦克风固定在每台可以学习常规操作并发出异常信号的计算机上,就可以在问题发生之前发现它们。
我可以幻想更多的产品,但说实话,最让我感到兴奋的是,我不知道如何使用这些设备,它们背后的技术是如此的引人注目,而且还会出现很多我们想象不到的新型应用程序。对我来说,感觉就像变成八十年代的孩子,那个时候第一台家用电脑刚刚问世。我不知道它们会变成什么样子,当时大多数人用它们来玩游戏或保存地址簿,但是我知道,一个新世界即将出现。
英文原文:
https://petewarden.com/2018/06/11/why-the-future-of-machine-learning-is-tiny/