为什么说深度学习和MCU是天作之合?
Pete Warden,是谷歌TensorFlow团队成员,也是TensorFLow Mobile的负责人,常年遨游在深度学习的大海。
本文引用地址:http://www.amcfsurvey.com/article/201806/381703.htm另外,这些看上去很熟悉的书,也是他的作品。
除此之外,皮特有个新的想法要和大家分享——
他坚定地相信,未来的深度学习能够在微型的、低功耗的芯片上自由地奔跑。
换句话说,单片机 (MCU) ,有一天会成为深度学习最肥沃的土壤。
这里面的逻辑走得有些绕,但好像还是有点道理的。
为什么是单片机
单片机遍地都是
根据皮特的估计,今年一年全球会有大约400亿枚单片机 (MCU) 售出。
MCU里面有个小CPU,RAM只有几kb的那种,但医疗设备、汽车设备、工业设备,还有消费级电子产品里,都用得到。
这样的计算机,需要的电量很小,价格也很便宜,大概不到50美分。
之所以得不到重视,是因为一般情况下,MCU都是用来取代 (如洗衣机里、遥控器里的) 那些老式的机电系统——控制机器用的逻辑没有发生什么变化。
能耗才是限制因素
任何需要主电源 (Mains Electricity) 的设备,都有很大的局限性。毕竟,不管到哪都要找地方插电,就算是手机和PC都得经常充电才行。
然而,对智能产品来说,在任何地方都能用、又不用经常维护,才是王道。
所以,先来看下智能手机的各个部位用电有多快——
· 显示器400毫瓦
· 无线电800毫瓦
· 蓝牙100毫瓦
· 加速度计21毫瓦
· 陀螺仪130毫瓦
· GPS 176毫瓦
相比之下,MCU只需要1毫瓦,或者比这更少。可是,一枚纽扣电池拥有2,000焦耳的电量,所以即便是1毫瓦的设备,也只能维持1个月。
当然,现在的设备大多用占空比 (Duty Cycling) ,来避免每个部件一直处在工作状态。不过,即便是这样,电量分配还是很紧张。
CPU和传感器不太耗电
CPU和传感器的功耗,基本可以降到微瓦级,比如高通的Glance视觉芯片。
相比之下,显示器和无线电,就尤其耗电了。即便是WiFi和蓝牙也至少要几十毫瓦。
因为,数据传输需要的能量,似乎与传输距离成正比。CPU和传感器只传几毫米,而无线电的传送距离以米为单位,就要贵得多。
传感器的数据都去哪了
传感器能获取的数据,比人们能用到的数据,多得多。
皮特曾经和从事微型卫星拍摄的攻城狮聊过。
他们基本上用手机相机来拍高清视频。但问题是,卫星的数据存储量很小,传输带宽也很有限,从地球上每小时只能下载到一点点数据。
就算不涉及到地外事务,地球上的很多传感器也会遇到这样的尴尬。
一个很有趣的栗子,来自皮特的一个好基友,每到12月,他家上网流量就会用到爆炸。后来,他发现是那些给圣诞节挂的彩灯,影响了视频下载的压缩比例,多下载了很多帧。
跟深度学习有什么关系
如果上面这些听上去有点道理,那么就有一大片市场等待技术来挖掘。
我们需要的是,能够在单片机上运转的,不需要很多电量的,依赖计算不依赖无线电,并且可以把那些本来要浪费掉的传感器数据利用起来的,设备。
这也是机器学习,特别是深度学习,需要跨越的鸿沟。
天作之合
深度学习就是上面所说的,计算密集型,可以在现有的MCU上运行得很舒服。
这很重要,因为很多其他的应用,都受到了“能在多短的时间里获得大量的储存空间”这样的限制。
相比之下,神经网络大部分的时间,都是用来把那些很大很大的矩阵乘到一起,翻来覆去用相同的数字,只是组合方式不同了。
这样的运算,当然比从DRAM里读取大量的数值,要低碳得多。
需要的数据没那么多的话,就可以用SRAM这样低功耗的设备来存储。
如此说来,深度学习最适合MCU了,尤其是在8位元计算可以代替浮点运算的时候。
深度学习很低碳
皮特花了很多时间,来考虑每次运算需要多少皮焦耳。
比如,MobileNetV2的图像分类网络,的最简单的结构,大约要用2,200万次运算。
如果,每次运算要5皮焦,每秒钟一帧的话,这个网络的功率就是110微瓦,用纽扣电池也能坚持近一年。
对传感器也友好
最近几年,人们用神经网络来处理噪音信号,比如图像、音频、加速度计的数据等等。
如果可以在MCU上运行神经网络,那么更大量的传感器数据就可以得到处理,而不是浪费。
那时,不管是语音交互,还是图像识别功能,都会变得更加轻便。
虽然,这还只是个理想。
最后一句
果然,TensorFlow Mobile的老大,满脑子还是便携设备的事。
评论