0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是機器學(xué)習(xí)

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-07-10 10:04 ? 次閱讀

摘要

本系列文章由三部分組成,主要探討卷積神經(jīng)網(wǎng)絡(luò)(CNN)的特性和應(yīng)用。CNN主要用于模式識別和對象分類。作為系列文章的第三部分,本文重點解釋如何使用硬件轉(zhuǎn)換卷積神經(jīng)網(wǎng)絡(luò)(CNN),并特別介紹使用帶CNN硬件加速器的人工智能(AI)微控制器物聯(lián)網(wǎng)(IoT)邊緣實現(xiàn)人工智能應(yīng)用所帶來的好處。系列文章的前兩篇文章為《卷積神經(jīng)網(wǎng)絡(luò)簡介:什么是機器學(xué)習(xí)?——第一部分》和《訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò):什么是機器學(xué)習(xí)?——第二部分》。

簡介

AI應(yīng)用通常需要消耗大量能源,并以服務(wù)器農(nóng)場或昂貴的現(xiàn)場可編程門陣列(FPGA)為載體。AI應(yīng)用的挑戰(zhàn)在于提高計算能力的同時保持較低的功耗和成本。當(dāng)前,強大的智能邊緣計算正在使AI應(yīng)用發(fā)生巨大轉(zhuǎn)變。與傳統(tǒng)的基于固件的AI計算相比,以基于硬件的卷積神經(jīng)網(wǎng)絡(luò)加速器為載體的智能邊緣AI計算具備驚人的速度和強大的算力,開創(chuàng)了計算性能的新時代。這是因為智能邊緣計算能夠讓傳感器節(jié)點在本地自行決策而不受5GWi-Fi網(wǎng)絡(luò)數(shù)據(jù)傳輸速率的限制,為實現(xiàn)之前難以落地的新興技術(shù)和應(yīng)用場景提供了助力。例如,在偏遠地區(qū),傳感器級別的煙霧/火災(zāi)探測或環(huán)境數(shù)據(jù)分析已成為現(xiàn)實。這些應(yīng)用支持電池供電,能夠工作很多年的時間。本文通過探討如何采用帶專用CNN加速器的AI微控制器實現(xiàn)CNN的硬件轉(zhuǎn)換來說明如何實現(xiàn)這些功能。

采用超低功耗卷積神經(jīng)網(wǎng)絡(luò)加速器的人工智能微控制器

MAX78000是一款有超低功耗CNN加速器的AI微控制器片上系統(tǒng), 能在資源受限的邊緣設(shè)備或物聯(lián)網(wǎng)應(yīng)用中實現(xiàn)超低功耗的神經(jīng)網(wǎng)絡(luò)運算。其應(yīng)用場景包括目標(biāo)檢測和分類、音頻處理、聲音分類、噪聲消除、面部識別、基于心率等健康體征分析的時間序列數(shù)據(jù)處理、多傳感器分析以及預(yù)測性維護。

圖1為MAX78000的框圖,其內(nèi)核為帶浮點運算單元的Arm? Cortex?-M4F內(nèi)核,工作頻率高達100 MHz。為了給應(yīng)用提供足夠的存儲資源,MAX78000還配備了512 kB的閃存和128 kB的SRAM。該器件提供多個外部接口,例如I2C、SPI、UART,以及用于音頻的I2S。此外,器件還集成了60 MHz的RISC-V內(nèi)核,可以作為一個智能的直接存儲器訪問(DMA)引擎從/向各個外圍模塊和存儲(包括閃存和SRAM)復(fù)制/粘貼數(shù)據(jù)。由于RISC-V內(nèi)核可以對AI加速器所需的

1686627150820832.jpg

圖1.MAX78000的結(jié)構(gòu)框圖

傳感器數(shù)據(jù)進行預(yù)處理,因而Arm內(nèi)核在此期間可以處于深度睡眠模式。推理結(jié)果也可以通過中斷觸發(fā)Arm內(nèi)核在主應(yīng)用程序中執(zhí)行操作,通過無線傳輸傳感器數(shù)據(jù)或向用戶發(fā)送通知。

具備用于執(zhí)行卷積神經(jīng)網(wǎng)絡(luò)推理的專用硬件加速器單元是MAX7800x系列微控制器的一個顯著特征,這使其有別于標(biāo)準(zhǔn)的微控制器架構(gòu)。該CNN硬件加速器可以支持完整的CNN模型架構(gòu)以及所有必需的參數(shù)(權(quán)重和偏置),配備了64個并行處理器和一個集成存儲器。集成存儲器中的442 kB用于存儲參數(shù),896 kB用于存儲輸入數(shù)據(jù)。不僅存儲在SRAM中的模型和參數(shù)可以通過固件進行調(diào)整,網(wǎng)絡(luò)也可以實時地通過固件進行調(diào)整。器件支持的模型權(quán)重為1位、2位、4位或8位,存儲器支持容納多達350萬個參數(shù)。加速器的存儲功能使得微控制器無需在連續(xù)的數(shù)學(xué)運算中每次都要通過總線獲取相關(guān)參數(shù)——這樣的方式通常伴有高延遲和高功耗,代價高昂。CNN加速器可以支持32層或64層的網(wǎng)絡(luò),具體層數(shù)取決于池化函數(shù)。每層的可編程圖像輸入/輸出大小最多為1024 × 1024像素。

