機器學(xué)習(xí)處理器怎樣選擇合適的
并非所有機器學(xué)習(xí)模型都需要按幾個TOPS的順序進行處理。了解應(yīng)用程序的性能,延遲和準確性需求是選擇處理器進行機器學(xué)習(xí)的關(guān)鍵第一步。
機器學(xué)習(xí)已成為解決機器視覺和其他嵌入式計算問題的流行方法。雖然經(jīng)典機器學(xué)習(xí)算法需要人工干預(yù)來從數(shù)據(jù)中提取特征,但機器學(xué)習(xí)算法或網(wǎng)絡(luò)模型學(xué)習(xí)如何提取數(shù)據(jù)中的重要特征并對該數(shù)據(jù)進行智能預(yù)測。
在智能家用電器如智能烤箱中,機器學(xué)習(xí)可用于對烤箱內(nèi)的食物進行分類,并相應(yīng)地設(shè)定烤箱的烹飪溫度和時間。在工廠中,機器學(xué)習(xí)可用于檢測產(chǎn)品中的缺陷,或者可用于預(yù)測性維護,以幫助預(yù)測電機的剩余使用壽命或檢測電機操作中的異常。在車輛中,它可用于檢測道路上的汽車,行人,交通標志等。它也可以用于進行自然語言翻譯的設(shè)備。
機器學(xué)習(xí)有兩個主要部分:培訓(xùn)和推理。機器學(xué)習(xí)的訓(xùn)練部分是算法的學(xué)習(xí)階段。訓(xùn)練網(wǎng)絡(luò)模型的目的是使模型學(xué)習(xí)最佳可能的參數(shù)值,以可預(yù)測地解決給定問題。有兩種方法可以訓(xùn)練機器學(xué)習(xí)模型:監(jiān)督或無監(jiān)督。
在監(jiān)督訓(xùn)練方法中,模型學(xué)習(xí)基于若干教學(xué)輸,輸出對示例將輸入映射到輸出,用于訓(xùn)練算法的數(shù)據(jù)已經(jīng)用正確答案標記并且可能的輸出已知。它涉及標記的訓(xùn)練數(shù)據(jù)集,前向傳遞算法,誤差計算和后向傳遞算法。
前向傳遞算法涉及從輸入數(shù)據(jù)中提取特征和預(yù)測信息。在監(jiān)督訓(xùn)練方法中,將預(yù)測與實際信息進行比較,并計算誤差?;陬A(yù)測誤差結(jié)果,調(diào)整網(wǎng)絡(luò)參數(shù)以便在下一次迭代中做出更好的預(yù)測。
機器學(xué)習(xí)模型訓(xùn)練計算量很大;因此,這些模型使用功能強大的圖形處理單元(GPU)和現(xiàn)場可編程門陣列(FPGA)在臺式機或云端運行。
一旦模型被訓(xùn)練以預(yù)測信息,其參數(shù)值被凍結(jié)并且被部署到現(xiàn)場以“推斷”它接收的任何新數(shù)據(jù)的結(jié)果。這是機器學(xué)習(xí)的第二部分:推理。在推理階段,只有前向傳遞算法運行,提取重要特征和預(yù)測信息。因為不需要誤差計算,后向傳遞算法或多次迭代(因為不需要網(wǎng)絡(luò)參數(shù)調(diào)整),所以與訓(xùn)練相比,推理的計算強度要小得多。從而,與云中的運行推理相比,使用嵌入式處理器的邊緣機器學(xué)習(xí)推理變得非常流行,因為可預(yù)測性,隱私,網(wǎng)絡(luò)帶寬,延遲和功耗的固有優(yōu)勢。
在嵌入式系統(tǒng)中,推理可以在各種片上處理單元上運行,如中央處理單元(CPU),GPU,數(shù)字信號處理器,F(xiàn)PGA邏輯,專用加速器或這些選項的任意組合。機器學(xué)習(xí)推理功能通常報告為每秒兆(兆卡,千兆或萬億)操作(MOPS,GOPS或TOPS)。
選擇嵌入式處理器以在邊緣運行機器學(xué)習(xí)推理
如今有多種選擇,可能很難選擇合適的設(shè)備或設(shè)備組合來進行推理。GPU在神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練方面的成功可能導(dǎo)致人們誤以為GPU也是運行推理的最佳選擇。存在將給定設(shè)備的性能與可以執(zhí)行許多TOPS的GPU進行比較的趨勢。但是,TOPS可能不是應(yīng)該考慮的唯一參數(shù)。
首先,引用的TOPS數(shù)字是理論上的。對于許多設(shè)備,內(nèi)存訪問和數(shù)據(jù)總線基礎(chǔ)設(shè)施無法擴展到核心或子系統(tǒng)處理功能;因此,在系統(tǒng)上實現(xiàn)的實際吞吐量可以遠低于理論上引用的吞吐量。將理論上可實現(xiàn)的TOPS視為比較的唯一參數(shù)并不是一個好主意??蓪崿F(xiàn)的吞吐量(可低至理論計算性能的20%)是更相關(guān)的度量。某些設(shè)備可能在不同的網(wǎng)絡(luò)模型中表現(xiàn)不佳,而其他設(shè)備可能具有吞吐量作為分辨率,批量大小等的函數(shù)。批處理可能適用于云環(huán)境或培訓(xùn),但許多嵌入式應(yīng)用程序具有不允許的延遲限制批量輸入框架。比較TOPS時,
并非所有機器學(xué)習(xí)模型都需要按幾個TOPS的順序進行處理。許多應(yīng)用程序可以在MOPS或GOPS的性能預(yù)算內(nèi)解決。了解應(yīng)用程序的性能,延遲和準確性需求是關(guān)鍵的第一步。
用于基于視覺的對象分類任務(wù)的流行卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型,如GoogLeNet或InceptionNet,ResNet,ResNext和DenseNet,被設(shè)計用于桌面或云。在嵌入式處理器上原樣使用它們可能需要大量的GOPS / TOPS,這反過來會增加系統(tǒng)成本和功率要求。隨著時間的推移,機器學(xué)習(xí)網(wǎng)絡(luò)模型技術(shù)已發(fā)展為嵌入式處理器友好型。諸如高效網(wǎng)絡(luò)配置,修剪,稀疏性和定點量化等技術(shù)已經(jīng)證明可以顯著降低性能要求(數(shù)量級),對精度的影響可以忽略不計。
例如,基于CNN的對象分類任務(wù)在224 x 224像素大小的圖像上具有1,000個類以從ImageNet數(shù)據(jù)庫檢測,對于非嵌入友好網(wǎng)絡(luò)模型上的單個圖像可能花費大于1 GOPS。采用嵌入式處理器友好技術(shù)時,操作次數(shù)可降至《200 MOPS,精度降低最小。如果準確度是可接受的,那么使用嵌入式友好型網(wǎng)絡(luò)模型將需要6個GOPS來每秒對30個這樣的圖像進行分類,而不是+30 GOPS。在這種情況下,提供6個GOPS的設(shè)備就足夠了。除非你仔細選擇特定于應(yīng)用程序的嵌入式處理器,否則使用提供不必要的高性能的設(shè)備最終會增加系統(tǒng)成本和功耗。
其他需要考慮的因素包括系統(tǒng)集成,器件特性和器件的長期可用性。要降低總體成本,請尋找集成應(yīng)用程序所需外圍設(shè)備和接口的設(shè)備。例如,如果你的應(yīng)用程序是基于機器視覺的智能工廠的工業(yè)應(yīng)用程序,必須通過工業(yè)以太網(wǎng)協(xié)議或其他協(xié)議進行通信,則集成的片上系統(tǒng)可能是最有效的解決方案。TI Sitara AM57x處理器等器件,可根據(jù)特定應(yīng)用要求提供特定應(yīng)用的性能,集成必要的外設(shè)接口,支持所需的工業(yè)協(xié)議,滿足工業(yè)級半導(dǎo)體要求以及長期承諾支持,可能是更好的系統(tǒng)級選擇。
最后但同樣重要的是,還應(yīng)該考慮軟件開發(fā)成本。能夠提供成熟軟件開發(fā)套件以及良好工程支持的供應(yīng)商可以幫助降低風(fēng)險,降低開發(fā)成本并實現(xiàn)可以按時交付的更優(yōu)質(zhì)產(chǎn)品。
來源:朗銳智科