在這一進程中也有一些困難:
1.隱私和安全問題:對于始終在線的、感知的設(shè)備,人們擔(dān)心個人數(shù)據(jù)在上傳期間或在數(shù)據(jù)中心的存儲期間被濫用。
2.不必要的功耗:如果每個數(shù)據(jù)位都被云計算占用,那么它就會消耗來自硬件、無線電、傳輸和云計算的能量。
3.小批量推理的延遲:如果數(shù)據(jù)來自邊緣,則從基于云的系統(tǒng)獲得響應(yīng)可能需要一秒或更長的時間。對于人類的感官來說,任何超過100毫秒的延遲都是顯而易見的。
4.數(shù)據(jù)經(jīng)濟:傳感器無處不在,而且它們非常便宜;然而,他們產(chǎn)生了大量的數(shù)據(jù)。將所有數(shù)據(jù)上傳到云端并進行處理似乎毫無經(jīng)濟可言。
通過使用本地處理引擎來解決這些挑戰(zhàn),執(zhí)行推理操作的神經(jīng)網(wǎng)絡(luò)模型,首先要針對所需用例使用給定的數(shù)據(jù)集進行培訓(xùn)。通常,這需要高計算資源和浮點算術(shù)運算。因此,機器學(xué)習(xí)解決方案的訓(xùn)練部分仍然需要在公共或私有云(或本地GPU、CPU、FPGA場)上使用數(shù)據(jù)集完成,以生成最優(yōu)的神經(jīng)網(wǎng)絡(luò)模型。一旦神經(jīng)網(wǎng)絡(luò)模型準(zhǔn)備就緒,神經(jīng)網(wǎng)絡(luò)模型就不需要反向傳播進行推理操作,因此該模型可以進一步針對具有小型計算引擎的本地硬件進行優(yōu)化。一個推理引擎通常需要大量的多重累加(MAC)單元,然后是一個激活層,如整流線性單元(ReLU)、sigmoid或tanh,這取決于神經(jīng)網(wǎng)絡(luò)模型的復(fù)雜性和層之間的池化層。
大多數(shù)神經(jīng)網(wǎng)絡(luò)模型需要大量的MAC操作。例如,即使一個相對較小的“1.0 MobileNet-224”模型也有420萬個參數(shù)(權(quán)重),需要5.69億個MAC操作來執(zhí)行推斷。由于大多數(shù)模型由MAC操作主導(dǎo),這里的重點將放在機器學(xué)習(xí)計算的這一部分,并探索創(chuàng)建更好的解決方案的機會。圖2顯示了簡單的、完全連通的兩層網(wǎng)絡(luò)。