CNN硬件轉(zhuǎn)換:功耗和推理速度比較

CNN推理是一項包含大型矩陣線性方程運算的復(fù)雜計算任務(wù)。Arm Cortex-M4F微控制器的強大能力可以使得CNN推理在嵌入式系統(tǒng)的固件上運行。但這種方式也有一些缺點:在微控制器上運行基于固件的CNN推理時,計算命令和相關(guān)參數(shù)都需要先從存儲器中檢索再被寫回中間結(jié)果,這會造成大量功耗和時延。

表1對三種不同解決方案的CNN推理速度和功耗進行了比較。所用的模型基于手寫數(shù)字識別訓(xùn)練集MNIST開發(fā),可對視覺輸入數(shù)據(jù)中的數(shù)字和字母進行分類以獲得準(zhǔn)確的輸出結(jié)果。為確定功耗和速度的差異,本文對三種解決方案所需的推理時間進行了測量。

1.手寫數(shù)字識別的CNN推理時間和推理功耗,基于MNIST數(shù)據(jù)集

方案 推理速度
(ms)
每次推理功耗(μWs)
(1) MAX32630,MNIST網(wǎng)絡(luò)部署在固件中 574 22887
(2) MAX78000,MNIST網(wǎng)絡(luò)部署在硬件中 1.42 20.7
(3) MAX78000,MNIST網(wǎng)絡(luò)部署在硬件中且優(yōu)化了低功耗性能 0.36 1.1

方案一使用集成Arm Cortex-M4F處理器的MAX32630進行推理,其工作頻率為96 MHz。方案二使用MAX78000的CNN硬件加速器進行推理,其推理速度(即數(shù)據(jù)輸入與結(jié)果輸出之間的時間)比方案一加快了400倍,每次推理所需的能量也僅為方案一的1/1100。方案三對MNIST網(wǎng)絡(luò)進行了低功耗優(yōu)化,從而最大限度地降低了每次推理的功耗。雖然方案三推理結(jié)果的準(zhǔn)確性從99.6%下降到了95.6%,但其速度快了很多,每次推理只需0.36 ms,推理功耗降也低至僅1.1 μW。兩節(jié)AA堿性電池(總共6 Wh能量)可以支持應(yīng)用進行500萬次的推理(忽略系統(tǒng)其它部分的功耗)。

這些數(shù)據(jù)說明了硬件加速器的強大計算能力可以大大助益無法利用或連接到連續(xù)電源的應(yīng)用場景。MAX78000就是這樣一款產(chǎn)品,它支持邊緣AI處理,無需大量功耗和網(wǎng)絡(luò)連接,也無需冗長的推理時間。

MAX78000 AI微控制器的使用示例

MAX78000支持多種應(yīng)用,下面本文圍繞部分用例展開討論。其中一個用例是設(shè)計一個電池供電的攝像頭,需要能檢測到視野中是否有貓出現(xiàn),并能夠通過數(shù)字輸出打開貓門允許貓進入房屋。

圖2為該設(shè)計的示例框圖。在本設(shè)計中,RISC-V內(nèi)核會定期開啟圖像傳感器并將圖像數(shù)據(jù)加載到MAX78000的CNN加速器中。如果系統(tǒng)判斷貓出現(xiàn)的概率高于預(yù)設(shè)的閾值,則打開貓門然后回到待機模式。

1686627144706509.jpg

圖2.智能寵物門框圖

開發(fā)環(huán)境和評估套件

邊緣人工智能應(yīng)用的開發(fā)過程可分為以下幾個階段:

第一階段:AI——網(wǎng)絡(luò)的定義、訓(xùn)練和量化

第二階段:Arm固件——將第一階段生成的網(wǎng)絡(luò)和參數(shù)導(dǎo)入C/C++應(yīng)用程序,創(chuàng)建并測試固件

開發(fā)過程的第一階段涉及建模、訓(xùn)練和評估AI模型等環(huán)節(jié)。此階段開發(fā)人員可以利用開源工具,例如PyTorch 和TensorFlow。MAX78000的GitHub網(wǎng)頁也提供全面的資源幫助用戶在考慮其硬件規(guī)格的同時使用PyTorch構(gòu)建和訓(xùn)練AI網(wǎng)絡(luò)。網(wǎng)頁也提供一些簡單的AI網(wǎng)絡(luò)和應(yīng)用,例如面部識別(Face ID),供用戶參考。

