Azeem請我在CogX上做一次演講,并且希望我集中討論我希望觀眾領悟的一個點。幾年前我的工作的重點就是讓人們相信深度學習是一次真正的革命,而不是一時的熱潮,但是不斷涌現的諸多產品足以回答這個問題了。
在很多人之前我就知道這是真的,這并不是因為我是具有深度洞察力的預言者,而是由于我有機會花費大量時間親自動手實驗該技術。
我對深度學習的價值充滿信心,因為我親眼目睹了它在各種應用程序中發揮的效果,而且我也明白將該技術應用到更廣泛領域的唯一障礙就是從研究到部署所需要的時間。
在這里我想討論一下另一個我可以肯定的趨勢,而且這種趨勢可以帶來同等的影響力,只不過不為人所知。我堅信機器學習可以在微型低功耗芯片上運行,并且這種結合可以解決大量目前我們無法解決的問題。這便是我將要在CogX上談論的內容,在本文中我將詳細解釋為何我會如此確信。
由于市場非常分散,所以我們很難拿到準確的數字,但是根據最可信的預估,今年將有超過400億個微控制器售出,考慮到使用它們的產品通常壽命很長,可能會有數千億個微型控制器在為人民服務。
微型控制器(或稱MCU)是包含一個可能只有幾千字節內存的小型CPU封裝,可以嵌入消費者、醫療、汽車和工業設備中。它們的設計目的是使用極少的能量,且非常便宜,可以嵌入所有出售產品中,預計今年的平均價格將低于50美分。
沒人注意到這些微型控制器,因為它們常常用于替代汽車、洗碗機或遙控器內舊式電子或機械系統的功能。控制這些設備的邏輯幾乎與模擬電路和繼電器所用的一樣,除了可以做一些調整,例如可以編程的遠程控制按鈕,或根據降雨量調整擋風玻璃雨刷的速度等。
對于制造商來說最大的好處是,標準控制器可以使用軟件編程,省卻了為每一項任務定制電路的繁瑣,因此可以讓制造過程更加便宜,更加容易。
有限的能量
所有需要主電源的設備都面臨著許多困難。這些設備只能用在有布線的地方,即便有電線,也有可能因為實際原因而很難插入新設備,例如在工廠地板或在手術室等地方。
如果要將某個東西放到房間頂部的角落,那么需要拉電線,或使用以太網供電等代替方案。電子設備需要將主電源的電壓轉換成各種電路需要的電壓,這種轉換很昂貴,而且浪費能量。即便是電話或筆記本電腦等便攜式設備也需要頻繁的充電。
智能產品最大的優勢在于可以隨時隨地部署,且不需要充電或換電池等維護工作。為了做到這一點最大的困難是大多數電子系統的能耗。根據智能手機能量耗費的數據,一般組件所需要的能量大約為:
顯示屏可能需要400毫瓦;
使用中的手機無線電接收裝置可能需要800毫瓦;
藍牙可能需要100毫瓦;
加速度計是21毫瓦;
陀螺儀是130毫瓦;
導航儀是176毫瓦。
微型控制器本身可能僅需要一毫瓦或者更少的能量,但是外圍設備卻需要大量能量。一個紐扣電池可以提供2500焦耳的能量,所以即便是能耗為一毫瓦的東西也只能維持大約一個月。
當然目前大多數的產品周期性暫停或休眠的方式來續航,但即便這樣能量消耗也很緊張。CPU和傳感器基本不消耗電量,但信號接收和顯示屏需要很多能量。
從這些數字中我們可以看出,處理器和傳感器可以將能耗降到毫瓦的范圍(例如高通的名為“Glance”的視覺芯片、可以收集能量的感光元件,以及僅消耗幾百微瓦能量的麥克風等),但是顯示屏,尤其是無線電接收裝置,即便使用低能耗的wifi和僅需幾十毫瓦的藍牙,其消耗的能量也非常高。
似乎只要是與傳輸數據相關,其物理過程就需要很多能量。似乎有個規則說,操作需要的能量與比特傳送的距離成正比。
CPU和傳感器的傳輸距離只有幾微米,所以它們是低能耗,無線電的傳輸距離長達幾米甚至更遠,所以所需能量也多。我覺得,即便整體科技發展,這種關系也基本無法改變。
事實上,我看到很多可以降低計算電量消耗的機遇,因此我認為計算和無線電所需能耗的差距會加大。
傳感器捕獲了太多用不到的數據
幾年以前,我曾跟一些從事微型衛星捕捉影像的工程師進行過交談。他們的問題是他們基本上只是用手機相機,雖然可以拍攝高清視頻,但是他們的衛星上只有很小的內存來保存這些視頻,且每幾個小時只有有限的帶寬將視頻下載到地球上的基站。
我意識到我們在所有部署了傳感器的地方都面臨著相同的難題。即便是家用相機也受限于wifi和寬帶網絡的帶寬。
我常說的一個例子是,我有一個朋友,12月份他家網絡的使用會比一年中其他月份都高出很多,最后他找到了原因,因為圣誕節閃爍的彩燈導致視頻壓縮率急劇降低,因為視頻的每一幀都不一樣!
還有更多諸如此類的例子,所有我們可穿戴的設備和手機上的加速度計都只用于探測可能喚醒設備的事件,或者只是當作基本的計步器,而我們從沒有嘗試過用它們檢測更復雜的活動。
對機器學習的意義
如果你同意上述所有觀點,那么很顯然大量未開發的市場正等著我們用正確的技術去解鎖。我們需要能在便宜的微型控制器上工作的東西,它能耗非常小,依賴于計算而非無線電,且可以將我們浪費掉的傳感器數據轉換成有用的東西。這就是機器學習尤其是深度學習的發展空間。
深度學習是計算密集型,且可以在已有的微型控制器上運行,我喜歡從事深度學習的原因之一是深度學習的實現幾乎全是計算密集型的。
這一點非常重要,因為幾乎所有我參與過的應用程序都受到隨機訪問大量內存時的速度的限制。相反,神經網絡的大部分時間都用于大型矩陣的乘法運算,其中大量的數字在不同的組合中反復使用。
這意味著CPU將大部分的時間耗費在計算兩個緩存數字的乘法,而從內存讀取新值的時間很少。
這點很重要,因為從DRAM(動態隨機存取存儲器)中取值消耗的能量往往是數學運算的一千倍。這是另一個距離與能量關系的例子,因為DRAM的物理距離要比注冊表遠。
較低的內存需求(僅需幾十或幾百個千字節)還意味著我們可以使用低能耗的SRAM(靜態隨機存取存儲器)或閃存來存儲數據。這有利于深度學習應用程序適應微型控制器,特別是在進行8比特運算(非浮點運算)時,因為微型控制器通常支持的類似于數字信號處理的指令很適合這種運算。
這個想法不是新出現的,蘋果和Google在這種芯片上運行不間斷的語音識別網絡,但是只有為數不多的幾個機器學習或嵌入式的人員意識到機器學習可以很好地與微型控制器相結合。
深度學習可以實現高效節能
我花了很長時間思考每個操作所需的皮焦(即10-12焦耳)數。這個指標可以用以衡量CPU上的一條數學運算操作所消耗的能量,它很實用,因為如果我知道神經網絡一次可以運行多少個操作的話,那么我可以粗略預估它將消耗多少能量。
例如,MobileNetV2圖像分類網絡在最低配置下,可以運行2200萬個操作(每個乘法加法組合是兩個操作)。如果我知道某個系統每執行一個操作需要5皮焦,那么它需要花費110微焦的能量(5皮焦 x 2200萬)。
如果我們每秒鐘分析一幀,那么能耗只有110微瓦,一個紐扣電池可以維持將近一年。這些數字利用目前的數字信號處理能力完全能夠做到,而且很可能節能還將進一步發展。
這意味著對于使用電池的不間斷設備的電量來說,在當前硬件上運行已有神經網絡的能耗已經很好,而且隨著神經網絡模型架構和硬件的改善,能耗會進一步降低。
深度學習可以合理利用感應傳感器的數據
最近這幾年,我們忽然可以利用神經網絡從充滿噪聲的圖片、音頻或加速度計的信號中提取出有意義的數據。由于我們可以在微型控制器上運行這些神經網絡,而傳感器本身所需的能耗很少,所以我們可以從目前被忽略的傳感器數據中解讀出更多信息。
例如,我希望每個設備都有簡單的語音界面。通過掌握少量的詞匯,并利用圖像傳感器做視線探測,我們無需伸手按下按鈕或使用手機上的應用,就應該可以控制周圍環境中的一切。
我渴望有一種語音界面組件,它的價格低于50美分,并可以在一個紐扣電池上運行一年,而且我相信以我們現在技術力完全可以實現。
再舉一個例子,我希望有一種微型的用電池的圖像傳感器,我可以編程讓它幫忙照看農作物,一旦發現害蟲或雜草就發出警告。這些傳感器可以散布到田地中,指導我們用更加環保和友好的方式處理雜草和殺蟲。
有一個工業上的例子讓我印象深刻,有一個叫做“漢斯”的工廠工人,他是長期的工程師,每天早上他都在一排排的機器旁忙碌,將一只手放在機器上,傾聽,然后根據經驗和直覺告訴工頭哪臺機器需要暫停維修。
每個工廠都有一個這樣的人,但是很多人馬上就要面臨退休了。如果可以將一個使用電池的加速器和話筒放在每臺機器上(“機器漢斯”),用于學習正常的操作和信號,這樣就可以在異常情況發生之前找到問題。
我可以想象出一百個其他的產品,但是坦白說我最感興趣的是,我想象不出應該如何使用這些新的設備,因為這些產品背后的技術如此讓人嘆為觀止,所以人們會創建這樣的產品,并會涌現我無法想象的全新的應用程序。
對于我來說,這種感覺有點像一個18歲的孩子擁有第一臺計算機。我不知道情況會變成怎樣,目前大多數的人僅用機器學習玩游戲或存地址薄,但是我知道很許許多多可能的新世界將會出現。
總結
與發送文檔相比,我們更傾向于面對面會議的唯一理由是,信息背后的情緒也可以得到溝通。我希望與CogX的觀眾分享的是,我很感興趣,也很確信在微型設備上運用機器學習的未來,雖然一篇博文并不能起到太大作用,但是我希望我介紹了一些有用的觀點。
我并不清楚未來將會怎樣,但是我知道微型、廉價、使用電池的芯片上的機器學習即將到來,它可以為偉大的新應用程序打開大門!
作者:Pete Warden,曾擔任Jetpac(該公司被Google收購)的CTO,現在Google的TensorFlow團隊擔任深度學習的工作。主要著作有The Public Data Handbook和The Big Data Glossary(O'Reilly出版),創建了OpenHeatMap、the Data Science Toolkit,以及其他開源項目。
評論
查看更多