Why the Future of Machine Learning is Tiny
当Azeem邀请我到CogX做演讲时,他希望我能把核心集中于引导用户思考的某一个点上。前几年,我的首要任务是让人们相信,深度学习是一场真正的革命,而不仅仅是一时的风尚,目前已经有足够多的例子可以证明这个观点。我之所以知道这个观点是正确的,并不是因为我是一个预言家,而是因为我有机会可以花时间去亲自动手操作这项技术。所以我非常相信深度学习的价值,因为我亲眼见到了这些效果,并且知道,阻止它从实验室走向工业界的唯一屏障,仅仅在于更广泛的应用场景需要投入更多的研究时间。
今天,我将谈论另一种鲜为人知的,但我确信无疑的趋势。那就是我相信机器学习可以在微小的、低功耗的芯片上运行,这种技术将解决目前方案中的瓶颈问题,这就是我在CogX上要讲的。
微型电脑已经足够便宜,且非常普及
因为市场过于分散,以至于很难得到确切的数字,但最好的估计是今年将有超过400亿的微控制器售出,考虑到他们所使用的产品的持久性,可能会有数千亿个微控制器在使用。微控制器(或MCUs)包含一个小CPU,仅仅只有几千字节的RAM,并且被嵌入到消费者、医疗、汽车和工业设备中。它们的设计目的是为了得到低功耗、低成本的产品,预计这一产品今年的平均价格将低于50美分。
它们并没有得到太多的关注,因为它们经常被用来取代旧的电动机械系统在汽车、洗衣机或遥控器上的功能。这些设备的控制逻辑和以前使用的模拟电路和继电器几乎没有什么区别,除了可能有一些可编程功能的微小改变。对于制造商来说,最大的好处是,标准的控制器可以用软件来编程,而不是去定制电子设备,这样可以降低制造过程的成本,也更容易生产。
能源是限制因素
任何需要电源的设备都面临着布线问题的限制,而且一旦开始布线也有可能引来其他新的问题,例如,在手术室中与工厂的地板上。为了将电源电压从输电电压转换到设备可用电压是非常昂贵且浪费的。甚至是像手机或笔记本电脑这种便携式设备也需要非常频繁的充电。
几乎任何智能产品的终极目标都是为了让设备可以部署在任何地方,而不需要什么维护手段。为了实现这一目标,最大的障碍是:大多数的电子系统都需要使用能源。下面是一些基于智能手机能耗数据的常见组件的粗略数字(更多细节请参阅我的以前的博文 【1】):
-
一个显示器可能需要400毫瓦。
-
有源电池收音机可能使用800毫瓦。
-
蓝牙可能使用100毫瓦。
-
加速度计是21毫瓦。
-
陀螺仪是130毫瓦。
-
GPS是176毫瓦。
一个微控制器本身可能只使用1毫瓦或者更少,但外设可能会使用更多的电能,一枚硬币电池可以提供2500焦耳的能量,所以电池即使要给1毫瓦的设备供电,也只能维持一个月左右,当然,目前大多数的产品都使用了轮转和睡眠,以避免经常开机,但即便如此,问题仍未的到解决。
CPU和传感器几乎不使用电源,而收音机和显示器使用的电量很多
一般来说处理器、传感器可以将电力成本降低到微瓦级别,但显示器、无线电等设备需要更多的电力成本,甚至是低功耗、蓝牙等设备也需要几十毫瓦。数据移动的过程导致了更大的能量开销,似乎有这样一条规则,一个操作所需要的能量与发送数据的距离成正比。CPU和传感器发送的距离只有几毫米,而且非常便宜,而无线电发送的距离很远,并且价格昂贵。我认为即使技术上有所改善,这种差距仍然会进一步扩大。
我们获取的传感器数据比我们使用的多
几年前,我和一些研究卫星摄像的工程师交谈过。他们的问题是,他们使用手机摄像头已经可以拍摄高清的视频,但卫星上只有少量内存来存储结果,每几个小时,需要通过有限的带宽下载到地球上的基站中。我才突然发现,几乎所有的传感器场景都面临着同样的问题。即使是家里的摄像头也受到wifi和宽带连接带宽的限制。我的一个朋友,他12月份的ISP使用率大大超出今年的限额,当他逐层分析后,发现主要原因居然是因为屋里闪烁的圣诞灯导致视频流压缩比急剧下降。
还有很多这样的例子,我们的可穿戴设备和手机上的所有加速器都只是用来检测可能唤醒设备的事件,或者是基本的步骤计数,所有可能的更复杂的活动检测都无法涉及。
这对机器学习意味着什么?
如果你接受上面的所有观点,那么很明显,有一个巨大的尚未开发的市场等待着用正确的技术来开启。我们需要一种能在廉价的微控制器上工作的东西,它只需要很少的能量,它依赖于计算而不是无线电,它能把我们所有浪费的传感器数据变成有用的东西。这就是机器学习,尤其是深度学习所填补的空白。
深度学习在已有的微控制器上是计算密集且可用的
在深度学习实现方面,它们几乎都是受计算限制的。这一点很重要,因为我所研究的其他问题几乎都是受到访问大量内存的速度限制。相比之下,神经网络把大部分事件都花在了大矩阵相乘上,同样的数字在不同的组合中可以重复使用,这意味着CPU大部分时间都花在计算两个缓存的数字相乘上,而从内存中获取新值的时间要少得多。
这很重要,因为从内存中获取数据需要更大的能量开销(这可能是距离-能量的一个明显例子——因为内存比寄存器更远)。相对较低的内存需求意味着低功耗的SRAM或闪存可以用于存储,这使得深度学习应用程序非常适合于微控制器,尤其是当使用8位计算而不是浮点数时,因为MCUs通常已经有类似dsp的指令,非常适合。这一想法并不是特别新颖,因为谷歌和苹果已经开始有所行动,在这些芯片上进行语音识别,但在ML或嵌入式世界中,似乎没有多少人意识到深度学习和MCUs的结合价值。
深度学习可以做到非常高的能源利用率
我花了很多时间去思考焦耳/运算(picojoules per op.,CPU算数单元的能量开销)的问题。因为这样我可以得出一个大概的估计,知道一个神经网络大概要消耗多少能量。例如,MobileNetV2图像分类网络在最小的版本中要2200万个操作,如果知道每个操作需要5微微焦的能量,那么他就需要110微瓦的能量,如果我们每秒分析一帧,那么只有110微瓦,一枚硬币电池可以持续使用一年。这些数字在目前的dsp元件中是非常有竞争力的。
深度学习能够感知传感器的数据
在过去几年,利用神经网络接收图像、音频、加速度等噪声信号,并从中提取出价值这一难题,突然变得可能。因为我们可以在微控制器中运行这些模型,而传感器本身只需要很少的电量,所以我们可以从传感器数据中获取更多的价值。例如,我希望让所有设备都有一个简单的语音交互能力。用于理解短语,或可以使用图像传感器完成目标检测,这样可以不依赖按钮来完成很多操作。希望这种语音交互组件可以在50美分硬币电池下运行一年,并且这在我们当前的技术上是可行的。
另一个例子是,我想要一个小型电池驱动的图像传感器,我可以对它进行编程,以查找特定的作物害虫或杂草,并在被发现时发出警报。它们可以分散在农田周围,以一种更环保的方式指导诸如除草或杀虫剂等干预措施。
让我印象深刻的一个工业例子是一个工厂的经营者对“Hans”的描述。他是一个资深工程师,每天都要沿着一排机器走,并把手放在每一个机器上,听着,然后告诉工头哪些机器需要离线维修,这些都是基于经验和直觉的。如果你能在每台机器上安装一个电池驱动的加速度计和麦克风(一个“Cyber-Hans”),倘若出现异常,这些机器将提前给工厂警告。
类似的想法还有很多,但最让我兴奋地是,我不知道这些设备将如何使用,但背后的技术是如此迷人,这将建立我无法想象的全新应用程序。对我来说,就像80年代家用电脑出现时的样子。我不知道它们会变成什么,当时大多数人都用它来玩游戏或存储地址簿,但我知道这种设备将为世界带来太多的可能性。
召开会议而不是发送文件的唯一理由是为了传达信息之外的情感。我想和CogX观众分享的是我对ML在小型设备上的应用前景。我不知道未来会出现什么细节,但我知道可用于机器学习微型化、廉价化的电池驱动芯片即将问世,它将带来一批无法想象的新应用。
原文发布时间为:2018-06-12
本文作者:克雷格
本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”。