圖3顯示了采用PyTorch進行AI開發(fā)的典型過程。首先是對網(wǎng)絡(luò)進行建模。必須注意的是,MAX7800x微控制器并非都配置了支持所有PyTorch數(shù)據(jù)操作的相關(guān)硬件。因此,必須首先將ADI公司提供的ai8x.py文件包含在項目中,該文件包含MAX78000所需的PyTorch模塊和運算符?;诖丝梢赃M入下一步驟構(gòu)建網(wǎng)絡(luò),使用訓(xùn)練數(shù)據(jù)對網(wǎng)絡(luò)進行訓(xùn)練、評估和量化。這一步驟會生成一個檢查點文件,其中包含用于最終綜合過程的輸入數(shù)據(jù)。最后一步是將網(wǎng)絡(luò)及其參數(shù)轉(zhuǎn)換為適合CNN硬件加速器的形式。值得注意的是,雖然任何PC(筆記本、服務(wù)器等)都可用于訓(xùn)練網(wǎng)絡(luò),但如果沒有CUDA顯卡,訓(xùn)練網(wǎng)絡(luò)可能會花費很長的時間——即使對于小型網(wǎng)絡(luò)來說也有可能需要幾天甚至幾周的時間。

開發(fā)過程的第二階段是通過將數(shù)據(jù)寫入CNN加速器并讀取結(jié)果的機制來創(chuàng)建應(yīng)用固件。

1686627138993237.jpg

圖3.AI開發(fā)過程

第一階段創(chuàng)建的文件通過#include指令集成到C/C++項目中。微控制器的開發(fā)環(huán)境可使用Eclipse IDE和GNU工具鏈等開源工具。ADI公司提供的軟件開發(fā)套件(Maxim Micros SDK (Windows))也已經(jīng)包含了所有開發(fā)必需的組件和配置,包括外設(shè)驅(qū)動以及示例說明,幫助用戶簡化應(yīng)用開發(fā)過程。

成功通過編譯和鏈接的項目可以在目標(biāo)硬件上進行評估。ADI開發(fā)了兩種不同的硬件平臺可供選用:圖4為MAX78000EVKIT,圖5為MAX78000FTHR,一個稍小的評估板。每個評估板都配有一個VGA攝像頭和一個麥克風(fēng)。

1686627130263203.jpg

圖4.MAX78000評估套件

1686627125708005.jpg

圖5.MAX78000FTHR評估套件

結(jié)論

以前,AI應(yīng)用必須以昂貴的服務(wù)器農(nóng)場或FPGA為載體,并消耗大量能源?,F(xiàn)在,借助帶專用CNN加速器的MAX78000系列微控制器,AI應(yīng)用依靠單組電池供電就可以長時間運行。MAX78000系列微控制器在能效和功耗方面的性能突破大大降低了邊緣AI的實現(xiàn)難度,使得新型邊緣AI應(yīng)用的驚人潛力得以釋放。欲了解更多信息,請訪問超低功耗人工智能(AI) MCU

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ADI
    ADI
    +關(guān)注

    關(guān)注

    146

    文章

    45826

    瀏覽量

    250485
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4773

    瀏覽量

    100861
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8423

    瀏覽量

    132744
