微軟雷德蒙研究院的研究員,從左至右:Ajay Manchepalli,Rob DeLine,Lisa Ong,Chuck Jacobs,Ofer Dekel,Saleema Amershi,Shuayb Zarar,Chris Lovett,Byron Changuion
編者按:在今年Build 2017大會上,微軟執行長薩提亞∙納德拉提出“我們正在從目前‘移動優先、雲優先’的世界轉移到由智慧雲和智慧邊緣組成的新世界中”,邊緣計算正變得越來越重要。來自美國雷德蒙和印度班加羅爾的研究團隊開源了一套嵌入式學習庫ELL,幫助開發者把深度神經網路部署到邊緣裝置上。
本文譯自AI’s big leap to tiny devices opens world of possibilities(有刪減),原文地址:https://blogs.microsoft.com/next/2017/06/29/ais-big-leap-tiny-devices-opens-world-possibilities/
有時,自家花園就是展示大膽甚至有望改變世界的技術的最佳場所。微軟研究院機器學習和優化研究組的負責人Ofer Dekel則是例證之一。
在Ofer Dekel家的花園裡,松鼠經常啃咬花苞,偷吃投喂器裡的鳥食,這使得他和家人無法欣賞到綻放的花朵和悅耳的鳥鳴。為了解決這個問題,Dekel訓練了一個計算機視覺模型來偵測松鼠的出沒,並將程式碼部署到Raspberry Pi 3(一種廉價且計算能力有限的單板計算機)上。該裝置時刻監測著Dekel的後院,一旦有松鼠光顧,就會觸發噴灌系統。“任何擁有Raspberry Pi的愛好者都應該可以實現類似的工作,”Dekel說:“但今天,他們中仍然很少有人可以做到。”
身為機器學習專家的Dekel正在努力解決這個問題。他領導著一支由30多名電腦科學家、軟體工程師和研究實習生組成的多學科融合團隊,成員分佈在美國雷德蒙和印度班加羅爾的微軟研究院中。目前,Dekel的團隊正在開發一類新的機器學習軟體和工具,將人工智慧嵌入到只有麵包屑大小的計算機處理器中。這款軟體的早期預覽版已可以通過GitHub下載:
https://github.com/Microsoft/ELL(點選【閱讀原文】下載)。
這個專案是行業技術變革的一部分,最近在美國西雅圖舉行的微軟開發者大會Build 2017上,微軟執行長薩提亞·納德拉就曾對這一新變革進行了闡述,他說:“我們正在從目前‘移動優先、雲優先’的世界轉移到由智慧雲和智慧邊緣組成的新世界中。”
智慧邊緣
在未來世界中,每個角落都將充斥著微型智慧裝置——嵌在我們的衣服中,遍佈在我們的住所和辦公室裡,部署在汽車發動機、電梯、手術室和石油鑽機等各種場合,執行異常監測和預防性維護等多種任務。創造智慧邊緣正是實現這一前景的前提之一。
目前,此類裝置主要用作感測器,收集資料併傳送給在雲端執行的機器學習模型。微軟雷德蒙研究院商務和技術運營總監Shabnam Erfani說:“所有這些處理都需要大量計算,海量儲存空間,但現在並不可能實現把所有需要的硬體都裝入低成本的嵌入式裝置中。”
她補充說,Dekel和他的同事正在試圖完成這個不可能的任務。“要大幅度縮減機器學習系統的大小並使之更加高效,以便在移動裝置上執行。”這些智慧裝置是物聯網(IoT)的組成部分,只不過它們在即使沒有網路連線的情況下也可以正常工作。
微軟印度研究院的研究員,從左前起:Manik Varma,Praneeth Netrapalli,Chirag Gupta,Prateek Jain,Yeshwanth Cherapanamjeri,Rahul Sharma,Nagarajan Natarajan,Vivek Gupta
微軟印度研究院資深研究員、該專案的共同負責人之一Manik Varma表示:“主流正規化認為這些裝置是非智慧的。它們只能感知周邊環境,並將感測器讀數傳輸到雲端,進行機器學習。然而這種模式無法解決我們認為有望改變世界的一些關鍵應用場景。”
將機器學習推廣到邊緣裝置,可減少頻寬限制,並消除對網路延遲(即資料傳輸到雲端進行處理並將結果返回裝置所需的時間)的擔憂。Varma指出,利用裝置自身進行機器學習,也可以降低因不斷與雲端溝通資料而帶來的電池消耗;而且將個人及其他敏感資訊保留在本地,也有助於保護隱私。
研究人員設想了許多可以通過這種方法創造的智慧裝置,例如用於對遠端農場進行精準灌溉的智慧土壤溼度感測器,以及可對即將發生的癲癇提出預警以便使用者及早抵達安全場所並呼叫護理人員的大腦植入體。
“如果你正行駛在沒有網路的高速公路上,你肯定希望植入體依然可以正常工作,”Varma說:“事實上,這才是你最需要幫助的時候。”
自上而下
研究團隊正在採用“自上而下”和“自下而上”兩種方法,將機器學習模型部署到資源受限的裝置上。
所謂“自上而下”的方法涉及到開發一系列演算法,壓縮原先針對雲端訓練的機器學習模型,使之能夠在Raspberry Pi 3和Raspberry Pi Zero等裝置上有效執行。
如今的許多機器學習模型都使用了深層神經網路。而Dekel和他的同事正使用各種技術來壓縮深層神經網路,使之適應小型裝置。例如,一種名為“權重量化”(weightquantization)的技術可以只用幾個bit的資訊量來表徵每個神經網路引數,而不是標準的32bit。
微軟主管研究員Ofer Dekel
Dekel說:“我們可以將更多引數壓縮到更小的空間內,而計算機也能用比以往快得多的速度來處理這些引數。”
為了說明差異,他播放了一個視訊,對比了最先進的計算機視覺神經網路在壓縮前和壓縮後分別在Raspberry Pi 3s上的表現:兩個模型的精準度相同,而壓縮版本的執行速度卻提高了20倍。
這些訓練演算法的早期預覽版現已可在GitHub上下載。研究團隊目前仍在開發一些工具,幫助愛好者、創客和其他非機器學習領域的專家順利完成資料採集和清洗、模型訓練以及在裝置上部署的端到端流程。
微軟雷德蒙研究院人機互動領域研究員Saleema Amershi表示:“向日常使用者提供強大的機器學習工具,才是AI的普及和全民化。即便我們掌握了將智慧功能移植到小型裝置上的技術,但如果只有機器學習專家才能夠使用它們,這又有什麼意義呢?”
目前,研究團隊正在探索的另一種壓縮技術是對神經網路進行修剪或稀疏化以消除冗餘,這將縮短計算時間,並能夠將其部署到小型計算裝置(如ARM Cortex M7)上。
微軟印度研究院的研究員,從左後起:Vivek Seshadri,Harsha Vardhan Simhadri,Suresh Parthasarathy,Priyan Vaithilingam
自下而上
上述壓縮方法只能讓現有的機器學習模型縮小至原來的十分之一到百分之一。但如果要將機器學習部署到Cortex M0s上(這是市面上最小的ARM處理器,物理尺寸與菜餚裡磨碎了的紅辣椒片相當,Dekel將其稱為“塵埃計算機”),這些模型需要縮小至原來的千分之一到萬分之一。
“目前還沒有辦法讓深層神經網路在僅消耗萬分之一資源的情況下仍然保持同樣的精準。”Dekel說:“為此,我們有一個長期計劃——另起爐灶,為這些資源受限的平臺開發量身定製的全新機器學習技術和工具。”
自下而上的方法是從頭開始的,團隊成員專注於構建一個整合了多種訓練演算法的資料庫,每種訓練演算法都經過了精細調校,可以在一系列專用場景下發揮最佳效能。例如,其中一類用於腦部植入應用,而另一類則用來監測噴氣發動機等裝置中的異常以及預測何時需要維護。
研究團隊所關注的最小裝置是Arduino Uno,這是一種資源嚴重受限的單板計算機,RAM只有2K。研究人員用演算法訓練機器學習模型來執行解答是非題和多選題、預測可能目標的價值以及對專案進行排序等任務。
這些模型靈感來自基於雲端的系統,但研究人員正在對它們進行重新設計,旨在縮減需要學習的資料量、降低計算複雜性和限制記憶體需求,同時保持準確性和執行速度。
Varma解釋說:“最終,我們的模型會幾乎與基於雲端的神經網路一樣精準,而規模卻非常小,可以將其部署到只有幾K的RAM系統上。”
能夠展示此項研究潛力的原型裝置之一是為視力受損的Varma本人量身定製的智慧手杖,一旦使用者跌倒,它就會發出求援呼叫。另一項應用則是一種智慧手套,它可以翻譯美國手語,並通過揚聲器讀出手語所表達的詞彙。
Varma說:“我喜歡幫助人們克服障礙,賦予他們生產力,幫忙他們更好地融入社會。”
想象未來
微軟研究院旨在研究從現在開始十年之內有望普及的技術,而將AI嵌入微型裝置的研究也是其中之一。在Dekel及其同事們看來,這將是一個充滿了智慧和安全裝置的世界,而且任何有創意並想要付諸實施的人都能夠獲得相應的工具。
目前,該研究專案已經開始為創客社群——那些遇到問題(就像Dekel碰到的松鼠問題一樣)並希望通過技術解決問題的人——提供服務。其中的創客是一些各領域的專家,例如一名游泳選手希望能訓練出(智慧)健身手環,用來計算圈數並能夠區分自由泳、蛙泳和蝶泳等不同泳姿。
Varma還站在整個行業的高度上為這些創造者設想了一個角色:開發異常監測和維護預警的智慧安全裝置。他說:“等出了故障再補救,其成本要比在出故障之前就找出問題要高得多。”
Amershi指出,如果單純依靠少數持有人工智慧博士學位的電腦科學家們來製造這些裝置,那麼這些裝置中絕大部分都會化為泡影。她正在開發一些介面和其他工具,以減少訓練的複雜性和單調性,並將機器學習模型部署到邊緣裝置上,讓各種型別的創客都能夠提高生產力。
她說:“機器學習不是一蹴而就的,而是一門藝術。要花一些功夫、費一些周折,引導機器學習模型按照你的意願去完成工作。”