為什么說(shuō)深度學(xué)習(xí)和MCU是天作之合?
Pete Warden,是谷歌TensorFlow團(tuán)隊(duì)成員,也是TensorFLow Mobile的負(fù)責(zé)人,常年遨游在深度學(xué)習(xí)的大海。
本文引用地址:http://butianyuan.cn/article/201806/381703.htm另外,這些看上去很熟悉的書(shū),也是他的作品。
除此之外,皮特有個(gè)新的想法要和大家分享——
他堅(jiān)定地相信,未來(lái)的深度學(xué)習(xí)能夠在微型的、低功耗的芯片上自由地奔跑。
換句話說(shuō),單片機(jī) (MCU) ,有一天會(huì)成為深度學(xué)習(xí)最肥沃的土壤。
這里面的邏輯走得有些繞,但好像還是有點(diǎn)道理的。
為什么是單片機(jī)
單片機(jī)遍地都是
根據(jù)皮特的估計(jì),今年一年全球會(huì)有大約400億枚單片機(jī) (MCU) 售出。
MCU里面有個(gè)小CPU,RAM只有幾kb的那種,但醫(yī)療設(shè)備、汽車設(shè)備、工業(yè)設(shè)備,還有消費(fèi)級(jí)電子產(chǎn)品里,都用得到。
這樣的計(jì)算機(jī),需要的電量很小,價(jià)格也很便宜,大概不到50美分。
之所以得不到重視,是因?yàn)橐话闱闆r下,MCU都是用來(lái)取代 (如洗衣機(jī)里、遙控器里的) 那些老式的機(jī)電系統(tǒng)——控制機(jī)器用的邏輯沒(méi)有發(fā)生什么變化。
能耗才是限制因素
任何需要主電源 (Mains Electricity) 的設(shè)備,都有很大的局限性。畢竟,不管到哪都要找地方插電,就算是手機(jī)和PC都得經(jīng)常充電才行。
然而,對(duì)智能產(chǎn)品來(lái)說(shuō),在任何地方都能用、又不用經(jīng)常維護(hù),才是王道。
所以,先來(lái)看下智能手機(jī)的各個(gè)部位用電有多快——
· 顯示器400毫瓦
· 無(wú)線電800毫瓦
· 藍(lán)牙100毫瓦
· 加速度計(jì)21毫瓦
· 陀螺儀130毫瓦
· GPS 176毫瓦
相比之下,MCU只需要1毫瓦,或者比這更少??墒?,一枚紐扣電池?fù)碛?,000焦耳的電量,所以即便是1毫瓦的設(shè)備,也只能維持1個(gè)月。
當(dāng)然,現(xiàn)在的設(shè)備大多用占空比 (Duty Cycling) ,來(lái)避免每個(gè)部件一直處在工作狀態(tài)。不過(guò),即便是這樣,電量分配還是很緊張。
CPU和傳感器不太耗電
CPU和傳感器的功耗,基本可以降到微瓦級(jí),比如高通的Glance視覺(jué)芯片。
相比之下,顯示器和無(wú)線電,就尤其耗電了。即便是WiFi和藍(lán)牙也至少要幾十毫瓦。
因?yàn)?,?shù)據(jù)傳輸需要的能量,似乎與傳輸距離成正比。CPU和傳感器只傳幾毫米,而無(wú)線電的傳送距離以米為單位,就要貴得多。
傳感器的數(shù)據(jù)都去哪了
傳感器能獲取的數(shù)據(jù),比人們能用到的數(shù)據(jù),多得多。
皮特曾經(jīng)和從事微型衛(wèi)星拍攝的攻城獅聊過(guò)。
他們基本上用手機(jī)相機(jī)來(lái)拍高清視頻。但問(wèn)題是,衛(wèi)星的數(shù)據(jù)存儲(chǔ)量很小,傳輸帶寬也很有限,從地球上每小時(shí)只能下載到一點(diǎn)點(diǎn)數(shù)據(jù)。
就算不涉及到地外事務(wù),地球上的很多傳感器也會(huì)遇到這樣的尷尬。
一個(gè)很有趣的栗子,來(lái)自皮特的一個(gè)好基友,每到12月,他家上網(wǎng)流量就會(huì)用到爆炸。后來(lái),他發(fā)現(xiàn)是那些給圣誕節(jié)掛的彩燈,影響了視頻下載的壓縮比例,多下載了很多幀。
跟深度學(xué)習(xí)有什么關(guān)系
如果上面這些聽(tīng)上去有點(diǎn)道理,那么就有一大片市場(chǎng)等待技術(shù)來(lái)挖掘。
我們需要的是,能夠在單片機(jī)上運(yùn)轉(zhuǎn)的,不需要很多電量的,依賴計(jì)算不依賴無(wú)線電,并且可以把那些本來(lái)要浪費(fèi)掉的傳感器數(shù)據(jù)利用起來(lái)的,設(shè)備。
這也是機(jī)器學(xué)習(xí),特別是深度學(xué)習(xí),需要跨越的鴻溝。
天作之合
深度學(xué)習(xí)就是上面所說(shuō)的,計(jì)算密集型,可以在現(xiàn)有的MCU上運(yùn)行得很舒服。
這很重要,因?yàn)楹芏嗥渌膽?yīng)用,都受到了“能在多短的時(shí)間里獲得大量的儲(chǔ)存空間”這樣的限制。
相比之下,神經(jīng)網(wǎng)絡(luò)大部分的時(shí)間,都是用來(lái)把那些很大很大的矩陣乘到一起,翻來(lái)覆去用相同的數(shù)字,只是組合方式不同了。
這樣的運(yùn)算,當(dāng)然比從DRAM里讀取大量的數(shù)值,要低碳得多。
需要的數(shù)據(jù)沒(méi)那么多的話,就可以用SRAM這樣低功耗的設(shè)備來(lái)存儲(chǔ)。
如此說(shuō)來(lái),深度學(xué)習(xí)最適合MCU了,尤其是在8位元計(jì)算可以代替浮點(diǎn)運(yùn)算的時(shí)候。
深度學(xué)習(xí)很低碳
皮特花了很多時(shí)間,來(lái)考慮每次運(yùn)算需要多少皮焦耳。
比如,MobileNetV2的圖像分類網(wǎng)絡(luò),的最簡(jiǎn)單的結(jié)構(gòu),大約要用2,200萬(wàn)次運(yùn)算。
如果,每次運(yùn)算要5皮焦,每秒鐘一幀的話,這個(gè)網(wǎng)絡(luò)的功率就是110微瓦,用紐扣電池也能堅(jiān)持近一年。
對(duì)傳感器也友好
最近幾年,人們用神經(jīng)網(wǎng)絡(luò)來(lái)處理噪音信號(hào),比如圖像、音頻、加速度計(jì)的數(shù)據(jù)等等。
如果可以在MCU上運(yùn)行神經(jīng)網(wǎng)絡(luò),那么更大量的傳感器數(shù)據(jù)就可以得到處理,而不是浪費(fèi)。
那時(shí),不管是語(yǔ)音交互,還是圖像識(shí)別功能,都會(huì)變得更加輕便。
雖然,這還只是個(gè)理想。
最后一句
果然,TensorFlow Mobile的老大,滿腦子還是便攜設(shè)備的事。
評(píng)論