收藏 人收藏

    評論

    相關(guān)推薦

    【下載】《機器學(xué)習(xí)》+《機器學(xué)習(xí)實戰(zhàn)》

    `1.機器學(xué)習(xí)簡介:機器學(xué)習(xí)是計算機科學(xué)與人工智能的重要分支領(lǐng)域. 本書作為該領(lǐng)域的入門教材,在內(nèi)容上盡可能涵蓋機器
    發(fā)表于 06-01 15:49

    機器學(xué)習(xí)的未來

    機器學(xué)習(xí)的未來在工業(yè)領(lǐng)域采用機器學(xué)習(xí)機器學(xué)習(xí)和大數(shù)據(jù)
    發(fā)表于 01-27 06:02

    介紹機器學(xué)習(xí)的基礎(chǔ)內(nèi)容

    系列文章目錄提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加例如:第一章 Python 機器學(xué)習(xí)入門之pandas的使用提示:寫完文章后,目錄可以自動生成,如何生成可參考右邊的幫助
    發(fā)表于 08-13 07:39

    機器學(xué)習(xí)的基礎(chǔ)內(nèi)容

    系列文章目錄提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加例如:第一章 Python 機器學(xué)習(xí)入門之pandas的使用提示:寫完文章后,目錄可以自動生成,如何生成可參考右邊的幫助
    發(fā)表于 02-09 06:47

    什么是機器學(xué)習(xí)? 機器學(xué)習(xí)基礎(chǔ)入門

    本文旨在為硬件和嵌入式工程師提供機器學(xué)習(xí)(ML)的背景,它是什么,它是如何工作的,它為什么重要,以及 TinyML 是如何適應(yīng)的機器學(xué)習(xí)是一個始終存在并經(jīng)常被誤解的技術(shù)概念。數(shù)十年來,
    發(fā)表于 06-21 11:06

    什么是機器學(xué)習(xí)?機器學(xué)習(xí)能解決什么問題?(案例分析)

    隨著大數(shù)據(jù)時代的到來,機器學(xué)習(xí)成為解決問題的一種重要且關(guān)鍵的工具。不管是工業(yè)界還是學(xué)術(shù)界,機器學(xué)習(xí)都是一個炙手可熱的方向,但是學(xué)術(shù)界和工 業(yè)界對機器
    發(fā)表于 05-18 13:13 ?1.6w次閱讀
    什么是<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>?<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>能解決什么問題?(案例分析)

    如何開始接觸機器學(xué)習(xí)_機器學(xué)習(xí)入門方法盤點

    機器學(xué)習(xí)入門方法 一說到機器學(xué)習(xí),我被問得最多的問題是:給那些開始學(xué)習(xí)機器學(xué)習(xí)的人的最好的建議是
    的頭像 發(fā)表于 05-20 07:10 ?4081次閱讀
    如何開始接觸<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>_<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>入門方法盤點

    機器學(xué)習(xí)是什么,機器學(xué)習(xí)的定義

    機器學(xué)習(xí)是一門能夠讓編程計算機從數(shù)據(jù)中學(xué)習(xí)的計算機科學(xué)(和藝術(shù))。
    的頭像 發(fā)表于 02-03 09:18 ?8371次閱讀

    機器學(xué)習(xí)算法匯總 機器學(xué)習(xí)算法分類 機器學(xué)習(xí)算法模型

    機器學(xué)習(xí)算法匯總 機器學(xué)習(xí)算法分類 機器學(xué)習(xí)算法模型 機器
    的頭像 發(fā)表于 08-17 16:11 ?1119次閱讀

    機器學(xué)習(xí)算法總結(jié) 機器學(xué)習(xí)算法是什么 機器學(xué)習(xí)算法優(yōu)缺點

    機器學(xué)習(xí)算法總結(jié) 機器學(xué)習(xí)算法是什么?機器學(xué)習(xí)算法優(yōu)缺點?
    的頭像 發(fā)表于 08-17 16:11 ?1942次閱讀

    機器學(xué)習(xí)算法入門 機器學(xué)習(xí)算法介紹 機器學(xué)習(xí)算法對比

    機器學(xué)習(xí)算法入門 機器學(xué)習(xí)算法介紹 機器學(xué)習(xí)算法對比 機器
    的頭像 發(fā)表于 08-17 16:27 ?966次閱讀

    機器學(xué)習(xí)與數(shù)據(jù)挖掘的區(qū)別 機器學(xué)習(xí)與數(shù)據(jù)挖掘的關(guān)系

    機器學(xué)習(xí)與數(shù)據(jù)挖掘的區(qū)別 , 機器學(xué)習(xí)與數(shù)據(jù)挖掘的關(guān)系 機器學(xué)習(xí)與數(shù)據(jù)挖掘是如今熱門的領(lǐng)域。隨著
    的頭像 發(fā)表于 08-17 16:30 ?2090次閱讀

    機器學(xué)習(xí)theta是什么?機器學(xué)習(xí)tpe是什么?

    機器學(xué)習(xí)theta是什么?機器學(xué)習(xí)tpe是什么? 機器學(xué)習(xí)是近年來蓬勃發(fā)展的一個領(lǐng)域,其相關(guān)技術(shù)
    的頭像 發(fā)表于 08-17 16:30 ?1985次閱讀

    機器學(xué)習(xí)有哪些算法?機器學(xué)習(xí)分類算法有哪些?機器學(xué)習(xí)預(yù)判有哪些算法?

    機器學(xué)習(xí)有哪些算法?機器學(xué)習(xí)分類算法有哪些?機器學(xué)習(xí)預(yù)判有哪些算法?
    的頭像 發(fā)表于 08-17 16:30 ?2007次閱讀

    機器學(xué)習(xí)發(fā)展歷程

    機器學(xué)習(xí)發(fā)展歷程:機器學(xué)習(xí)發(fā)展現(xiàn)狀、機器學(xué)習(xí)發(fā)展前景和機器
    的頭像 發(fā)表于 08-17 16:30 ?1812次閱讀