TensorFlow成员说:深度学习的未来,在单片机的身上

2019-04-15 19:19发布

果然,TensorFlow Mobile的老大,满脑子还是便携设备的事。
Pete Warden,是谷歌TensorFlow团队成员,也是TensorFLow Mobile的负责人,常年遨游在深度学习的大海。640?wx_fmt=jpeg
另外,这些看上去很熟悉的书,也是他的作品。除此之外,皮特有个新的想法要和大家分享——他坚定地相信,未来的深度学习能够在微型的、低功耗的芯片上自由地奔跑。换句话说,单片机 (MCU) ,有一天会成为深度学习最肥沃的土壤。这里面的逻辑走得有些绕,但好像还是有点道理的。

为什么是单片机

单片机遍地都是根据皮特的估计,今年一年全球会有大约400亿枚单片机 (MCU) 售出。640?wx_fmt=jpeg
MCU里面有个小CPU,RAM只有几kb的那种,但医疗设备、汽车设备、工业设备,还有消费级电子产品里,都用得到。这样的计算机,需要的电量很小,价格也很便宜,大概不到50美分。之所以得不到重视,是因为一般情况下,MCU都是用来取代 (如洗衣机里、遥控器里的) 那些老式的机电系统——控制机器用的逻辑没有发生什么变化。能耗才是限制因素任何需要主电源 (Mains Electricity) 的设备,都有很大的局限性。毕竟,不管到哪都要找地方插电,就算是手机和PC都得经常充电才行。640?wx_fmt=gif
然而,对智能产品来说,在任何地方都能用、又不用经常维护,才是王道。所以,先来看下智能手机的各个部位用电有多快——· 显示器400毫瓦· 无线电800毫瓦· 蓝牙100毫瓦· 加速度计21毫瓦· 陀螺仪130毫瓦· GPS 176毫瓦相比之下,MCU只需要1毫瓦,或者比这更少。可是,一枚纽扣电池拥有2,000焦耳的电量,所以即便是1毫瓦的设备,也只能维持1个月。当然,现在的设备大多用占空比 (Duty Cycling) ,来避免每个部件一直处在工作状态。不过,即便是这样,电量分配还是很紧张。CPU和传感器不太耗电CPU和传感器的功耗,基本可以降到微瓦级,比如高通的Glance视觉芯片。相比之下,显示器和无线电,就尤其耗电了。即便是WiFi和蓝牙也至少要几十毫瓦。640?wx_fmt=jpeg
因为,数据传输需要的能量,似乎与传输距离成正比。CPU和传感器只传几毫米,而无线电的传送距离以米为单位,就要贵得多。传感器的数据都去哪了传感器能获取的数据,比人们能用到的数据,多得多。皮特曾经和从事微型卫星拍摄的攻城狮聊过。他们基本上用手机相机来拍高清视频。但问题是,卫星的数据存储量很小,传输带宽也很有限,从地球上每小时只能下载到一点点数据。就算不涉及到地外事务,地球上的很多传感器也会遇到这样的尴尬。640?wx_fmt=jpeg
一个很有趣的栗子,来自皮特的一个好基友,每到12月,他家上网流量就会用到爆炸。后来,他发现是那些给圣诞节挂的彩灯,影响了视频下载的压缩比例,多下载了很多帧。

跟深度学习有什么关系

如果上面这些听上去有点道理,那么就有一大片市场等待技术来挖掘。我们需要的是,能够在单片机上运转的,不需要很多电量的,依赖计算不依赖无线电,并且可以把那些本来要浪费掉的传感器数据利用起来的。这也是机器学习,特别是深度学习,需要跨越的鸿沟。天作之合深度学习就是上面所说的,计算密集型,可以在现有的MCU上运行得很舒服。这很重要,因为很多其他的应用,都受到了“能在多短的时间里获得大量的储存空间”这样的限制。640?wx_fmt=jpeg
相比之下,神经网络大部分的时间,都是用来把那些很大很大的矩阵乘到一起,翻来覆去用相同的数字,只是组合方式不同了。这样的运算,当然比从DRAM里读取大量的数值,要低碳得多。需要的数据没那么多的话,就可以用SRAM这样低功耗的设备来存储。如此说来,深度学习最适合MCU了,尤其是在8位元计算可以代替浮点运算的时候。深度学习很低碳皮特花了很多时间,来考虑每次运算需要多少皮焦耳比如,MobileNetV2的图像分类网络,的最简单的结构,大约要用2,200万次运算。如果,每次运算要5皮焦,每秒钟一帧的话,这个网络的功率就是110微瓦,用纽扣电池也能坚持近一年。对传感器也友好最近几年,人们用神经网络来处理噪音信号,比如图像、音频、加速度计的数据等等。640?wx_fmt=jpeg
如果可以在MCU上运行神经网络,那么更大量的传感器数据就可以得到处理,而不是浪费。那时,不管是语音交互,还是图像识别功能,都会变得更加轻便。虽然,这还只是个理想。∞∞∞640?wx_fmt=jpeg&wx_lazy=1IT派 - {技术青年圈}持续关注互联网、区块链、人工智能领域640?wx_fmt=jpeg&wx_lazy=1
公众号回复“机器学习”邀你加入{ IT派AI机器学习群 }