蘋果引入LTPS技術(shù),顯示屏技術(shù)或迎來重大改革
通過深度學(xué)習(xí)技術(shù),物聯(lián)網(wǎng)(IoT)設(shè)備能夠得以解析非結(jié)構(gòu)化的多媒體數(shù)據(jù),智能地響應(yīng)用戶和環(huán)境事件,但是卻伴隨著苛刻的性能和功耗要求。本文作者探討了兩種方式以便將深度學(xué)習(xí)和低功耗的物聯(lián)網(wǎng)設(shè)備成功整合。
近年來,越來越多的物聯(lián)網(wǎng)產(chǎn)品出現(xiàn)在市場上,它們采集周圍的環(huán)境數(shù)據(jù),并使用傳統(tǒng)的機器學(xué)習(xí)技術(shù)理解這些數(shù)據(jù)。一個例子是Google的Nest恒溫器,采用結(jié)構(gòu)化的方式記錄溫度數(shù)據(jù),并通過算法來掌握用戶的溫度偏好和時間表。然而,其對于非結(jié)構(gòu)化的多媒體數(shù)據(jù),例如音頻信號和視覺圖像則顯得無能為力。
新興的物聯(lián)網(wǎng)設(shè)備采用了更加復(fù)雜的深度學(xué)習(xí)技術(shù),通過神經(jīng)網(wǎng)絡(luò)來探索其所處環(huán)境。例如,Amazon Echo可以理解人的語音指令,通過語音識別,將音頻信號轉(zhuǎn)換成單詞串,然后使用這些單詞來搜索相關(guān)信息。最近,微軟的Windows物聯(lián)網(wǎng)團隊發(fā)布了一個基于面部識別的安全系統(tǒng),利用到了深度學(xué)習(xí)技術(shù),當(dāng)識別到用戶面部時能夠自動解開門鎖。
物聯(lián)網(wǎng)設(shè)備上的深度學(xué)習(xí)應(yīng)用通常具有苛刻的實時性要求。例如,基于物體識別的安全攝像機為了能及時響應(yīng)房屋內(nèi)出現(xiàn)的陌生人,通常需要小于500毫秒的檢測延遲來捕獲和處理目標(biāo)事件。消費級的物聯(lián)網(wǎng)設(shè)備通常采用云服務(wù)來提供某種智能,然而其所依賴的優(yōu)質(zhì)互聯(lián)網(wǎng)連接,僅僅在部分范圍內(nèi)可用,并且往往需要較高的成本,這對設(shè)備能否滿足實時性要求提出了挑戰(zhàn)。與之相比,直接在物聯(lián)網(wǎng)設(shè)備上實現(xiàn)深度學(xué)習(xí)或許是一個更好的選擇,這樣就可以免受連接質(zhì)量的影響。
然而,直接在嵌入式設(shè)備上實現(xiàn)深度學(xué)習(xí)是困難的。事實上,低功耗是移動物聯(lián)網(wǎng)設(shè)備的主要特征,而這通常意味著計算能力受限,內(nèi)存容量較小。在軟件方面,為了減少內(nèi)存占用,應(yīng)用程序通常直接運行在裸機上,或者在包含極少量第三方庫的輕量級操作系統(tǒng)上。而與之相反,深度學(xué)習(xí)意味著高性能計算,并伴隨著高功耗。此外,現(xiàn)有的深度學(xué)習(xí)庫通常需要調(diào)用許多第三方庫,而這些庫很難遷移到物聯(lián)網(wǎng)設(shè)備。
在深度學(xué)習(xí)任務(wù)中,最廣泛使用的神經(jīng)網(wǎng)絡(luò)是卷積神經(jīng)網(wǎng)絡(luò)(CNNs),它能夠?qū)⒎墙Y(jié)構(gòu)化的圖像數(shù)據(jù)轉(zhuǎn)換成結(jié)構(gòu)化的對象標(biāo)簽數(shù)據(jù)。一般來說,CNNs的工作流程如下:首先,卷積層掃描輸入圖像以生成特征向量;第二步,激活層確定在圖像推理過程中哪些特征向量應(yīng)該被激活使用;第三步,使用池化層降低特征向量的大小;最后,使用全連接層將池化層的所有輸出和輸出層相連。
在本文中,我們將討論如何使用CNN推理機在物聯(lián)網(wǎng)設(shè)備上實現(xiàn)深度學(xué)習(xí)。
將服務(wù)遷移到云端
對于低功耗的物聯(lián)網(wǎng)設(shè)備,問題在于是否存在一個可靠的解決方案,能夠?qū)⑸疃葘W(xué)習(xí)部署在云端,同時滿足功耗和性能的要求。為了回答這個問題,我們在一塊Nvidia Jetson TX1設(shè)備上實現(xiàn)了基于CNN的物體推理,并將其性能、功耗與將這些服務(wù)遷移到云端后的情況進行對比。
為了確定將服務(wù)遷移到云端后,是否可以降低功耗并滿足對物體識別任務(wù)的實時性要求,我們將圖像發(fā)送到云端,然后等待云端將結(jié)果返回。研究表明,對于物體識別任務(wù),本地執(zhí)行的功耗為7 W,而遷移到云端后功耗降低為2W。這說明將服務(wù)遷移到云端確實是降低功耗的有效途徑。
然而,遷移到云端會導(dǎo)致至少2秒的延遲,甚至可能高達5秒,這不能滿足我們500ms的實時性要求。此外,延遲的劇烈抖動使得服務(wù)非常不可靠(作為對比,我們在美國和中國分別運行這些實驗進行觀察)。通過這些實驗我們得出結(jié)論,在當(dāng)前的網(wǎng)絡(luò)環(huán)境下,將實時性深度學(xué)習(xí)任務(wù)遷移到云端是一個尚未可行的解決方案。
移植深度學(xué)習(xí)平臺到嵌入式設(shè)備
相比遷移到云端的不切實際,一個選擇是將現(xiàn)有的深度學(xué)習(xí)平臺移植到物聯(lián)網(wǎng)設(shè)備。為此,我們選擇移植由Google開發(fā)并開源的深度學(xué)習(xí)平臺TesnsorFlow來建立具有物體推理能力的物聯(lián)網(wǎng)設(shè)備Zuluko——PercepTIn的裸機ARM片上系統(tǒng)。Zuluko由四個運行在1 GHz的ARM v7內(nèi)核和512 MB RAM組成,峰值功耗約為3W。根據(jù)我們的研究,在基于ARM-Linux的片上系統(tǒng)上,TensorFlow能夠提供最佳性能,這也是我們選擇它的原因。