Jeff Dean推薦:為什麼說機器學習的未來在於微型晶片

策劃編輯 | Natalie
作者 | Pete Warden
編譯 | 無明
編輯 | Debra
AI 前線導讀:近日谷歌 TensorFlow 團隊深度學習工程師 Pete Warden 發表了一篇博文,詳細闡述了微型化是機器學習應用未來的發展方向,並且相信機器學習可以在微小的、低功耗的晶片上執行,利用深度學習可以做到非常高的能源利用率。谷歌大腦負責人 Jeff Dean 也轉發了這篇博文,並強調了其技術可行性。

更多幹貨內容請關注微信公眾號“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 焦的能量,即使是一毫瓦的耗能,也只能維持一個月左右。當然,目前大多數產品都使用週期性暫停和睡眠來避免持續耗能,但即使如此,預算仍然很緊張。

CPU 和感測器幾乎不耗電,無線電和顯示屏耗電最多

從這組數字可以看出,處理器和感測器可以將功耗降至微瓦範圍(例如高通的 Glance 視覺晶片,甚至是能量採集 CCD 或麥克風僅消耗數百微瓦),但顯示屏和無線電功耗很高,即使是低功耗的 WIFI 和藍芽在啟用時也要使用數十毫瓦。移動資料似乎也需要消耗大量的能量。似乎存在這樣的一個規律,即一個操作所消耗的能量與傳送位元的距離成正比。CPU 和感測器傳送資料的距離只有幾毫米,而且價格便宜,而無線電傳送資料的距離有數米或更長,而且價格昂貴。即使總體上技術有所進步,我也不認為這種關係會發生根本性變化。事實上,我倒是希望計算單元和無線電之間的成本差距變得更大,因為這樣就更有機會減少計算耗能。

我們捕獲的感測器資料比使用的要多得多

幾年前,我曾與一些從事微型衛星拍攝影像工作的工程師進行了交談。他們基本上使用的是手機自帶的相機,它們能夠拍攝高清視訊,但衛星上只有少量的記憶體來儲存結果,並且每隔幾小時通過有限的頻寬下載到地球的基站上。我意識到幾乎在所有部署感測器的地方都面臨同樣的問題,甚至家用相機也受到無線連線和網路頻寬的限制。我有一個朋友,他 12 月份 ISP 的使用率遠高於其他月份,因為聖誕節閃爍的燈光導致視訊流壓縮比急劇下降(有更多的幀差異)!

這類例子還有很多,比如可穿戴裝置和手機上的加速儀只用於檢測喚醒裝置事件或基本的計步事件,但大多數複雜的活動檢測都不會發生。

這對於機器學習來說意味著什麼

如果你接受了上述的所有觀點,那麼很明顯,一個巨大的尚未開發的市場正等著用正確的技術去解鎖。我們需要一些裝置,它們使用便宜的微控制器,消耗非常少的能量,依賴計算單元而不是無線電,並將所有感測器資料轉化為有用的東西。這就是機器學習,特別是深度學習可以填充的一個空白。

深度學習是計算密集型的,可以在現有的 MCU 上執行

深度學習是計算密集型的,這點很重要,因為幾乎所有的應用程式都受到記憶體訪問速度的限制。相比之下,在訓練神經網路時,大部分時間都用在計算大型矩陣上。這意味著 CPU 需要花大部分時間進行算術運算,而用在從儲存器讀取新值上的時間要少得多。

這一點非常重要,因為從 DRAM 讀取數值比進行算術運算使用的能量要高出很多,可能是上千倍,因為 DRAM 在物理距離上比暫存器離得更遠。低記憶體要求(幾十或幾百 KB)的裝置可以使用較低功率的 SRAM 或快閃記憶體。因此,深度學習應用非常適合使用微控制器,尤其是當使用 8 位計算代替浮點時,因為 MCU 通常已經提供了非常合適的類 DSP 指令。這並非是新想法,蘋果和谷歌已經在這類晶片上執行持續線上的語音識別網路,但在機器學習或嵌入式領域,很多人似乎都沒有意識到深度學習和 MCU 是多麼的匹配。

深度學習可以非常節能

我花了很多時間研究一個操作需要消耗的皮焦耳,這個可以作為單個算術運算消耗多少能量的度量標準。如果我知道給定神經網路執行一次需要多少操作,就可以粗略估計它的功耗。例如,MobileNetV2 影象分類網路的最小配置使用了 2200 萬個操作,如果我知道一個特定的系統需要 5 皮焦耳來執行單個操作,那麼將需要(5 皮焦耳 *22,000,000=)110 微焦能量。如果我們每秒鐘分析一幀,那麼只需要 110 微瓦,一枚鈕釦電池可以持續使用近一年。這些數字與目前可用的 DSP 相當,我希望能夠看到效率不斷得到提升。這意味著在當前硬體上執行現有神經網路的能量成本已經完全在持續線上的電池供電裝置的預算範圍之內,並且隨著神經網路模型架構和硬體的改進,它可能會進一步提高。

深度學習讓感測器資料變得更有價值

在過去幾年中,我們可以使用神經網路從影象、音訊或加速儀中移除噪音訊號,並從中提取價值。由於我們可以在微控制器上執行這些網路,並且感測器本身使用的功率很小,因此可以解釋更多目前被我們忽略的感測器資料。例如,我希望幾乎所有的裝置都應該提供簡單的語音介面。通過學習一個小型詞彙表,或使用影象感測器進行眼球檢測,我們有可能控制環境中所有的東西,而無需通過按下按鈕或使用電話應用程式來控制它們。我希望能夠看到一款語音介面元件,價格低於五十美分,可以使用鈕釦電池供電一年,而且我相信使用現有的技術非常有可能實現這個目標。

舉個例子,我很想擁有一個使用微型電池供電的影象感測器,可以通過程式設計來查詢農作物害蟲或雜草等物體,並在發現時發出警報。這些感測器可以散佈在田間,並以更環保的方式為除草或噴灑殺蟲劑等活動提供參考。

另一個與我密切相關的行業案例:工廠操作員每天早上經過一排一排的機器,將手放在每臺機器上,傾聽,然後基於經驗和直覺告訴工頭哪臺機器需要進行離線維修。如果可以將電池供電的加速儀和麥克風固定在每臺可以學習常規操作併發出異常訊號的計算機上,就可以在問題發生之前發現它們。

我可以幻想更多的產品,但說實話,最讓我感到興奮的是,我不知道如何使用這些裝置,它們背後的技術是如此的引人注目,而且還會出現很多我們想象不到的新型應用程式。對我來說,感覺就像變成八十年代的孩子,那個時候第一臺家用電腦剛剛問世。我不知道它們會變成什麼樣子,當時大多數人用它們來玩遊戲或儲存地址簿,但是我知道,一個新世界即將出現。

英文原文:

Why the Future of Machine Learning is Tiny