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